Tách không mất thông tin thành các lượcđồ ở dạng BCNF

Một phần của tài liệu Đề cương bài giảng môn cơ sở dữ liệu (Trang 127 - 131)

1. Định nghĩa các thuật ngữ: cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu, hệ cơ sở dữ

16.3. Tách không mất thông tin thành các lượcđồ ở dạng BCNF

Cho lược đồ α = (U, F), và phép tách δ ={U1, U2,.., Uk}, phép tách một lược đồ thành một tập các lược đồ ở dạng BCNF là phép tách thoả mãn: Phép tách

δlà phép tách kết nối không mất thông tin.

Tất cả các lược đồ con αi= (Ui, Fi) đều ở dạng BCNF.

Xuất phát từ một phụ thuộc hàm X A nào đó của F, phụ thuộc hàm XA này vi phạm điều kiện BCNF, ta xây dựng phép tách δ ={U1, U2}, tương ứng với lược đồα1 vàα2sao cho:

Phép tách đó là phép tách kết nối không mất thông tin

Phụ thuộc hàm XA là phụ thuộc hàm của lược đồ α1 và nó thoả mãn điều kiện của BCNF trong lược đồ này

Nếu như các lược đồ α1 và α2 vẫn chưa ở dạng BCNF thì tiếp tục quá trình đó, vì các điều vi phạm BCNF đều bị loại bỏ, cuối cùng ta thu được một tập các lược đồ con đều ở dạng BCNF và quá trình tách luôn luôn đảm bảo phép tách kết nối không mất thông tin.

Cơ sở của thuật toán trên là do giả thiết lược đồ α = (U, F) chưa ở dạng BCNF do đó tồn tại phụ thuộc hàm XA, A∉X, X không phải là siêu khoá U1=XA, U2 =U \ A

Nhận xét:

X=U1∩ U2, U1 \ U2=A, đã có XA do đó U1 ∩ U2  U1 \ U2 theo định lý ở phần trên thì phép tách δ={U1 , U2} là phép tách có kết nối không mất thông tin. Vì U1 =XA và phụ thuộc hàm XA là duy nhất trên lược đồ α1 = (U1, F1) nên X là siêu khoá.

Nếu α1 , α2 chưa ở dạng BCNF thì ta áp dụng quá trình tách tương tự. Cuối cùng ta thu được một tập các lược đồ ở dạng BCNF và quá trình tách là không mất thông tin.

Ví dụ:

Cho lược đồα= (U, F) với

U=CRHTSG (C: Course, T: Teacher, H: Hour, R: Room, S: Student, G: Group)

F ={CT , HR C, CHR, CS G, HSR}

Nhận xét

-Lược đồ này có duy nhất một khoá là HS -Lược đồ này chưa ở dạng BCNF

- Ta thấy trong lược đồ α = (U, F) có phụ thuộc hàm CS G vi phạm điều kiện BCNF nên ta tách lược đồ thành các lượcU1 =CGS, U2=CTHRS

- Ta thấy trong lược đồ α2 = (U2, F2) có phụ thuộc hàm C T vi phạm điều kiện BCNF nên ta tách lược đồ thành các lượcU3 =CT, U4 =CHRS

- Ta thấy trong lược đồα4 = (U4, F4) có phụ thuộc hàm CHR vi phạm điều kiện BCNF nên ta tách lược đồ thành các lược đồU5 =CHR, U6=CHS

Nhưvậy phép tách cuối cùng làδ={ CSG, CT , CHR , CHS }

16.4.Tổng kết

Trong chương này chúng ta đã nóiđến các nguy hiểm có thể xảy ra trong việc thiết kế cơ sở dữ liệu, xác định một cách không hình thức một số chuẩn mực để chỉ ra một lược đồ quan hệ là “tốt” hay “tồi” và đưa ra một số nguyên tắc không hình thức cho một thiết kế tốt. Sau đó chúng ta đã trình bày một vài khái niệm cho phép ta thiết kế quan hệ theo cách trên-xuống bằng cách phân tích các quan hệ một cách riêng rẽ. Chúng ta đó định nghĩa quá trình thiết kế này bằng phân tích và tách bằng cách giới thiệu quá trình chuẩn hóa.

