Tên hàng Đơn giá
Đài đĩa 2000 Quạt 300 Phích 100 Bàn là 150 Máy bơm 1500 Nồi cơm 400
Khi xem xét một quan hệ có thoả mãn dạng chuẩn Boyce-Codd hay không, ngoài khoá chính ta phải quan tâm tới các khoá khác, các khoá này tuy không được chọn làm khoá chính nhưng nó cũng thoả mãn điều kiện khoá tối tiểu. Dạng chuẩn 3NF cho phép một thuộc tính nằm trong khóa chính phụ thuộc hàm vào một thuộc tính không nằm trong khóa chính. Nhưng dạng chuẩn BCNF không cho phép một thuộc tính nằm trong khóa chính phụ thuộc hàm vào một thuộc tính không nằm trong khóa chính
Để đạt được các quan hệ ở dạng BCNF ta phải phân rã theo cách sau:
+ Nếu tồn tại phụ thuộc hàm X Y mà X không phải là khóa dự bị thì sẽ tách quan hệ thành XY và R\ XY.
+ Kiểm tra các bảng mới nhận được xem có là BCNF hay chưa, nếu chưa tiếp tục lặp lại các bước phân rã.
Xét quan hệ: GIANG_DAY
GIANG_DAY
Sinh viên Môn học Thầy dạy
Hoàng Anh Toán Văn Cao
Hoàng Anh Lý Văn Hào
Lương Thế Tài Toán Văn Cao
Lương Thế Tài Lý Trần Lâm
Giả thiết:
- Mỗi môn học sinh viên chỉ được học một thầy - Mỗi thầy chỉ được dậy một môn học
- Không có hai thầy, hai sinh viên trùng tên Ta thấy các quan hệ này có các phụ thuộc hàm sau:
Thầy dạy phụ thuộc hàm đồng thời vào môn học và sinh viên (do giả thiết mỗi môn học sinh viên chỉ có một thầy).
Môn học phụ thuộc hàm vào thầy dạy ( vì mỗi thầy chỉ dạy một môn) Trong quan hệ này ta tìm được hai khóa dự bị là Sinh viên, Môn học và Sinh viên, Thầy dạy.
Quan hệ này chắc chắn ở dạng chuẩn 3NF vì dù chọn khoá nào làm khóa chính thì cũng chỉ có một thuộc tính ngoài khóa do vậy không thể có phụ thuộc bắc cầu. Tuy vậy quan hệ này không ở dạng chuẩn BCNF vì trong quan hệ có thầy dạy không chứa khoá dự bị.
Để đạt được dạng chuẩn BCNF ta phải phân rã quan hệ DANG_DAY thành hai quan hệ như sau:
GIANG_DAY1
Môn học Thầy dạy
Toán Văn Cao
Lý Văn Hào
Lý Trần Lâm
Trong file dữ liệu GIẢNG_DẠY1 ta chọn khóa chính là Thầy dạy GIANG_DAY2
Sinh viên Hoàng Anh Lương Thế Tài
Quan hệ này ở dạng BCNF.
Tuy nhiên để chuẩn hóa các quan hệ của cơ sở dữ liệu đến dạng chuẩn BCNF đòi hỏi phải thực hiện tìm hết tất cả các khóa dự bị của quan hệ đó, như vậy điều này rất khó thực hiện trong thực tế. Nên người ta chỉ mong muốn các quan hệ được chuẩn hoá đến dạng chuẩn 3NF.
CHƯƠNG IV
CÀI ĐẶT PHẦM MỀM KIỂM TRA TÍNH BCNF CỦA SƠ ĐỒ QUAN HỆ
Việc chuẩn hóa cơ sở dữ liệu đóng một vai trò rất quan trọng trong việc xây dựng cơ sở dữ liệu. Nhờ chuẩn hóa ta có thể loại bỏ bớt thông tin dư thừa, đồng thời cũng loại được sự thiếu nhất quán do dư thừa thông tin.
Xuất phát từ những điều đã học trong lý thuyết chuẩn hoá cơ sở dữ liệu, em xây dựng một chương trình chuẩn hóa cơ sở dữ liệu, hy vọng rằng chương trình có thể phần nào có ích trong việc xây dựng thông tin quản lý, cũng như trong việc học tập và nghiên cứu về cơ sở dữ liệu.