3/19/2010 Phụ thuộc hàm chuẩn hóa sở liệu quan hệ Các quy tắc cho thiết kế sở liệu quan hệ Thiết kế sở liệu quan hệ: cách nhóm thuộc tính ñề tạo thành lược ñồ quan hệ Các chuẩn 1NF 2NF 3NF BCNF Lê Thị Lan Ngữ nghĩa thuộc tính Mỗi biểu diễn thể cụ thể thực thể liên kết f.k.: foreign key p.k primary key Chỉ có khóa dùng ñể ñến thực thể khác Thuộc tính thực thể quan hệ cần tách biệt Dư thừa liệu dị thường cập nhật Dư thừa liệu Các dị thường: Dị thường thêm Dị thường xóa Dị thường thay ñổi 3/19/2010 Ví dụ dị thường Ví dụ quan hệ: EMP_PROJ ( Emp#, Proj#, Ename, Pname, No_hours) Dị thường cập nhật Chuyển tên dự án từ P1 từ “Billing” thành “CustomerAccounting” phải cập nhật nhiều lần 100 nhân viên ñang làm dự án P1 Ví dụ dị thường Dị thường xóa Khi xóa dự án toàn nhân viên làm cho dự án bị xóa Khi xóa nhân viên dự án chi bao gồm nhân viên kết dự án bị xóa theo ðảm bảo sở liệu thiết kế không chứa dị thường thêm, xóa cập nhật Dị thường thêm Không thể thêm dự án nhân viên Không thể thêm nhân viên nhân viên ñó chưa ñược ñịnh vào dự án cụ thể Giá trị Null Các quan hệ phải ñược thiết kế cho có giá trị NULL Các thuộc tính thường có giá trị NULL ñược ñặt quan hệ riêng Giá trị NULL xảy do: a thuộc tính không hợp lệ b giá trị thuộc tính (có thể tồn tại) c giá trị thuộc tính tồn không chưa xác ñịnh ñược Bộ giả Thiết kế không tốt sinh lỗi thực thao tác kết nối Các quan hệ phải ñược thiết kế ñể ñảm bảo giả ñược sinh thực kết nối tự nhiên 3/19/2010 Phụ thuộc hàm Phụ thuộc hàm ñược sử dụng ñộ ño ñể ñánh giá chất lượng tập sơ ñồ quan hệ ñược thiết kế Các phụ thuộc hàm khóa ñược dùng ñể xác ñịnh chuẩn quan hệ Phụ thuộc hàm ràng buộc ñược xác ñịnh từ ngữ nghĩa mối quan hệ bên thuộc tính Phụ thuộc hàm Một tập thuộc tính X xác ñịnh tập thuộc tính Y giá trị X cho phép xác ñịnh giá trị Y X Y ñúng hai có giá trị X phải có giá trị Y Nếu t1[X]=t2[X], t1[Y]=t2[Y] với r(R) X Y R xác ñịnh ràng buộc cho tất thể r(R) Phụ thuộc hàm ràng buộc liệu Ví dụ phụ thuộc hàm Mã số bảo hiểm cho phép xác ñịnh tên nhân viên SSN ENAME Mã dự án cho phép xác ñịnh tên dự án ñịa ñiểm dự án PNUMBER {PNAME, PLOCATION} Mã số bảo hiểm nhân viên SSN mã dự án xác ñịnh số mà nhân viên phải làm dự án {SSN, PNUMBER} Phụ thuộc hàm Một phụ thuộc hàm tính chất thuộc tính lược ñồ quan hệ R Một ràng buộc phải ñúng cho tất thể lược ñồ quan hệ r(R) Nếu K khóa R thi K cho phép xác ñịnh tất thuộc tính ñó tồn với t1[K]=t2[K]) HOURS Các luật cho phụ thuộc hàm Với tập phụ thuộc hàmF, ta suy phụ thuộc hàm Luật Armstrong A1 (Phản xạ - Reflexive) Nếu Y tập X X A2 (Tăng trưởng - Augmentation) Nếu X Y, XZ (Chú ý: XZ có nghĩa X U Z) A3 (Bắc cầu - Transitive) Nếu X Y Y Z, X Y YZ Z A1, A2, A3 tạo tập luật ñúng ñầy ñủ 3/19/2010 Các luật cho phụ thuộc hàm Chuẩn hóa: Là trình chia nhỏ quan hệ thiết kế không tốt thành tập quan hệ nhỏ Các chuẩn: dùng khóa phụ thuộc hàm ñể xác ñịnh dạng chuẩn quan hệ Luật tách - Decomposition If X YZ, then X Y and X Z Luật hợp If X Y and X Z, then X YZ Luật tựa bắc cầu - Psuedotransitivity If X Y and WY Z, then WX Chuẩn hóa Z Chuẩn 2, chuẩn 3, chuẩn Boyce-Codd dựa vào khóa phụ thuộc hàm Chuẩn dựa vào khóa ràng buộc ña trị Bao ñóng F cho tập phụ thuộc hàm tập F+ phụ thuộc hàm suy diễn từ F Chuẩn Không cho phép thuộc tính ña trị, thuộc tính không nguyên tố Dạng chuẩn Sử dụng phụ thuộc hàm khóa Definitions: Thuộc tính thuộc khóa (Prime attribute) thuộc tính khóa K Phụ thuộc hàm ñầy ñủ: Y Z phụ thuộc hàm ñầy ñủ bỏ ñi thuộc tính Y phụ thuộc hàm không ñúng 3/19/2010 Ví dụ chuẩn {SSN, PNUMBER} HOURS phụ thuộc hàm ñầy ñủ SSN HOURS PNUMBER HOURS không ñúng {SSN, PNUMBER} ENAME phụ thuộc hàm ñầy ñủ (gọi phụ thuộc hàm phận) SSN ENAME Một quan hệ R dạng chuẩn tất thuộc tính không khóa A R phụ thuộc ñầy ñủ vào khóa R chia thành quan hệ dạng chuẩn thông qua trình chuẩn hóa dạng chuẩn Chuẩn ðịnh nghĩa Phụ thuộc hàm bắc cầu (Transitive functional dependency): Tập thuộc tính Z khóa tồn X Z Y Z Ví dụ SSN DMGRSSN phụ thuộc hàm bắc cầu SSN DNUMBER DNUMBER DMGRSSN SSN ENAME phụ thuộc hàm bắc cầu không tồn tập thuộc tính X cho SSN X X ENAME Chuẩn Một quan hệ R dạng chuẩn dạng chuẩn thuộc tính không khóa A R phụ thuộc bắc cầu vào khóa Chuẩn Boyce-Codd (Boyce-Codd Normal Form) Một quan hệ R dạng chuẩn Boyce-Codd có phụ thuộc hàm X A R X khóa R Chuẩn sau luôn mạnh chuẩn trước: Tất quan hệ dạng chuẩn ñều dạng chuẩn Tất quan hệ dạng chuẩn ñều dạng chuẩn Tất quan hệ dạng chuẩn Boyce-Codd ñều dạng chuẩn Tuy nhiên có số quan hệ dạng chuẩn không dạng chuẩn Boyce-Codd Mục ñích chuẩn hóa ñể quan hệ dạng chuẩn dạng chuẩn Boyce-Codd 3/19/2010 Chuẩn Boyce-Codd {Student,course} Instructor Instructor Course Chia thành lược ñồ quan hệ {Student,Instructor} {Student,Course} {Course,Instructor} {Student,Course} {Course,Instructor} {Instructor,Student} Ví dụ Cho quan hệ Book(Book_title, Authorname, Book_type, Listprice, Author_affil, Publisher) Và ràng buộc Book_title Publisher, Book_type Book_type Listprice Authorname Author_affil Xác ñịnh quan hệ dạng chuẩn nào?