Những vấn đề về các bất thường cập nhật xảy ra khi có sự dư thừa xảy ra trong các quan hệ cũng đó được đề cập đến. Các chuẩn mực không hình thức của các lược đồ quan hệ tốt bao gồm ngữ nghĩa của thuộc tính rừ ràng và đơn giản, ít giá trị null trong các mở rộng của quan hệ. Một phép tách tốt phải tránh được việc sinh ra các bộ giả khi thực hiện phép nối.

Chúng ta đó định nghĩa khái niệm phụ thuộc hàm và thảo luận một số tính chất của nó. Các phụ thuộc hàm là các nguồn thông tin ngữ nghĩa cơ bản về các thuộc tính của lược đồ quan hệ. Chúng ta đã chỉ ra cách suy diễn các phụ thuộc phụ thêm dựa trên một tập các phụthuộc hàm cho trước và một tập các quy tắc suy diễn. Chúng ta đó định nghĩa các khái niệm bao đóng và phủ tối thiểu của một tập phụ thuộc hàm và cung cấp thuật toán tính phủ tối thiểu. Ta cũng đó chỉ ra làm thế nào để kiểm tra xem hai tập phụ thuộc hàm có tương đương nhau hay không.

α = (U, F) U1 =CSG F1={CSG} K=CS U2 =CTHRS F2={CT, HRC, CHR, HSR} K=HS U3 =CT F3={CT} K=C U4 =CHSR F4={ HRC, CHR, HSR} K=HS U5 =CHR F5={ HRC, HRC} K=HR, K=HC U6=CHS F6={ HSC} K=HS

Tiếp theo, chúng ta đã mô tả quá trình chuẩn hóa để đạt đến các thiết kế tốt bằng cách kiểm tra các quan hệ đối với các kiểu phụ thuộc hàm không mong muốn. Chúng ta đó cung cấp cách chuẩn hóa liên tiếp dựa trên khóa chính được định nghĩa trước trong mỗi quan hệ và sau đó giảm nhẹ đòi hỏi này và đưa ra các định nghĩa tổng quát của các dạng chuẩn có tính đến tất cả các khóa dự tuyển của một quan hệ.

Trong phần IV chúng ta đã trình bày nhiều thuật toán chuẩn hóa. Đó là thuật toán tổng hợp quan hệ tạo ra các quan hệ 3NF từ một lược đồ quan hệ vũ trụ dựa trên một tập các phụ thuộc hàm do người thiết kế cơ sở dữ liệu xác định. Các thuật toán tạo ra các quan hệ BCNF (hoặc 4NF) bằng cách tách không mất mát liên tiếp các quan hệ không chuẩn hóa thành hai quan hệ thành phần tại một thời điểm. Chúng ta đã thảo luận về hai tính chất quan trọng của phép tách: tính chất nối không mất mát (hoặc không phụ thêm) và tính chất bảo toàn phụ thuộc. Một thuật toán kiểm tra phép tách không mất mát và một thuật toán kiểm tra tính không mất mát của một phép tách thành hai quan hệ cũng đã được trình bày. Chúng ta cũng đó thấy rằng việc tổng hợp các quan hệ ở dạng 3NF đảm bảo cả hai tính chất trên là có khả năng còn việc tổng hợp các quan hệ BCNF chỉ có khả năng đảm bảo tính không mất mát, không thể đảm bảo tính bảo toàn phụ thuộc.

Bài 17: Thảo luận bài tập về chuẩn hóa

17.1. Chia nhóm

17.2. Giao việc cho các nhóm

17.3. Theo dõi và tư vấn cho các nhóm

17.4. Nghiệmthu kết quả các nhóm

Bài 19: Giới thiệu ngôn ngữ truy vấn cấu trúc (SQL)

Một phần của tài liệu Đề cương bài giảng môn cơ sở dữ liệu (Trang 127 - 131)

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

(161 trang)