DBMS phân tán - Kiểm soát cơ sở dữ liệu

Kiểm soát cơ sở dữ liệu đề cập đến nhiệm vụ thực thi các quy định để cung cấp dữ liệu chính xác cho người dùng và ứng dụng xác thực của cơ sở dữ liệu. Để dữ liệu chính xác có sẵn cho người dùng, tất cả dữ liệu phải tuân theo các ràng buộc toàn vẹn được xác định trong cơ sở dữ liệu. Bên cạnh đó, dữ liệu cần được sàng lọc khỏi những người dùng trái phép để duy trì tính bảo mật và quyền riêng tư của cơ sở dữ liệu. Kiểm soát cơ sở dữ liệu là một trong những nhiệm vụ chính của người quản trị cơ sở dữ liệu (DBA).

Ba khía cạnh của kiểm soát cơ sở dữ liệu là:

  • Authentication
  • Quyền truy cập
  • Ràng buộc hoàn toàn

Xác thực

Trong hệ thống cơ sở dữ liệu phân tán, xác thực là quá trình mà chỉ những người dùng hợp pháp mới có quyền truy cập vào các tài nguyên dữ liệu.

Xác thực có thể được thực thi ở hai cấp độ -

  • Controlling Access to Client Computer- Ở cấp độ này, quyền truy cập của người dùng bị hạn chế trong khi đăng nhập vào máy tính khách cung cấp giao diện người dùng cho máy chủ cơ sở dữ liệu. Phương pháp phổ biến nhất là kết hợp tên người dùng / mật khẩu. Tuy nhiên, các phương pháp phức tạp hơn như xác thực sinh trắc học có thể được sử dụng cho dữ liệu bảo mật cao.

  • Controlling Access to the Database Software- Ở cấp độ này, phần mềm / quản trị viên cơ sở dữ liệu chỉ định một số thông tin xác thực cho người dùng. Người dùng có quyền truy cập vào cơ sở dữ liệu bằng các thông tin đăng nhập này. Một trong những phương pháp là tạo tài khoản đăng nhập trong máy chủ cơ sở dữ liệu.

Quyền truy cập

Quyền truy cập của người dùng đề cập đến các đặc quyền mà người dùng được cấp liên quan đến các hoạt động DBMS như quyền tạo bảng, thả bảng, thêm / xóa / cập nhật các bộ giá trị trong bảng hoặc truy vấn trên bảng.

Trong môi trường phân tán, vì có số lượng bảng lớn và số lượng người dùng lớn hơn, nên việc gán quyền truy cập cá nhân cho người dùng là không khả thi. Vì vậy, DDBMS xác định các vai trò nhất định. Vai trò là một cấu trúc với các đặc quyền nhất định trong hệ thống cơ sở dữ liệu. Khi các vai trò khác nhau được xác định, người dùng cá nhân sẽ được chỉ định một trong các vai trò này. Thường thì một hệ thống phân cấp các vai trò được xác định theo hệ thống phân cấp quyền hạn và trách nhiệm của tổ chức.

Ví dụ, các câu lệnh SQL sau tạo một vai trò "Kế toán" và sau đó gán vai trò này cho người dùng "ABC".

CREATE ROLE ACCOUNTANT; 
GRANT SELECT, INSERT, UPDATE ON EMP_SAL TO ACCOUNTANT; 
GRANT INSERT, UPDATE, DELETE ON TENDER TO ACCOUNTANT; 
GRANT INSERT, SELECT ON EXPENSE TO ACCOUNTANT; 
COMMIT; 
GRANT ACCOUNTANT TO ABC; 
COMMIT;

Kiểm soát toàn vẹn ngữ nghĩa

Kiểm soát toàn vẹn ngữ nghĩa xác định và thực thi các ràng buộc toàn vẹn của hệ thống cơ sở dữ liệu.

Các ràng buộc toàn vẹn như sau:

  • Ràng buộc toàn vẹn kiểu dữ liệu
  • Ràng buộc toàn vẹn thực thể
  • Ràng buộc toàn vẹn tham chiếu

Ràng buộc về tính toàn vẹn của loại dữ liệu

Ràng buộc kiểu dữ liệu hạn chế phạm vi giá trị và kiểu hoạt động có thể được áp dụng cho trường có kiểu dữ liệu được chỉ định.

Ví dụ: chúng ta hãy xem xét rằng một bảng "HOSTEL" có ba trường - số nhà trọ, tên nhà trọ và sức chứa. Số nhà trọ phải bắt đầu bằng chữ in hoa "H" và không được là NULL và dung lượng không được nhiều hơn 150. Có thể sử dụng lệnh SQL sau để định nghĩa dữ liệu:

CREATE TABLE HOSTEL ( 
   H_NO VARCHAR2(5) NOT NULL, 
   H_NAME VARCHAR2(15), 
   CAPACITY INTEGER, 
   CHECK ( H_NO LIKE 'H%'), 
   CHECK ( CAPACITY <= 150) 
);

Kiểm soát tính toàn vẹn của thực thể

Kiểm soát tính toàn vẹn của thực thể thực thi các quy tắc để mỗi bộ có thể được nhận dạng duy nhất từ ​​các bộ khác. Đối với điều này, một khóa chính được xác định. Khóa chính là một tập hợp các trường tối thiểu có thể xác định duy nhất một bộ. Ràng buộc toàn vẹn thực thể tuyên bố rằng không có hai bộ giá trị nào trong bảng có thể có các giá trị giống nhau cho các khóa chính và không trường nào là một phần của khóa chính có thể có giá trị NULL.

Ví dụ: trong bảng nhà trọ ở trên, số nhà trọ có thể được chỉ định làm khóa chính thông qua câu lệnh SQL sau (bỏ qua các bước kiểm tra):

CREATE TABLE HOSTEL ( 
   H_NO VARCHAR2(5) PRIMARY KEY, 
   H_NAME VARCHAR2(15), 
   CAPACITY INTEGER 
);

Ràng buộc về tính toàn vẹn tham chiếu

Ràng buộc toàn vẹn tham chiếu đưa ra các quy tắc của khóa ngoại. Khóa ngoại là một trường trong bảng dữ liệu là khóa chính của bảng có liên quan. Ràng buộc toàn vẹn tham chiếu đưa ra quy tắc rằng giá trị của trường khóa ngoại phải nằm trong số các giá trị của khóa chính của bảng được tham chiếu hoặc hoàn toàn là NULL.

Ví dụ, chúng ta hãy xem xét một bàn sinh viên nơi sinh viên có thể chọn sống trong ký túc xá. Để bao gồm điều này, khóa chính của bảng ký túc xá phải được đưa vào làm khóa ngoại trong bảng sinh viên. Câu lệnh SQL sau kết hợp điều này:

CREATE TABLE STUDENT (  
   S_ROLL INTEGER PRIMARY KEY, 
   S_NAME VARCHAR2(25) NOT NULL, 
   S_COURSE VARCHAR2(10), 
   S_HOSTEL VARCHAR2(5) REFERENCES HOSTEL 
);