Chương 2: XỬ LÝ CÂU TRUY VẤN SQL
2.1. Kiểm soát toàn vẹn ngữ nghĩa phân tán
Là các phán đoán đơn biến và đơn quan hệ. Chúng chỉ đề cập đến các bộ đƣợc cập nhật, độc lập với phần còn lại của CSDL.
Định nghĩa phán đoán riêng được gửi đến tất cả vị trí lưu các mảnh của quan hệ 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 đó p’ đoán 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í.
Chú ý, việc thẩm tra tính tương thích được thực hiện cho các phán đoán biên dịch kiểu cập nhật chèn.
Xét CSDL sau:
EMP (ENO, ENAME, TITLE) PROJ(PNO, PNAME, BUDGET) ASG(ENO, PNO, RESP, DUR) Ví dụ 2.1
Khoá ngoại
PNO IN ASG REFERENCES PNO IN PROJ
Khoá, mã số PNO trong quan hệ ASG là khoá ngoại tương ứng với khoá chính PNO trong quan hệ PROJ. Nói cách khác, một dự án đƣợc tham chiếu trong quan hệ ASG phải tồn tại trong quan hệ PROJ.
Ví dụ 2.2 Phụ thuộc hàm
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.
Ví dụ 2.3
Giả sử quan hệ EMP đƣợc phân mảnh ngang bởi 3 vị trí:
Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
P1 : 0 ENO “E3” P2: “E3” < ENO “E6” P3: ENO > “E6”
Và cho phán đoán miền biến thiên C: ENO < “E4” thì phán đoán C tương thích với p1 (nếu C đúng thì p1 đúng) và p2 (nếu C đúng thì chƣa chắc p2 sai, nhƣng không tương thích với p3) nếu C đúng thì p3 sai. Nhưng rõ ràng là P3 sai (vì ENO > “E6”) nên phán đoán C không tương thích với P3 khi đó C bị loại bỏ và EMP không thoả mãn phán đoán C.
2.1.2. Phán đoán hướng tập hợp
Phán đoán hướng tập hợp thuộc loại đa biến; nghĩa là chúng chứa vị từ nối biến đơn quan hệ (nhƣ phụ thuộc hàm ở ví dụ 2.2), 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ệ nhƣng ràng buộc khoá ngoại ở ví dụ 2.1: Mã số PNO dự án trong quan hệ ASG là khoá ngoại tương ứng với khoá chính PNO của hệ PROJ.
Nói cách khác là một dự án đƣợc tham chiếu trong quan hệ ASG phải tồn tại trong quan hệ PROJ.
Mặc dù vị từ phán đoán có thể thuộc loại đa quan hệ nhƣng một phán đoán biên dịch chỉ đƣợc liên kết với một quan hệ. Vì thế định nghĩa phán đoán có thể đƣợc gửi đến tất cả các vị trí có chứa các mảnh đƣợc các biến này thảm chiếu. Việc thẩm tra tính tương thích cũng gồm cả các mảnh của quan hệ được sử dụng trong vị từ nối. Tương thích vị từ không có tác dụng gì ở đây vì chúng ta không thể suy ra rằng một vị từ 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. Điều này đòi hỏi phải nối mảnh của quan hệ R với tất cả các mảnh của quan hệ S, là hai quan hệ có trong vị từ nối. Nhƣ thế, rõ ràng là chi phí sẽ rất cao, và nhƣ mọi phép nối khác, nó cần đƣợc tối ƣu hóa bằng thể xử lý vấn tin phân tán.
Ba tình huống sau có thể xảy ra đƣợc liệt kê theo mức chi phí.
1. Phân mảnh của R đƣợc dẫn xuất, từ phân mảnh của S dựa vào một nối nửa trên thuộc tính đƣợc dùng trong vị trí nối
Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
2. S đƣợc phân mảnh trên thuộc.tính nối.
3. S không đƣợc phân mảnh trên thuộc tính nối.
Trong trường hợp đầu tiên, việc kiểm tra tương thích có chí phí thấp bởi vì bộ của S đối sánh được với một bộ của R sẽ ở cùng một vị trí. Trong trường hợp thứ hai; mỗi bộ của R phái đƣợc so sánh với tối đa một mảnh của S, bởi vì giá trị thuộc tính nối của bộ thuộc R có thể được dùng để tìm vị trí mảnh tương ứng của S. Trong trường hợp thứ ba, mỗi bộ của R phải được so sánh với tất cả các mảnh của S. Nếu tất cả các bộ của R đều bảo đảm tương thích thì phán đoán sẽ được lưu tại mỗi vị trí.
Ví dụ 2.4
Xét phán đoán biên dịch hướng tập hợp (ASG, INSERT, Cl) được định nghĩa trong ví dụ 1.12; trong đó C1 là
NEW ASG+ , j PROJ : NEW.PNO = j.PNO Chúng ta 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 hệ PROJ. Trong trường hợp này, mỗi bộ NEW của ASG đã đƣợc đặt tại 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 Cl, việc thẩm tra tương thích không mất chi phí truyền dữ liệu.
2. PROJ đƣợc phân mảnh ngang theo hai vị từ : . pl: PNO < “P3”
p2: PNO "P3"
Trong trường hợp này, mỗi bộ NEW của ASG được so sánh với mảnh PROJ1
nếu NEW.PNO < “P3”, hoặc với mảnh PROJ2 nếu NEW.PNO “P3".
3. PROJ đƣợc phân mảnh ngang theo hai vị từ p1 : PNAME = "CAD/CAM"
p2; PNAMF "CAD/CAM"
Trong trường hợp này, mỗi bộ của ASG phải được so với cả hai mảnh PROJ1 và PROJ2
Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/