thiết kế cơ sở dữ liệu

167 271 0
 thiết kế cơ sở dữ liệu

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tài liệu thiết kế cơ sở dữ liệu

I HC QUC GIA THÀNH PH H CHÍ MINH o0o Giáo trình THIT K C S D LIU Biên son: Trnh Minh Tun    2005    LI NÓI U Trong giáo trình C S D Liu ã trình bày các khái nim c s cng nh các ng dng trên mô hình c s d liu quan h. Giáo trình Thit k C S D Liu là mt giáo trình chuyên sâu, a ra các phng pháp nhm giúp hc viên thit k mt c s d liu tt. Vi phng châm xây dng mt giáo trình va áp ng yêu cu chun mc ca sách giáo khoa, va có giá tr thc tin và phù hp vi phng thc hc tp qua mng, trong ó ch yu là kh nng t hc, t nghiên cu ca hc viên, chúng tôi ã tham kho nhiu tài liu giá tr ca các tác gi trong và ngoài nc. Giáo trình ny c dùng kèm vi giáo trình in t trên da CD. Tuy rt nhiu c g ng trong công tác biên son, nhng do ln u tiên xut bn nên ch c ch n s! ít nhiu khim khuyt. Chúng tôi rt trân trng tip thu nhng ý kin óng góp ca bn c " hoàn thin giáo trình trong các ln tái bn k tip. MC LC CHNG I: MÔ HÌNH QUAN H 1 I. MÔ HÌNH QUAN H 1 I.1. Các khái nim c bn 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 hp 8 II.2. Phép giao 8 II.3. Phép tr 8 II.4. Tích #-Các 9 II.5. Phép chiu 10 II.6. Phép chn 11 II.7. Phép kt ni 12 II.8. Phép chia 13 II.9. Các ví d v tìm kim bng i s quan h 13 CHNG II: CÁC PH THUC D LIU TRONG MÔ HÌNH QUAN H 15 I. M U 15 I.1. Th nào là mt thit k c s d liu kém 15 I.2. Ph thuc và d tha 17 I.3. Ph thuc hàm là gì 18 I.4. Quy c v ký hiu 19 II. PH THUC HÀM 19 II.1. Ý ngha ca ph thuc hàm 19 II.2. Mt s nh ngha 21 II.3. Ph thuc hàm h qu 23 II.4. Bao óng ca các tp ph thuc 23 II.5. Ph thuc hàm suy d$n 24 II.6. Các tiên  cho ph thuc hàm 25 II.7. Tính úng  n ca h tiên  Armstrong 27 II.8. Các qui t c suy d$n b% sung 28 II.9. Bao óng ca tp thuc tính 29 II.10. Tính y  ca h tiên  Armstrong 30 II.11. Tính các bao óng 32 II.12. Tính tng ng ca các tp ph thuc 36 II.13. Ph cc ti"u 38 II.14. Tính cht ca ph thuc hàm 42 II.15. &ng dng khái nim ph thuc hàm vào khóa 43 III. PH THUC A TR 47 III.1. Ph thuc a tr 47 III.2. Các tiên  cho ph thuc hàm, ph thuc a tr 50 III.3. Tính úng  n và y  ca các tiên  51 III.4. Các qui t c suy din b% sung cho ph thuc a tr 53 III.5. Bao óng ca ph thuc hàm và ph thuc a tr 54 CHNG III: THIT K CSDL MC QUAN NIM 60 I. DNG CHUN CA LC  QUAN H 60 I.1. Dng chun 1 (First Normal Form : 1NF) 61 I.2. Dng chun 2 ( 2NF ) 63 I.3. Dng chun 3 ( 3NF ) 67 I.4. Dng chun BOYCE-CODD ( BCNF ) 70 I.5. Mt nh ngha khác cho dng chun 3 71 I.6. Ý ngha ca dng chun 74 II. THIT K C S D LIU 76 II.1. Phân rã mt lc ' quan h 76 II.2. Phân rã ni không mt 79 II.3. Phân rã bo toàn ph thuc 94 II.4. Phân rã ni không mt thành dng BCNF 101 II.5. Phân rã thành 3NF bo toàn ph thuc 112 II.6. Phân rã thành 3NF bo toàn ph thuc và ni không mt 114 II.7. Mt s vn  cn lu ý khi phân rã 116 CHNG IV: THIT K CSDL  MC LOGIC 118 I. MC ÍCH 118 II. BIU DIN CU TRÚC QUAN NIM DI DNG  TH 124 II.1. Mt s khái nim trong lý thuyt ' th 124 II.2. #' th con (ng truy xut 126 II.3. #' th quan h 129 II.4. Chu)i kt c cài *t trên ' th 133 III. THUT TOÁN BIU DIN MT CU TRÚC C S D LIU QUAN H SANG  TH QUAN H 135 III.1. Mc tiêu 135 III.2. Thut toán 136 III.3. Bin %i ngc : t mt ' th quan h sang mt cu trúc c s d liu quan h 142 IV. CÁC TRNG HP CN LU Ý 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 TNG TH CA GIAI AN THIT K LOGIC 151 BÀI TP 152 I. BÀI TP CHNG II 152 II. BÀI TP CHNG III 155 Thit k c s d liu Trang 1 Chng I: MÔ HÌNH QUAN H I. MÔ HÌNH QUAN H I.1. Các khái nim c bn Khái nim toán hc ca mô hình quan h là quan h hi"u theo ngha lý thuyt tp hp : là tp ca con ca tích # - Các ca các min; min (domain) là mt tp các giá tr. Ví d tp các s nguyên là mt min; tp các xâu ký t to thành tên ng(i trong ting Anh  dài không quá 30 ký t là mt min; tp hai s {0,1} cng là mt min v.v… Gi D 1, D 2 ,…, D n là n min. Tích # - Các ca n min ký hiu : D 1 xD 2 x…xD n là tp tt c n -b (n- tuples) (v 1 , v 2 ,…v n ) sao cho v i ∈ D i , vi i = 1…n Thí d: Vi 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à mt tp con ca tích # - Các ca mt ho*c nhiu min. Nh vy m)i quan h th" là vô hn. . ây luôn luôn gi thit rng, quan h là mt tp hu hn. M)i hàng ca quan h gi là b (tuples), quan h là tp con ca tích # - Các D 1 x D 2 x…x D n gi là quan h n ngôi. Khi ó m)i b ca ca quan h n thành phn (n ct). Các ct ca quan h gi là thuc tính (attributes). #nh ngha quan h mt cách hình thc nh sau: Thit k c s d liu Trang 2 I.1.1.  nh ngh!a I.1 Gi R = {A 1 , A 2 , …, A n } là tp hu hn các thuc tính, mi thuc tính A i vi i = 1,2,…, n min giá tr tng ng là dom(A i ). Quan h r c nh ngha trên tp thuc tính R là tp con ca tích  - Các ca các min. r ⊆ dom (A 1 ) x dom(A 2 ) x…x dom(A n ) Khi ó ký hiu là r(R) ho*c r (A 1 ,…A n ). Thí d: Hình I.1 cho thy quan h NHANVIEN bao g'm các thuc tính HOTEN, NAMSINH, NOILAMVIEC là mt quan h 3 ngôi. NHANVIEN (HoTen, NamSinh, NoiLamViec ) t 1 Lê Vn 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ê Vn A ,1960, Tr(ng DHVL) là mt b ca quan h NHANVIEN Lc  quan h là s tru tng hóa ca quan h, mt s tru tng hóa  mc  cu trúc ca mt bng 2 chiu. Khi nói n lc ' quan h tc là  cp n cu trúc t%ng quát ca mt quan h, ó là các thuc tính và mi liên h ng ngha gia chúng. Ký hiu : lc ' quan h R Thit k c s d liu Trang 3 Th hin (còn gi là tình trng) ca quan h là tp hp các b giá tr ca quan h vào mt th(i i"m. Ti nhng th(i i"m khác nhau quan h s! nhng th" hin khác nhau. Ký hiu : th" hin r Lu ý: Khi cho quan h r, ta mun nói n mt th hin c th ca quan h ó. Ngha là r là tp hp gm các b c th. Thí d: Cho lc  quan h R = {A 1 , A 2 , …, A n }, vi A i là các thuc tính, gi r là mt quan h (th hin) ca lc  quan h R. Quan h r g'm 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 ∈ lc ' quan h R; b t 1 ∈ quan h r I.2. Khoá I.2.1.  nh ngh!a I.2 Cho lc  quan h R nh ngha trên tp các thuc tính U={A 1 ,…A n }. K ⊆ U là khoá (key) ca lc  quan h R nu tho 2 iu kin sau ây : (i) K xác nh c mi giá tr ca A j , vi j=1, 2, , n (ii) Không tn ti K’ ⊂ K (K’ <> K ) mà K’ cng tha (i) #iu kin (i) ngha là: vi mt quan h bt k/ r ∈ lc ' R, và vi bt k/ hai b t1, t2 ∈ quan h r u t'n ti mt thuc tính A ∈ K sao cho t 1 [A] ≠ t 2 [A]. Nói cách khác, không t'n ti hai b mà giá tr bng nhau trên mi thuc tính ca K. #iu kin này th" vit t 1 [K] ≠ t 2 [K]. Do vy m)i giá tr ca K là xác nh duy nht. Thit k c s d liu Trang 4 Gi s K là khóa thì mi tp K” ⊆ U mà K” ⊇ K thì K” cng tho (i). Các tp K” tho iu kin (i) c gi là siêu khoá (super key) còn gi là khoá bao hàm. #iu kin (ii) xác nh khoá là tp nh nht trong mt h các siêu khoá. Trong lc ' quan h th" nhiu khoá. Khi cài *t trên mt h qun tr c s d liu ta phi chn mt " 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 mng 1000 - Hình I.2 - quan h HANGHOA - Trong hình I.2 bi"u din quan h HANGHOA trong ó mã s m*t hàng (MSMH) là khoá. M)i giá tr MSMH u xác nh duy nht mt loi 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 bn mà nh( ó mt c s d liu c thay %i là chèn (INSERT). loi b0 (DELETE) và cp nht (UPDATE). Trong mô hình CSDL quan h c nêu trên, các phép tính này c áp dng cho tng b phn ca các quan h lu tr trong máy - vic t% chc các quan h và các b ca nó th" c xem nh bi"u din tng ng mt - mt qua các tp (file) và các bn ghi (record). I.3.1. Phép chèn (INSERT) Phép chèn thêm mt b t vào quan h r ca lc ' R= {A 1 ,…,A n } dng r= r ∪ {t} INSERT (r ; A 1 =d 1 , A 2 =d 2 ,…., A n =d n ).

Ngày đăng: 11/03/2014, 19:32

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan