Các quy tắc cho thiết kế cơ sở dữ liệu quan hệ Thiết kế cơ sở dữ liệu quan hệ: cách nhóm các thuộc tính đề tạo thành các lược đồ quan hệ Các chuẩn 1NF 2NF 3NF BCNF... Ngữ nghĩa của
Trang 1Phụ thuộc hàm và chuẩn hóa
cơ sở dữ liệu quan hệ
Lê Thị Lan
Trang 4Một số khái niệm
Trang 7Các quy tắc cho thiết kế cơ sở
dữ liệu quan hệ
Thiết kế cơ sở dữ liệu quan hệ: cách nhóm các
thuộc tính đề tạo thành các lược đồ quan hệ
Các chuẩn 1NF 2NF 3NF BCNF
Trang 8Ngữ nghĩa của các thuộc tính
Mỗi bộ chỉ biểu diễn một thể hiện cụ thể của một thực thể hoặc một liên kết
Chỉ có khóa ngoài dùng để chỉ đến các thực thể khác
Thuộc tính của thực thể và quan hệ cần tách biệt nhau
Trang 9f.k.: foreign keyp.k primary key
Trang 11Dư thừa dữ liệu và các dị
thường khi cập nhật
Dư thừa dữ liệu
Các dị thường:
Dị thường khi thêm bộ
Dị thường khi xóa bộ
Dị thường khi thay đổi
Trang 14“Customer- Dị thường khi thêm bộ
Không thể thêm một dự án không có nhân viên.
Không thể thêm một nhân viên nếu nhân viên đó chưa được chỉ định vào 1 dự án cụ thể
Trang 15Ví dụ về các dị thường
Dị thường xóa bộ
Khi xóa 1 dự án thì toàn bộ nhân viên làm cho dự án bị xóa
Khi xóa một nhân viên của dự án chi bao gồm 1 nhân viên thì kết quả là dự án bị xóa theo
Dư thừa dữ liệu
Không nhất quán
Đảm bảo cơ sở dữ liệu thiết kế không chứa các dị thường thêm, xóa và cập nhật
Trang 16Giá trị Null trong các bộ
Các quan hệ phải được thiết kế sao cho các bộ của
b giá trị của thuộc tính không biết (có thể tồn tại)
c giá trị của thuộc tính tồn tại nhưng không chưa xác định được
Trang 17Bộ giả
Thiết kế không tốt có thể sinh ra lỗi khi thực hiện các thao tác kết nối
Các quan hệ phải được thiết kế để đảm bảo không
có bộ giả nào được sinh ra khi thực hiện kết nối tự nhiên
Trang 19 Phụ thuộc hàm là các ràng buộc được xác định từ ngữ nghĩa
và mối quan hệ bên trong của các thuộc tính
Trang 20Nếu t1[X]=t2[X], thì t1[Y]=t2[Y] với mọi bộ r(R)
X Y trong R xác định một ràng buộc cho tất cả các thể hiện r(R)
Phụ thuộc hàm chính là các ràng buộc trên dữ liệu
Trang 21PNUMBER {PNAME, PLOCATION}
Mã số bảo hiểm của nhân viên SSN và mã dự án xác định số giờ mà nhân viên phải làm trong dự án{SSN, PNUMBER} HOURS
Trang 22 Nếu K là khóa của R thì K cho phép xác định tất cả các
thuộc tính do đó không thể tồn tại 2 bộ với t1[K]=t2[K])
Trang 23Các luật cho phụ thuộc hàm
Với một tập phụ thuộc hàm F, ta có thể suy ra các phụ thuộc hàm mới
Luật Armstrong
A1 (Phản xạ - Reflexive) Nếu Y là tập con của X thì X Y A2 (Tăng trưởng - Augmentation) Nếu X Y, thì XZ
YZ (Chú ý: XZ có nghĩa là X U Z)
A3 (Bắc cầu - Transitive) Nếu X Y và Y Z, thì X Z
A1, A2, A3 tạo một tập các luật đúng và đầy đủ
Trang 24Các luật cho phụ thuộc hàm
Bao đóng của F cho tập phụ thuộc hàm là tập F+
của các phụ thuộc hàm suy diễn từ F
Trang 26Chuẩn hóa
Chuẩn hóa: Là một quá trình chia nhỏ quan hệ
thiết kế không tốt thành tập các quan hệ nhỏ hơn
Các chuẩn: dùng khóa và các phụ thuộc hàm để
xác định dạng chuẩn của quan hệ
Chuẩn 2, chuẩn 3, chuẩn Boyce-Codd dựa vào khóa và các phụ thuộc hàm
Chuẩn 4 dựa vào khóa và các ràng buộc đa trị
Trang 27Chuẩn 1
Không cho phép các thuộc tính đa trị, thuộc tính không nguyên tố
Trang 30Dạng chuẩn 2
Sử dụng phụ thuộc hàm và khóa chính
Định nghĩa:
Thuộc tính thuộc khóa (Prime attribute) là 1
thuộc tính trong khóa chính K
Phụ thuộc hàm đầy đủ: Y Z là phụ thuộc hàm đầy đủ nếu bỏ đi bất cứ một thuộc tính nào trong Y thì phụ thuộc hàm này không còn đúng
Trang 31Không tồn tại K’ ⊂ K, sao cho K’ → R (tối thiểu)
• Khóa chính (Primary Key)
Siêu khóa
Khóa
Khóa chính
Trang 32Chuẩn 2: ví dụ
Bảng employee (employeeID, name, job, và departmentID)
Super key: {employeeID, Name}, {employeeID, Name, job}, và {employeeID, Name, job,
departmentID}.
employeeID là một khóa
Trang 33Chuẩn 2: ví dụ
Cho lược đồ quan hệ R trên tập thuộc tính U={A, B, C, D} với các phụ thuộc hàm AB->C và B->D và BC->A
Xác định thuộc tính khóa và thuộc tính không khóa
{SSN, PNUMBER} HOURS là một phụ thuộc hàm
đầy đủ bởi vì SSN HOURS hoặc PNUMBER
HOURS không còn đúng
{SSN, PNUMBER} ENAME không phải là phụ thuộc hàm đầy đủ (gọi là phụ thuộc hàm bộ phận) bởi vì SSN ENAME
Trang 34Chuẩn 2: ví dụ
Một quan hệ R ở dạng chuẩn 2 nếu tất cả thuộc tính
không khóa A trong R là phụ thuộc đầy đủ vào khóa chính
R có thể chia thành các quan hệ ở dạng chuẩn 2 thông qua quá trình chuẩn hóa dạng chuẩn 2
Trang 35Bao đóng của tập thuộc tính
Bao đóng của tập thuộc tính được sử dụng để xác định siêu khóa
Trang 38Chuẩn 3
Định nghĩa
Phụ thuộc hàm bắc cầu (Transitive functional
dependency): Tập thuộc tính Z không phải là khóa và
Trang 40Chuẩn Boyce-Codd (Boyce-Codd Normal Form)
Một quan hệ R là ở dạng chuẩn Boyce-Codd nếu có một phụ thuộc hàm X A trong R thì X là một khóa của R
Tất cả các quan hệ ở dạng chuẩn 2 đều ở dạng chuẩn 1
Tất cả các quan hệ ở dạng chuẩn 3 đều ở dạng chuẩn 2
Tất cả các quan hệ ở dạng chuẩn Boyce-Codd đều ở dạng chuẩn 3
dạng chuẩn Boyce-Codd.
chuẩn Boyce-Codd