Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin
Ph thuc hàm Ph thuc hàm và Chun hóa c s d liu Chng 7 Ni dung trình bày ̇ Nguyên tc thit k các lc đ quan h. ̇ Ph thuc hàm. ̇ Các dng chun. ̇ Mt s thut toán chun hóa. Ph thuc hàm Nguyên tc thit k ̇ Nhìn li vn đ thit k csdl •Da trên trc quan ca ngi thit k. •Thiu mt tiêu chun hình thc đ đánh giá. ̇ ánh giá cht lng thit k •Ng ngha ca các thuc tính. •Gim các giá tr tha trong các b. •Gim các giá tr null trong các b. • Không đ xut hin các b không có thc. Ng ngha ca các thuc tính (1) p.k. MaPhongDChiNgSinhMaNVTen f.k.NHANVIEN p.k. TrPhongMaPBTen f.k.PHONGBAN p.k. TrusoMaPB f.k.f.k. TRUSO_PHONG p.k. PhongQlyDiadiemMaDATen f.k.DUAN SoGioMaDAMaNV p.k. f.k.f.k. THAMGIA Ph thuc hàm Ng ngha ca các thuc tính (2) ̇ Ý ngha ca các thuc tính càng d hiu thì lc đ thit k càng tt. ̇ Tránh t hp các thuc tính ca nhiu kiu thc th và cùng mt lc đ. TenPBMaPB p.k. TrPhongDChiNgSinhMaNVTenNV f.k.NHANVIEN_PHONGBAN TenDATenNV p.k. DiadiemGioMaDAMaNV f.k.NHANVIEN_DUAN Thông tin tha trong các b (1) 4…19/01/1968999887777Vuong 5…08/12/1955333445555Nghia 5…09/01/1965123456789Hung MaPhongDChiNgSinhMaNVTen NHANVIEN 3334455555Nghien cuu TrPhongMaPBTen PHONGBAN 333445555Nghien cuu5…09/10/1965123456789Hung Nghien cuu TenPB 5 MaPB 333445555 08/12/1965333445555Nghia TrPhongDChiNgSinhMaNVTenNV NHANVIEN_PHONGBAN D liu b trùng lp Ph thuc hàm Thông tin tha trong các b (2) ̇ D thng khi thêm b ̇ D thng khi xóa b 999887777Nghien cuu5…09/10/1965123456789Hung 333445555Nghien cuu5…08/12/1965333445555Nghia Hanh chinh TenPB 4 MaPB 987654321nullnullnullnull TrPhongDChiNgSinhMaNVTenNV NHANVIEN_PHONGBAN 333445555Nghien cuu5…09/10/1965123456789Hung 333445555Nghien cuu5…08/12/1965333445555Nghia TenPBMaPB TrPhongDChiNgSinhMaNVTenNV NHANVIEN_PHONGBAN Thông tin tha trong các b (3) ̇ D thng khi sa b ̇ Tránh xy ra các d thng cp nht d liu. ̇ Có th vi phm nguyên tc này đ tng hiu qu truy vn d liu. Khi đócác d thng cn đc ghi chú cn thn. 333445555Nghien cuu5…09/10/1965123456789Hung 333445555Nghien cuu5…08/12/1965333445555Nghia TenPBMaPB TrPhongDChiNgSinhMaNVTenNV NHANVIEN_PHONGBAN 123456789 123456789 Ph thuc hàm Giá tr null trong các b ̇ Nu nhiu thuc tính trong lc đ nhn giá tr null s • Lãng phí không gian lu tr. •Khó khn trong thc hin các phép toán kt. •Khó khn khi s dng các hàm tp hp. ̇ Tránh lu tr các thuc tính nhn nhiu giá tr null. Phát sinh các b không có thc (1) Thu DucSan pham YHung7.52123456789 Tan BinhSan pham XHung32.51123456789 DiadiemTenDATenNVGioMaDAMaNV San pham YNghia Thu Duc102333445555 NHANVIEN_DUAN p.k. DiadiemTenNV NHANVIEN_DIADIEM SoGioMaDA p.k. MaNV NHANVIEN_DUAN1 DiadiemTenDA Ph thuc hàm Phát sinh các b không có thc (2) Thu DucHung Tan BinhHung DiadiemTenNV Thu DucNghia NHANVIEN_DIADIEM Thu DucSan pham Y7.52123456789 Tan BinhSan pham X32.51123456789 DiadiemTenDASoGioMaDAMaNV 102333445555 NHANVIEN_DUAN1 Thu DucSan pham Y HungThu DucSan pham Y102333445555 NghiaThu DucSan pham Y7.52123456789 Thu Duc Thu Duc Tan Binh Diadiem Nghia Hung Hung TenNV San pham Y7.52123456789 San pham X32.51123456789 TenDAGioMaDAMaNV San pham Y102333445555 Kt t nhiên Phát sinh các b không có thc (3) ̇ Xây dng các lc đ quan h sao cho vic thc hin phép kt bng gia chúng ch áp dng trên các thuc tính khóa chính hoc khóa ngoi. Ph thuc hàm Ph thuc hàm (1) ̇ Xét lc đ quan h gm n thuc tính • R(U), U={A 1 , A 2 ,…, A n } ̇ PTH gia hai tp thuc tính X, Y ⊆ U •Ký hiu: X → Y. • ∀r ∈ R, ∀ t 1 , t 2 ∈ r nu t 1 [X] = t 2 [X] thì t 1 [Y] = t 2 [Y]. •X làv trái và Y là v phi ca PTH. 73 51 41 BAr(R) r không tha A → B, nhng tha B → A Ph thuc hàm (2) ̇ r ∈ R tha các ràng buc PTH đc gi là trng thái hp l ca R. ̇ Nhn xét •Các PTH xut phát t các ràng buc trong th gii thc. • ∀r ∈ R, ∀t ∈ r, t [X] là duy nht thì X là mt khóa ca R. •Nu K là mt khóa ca R thì K xác đnh hàm tt c các tp thuc tính ca R. • PTH dùng đ đánh giá mt thit k CSDL. TrPhongTenPBMaPBDiachiNgSinhMaNVTenNV NHANVIEN_PHONGBAN MaNV → MaPB MaPB → {TenPB, TrPhong}MaNV → TenNV Ph thuc hàm Bao đóng ca tp PTH ̇ F là tp PTH trên R • F = {MaNV → TenNV, MaPB → {TenPB, TrPhong}, MaNV → MaPB}. • ∀r ∈ R tha F và MaNV → {TenPB, TrPhong} cng đúng vi r thì MaNV → {TenPB, TrPhong} gi là đc suy din t F. ̇ Bao đóng ca F, ký hiu F + , gm •F và •Tt c các PTH đc suy din t F. ̇ F gi là đy đ nu F = F + . Lut suy din ̇ Lut suy din dùng đ suy din mt PTH mi t mt tp PTH cho trc. ̇ H lut suy din Armstrong •Phn x: Y ⊆ X ⇒ X → Y. •Tng trng: X → Y ⇒ XZ → YZ, vi XZ = X ∪ Z. •Bc cu: X → Y, Y → Z ⇒ X → Z. ̇ Các lut khác: • Phân rã: X → YZ ⇒ X → Y, X → Z. •Hp: X → Y, X → Z ⇒ X → YZ. •Bc cu gi: X → Y, WY → Z ⇒ WX → Z. ̇ Nhn xét •H lut Armstrong là đy đ. Ph thuc hàm Bao đóng ca tp thuc tính ̇ Làm th nào đ bit mt PTH X → Y đc suy din t tp PTH F cho trc? ̇ Bao đóng ca tp thuc tính X đi vi F, ký hiu X + , là •Tp các thuc tính PTH vào X. •X + = {A ∈ U | X → A ∈ F + } ̇ Nhn xét •X → Y ∈ F + ⇔ Y ⊆ X + . •Nu K là khóa ca R thì K + = U. Thut toán tìm X + ̇ Nhp: U, F và X ⊆ U ̇ Xut: X + ̇ Thut toán 7.1 • B1: X + = X; • B2: Nu tn ti Y → Z ∈ F và Y ⊆ X + thì X + := X + ∪ Z; và tip tc B2. Ngc li qua B3. • B3: xut X + . Ph thuc hàm Ví d tìm X + ̇ Cho: •F = {AB → C, BC → D, D → EG}. •X = BD. ̇ Tính X + : •X + = BD. •Lp 1: - Tìm các PTH có v trái là tp con ca X + = BD +D → EG, thêm EG vào X + ta đc X + = BDEG. •Lp 2: - Tìm các PTH có v trái là tp con ca X + = BDEG + Không có PTH nào. •Vy X + = BDEG. Kim tra PTH suy din ̇ Cho F = {AB → C, A → D, D → E, AC → B} ̇ Hai PTH AB → E và D → C có đc suy din t F hay không? DED ABCDEAB X F + X c suy din t F [...]... A XG {A}} Ph thu c hàm Ví d tìm ph t i thi u ̇ Tìm ph t i thi u c a E = {A AB C} BC, A • B1: F = • B2: F = {A B, A C, B C, AB • B3: Xét AB C (B)F+ = C F = {A B, A C, B C} • B4: A C th a F = {A B, B C} B, B C, C} Siêu khóa và khóa ̇ Cho R(U) • S U là siêu khóa n u r R, t1, t2 r, t1 t2[S] • K U là khóa n u K là siêu khóa nh nh t - A K c g i là thu c tính khóa ̇ Nh n xét • S xác nh hàm t t c các thu c... R ch có m t khóa K và card(K) = 1 thì R thu c d ng chu n 2 • Còn xu t hi n s trùng l p d li u Do ó gây ra các d th ng v c p nh t d li u Ph thu c hàm D ng chu n 3 theo khóa chính (1) ̇ L c quan h R c g i là thu c d ng chu n 3 n u • R thu c d ng chu n 2 • M i thu c tính không khóa c a R không ph thu c b t c u vào khóa chính c a R ̇ Cho R(U) • X Y là PTH b t c u n u Z U, Z không là khóa và c ng không... theo khóa chính (1) ̇ L c quan h R c g i là thu c d ng chu n 2 n u m i thu c tính không khóa c a R ph thu c y vào khóa chính c a R ̇ R(U), K U là khóa chính c a R • A U là thu c tính không khóa n u A K • X Y là PTH y n u A X thì (X - {A}) Ng c l i X Y là PTH b ph n Y không úng trên R ̇ Ví d Thu c tính không khóa PTH y NVIEN_DUAN MaNV MaDA SoGio TenNV TenDA Diadiem FD1 PTH b ph n FD2 FD3 Ph thu c hàm. .. c hàm D ng chu n 2 t ng quát ̇ L c quan h R c g i là thu c d ng chu n 2 n u m i thu c tính không khóa c a R ph thu c y vào các khóa c a R ̇ Cho R(ABCDEF) có 2 khóa là A và BC R A B C D E F FD1 FD2 FD3 FD4 FD5 L c R không thu c d ng chu n 2 D ng chu n 3 t ng quát ̇ L c quan h R c g i là thu c d ng chu n 3 n u PTH không hi n nhiên X A úng trên R thì • X là siêu khóa c a R, ho c • A là thu c tính khóa... p 7: (DF)F+ = DFCBEAG K = DF • B3: Khóa là K = DF Ph thu c hàm R(U) Xác nh t t c khóa c a l ̇ Nh p: t p PTH F xác nh trên l ̇ Xu t: t t c khóa c a R ̇ Thu t toán 7.3.2 c c R(U) • B1: Xây d ng 2n t p con c a U = {A1, …, An}; S = {}; • B2: V i m i t p con X N uU • B3: X, Y U XF+ thì S = S S, n u X {X} Y thì S = S - {X} • B4: S là t p các khóa c a R Ví d tìm t t c khóa c a l c ̇ Cho R(U), U = {A, B, C,... R có th có nhi u khóa Ph thu c hàm t2 thì t1[S] Xác nh khóa c a l ̇ Nh p: t p PTH F xác ̇ Xu t: khóa K c a R ̇ Thu t toán 7.3.1 c nh trên l c • B1: K = U = {A1, …, An}; i = 1; • B2: N u U (K - {Ai})F+ thì K = K - {Ai} i = i + 1; N u i > n thì sang B3 Ng c l i, ti p t c B2 • B3: Xu t K Ví d tìm khóa c a l c ̇ Cho R(U), U = {A, B, C, D, E, F, G} • F = {B A, D C, D BE, DF G} ̇ Tìm khóa c a R • B1: K =... • Xét l c R và t p PTH F Gi s R thành D = {R1, …, Rm} c phân rã t Ri(F) = {X Y F+ : X Y Ri} - D c g i là phân rã b o toàn ph thu c hàm + + ( R1(F) … Rm(F)) = F iv iFn u ̇ Ví d R111 R11 A A B C D C FD1 FD1 FD2 FD5 R112 B FD5 Ph thu c hàm D D Phân rã b o toàn PTH (2) R11 A B C D 1 2 A C 3 3 R111 2 2 D R112 D 1 3 3 3 2 4 4 4 B C 1 … B 2 2 A 2 D 2 … 4 … … 4 Thêm b (4, , 4) vào R111 và (4, ) vào R112 thì... t c khóa c a l c ̇ Cho R(U), U = {A, B, C, D, E, F} • F = {AE C, CF A, BD F, AF E} ̇ Tìm t t c khóa c a R • T p siêu khóa S = {ABD, BCD, ABCD, ABDE, BCDE, ABCDE, ABDF, BCDF, ABCDF, ABDEF, BCDEF, ABCDEF} ABDF ABDEF ABD ABDE ABCDE ABCD ABCDEF ABCDF BCD BCDE BCDEF BCDF Ph thu c hàm Chu n hóa l c CSDL ̇ Chu n hóa là gì? ̇ Các d ng chu n là gì? ̇ Các d ng chu n • • • • D ng 1 (1 Normal Form - 1NF) D ng 2... khóa c a R ̇ R1(ABCDE) có 2 khóa là A và BC R1 A FD1 FD2 FD4 FD5 B C D E L c bên thu c d ng chu n 2, nh ng không thu c d ng chu n 3 ̇ Nh n xét • Ph thu c hàm nh ngh a t ng quát cho phép ki m tra d ng chu n 3 mà không c n ki m tra d ng chu n 2 D ng chu n Boyce - Codd (1) ̇ L c quan h R c g i là thu c d ng chu n BC n u PTH không hi n nhiên X Y úng trên R thì X là siêu khóa c a R ̇ R11(ABCD) R11 A B... thành t p h p các quan h • V i m i quan h xác nh t p PTH • Áp d ng các quy t c chu n hóa lo i b các PTH b ph n và b t c u trong các quan h Ph thu c hàm Phân rã l ̇ L c c quan h quan h chung R(A1, …, An) • T p h p t t c các thu c tính c a các th c th ̇ Xác nh t p PTH F trên R ̇ Phân rã • S d ng các thu t toán chu n hóa các l c D = {R1, …, Rm} tách R thành t p ̇ Yêu c u • B o toàn thu c tính • Các l . C}. Siêu khóa và khóa ̇ Cho R(U) •S ⊆ U là siêu khóa nu ∀r ∈ R, ∀t 1 , t 2 ∈ r, t 1 ≠ t 2 thì t 1 [S] ≠ t 2 [S]. •K ⊆ U là khóa nu K là siêu khóa nh nht. -A ∈ K đc gi là thuc tính khóa. ̇. Ph thuc hàm Ph thuc hàm và Chun hóa c s d liu Chng 7 Ni dung trình bày ̇ Nguyên tc thit k các lc đ quan h. ̇ Ph thuc hàm. ̇ Các dng chun. ̇ Mt s thut toán chun hóa. Ph. thuc hàm Dng chun 2 tng quát ̇ Lc đ quan h R đc gi là thuc dng chun 2 nu mi thuc tính không khóa ca R ph thuc đy đ vào các khóa ca R. ̇ Cho R(ABCDEF) có 2 khóa là A và BC. FD3 FD2 FD1 FEDCBA FD4 R FD5 Lc