Các kiểu phân mảnh cơ sở dữ liệu

Một phần của tài liệu Loại bỏ mẩu tin nhân bản thừa trong cơ sở dữ liệu quan hệ (Trang 25)

Phân chia quan hệ toàn cục thành các phân mảnh có thể thực hiện theo hai cách cơ bản: phân mảnh ngang và phân mảnh dọc. Trong thực tế sự phân mảnh có thể kết hợp cả hai loại phân mảnh, gọi là phân mảnh hỗn hợp.

Khi phân mảnh cơ sở dữ liệu cần tuân thủ một số quy tắc liệt kê dưới đây. Các quy tắc này nhằm đảm bảo tính nhất quán của cơ sở dữ liệu, đặc biệt về ngữ nghĩa của dữ liệu. 1. Tính đầy đủ. Tất cả dữ liệu trong quan hệ toàn cục phải tương ứng với các phân

mảnh. Không bao giờ xảy ra trường hợp một bản ghi thuộc vào quan hệ toàn cục nhưng không thuộc phân mảnh nào.

2. Tính tái thiết được. Bao giờ cũng phải xây dựng được quan hệ toàn cục từ những phân mảnh của nó.

3. Tính tách biệt. Các phân mảnh không được giao nhau, vì thế dữ liệu nhân bản có thể

được kiểm soát ở cấp độ lưu trữ. Quy tắc này có tác dụng chủ yếu đối với phân mảnh ngang, phân mảnh dọc có thể không nhất thiết tuân theo quy tắc này.

Sau đây chúng ta xem xét các loại phân mảnh.

1.2.2.1 Phân mnh ngang

Phân mảnh ngang là cách chia các bản ghi của một quan hệ toàn cục thành các tập con, các tập con này có cùng tính chất. Có thể biểu diễn phân mảng ngang bằng phép

toán chọn trên quan hệ toàn cục. Ví dụ, hãy xem xét quan hệ toàn cục sau: SUPPLIER(SNUM, NAME, CITY)

Phân mảnh ngang có thể chia theo cách sau đây:

SUPPLIER1 = σ<CITY = “SF”>SUPPLIER

SUPPLIER2 = σ<CITY = “LA”>SUPPLIER

Phân mảnh trên thoải mãn điều kiện toàn vẹn nếu thuộc tính CITY chỉ có hai giá trị “SF” và “LA”.

Điều kiện xây dựng lại được hoàn toàn có thể kiểm chứng được dựa vào phép toán sau: SUPPLIER = SUPPLIER1∪ SUPPLIER2

1.2.2.2 Phân mnh ngang dn xut

Trong một số trường hợp muốn phân mảnh ngang một quan hệ ta không chỉ căn cứ vào mỗi các thuộc tính của nó mà còn phải xem xét thuộc tính của các quan hệ liên quan khác. Ví dụ, hãy xét một quan hệ toàn cục sau :

SUPPLY(SNUM, PNUM, DEPTNUM, QUAN)

Trong đó, SNUM là mã số nhà cung cấp. Chúng ta có thể phân mảnh quan hệ SUPPY(cung cấp) theo địa chỉ, nhưng thuộc tính địa chỉ lại không có trong quan hệ này.

1.2.2.3 Phân mnh dc

Phân mảnh dọc là cách chia các thuộc tính của một quan hệ toàn cục thành các nhóm: các phân mảnh được tạo ra bằng cách thực hiện phép chiếu trên quan hệ toàn cục. Ví dụ, xét quan hệ toàn cục sau:

EMP(EMPNUM, NAME, SAL, TAX, MGRNUM, DEPNUM) Phân mảnh dọc có thể tiến hành như sau:

EMP1 = π<EMNUM, NAME, MGRNUM, DEPTNUM>EMP EMP2 = π<EMPNUM, SAL, TAX>EMP

Có thể xây dựng lại quan hệ này từ các phân mảnh bằng phép toán sau: EMP = EMP1 EMP2

<EMPNUM=EMPNUM>

1.2.2.4 Phân mnh hn hp

Phân mảnh hỗn hợp là sự kết hợp của hai kiểu phân mảnh đã trình bày ở trên. Trong phân mảnh hỗn hợp, người ta lần lượt áp dụng từng kiểu phân mảnh. Quy tắc xây dựng lại quan hệ từ các phân mảnh hỗn hợp có thứ tự ngược với thứ tự phân mảnh. Để cụ thể hơn ta xét ví dụ sau:

EMP(EMPNUM, NAME, SAL, TAX, MGRNUM, DEPTNUM)

Phân mảnh hỗn hợp được thực hiện bằng cách phân mảnh dọc trước, sau đó sẽ tiến hành phân mảnh ngang.

EMP1 = σ<DEPTNUM ≤ 10> π<EMPNUM, NAME, MEGNUM, DEPTNUM>EMP EMP2 = σ<10 < DEPTNUM ≤ 20>π<EMPNUM, NAME, MGRNUM, DEPTNUM>EMP EMP3 = σ<DEPTNUM > 20>π<EMPNUM, NAME, MGRNUM, DEPTNUM>EMP EMP4 = π<EMPTNUM, NAME, SAL, TAX>EMP

Hình 1-2 Phân mảnh hỗn hợp của quan hệ EMP

EMP

EMP4

Xây dựng lại quan hệ EMP từ các phân mảnh bằng phép toán sau: EMP = (EMP1∪ EMP2∪ EMP3) π<EMPNUM, SAL, TAX>EMP4

Một phần của tài liệu Loại bỏ mẩu tin nhân bản thừa trong cơ sở dữ liệu quan hệ (Trang 25)

Tải bản đầy đủ (PDF)

(72 trang)