Kiểm soát dữ liệu ngữ nghĩa (CSDL phân tán)

22 469 0
Kiểm soát dữ liệu ngữ nghĩa (CSDL phân tán)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

CƠ SỞ DỮ LIỆU PHÂN TÁN CHƯƠNG III KIỂM SOÁT DỮ LIỆU NGỮ NGHĨA PGS.NCVC.GVC.TS LÊ HUY THẬP 3.1 QUẢN LÝ KHUNG NHÌN 3.1.1 Khung nhìn hệ CSDL tập trung Khung nhìn hệ CSDL tập trung quan hệ trung gian kết câu vấn tin truy xuất từ quan hệ sở liệu tập trung Ví dụ 3-1 Tạo khung nhìn tên SYSAN chứa nội dung hai thuộc tính ENO ENAME với nghề nghiệp TITLE “Syst.Anal.” Câu lệnh SQL là: CREATE VIEW SYSAN(ENO, ENAME) AS SELECT ENO, ENAME FROM EMP WHERE TITLE = “Syst.Anal.” Kết SYSAN ENO ENAME E1 E5 E8 M.Smith B.Casey J.Jones Hình 3-1 Quan hệ tương ứng với khung nhìn SYSAN Chú ý: Cửa sổ SYSAN không lưu lại, nhiên dùng để xử lý câu vấn tin quan hệ Ví dụ 3-2 Thực câu truy vấn: “Cho biết tên Analyst mã số dự án nhiệm vụ họ” Câu truy vấn đưa khung nhìn SYSAN từ quan hệ ASG viết sau: SELECT ENAME, PNO, RESP FROM SYSAN, ASG WHERE SYSAN.ENO = ASG.ENO Kết câu vấn tin thể hình 3-2 ENAME PNO RESP M Smith M Smith B.Casey J.Jones P1 P2 P3 P4 Analyst Analyst Manager Manager Hình 3-2 Kết câu vấn tin dùng khung nhìn SYSAN dùng trực tiếp quan hệ sở có kết Kết hình 3-2 thực câu truy vấn trực tiếp quan hệ sở EMP , ASG sau: SELECT ENAME , PNO , RESP FROM EMP , ASG WHERE EMP.ENO = ASG.ENO AND TITLE = “Syst.Anal.” 3.1.2 Cập nhật qua khung nhìn Khung nhìn là: “Cập nhật được” “Không cập nhật được” Khung nhìn cập nhật tất tương tác cập nhật khung nhìn chuyển xác đến quan hệ sở mà không gây nhầm lẫn Ví dụ khung nhìn SYSAN ví dụ 3-1 cập nhật được, chẳng hạn chèn (201, Smith, Syst.Anal.) tức ENO = 201 ENAME = Smith TITLE = Syst.Anal; có thêm phân tích viên (ENO, ENAME, TITLE) = (201, Smith , Syst.Anal.) vào quan hệ EMP Khung nhìn không cập nhật tất thay đổi khung nhìn không chuyển xác đến quan hệ sở Ví dụ: CREATE VIEW EG (ENAME, RESP) AS SELECT ENAME , RESP FROM EMP , ASG WHERE EMP.ENO = ASG.ENO không cập nhật xóa có khoá E2 thao tác thực xóa EMP hay ASG Vì quan hệ EMP quan hệ ASG có có khoá này, nên hệ thống không hiểu nên xóa quan hệ nào! 3.2 AN TOÀN DỮ LIỆU An toàn liệu hệ thống tập tin đảm trách hệ điều hành tập trung phân tán Phương pháp mã hoá liệu giải mã có khoá Hai lược đồ khóa sử dụng DES (Data Encryption Standard) chuẩnn mã hoá liệu PES (Public_Key Encryption Schemes) – lược đồ mã hoá công khai An toàn liệu thể hai kiểm soát quyền: Kiểm soát cấp quyền tập trung kiểm soát cấp quyền phân tán • Kiểm soát cấp quyền cho phép NSD truy cập mức độ đó, ví dụ phép đọc phần liệu hay số mảnh… • Dựa vào giải pháp kiểm soát cấp quyền hệ thống tập trung để đưa giải pháp cho hệ quản trị CSDL phân tán Tuy nhiên độ phức tạp cao hơn, đối tượng người sử dụng phân tán 3.2.1 Kiểm soát cấp quyền tập trung Ba tác nhân kiểm soát cấp quyền: Người sử dụng Khai báo người sử dụng phải có user name password Các thao tác gắn vào ứng dụng SELECT, INSERT, UPDATE DELETE,… Các đối tượng CSDL thao tác tác động vào Các đối tượng cần bảo vệ tập CSDL Đối tượng khung nhìn, quan hệ, thuộc tính,… Lệnh trao quyện: GRANT ON TO Lệnh tước quyền: REVOKE FROM TO Từ khoá public dùng phép người quyền Việc trao thu hồi quyền thực người quản trị Hình 3-4 cho ví dụ bảng cấp quyền đối tượng gồm hai quan hệ EMP ASG thuộc tính ENAME, người sử dụng Casey, Jones Smith Đối tượng Người SD EMP ENAME ASG Casey UPDATE UPDATE UPDATE Jones SELECT SELECT SELECT…FROM…WHERE RESP  “Manager” Smith NONE SELECT NONE Hình 3-4: Ví dụ bảng cấp quyền 3.2.2 Kiểm soát cấp quyền phân tán Cấp quyền phân tán cấp quyền cho NSD xa Để tránh có thâm nhập trái phép người sử dụng phải nhận diện xác minh ví trí truy xuất thông qua hai biện pháp: i Thông tin người sử dụng tên, mật nhân vị trí hồ sơ cấu trúc Các chương trình ứng dụng cục bộ, khởi hoạt vị trí xa phải xác nhận tên mật người sử dụng ii Tất vị trí hệ thống phân tán nhận diện xác nhận tương tự cách làm cho người sử dụng 3.3 KIỂM SOÁT TÍNH TOÀN VẸN NGỮ NGHĨA Trạng thái CSDL gọi quán thoả mãn tập ràng buộc ràng buộc toàn vẹn ngữ nghĩa Duy trì CSDL quán phải dùng đến nhiều chế khác điều khiển hoạt động đồng thời, độ tin cậy, bảo vệ kiểm soát tính toàn vẹn ngữ nghĩa Có hai loại ràng buộc toàn vẹn: ràng buộc cấu trúc ràng buộc hành vi i Ràng buộc cấu trúc Diễn tả ngữ nghĩa vốn có mô hình Ví dụ ràng buộc: khoá, liên kết nhiều đối tượng, ii Ràng buộc hành vi Diễn tả đối tượng Ví dụ phụ thuộc hàm, mô tả đặc tính cấu trúc đối tượng 3.3.1 Kiểm soát toàn vẹn ngữ nghĩa tập trung Một hệ thống kiểm soát ngữ nghĩa có hai thành phần: Ngôn ngữ: để diễn tả thao tác phán đoán toàn vẹn ngữ nghĩa Định chế chịu trách nhiệm thực hành động cụ thể nhằm cưỡng chế tính toàn vẹn có cập nhật Ràng buộc toàn vẹn phải người quản trị CSDL thiết lập sở ngôn ngữ bậc cao, ví dụ dùng SQL Chúng ta cần phân biệt ba loại ràng buộc toàn vẹn là: ràng buộc tiền định, ràng buộc tiền biên dịch ràng buộc tổng quát Ràng buộc tiền định, tiền biên dịch tổng quát Ràng buộc tiền định Ràng buộc tiền định ràng buộc cho trước Ví dụ ràng buộc tiền định ENO NOT NULL IN EMP; /*Thuộc tính ENO không nhận giá trị null (ENO, PNO) UNIQUE IN ASG; /*Giá trị khoá (ENO, PNO) phải PNO IN ASG REFERENCES PNO IN PROJ; /*PNO ASG khoá ngoại tương ứng với khoá PNO quan hệ PROJ ENO IN EMP DETERMINES ENAME; /*Giá trị mã số nhân viên ENO, xác định giá trị hàm tên nhân viên ENAME Ràng buộc tiền biên dịch Ràng buộc tiền biên dịch diễn tả điều kiện phải thoả mãn tất quan hệ kiểu cập nhật (INSERT, DELETE, MODIFIY,…) cho Để xác định cần cập nhật định nghĩa ràng buộc, đưa hai biến NEW OLD tương ứng với cũ - sửa chữa xoá Có thể dùng lệnh CHECK SQL: CHECK ON WHEN bổ sung thêm khả đặc tả kiểu cập nhật để kiểm tra ràng buộc tiền biên dịch Ví dụ ràng buộc tiền biên dịch 1/ Ràng buộc miền Chẳng hạn Kiểm tra ngân sách dự án khoảng từ 500000 đến 1000000 CHECK ON PROJ (BUDGET> 500000 AND BUDGET “E6”) nên phán đoán C không tương thích với P3 C bị loại bỏ EMP không thoả mãn phán đoán C 15 Lớp phán đoán hướng tập hợp Phán đoán hướng tập hợp loại đơn đa biến; nghĩa chúng chứa vị từ nối biến đơn quan hệ Ví dụ loại đơn biến: mã số nhân viên xác định phụ thuộc hàm tên nhân viên là: ENO IN EMP DETEMINES ENAME Và đa biến đa quan hệ ràng buộc khoá ngoại ví dụ 3–7: Mã số PNO dự án quan hệ ASG khoá ngoại tương ứng với khoá PNO hệ PROJ Nói cách khác dự án tham chiếu quan hệ ASG phải tồn quan hệ PROJ Việc thẩm tra tính tương thích gồm mảnh quan hệ sử dụng vị từ nối Tương thích vị từ tác dụng suy vị từ phân mảnh p sai phán đoán C (dựa vị từ nối) Vì cần phải thẩm tra C theo liệu 16 Ví dụ 3.19 Xét phán đoán biên dịch hướng tập hợp (ASG, INSERT, C1), C1 là: NEW ASG+ , j  PROJ : NEW.PNO = j.PNO Xét ba trường hợp sau ASG dược phân mảnh theo vị từ ASG PNO PROJi PROJi mảnh quan hệ PROJ Trong trường hợp này, NEW ASG đặt vị trí với j cho NEW.PNO = j.PNO Bởi vị từ phân mảnh giống với vị từ C1, việc thẩm tra tương thích không chi phí truyền liệu PROJ phân mảnh ngang theo p1: PNO < “P3” p2: PNO  "P3" Trong trường hợp này, NEW ASG so sánh PROJ1 NEW.PNO < “P3”, PROJ2 NEW.PNO  “P3" PROJ phân mảnh ngang theo p1 : PNAME = "CAD/CAM“ p2: PNAMF  "CAD/CAM" Trong trường hợp nay, ASG phải so với hai mảnh PROJ1 PROJ2 17 3.3.3 Cưỡng chế thi hành phán đoán toàn vẹn phân tán Cưỡng chế thi hành phán đoán toàn vẹn phân tán phức tạp so với tập trung Vấn đề vị trí thực cưỡng chế Lựa chọn vị trí phụ thuộc vào lớp phán đoán, kiểu cập nhật, chất vị trí đưa yêu cầu cập nhật (được gọi vị trí vấn tin chính) Vị trí có quan hệ cần cập nhật số quan hệ có mặt phán đoán toàn vẹn Tham số quan trọng cần xem xét chi phí truyền liệu, kể thông báo, từ vị trí đến vị trí khác 3.3.3.1 Phán đoán riêng Chúng ta xem xét hai trường hợp: 1/ Nếu cập nhật chèn, tất cần chèn người sử dụng cung cấp Trong trường hợp này, phán đoán riêng cưỡng chế thi hành vi trí đưa cập nhật 2/ Nếu xóa sửa đổi, gửi đến vị trí có quan hệ cần cập nhật Thể xử lý vấn tin cho thực lượng từ hóa cập nhật cho mảnh Các tạo vị trí tổ hợp lại thành quan hệ tạm thời trường hợp câu lệnh xóa, hai trường hợp hiệu chình (nghĩa R+ R-) Mỗi vị có mặt cập nhật thẩm tra phán đoán có liên quan đến vị trí (ví dụ ràng buộc miền xóa) 18 3.3.3.2 Phán đoán hướng tập hợp Trước tiên nghiên cứu ràng buộc đơn quan hệ qua ví dụ Xét phụ thuộc hàm ví dụ 3-8 Phán đoán biên dịch kèm với kiểu cập nhật INSERT là: (EMP, INSERT, C) C (e  EMP)(NEW1  EMP)(NEW2  EMP) (1) (NEW1.ENO = e.ENO  NEW1.ENAME = e.ENAME) (2) (NEW1.ENO = NEW2.ENO NEW1.ENAME = NEW2.ENAME) (3) Dòng thứ hai định nghĩa C kiểm tra ràng buộc chèn (NEW1) có (e), dòng thứ ba kiểm tra chèn Điều cho thấy khai báo hai biến (New1 NEW2) dòng thứ Ví dụ Xét thao tác cập nhật lệnh INSERT vào EMP Mỗi vị trí có chứa mảnh EMP phải thi hành phán đoán C mô tả Bởi e C lượng từ hóa phổ dụng, liệu cục vị trí phải thoả C Vị trí đưa yêu cầu cập nhật phải nhận thông báo từ vị trí cho biết phán đoán thỏa mãn cho tất vị trí Nếu phán đoán không thỏa mãn vị trí, vị trí gửi thông báo cho biết phán đoán bị vi phạm Do cập nhật giá trị nhiệm vụ hệ thống kiểm tra toàn vẹn định xem toàn chương trình phải loại bỏ hay không 19 Thuật toán ENFORCE (Cưỡng chế) Thuật toán ENFORCE nghiên cứu phán đoán đa quan hệ Chúng ta giả sử phán đoán toàn vẹn biến biến thiên quan hệ Đây trường hợp hay gặp Giống phán đoán đơn quan hệ, cập nhật tính toán vị trí đưa yêu cầu Cưỡng chế thi hành thực vị trí vấn tin nhờ thuật toán ENFORCE Thuật toán 3.1 ENFORCE T: kiểu cập nhật; R: quan hệ; Ci cưỡng chế Begin “Truy xuất tất phán đoán biện dịch (R, T, Ci)” KhongHopLe  false For phán đoán biên dịch Begin Result  truy xuất tất (tương ứng cũ) R với ¬(Ci) If Card(result)  then Begin KhongHopLe  true exit End if End for 20 If not(KhongHopLe) then “Gửi cập nhật đến tất cá vị trí có mảnh R” Else “Bỏ cập nhật” End if End {ENFORCE} Ví dụ: Minh họa thuật toán dựa phán đoán khóa ngoại PNO IN ASG REFERENCES PNO IN PROJ Mã số PNO quan hệ ASG khoá ngoại tương ứng với khoá PNO quan hệ PROJ Nói cách khác, dự án tham chiếu quan hệ ASG phải tồn quan hệ PROJ Gọi u thao tác chèn vào ASG Thuật toán dùng phán đoán biên dịch (ASG, INSERT, C), C NEW  ASG+ , j  PROJ : NEW.PNO = j.PNO Đối với phán đoán này, câu lệnh lấy liệu truy xuất tất ASG+ không thỏa C Câu lệnh diễn tả SQL sau SELECT NEW * FROM ASG+ NEW , PROJ WHERE COUNT (PROJ.PNO WHERE NEW.PNO = PROJ.PNO) = 21 Vì NEW* biểu thị tất ASG+ Nên gửi đến vị trí có lưu quan hệ PROJ để thực nối tập trung tất kết vị tư vấn tin Với vị trí có lưu mảnh PROJ, nối mảnh với ASG+ gửi kết vị trí vấn tin Nơi lấy hợp tất kết Nếu hợp rỗng CSDL quán Bằng không cập nhật dẫn đến trạng thái không quán Phế bỏ chương trình phụ thuộc vào chiến lược chọn quản lý chương trình DBMS phân tán Phán đoán có hàm gộp Loại phán đoán có chi phí kiểm tra cao phải thực hàm gộp Hàm gộp thường dùng MIN, MAX, SUM COUNT Mỗi hàm gộp chứa phần chiếu phần chọn Để cưỡng chế phán đoán cách hiệu quả, tạo phán đoán biên dịch nhằm cô lập liệu thừa lưu vị ta có chứa quan hệ kèm [Bernstein and Blaustein, 1982] Dữ liệu gọi khung nhìn cụ thể (concrete view) 22 [...]... Result = ; thì phán đoán này đã được xác nhận bởi phép cập nhật 13 3.3.2 Kiểm soát toàn vẹn ngữ nghĩa phân tán bằng các loại phán đoán Một phán đoán được xem là một vấn tin, phán đoán nhận giá trị đúng hoặc sai với mỗi bộ trong tích Descartes của các quan hệ được xác định bởi các biến bộ Do các phán đoán liên quan đến dữ liệu lưu ở nhiều vị trí khác nhau, nơi lưu trữ chúng cần phải được cân nhắc... Định nghĩa của phán đoán riêng được gửi đến các vị trí lưu các mảnh có mặt trong phán đoán Các phán đoán phải tương thích với vị trí phân mảnh ở hai cấp: cấp vị trí và cấp dữ liệu Phán đoán C xem là không tương thích với vị trí phân mảnh P, nếu C đúng suy ra P sai Khi đó C bị loại bỏ toàn cục Nếu có tương thích, thì phán đoán C sẽ được lưu lại tại mọi vị trí Ví dụ 3–18 Giả sử quan hệ EMP được phân. .. cùng vị trí với bộ j sao cho NEW.PNO = j.PNO Bởi vì vị từ phân mảnh giống với vị từ của C1, việc thẩm tra tương thích không mất chi phí truyền dữ liệu 2 PROJ phân mảnh ngang theo p1: PNO < “P3” và p2: PNO  "P3" Trong trường hợp này, mỗi bộ NEW của ASG được so sánh các bộ trong PROJ1 nếu NEW.PNO < “P3”, hoặc trong PROJ2 nếu NEW.PNO  “P3" 3 PROJ phân mảnh ngang theo p1 : PNAME = "CAD/CAM“ p2: PNAMF ... định nghĩa của C kiểm tra ràng buộc giữa các bộ được chèn (NEW1) và các bộ hiện có (e), còn dòng thứ ba kiểm tra giữa các bộ được chèn Điều này cho thấy tại sao chúng ta khai báo hai biến (New1 và NEW2) ở dòng thứ nhất Ví dụ Xét thao tác cập nhật là lệnh INSERT vào EMP Mỗi vị trí có chứa một mảnh của EMP sẽ phải thi hành phán đoán C được mô tả ở trên Bởi vì e trong C được lượng từ hóa phổ dụng, dữ liệu. .. không có tác dụng gì ở đây vì chúng ta không thể suy ra rằng một vị từ phân mảnh p sai nếu phán đoán C (dựa trên vị từ nối) đúng Vì thế chúng ta cần phải thẩm tra C theo dữ liệu 16 Ví dụ 3.19 Xét phán đoán biên dịch hướng tập hợp (ASG, INSERT, C1), trong đó C1 là: NEW ASG+ , j  PROJ : NEW.PNO = j.PNO Xét ba trường hợp sau 1 ASG dược phân mảnh theo vị từ ASG PNO PROJi trong đó PROJi là một mảnh của quan... được cân nhắc để giảm chi phí thẩm tra toàn vẹn Một phán đoán toàn vẹn có thể bắt đầu tại một trong các vị trí có lưu các quan hệ có mặt trong phán đoán Vì cơ sở dữ liệu được phân mảnh, do đó một phán đoán toàn vẹn trở thành một thao tác phân tán và được thực hiện theo hai bước: Bước 1 Biến đổi các phán đoán ở cấp cao thành các phán đoán biên dịch Bước 2 Lưu các phán đoán biên dịch theo lớp, các lớp... các quan hệ vi phân Rõ ràng R+ =  nếu u là thao tác xoá, và R- =  nếu U là thao tác chèn • Nếu U là phép sửa đổi bộ sẽ sinh ra quan hệ R+(R - R-) Định nghĩa phán đoán biên dịch Một phán đoán biên dịch là bộ ba (R,T,C), trong đó R là quan hệ, T là kiểu cập nhật; C là một phán đoán biến thiên trên các quan hệ vi phân có mặt trong một cập nhật kiểu T Khi một tập ràng buộc L được định nghĩa, thì cũng... chọn bởi bộ quản lý chương trình của DBMS phân tán Phán đoán có hàm gộp Loại phán đoán này có chi phí kiểm tra cao nhất vì phải thực hiện hàm gộp Hàm gộp thường được dùng là MIN, MAX, SUM và COUNT Mỗi hàm gộp chứa một phần chiếu và một phần chọn Để cưỡng chế các phán đoán này một cách hiệu quả, chúng ta có thể tạo ra các phán đoán biên dịch nhằm cô lập dữ liệu thừa được lưu tại mỗi vị ta có chứa quan...Phương pháp 2 Ngăn chặn mâu thuẫn Thao tác cập nhật chỉ được thực hiện nếu nó chuyển CSDL sang trạng thái nhất quán khác Việc kiểm tra được thực hiện trước khi trạng thái CSDL được thay đổi và vì vậy cách kiểm tra được gọi là kiểm tra trước Phương pháp ngăn chặn mâu thuẫn hiệu quả hơn phươnh pháp phát hiện mâu thuẫn vì chúng ta không phải quay lại trạng thái của CSDL trước đó... p1 : PNAME = "CAD/CAM“ p2: PNAMF  "CAD/CAM" Trong trường hợp nay, mỗi bộ của ASG phải được so với cả hai mảnh PROJ1 và PROJ2 17 3.3.3 Cưỡng chế thi hành các phán đoán toàn vẹn phân tán Cưỡng chế thi hành các phán đoán toàn vẹn phân tán phức tạp hơn so với tập trung Vấn đề là vị trí nào sẽ thực hiện cưỡng chế Lựa chọn vị trí phụ thuộc vào lớp phán đoán, kiểu cập nhật, và bản chất của vị trí đưa ra yêu ... cấu trúc đối tượng 3.3.1 Kiểm soát toàn vẹn ngữ nghĩa tập trung Một hệ thống kiểm soát ngữ nghĩa có hai thành phần: Ngôn ngữ: để diễn tả thao tác phán đoán toàn vẹn ngữ nghĩa Định chế chịu trách... khai An toàn liệu thể hai kiểm soát quyền: Kiểm soát cấp quyền tập trung kiểm soát cấp quyền phân tán • Kiểm soát cấp quyền cho phép NSD truy cập mức độ đó, ví dụ phép đọc phần liệu hay số mảnh…... đồng thời, độ tin cậy, bảo vệ kiểm soát tính toàn vẹn ngữ nghĩa Có hai loại ràng buộc toàn vẹn: ràng buộc cấu trúc ràng buộc hành vi i Ràng buộc cấu trúc Diễn tả ngữ nghĩa vốn có mô hình Ví dụ ràng

Ngày đăng: 21/01/2016, 18:12

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan