Đặc tính bảo toàn phụ thuộc

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu các đặc tính của phân mảnh dọc trong cơ sở dữ liệu phân tán và ứng dụng (Trang 27 - 30)

2.3.1.Định nghĩa phân mảnh dọc bảo toàn phụ thuộc

Chúng ta đã hiểu được rằng một phân mảnh cần phải có đặc tính có nối không mất thì nó cho phép khôi phục lại quan hệ gốc bằng nối các phụ thuộc của nó

Tuy nhiên các phân tích ở trên chúng ta ít quan tâm đến tập phụ thuộc hàm F sau khi phân mảnh R. Một đặc tính quan trọng khác của phân mảnh R = (R1….Rk) của lược đồ quan hệ R là có thể suy ra tập phụ thuộc F những hình chiếu của F trên R1.

Về trực quan hình chiếu của F trên tập các thuộc tính Z ký hiệu là z(F) hoặc FZ) là tập các phụ thuộc XY thuộc F+ sao cho XY Z (chú ý rằng X Y không nhất thiết thuộc F; chỉ cần thuộc F+).

Ta nói phân mảnh dọc= (R1, R2, ...Rk) của lược đồ R có bảo toàn phụ thuộc (bảo toàn phụ thuộc hàm F) nếu hợp của tất cả phụ thuộc trong đó

Ri

(F) với i =1,2,….,k xác định được tất cả các phụ thuộc hàm trong F.

Lý do  cần bảo toàn tập F là vì các phụ thuộc trong F là các ràng buộc

diễn R bằng = (R1, R2, ...Rk), chúng ta có thể thấy rằng giá trị hiện hành của Ri biểu diễn một lược đồ quan hệ R không thỏa F, ngay cả khi  có nối không mất ứng với F. Khi đó mỗi thao tác cập nhật trên các R sẽ phải kiểm tra lại các ràng buộc và tính toàn vẹn ngữ nghĩa.

Ví dụ 2.4:

Chúng ta xét lược đồ R có các thuộc tính là C, S và Z. Giả sử có các phụ thuộc là CS Z và Z C. Phân mảnh của lược đồ quan hệ R(C, S, Z) thành R1(S, Z) và R2(C, Z) có nối không mất thông tin, bởi vì:

(SZ  CZ)  (CZ – SZ)

Tuy nhiên, chiếu của F = { CS Z, Z C} lên R1 là rỗng và lên R2 là Z C. Vậy hợp của các chiếu của F lên các R1 không suy ra được CS Z, vì thế phân mảnh này không bảo toàn các phụ thuộc mặc dù nó có nối không mất thông tin.

2.3.2. Thuật toán kiểm tra tính phụ thuộc

Về nguyên tắc, có thể kiểm tra xem một phân mảnh= (R1,R2,...,Rk) có

bảo toàn phụ thuộc F hay không. Chúng ta chỉ cần tính F+ rồi chiếu nó lên các Ri. Sau đó lấy hợp của các tập phụ thuộc kết quả kiểm tra xem tập này có tương đương với F hay không.

Nhắc lại hai tập phụ thuộc F và G xác định trên cùng lược đồ R được gọi là tương đương nếu và chỉ nếu F+ = G+

Chúng ta dễ dàng thấy rằng F tương đương với G nếu và chỉ nếu F  G+& G  F+

Ta đã biết, việc tính trực tiếp F+ là một công việc hết sức khó khăn. Nhưng có một cách để kiểm tra tính bảo toàn này mà không cần tính F+. Đó là thuật toán dưới đây.

Thuật toán 2.3 (Kiểm tra tính bảo toàn các phụ thuộc):

G = Ri(F)

Output: Một khẳng định là  có bảo toàn F hay không

Quy trình:

Chúng ta gọi G là hợp của các Ri(F). Chúng ta xét G có tương đương với F hay không? Vì theo định nghĩa của tập G ta đã có G  F+ nên ta chỉ cần kiểm tra xem F  G+ không? tức mỗi phụ thuộc XY của F có thuộc G+ không?

Theo các tính chất của phụ hàm ta có XY  G+Y  X+

G. Vậy ta chỉ cần xác định xem X+

G được tính ứng với G, có chứa Y hay không? Nếu tất cả các phụ thuộc hàm XY của F mà X+

G chứa Y thì F  G+ và phân mảnh có bảo toàn phụ thuộc, ngược lại phân mảnh không bảo toàn phụ thuộc.

Ví dụ 2.5:

Xét tập các thuộc tính ABCD với phân mảnh thành ba tập {AB, BC, CD} và tập các phụ thuộc F = {AB, BC, CD, DA}. Nghĩa là trong F+ mỗi thuộc tính đều xác định tất cả các thuộc tính còn lại. Lúc đầu chúng ta có thể lầm tưởng rằng khi chiếu F lên AB, BC và CD chúng ta không nhận được phụ thuộc D A nhưng điều đó không đúng. Khi chiếu F thực sự chúng ta đã chiếu F+ trên các lược đồ con vì thế chiếu F trên AB chúng ta không chỉ thu được A B mà cả BA. Vậy AB(F) = {A B, BA}. Tương tự ta có BC(F) = {B C, CB}, CD(F) = {C D, DC} và rõ ràng G+ = AB(F)BC(F) CD

(F) = {A B, BA, B C, CB, C D, DC} = F+

Vậy chúng ta kết luận rằng phân mảnh này bảo toàn tập phụ thuộc F.

2.3.3. Thuật toán phân mảnh dọc bảo toàn phụ thuộc

Thuật toán 2.4(Phân mảnh W thành các Wi có bảo toàn phụ thuộc): Input: W = <R, F>

Output: W1, W2 …. có bảo toàn phụ thuộc;

Nếu có tập các thuộc tính không xuất hiện trong F ta đặt một sơ đồ chứa các thuộc tính đó với tập phụ thuộc rỗng.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu các đặc tính của phân mảnh dọc trong cơ sở dữ liệu phân tán và ứng dụng (Trang 27 - 30)