Tài liệu thiết kế cơ sở dữ liệu
I HC QUC GIA THÀNH PH H CHÍ MINH o0o Giáo trình THIT K C S D LIU Biên son: Trnh Minh Tun 2005 LI NÓI U Trong giáo trình C S D Liu ã trình bày các khái nim c s cng nh các ng dng trên mô hình c s d liu quan h. Giáo trình Thit k C S D Liu là mt giáo trình chuyên sâu, a ra các phng pháp nhm giúp hc viên thit k mt c s d liu tt. Vi phng châm xây dng mt giáo trình va áp ng yêu cu chun mc ca sách giáo khoa, va có giá tr thc tin và phù hp vi phng thc hc tp qua mng, trong ó ch yu là kh nng t hc, t nghiên cu ca hc viên, chúng tôi ã tham kho nhiu tài liu có giá tr ca các tác gi trong và ngoài nc. Giáo trình ny c dùng kèm vi giáo trình in t trên da CD. Tuy có rt nhiu c g ng trong công tác biên son, nhng do ln u tiên xut bn nên ch c ch n s! có ít nhiu khim khuyt. Chúng tôi rt trân trng tip thu nhng ý kin óng góp ca bn c " hoàn thin giáo trình trong các ln tái bn k tip. MC LC CHNG I: MÔ HÌNH QUAN H 1 I. MÔ HÌNH QUAN H 1 I.1. Các khái nim c bn 1 I.2. Khoá 3 I.3. Các phép tính trên CSDL quan h 4 II. I S QUAN H 7 II.1. Phép hp 8 II.2. Phép giao 8 II.3. Phép tr 8 II.4. Tích #-Các 9 II.5. Phép chiu 10 II.6. Phép chn 11 II.7. Phép kt ni 12 II.8. Phép chia 13 II.9. Các ví d v tìm kim bng i s quan h 13 CHNG II: CÁC PH THUC D LIU TRONG MÔ HÌNH QUAN H 15 I. M U 15 I.1. Th nào là mt thit k c s d liu kém 15 I.2. Ph thuc và d tha 17 I.3. Ph thuc hàm là gì 18 I.4. Quy c v ký hiu 19 II. PH THUC HÀM 19 II.1. Ý ngha ca ph thuc hàm 19 II.2. Mt s nh ngha 21 II.3. Ph thuc hàm h qu 23 II.4. Bao óng ca các tp ph thuc 23 II.5. Ph thuc hàm suy d$n 24 II.6. Các tiên cho ph thuc hàm 25 II.7. Tính úng n ca h tiên Armstrong 27 II.8. Các qui t c suy d$n b% sung 28 II.9. Bao óng ca tp thuc tính 29 II.10. Tính y ca h tiên Armstrong 30 II.11. Tính các bao óng 32 II.12. Tính tng ng ca các tp ph thuc 36 II.13. Ph cc ti"u 38 II.14. Tính cht ca ph thuc hàm 42 II.15. &ng dng khái nim ph thuc hàm vào khóa 43 III. PH THUC A TR 47 III.1. Ph thuc a tr 47 III.2. Các tiên cho ph thuc hàm, ph thuc a tr 50 III.3. Tính úng n và y ca các tiên 51 III.4. Các qui t c suy din b% sung cho ph thuc a tr 53 III.5. Bao óng ca ph thuc hàm và ph thuc a tr 54 CHNG III: THIT K CSDL MC QUAN NIM 60 I. DNG CHUN CA LC QUAN H 60 I.1. Dng chun 1 (First Normal Form : 1NF) 61 I.2. Dng chun 2 ( 2NF ) 63 I.3. Dng chun 3 ( 3NF ) 67 I.4. Dng chun BOYCE-CODD ( BCNF ) 70 I.5. Mt nh ngha khác cho dng chun 3 71 I.6. Ý ngha ca dng chun 74 II. THIT K C S D LIU 76 II.1. Phân rã mt lc ' quan h 76 II.2. Phân rã có ni không mt 79 II.3. Phân rã bo toàn ph thuc 94 II.4. Phân rã có ni không mt thành dng BCNF 101 II.5. Phân rã thành 3NF có bo toàn ph thuc 112 II.6. Phân rã thành 3NF bo toàn ph thuc và có ni không mt 114 II.7. Mt s vn cn lu ý khi phân rã 116 CHNG IV: THIT K CSDL MC LOGIC 118 I. MC ÍCH 118 II. BIU DIN CU TRÚC QUAN NIM DI DNG TH 124 II.1. Mt s khái nim trong lý thuyt ' th 124 II.2. #' th con (ng truy xut 126 II.3. #' th quan h 129 II.4. Chu)i kt c cài *t trên ' th 133 III. THUT TOÁN BIU DIN MT CU TRÚC C S D LIU QUAN H SANG TH QUAN H 135 III.1. Mc tiêu 135 III.2. Thut toán 136 III.3. Bin %i ngc : t mt ' th quan h sang mt cu trúc c s d liu quan h 142 IV. CÁC TRNG HP CN LU Ý 144 IV.1. TR+,NG H-P 1 144 IV.2. TR+,NG H-P 2 148 IV.3. TR+,NG H-P 3 149 V. QUI TRÌNH TNG TH CA GIAI AN THIT K LOGIC 151 BÀI TP 152 I. BÀI TP CHNG II 152 II. BÀI TP CHNG III 155 Thit k c s d liu Trang 1 Chng I: MÔ HÌNH QUAN H I. MÔ HÌNH QUAN H I.1. Các khái nim c bn Khái nim toán hc ca mô hình quan h là quan h hi"u theo ngha lý thuyt tp hp : là tp ca con ca tích # - Các ca các min; min (domain) là mt tp các giá tr. Ví d tp các s nguyên là mt min; tp các xâu ký t to thành tên ng(i trong ting Anh có dài không quá 30 ký t là mt min; tp hai s {0,1} cng là mt min v.v… Gi D 1, D 2 ,…, D n là n min. Tích # - Các ca n min ký hiu : D 1 xD 2 x…xD n là tp tt c n -b (n- tuples) (v 1 , v 2 ,…v n ) sao cho v i ∈ D i , vi i = 1…n Thí d: Vi n= 2, D 1 = {0,1}, D 2 = {a,b,c}, khi ó D 1 x D 2 = {( 0,a), (0,b), (0,c), (1,a), (1,b), (1,c)}. Quan h : Quan h là mt tp con ca tích # - Các ca mt ho*c nhiu min. Nh vy m)i quan h có th" là vô hn. . ây luôn luôn gi thit rng, quan h là mt tp hu hn. M)i hàng ca quan h gi là b (tuples), quan h là tp con ca tích # - Các D 1 x D 2 x…x D n gi là quan h n ngôi. Khi ó m)i b ca ca quan h có n thành phn (n ct). Các ct ca quan h gi là thuc tính (attributes). #nh ngha quan h mt cách hình thc nh sau: Thit k c s d liu Trang 2 I.1.1. nh ngh!a I.1 Gi R = {A 1 , A 2 , …, A n } là tp hu hn các thuc tính, mi thuc tính A i vi i = 1,2,…, n có min giá tr tng ng là dom(A i ). Quan h r c nh ngha trên tp thuc tính R là tp con ca tích - Các ca các min. r ⊆ dom (A 1 ) x dom(A 2 ) x…x dom(A n ) Khi ó ký hiu là r(R) ho*c r (A 1 ,…A n ). Thí d: Hình I.1 cho thy quan h NHANVIEN bao g'm các thuc tính HOTEN, NAMSINH, NOILAMVIEC là mt quan h 3 ngôi. NHANVIEN (HoTen, NamSinh, NoiLamViec ) t 1 Lê Vn A 1960 Tr(ng #HVL t 2 Hoàng Th B 1970 Tr(ng #HBK - Hình I.1 - quan h NHANVIEN - t 1 =(Lê Vn A ,1960, Tr(ng DHVL) là mt b ca quan h NHANVIEN Lc quan h là s tru tng hóa ca quan h, mt s tru tng hóa mc cu trúc ca mt bng 2 chiu. Khi nói n lc ' quan h tc là cp n cu trúc t%ng quát ca mt quan h, ó là các thuc tính và mi liên h ng ngha gia chúng. Ký hiu : lc ' quan h R Thit k c s d liu Trang 3 Th hin (còn gi là tình trng) ca quan h là tp hp các b giá tr ca quan h vào mt th(i i"m. Ti nhng th(i i"m khác nhau quan h s! có nhng th" hin khác nhau. Ký hiu : th" hin r Lu ý: Khi cho quan h r, ta mun nói n mt th hin c th ca quan h ó. Ngha là r là tp hp gm các b c th. Thí d: Cho lc quan h R = {A 1 , A 2 , …, A n }, vi A i là các thuc tính, gi r là mt quan h (th hin) ca lc quan h R. Quan h r g'm có các b sau : t 1 =(a 11 ,a 21 , ,a n1 ) t 2 =(a 12 ,a 22 , ,a n2 ) Ta có: quan h r ∈ lc ' quan h R; b t 1 ∈ quan h r I.2. Khoá I.2.1. nh ngh!a I.2 Cho lc quan h R nh ngha trên tp các thuc tính U={A 1 ,…A n }. K ⊆ U là khoá (key) ca lc quan h R nu tho 2 iu kin sau ây : (i) K xác nh c mi giá tr ca A j , vi j=1, 2, , n (ii) Không tn ti K’ ⊂ K (K’ <> K ) mà K’ cng tha (i) #iu kin (i) ngha là: vi mt quan h bt k/ r ∈ lc ' R, và vi bt k/ hai b t1, t2 ∈ quan h r u t'n ti mt thuc tính A ∈ K sao cho t 1 [A] ≠ t 2 [A]. Nói cách khác, không t'n ti hai b mà có giá tr bng nhau trên mi thuc tính ca K. #iu kin này có th" vit t 1 [K] ≠ t 2 [K]. Do vy m)i giá tr ca K là xác nh duy nht. Thit k c s d liu Trang 4 Gi s K là khóa thì mi tp K” ⊆ U mà K” ⊇ K thì K” cng tho (i). Các tp K” tho iu kin (i) c gi là siêu khoá (super key) còn gi là khoá bao hàm. #iu kin (ii) xác nh khoá là tp nh nht trong mt h các siêu khoá. Trong lc ' quan h có th" có nhiu khoá. Khi cài *t trên mt h qun tr c s d liu ta phi chn mt " làm khóa chính (primary key). HANGHOA (MSMH TENHANG SOLUONG) 10101 s t phi 6 1000 10102 s t phi 8 2000 20001 xi mng 1000 - Hình I.2 - quan h HANGHOA - Trong hình I.2 bi"u din quan h HANGHOA trong ó mã s m*t hàng (MSMH) là khoá. M)i giá tr MSMH u xác nh duy nht mt loi m*t hàng trong quan h HANGHOA. I.3. Các phép tính trên CSDL quan h Các phép tính c bn mà nh( ó mt c s d liu c thay %i là chèn (INSERT). loi b0 (DELETE) và cp nht (UPDATE). Trong mô hình CSDL quan h c nêu trên, các phép tính này c áp dng cho tng b phn ca các quan h lu tr trong máy - vic t% chc các quan h và các b ca nó có th" c xem nh bi"u din tng ng mt - mt qua các tp (file) và các bn ghi (record). I.3.1. Phép chèn (INSERT) Phép chèn thêm mt b t vào quan h r ca lc ' R= {A 1 ,…,A n } có dng r= r ∪ {t} INSERT (r ; A 1 =d 1 , A 2 =d 2 ,…., A n =d n ).