giáo trình thiết kế cơ sở dữ liệu phần 2 của trịnh minh tuấn

92 362 0
giáo trình thiết kế cơ sở dữ liệu phần 2 của trịnh minh tuấn

Đ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

Trang 60 Chương III: THI ẾT KẾ CSDL MỨC QUAN NI ỆM I. D ẠNG CHUẨN CỦA L Ư ỢC ĐỒ QUAN HỆ Như đ ã đ ề cập trong phần I v à II c ủa ch ươ ng II, trong m ột số quan hệ có thể chứa các thông tin tr ùng l ắp ( d ư th ừa ), nên vi ệc cập nhật dữ liệu (qua các phép tính th êm,s ửa v à h ủy) gây ra nh ững dị th ư ờng. V ì v ậy các quan hệ tr ên c ần thiết phải đư ợc biến đổi th ành các d ạng ph ù h ợp h ơn. Quá tr ình đó đư ợc g ọi l à chu ẩn hóa . Quan h ệ đ ư ợc chuẩn hóa là quan h ệ trong đó mỗi miền c ủa một thuộc tính chỉ chứa những giá trị nguyên t ố t ức l à không phân nh ỏ đ ư ợc nữa v à do đó m ỗi giá trị trong quan hệ c ũng l à nguyên t ố. Quan h ệ có chứa các miền giá trị l à không nguyên t ố gọi là quan h ệ không chuẩn hóa . M ỗi quan hệ thuộc một trong các dạng sau: d ạng không chuẩn hóa  d ạng chuẩn 1  d ạng chuẩn 2  d ạng chuẩn 3  d ạng c hu ẩn BOYCE - CODD Khi m ột l ư ợc đồ quan hệ đ ư ợc thiết kế ở dạng chuẩn càng cao ( như 3NF, BCNF ) th ì kh ả năng d ư th ừa thông tin Trang 61 trong quan h ệ sẽ giảm. Đặt biệt, nếu l ư ợc đồ quan hệ đạt BCNF thì quan h ệ đó sẽ không có thông tin d ư th ừa. Các d ạng chuẩn có va i trò quan tr ọng nhất l à d ạng chuẩn 3 (3NF) và d ạng chuẩn Boyce Codd (BCNF) . Mục đích của chúng là tránh đư ợc các d ư th ừa v à các b ất th ư ờng. Chúng ta c ần l ưu ý: đ ể xác định dạng chuẩn của một lư ợc đồ quan hệ ta chỉ dựa v ào t ập các phụ thuộc h àm đư ợc đ ịnh ngh ĩa tr ên lư ợc đồ quan hệ đó. Trong dạng chuẩn 4 (4NF) thì ngoài t ập các phụ thuộc h àm ta ph ải xét đến tập các ph ụ thuộc đa trị. I.1. D ạng chuẩn 1 (First Normal Form : 1NF) Đ ịnh nghĩa: M ột l ư ợc đồ quan hệ R đ ư ợc gọi l à ở dạng chuẩn 1 (1NF) n ếu v à ch ỉ nếu to àn b ộ các miền có mặt trong R đều chỉ ch ứa các giá trị nguy ên t ố. Đ ịnh nghĩa nầy cho ta thấy rằng bất kỳ quan hệ chuẩn hóa nào c ũng ở 1NF. Chúng ta c ần l ưu ý: trong đ ịnh nghĩa các dạng chuẩn c òn l ại luôn k èm đi ều kiện tr ư ớc ti ên là ph ải đạt 1NF. Cho lư ợc đồ quan h ệ: CHUYEN_MON (MAGV, MON_GD), trong đó: MAGV là mã s ố của giáo vi ên và MON_GD là chu ỗi g ồm các môn học m à giáo viên có kh ả năng giảng dạy. Trang 62 Xét th ể hiện sau : CHUYEN_MON (MAGV, MON_GD ) GV1 , CTDL,C,P ASCAL GV2 , CSDL,TKCSDL Khi đó MON_GD không ph ải l à thu ộc tính ngu ên t ố. M ột tr ư ờng hợp đặc biệt li ên quan đ ến các thuộc tính có ki ểu l à ngày dương l ịch (Datetime). Các thuộc tính nầy thực ch ất l à thu ộc tính kép (tích củ a các thu ộc tính: ng ày, tháng, năm). Tuy nhiên, chúng có th ể đ ư ợc xem l à thu ộc tính đ ơn (thu ộc tính nguy ên t ố) nếu nh ư không có ho ặc hiếm khi có nhu c ầu truy xuất đến từng th ành ph ần ri êng l ẻ: ng ày, tháng hay năm. N ếu không có chú thích g ì thêm, ta qui ư ớc r ằng những thu ộc tính có miền giá trị l à ngày dương l ịch đều l à thu ộc tính nguyên t ố. Trang 63 I.2. D ạng chuẩn 2 ( 2NF ) Trư ớc khi nghi ên c ứu dạng chuẩn 2, xét ví dụ sau đây: Thí d ụ III.1: Cho lư ợc đồ CSDL gồm 2 quan hệ: THI v à SINHVIEN THI (MONTHI GIAOVIEN) 3 A 4 B 5 C SINHVIEN(MONTHI MASV TENSV DIACHI DIEM) 3 11 Lan X 8 3 12 Ha Y 6 4 11 Lan X 7 4 12 Ha Y 6 5 11 Lan X 7 5 13 Tu Z 2 - Hình III.1 – Cơ s ở dữ liệu vi phạm 2NF – Ta th ấy MONTHI l à khóa c ủa quan hệ THI v à MONTHI+MASV là khóa c ủa quan hệ SINHVIEN. Trong quan h ệ thứ hai các thuộc tính MONTHI, MASV, DIEM nói đ ến thông tin về kết qu ả thi của sinh vi ên. Khi đó MASV, TENSV, DIACHI nói v ề thông tin của đối t ư ợng sinh viên. Trong quá trình c ập nhật v à lưu tr ữ dữ liệu xuất hiện nh ững vấn đề sau đây: - Trong quan h ệ SINHVIEN, việc l ưu tr ữ thông tin 1 sinh viên ví d ụ nh ư “Lan” ph ải lặp lại 3 l ần t ên, 3 l ần địa chỉ. Rõ ràng là thông tin b ị d ư th ừa (tr ùng l ắp). - Quá trình c ập nhật dữ liệu gây n ên nh ững bất th ư ờng như sau: Trang 64 Phép c ập nhật Do lý do nêu trên, khi c ần sửa địa chỉ của “Lan” chẳng h ạn, cần phải sửa 3 lần. Nếu việc sửa đổi bị sót sẽ xãy ra tình tr ạng dữ liệu không nhất quán: một sinh vi ên có th ể có các địa ch ỉ khác nhau. H ơn n ữa khi sửa đổi thông tin về một sinh vi ên l ại không li ên quan gì đ ến thông tin về kết quả thi. Th ật ra để xác định các thông tin đặc tr ưng v ề một sinh viên, ch ỉ c ần m ã s ố sinh vi ên là xác đ ịnh đ ư ợc duy nhất thông tin v ề họ. Phép thêm m ới Trong quan h ệ sinh vi ên ch ỉ chứa thông tin về những sinh viên đ ã thi (có đi ểm). Nếu muốn ch èn thêm m ột sinh vi ên m ới (ch ưa thi) th ì không đư ợc v ì khóa MONTHI, MASV là không đ ầy đ ủ. Bất th ư ờng nầy chỉ đ ư ợc khắc phục nếu loại bỏ nh ững thông tin về kết quả thi ra khỏi quan hệ. Phép h ủy bỏ Gi ả sử rằng với lý do n ào đó c ần loại bỏ môn thi thứ 5 mà danh sách sinh viên v ẫn giữ nguy ên. Khi đó ở quan hệ THI xóa b ộ (5,C) c òn ở quan hệ SINH VIEN n ếu xóa môn thi th ứ 5 (xóa 2 bộ cuối c ùng) thì thông tin v ề sinh vi ên “Tu” s ẽ m ất. Nh ận xét: Th ật ra quan hệ SINHVIEN chưa đ ạt dạng chuẩn 2 nên m ới xảy ra các bất th ư ờng tr ên. Đ ể khắc phục những bất lợi tr ên, quan h ệ SINHVIEN có th ể tách th ành hai qu an h ệ SVIEN(MASV, TENSV, DIACHI) và quan h ệ KETQUA(MONTHI, MASV, DIEM). Lúc n ầy c ơ s ở dữ liệu th ành ba quan h ệ v à các quan h ệ n ầy đều ở dạng chuẩn 2. Trang 65 Cơ s ở dữ liệu mới đ ư ợc tr ình nh ư sau: THI (MONTHI GIAOVIEN) 3 A 4 B 5 C SVIEN(MASV TENSV DIAC HI) 11 Lan X 12 Ha Y 13 Tu Z KETQUA(MONTHI MASV DIEM) 3 11 8 3 12 6 4 11 7 4 12 6 5 11 7 5 13 2 - Hình III.2 – Cơ s ở dữ liệu đạt 2NF – Đ ịnh nghĩa: M ột l ư ợc đồ quan hệ R với tập các phụ thuộc h àm F, đư ợc gọi l à ở dạng chuẩn 2 (2NF) nếu nó ở dạng chuẩn 1 v à n ếu mỗi thu ộc tính không khóa c ủa R đều ph ụ thuộc đầy đủ vào khóa. Nh ắc lại: Trong m ột l ư ợc đồ quan hệ có ít nh ất 1 khóa nh ưng có th ể có nhiều khóa. Mỗi khóa gồm 1 hay nhiều thuộc tính. Các thu ộc tính tham gia v ào 1 khóa nào đó đư ợc gọi l à thu ộc tính khóa . Các thu ộc tính c òn l ại (không tham gia v ào b ất kỳ 1 khóa nào) đư ợc gọi l à thu ộc tính không khóa . Trang 66 Đ ịnh nghĩa : Cho lư ợc đồ quan hệ R = {A 1 , A 2 , …, A n } và F là t ập các ph ụ thuộc h àm. Cho X và Y là hai t ập thuộc tính khác nhau c ủa R. Ta nói Y ph ụ thuộc h àm đ ầy đủ vào X n ếu Y ph ụ thu ộc h àm vào X nhưng không ph ụ thuộc h àm vào b ất kỳ một t ập con thực sự n ào c ủa X. Ng h ĩa l à mu ốn Y ph ụ thuộc h àm đ ầy đủ v ào X thì ph ải th ỏa cả 2 điều kiện sau: 1. X  Y  F + 2.  X’  R: n ếu (X’  X và X’  X ) thì X’  Y  F + Bây gi ờ chúng ta h ãy xem l ại quan hệ SINHVIEN đ ã trình bày ở Hình III.1 V ới tập các thuộc tính R = {MONTHI, MASV, TENSV, DIACHI, DIEM}. Và t ập các phụ thuộc h àm F = {f1, f2} như sau: f1 : MASV  TENSV, DIACHI f2 : MONTHI, MASV  DIEM Ta th ấy khóa của lư ợc đồ quan hệ tr ên là K = {MONTHI, MASV} vì: (i) K+ = { MONTHI, MASV } = { MONTHI, MASV, DIEM} do f1 = {MONTHI,MASV,DIEM,TENSV,DIACHI} do f2 = R (ii) MONTHI  DIEM  F + và MA SV  DIEM  F + V ậy các thuộc tính không khóa l à: TENSV, DIACHI và DIEM. Xét thu ộc tính không khóa TENSV. Nhận xét rằng một thu ộc tính bất kỳ của l ư ợc đồ đều phụ thuộc h àm vào khóa c ủa l ư ợc đồ đó. Nghĩa l à MONTHI, MASV  TENSV  F + Trang 67 Do MASV  TENSV  F + và {MASV}  K và {MASV}  K nên MASV không ph ụ thuộc h àm đ ầy đủ v ào khóa. K ết luận: l ư ợc đồ quan hệ tr ên vi ph ạm dạng chuẩn 2. B ạn h ãy ki ểm chứng: DIACHI cũn g không ph ụ thuộc hàm đ ầy đủ v ào khóa, nhưng DIEM th ì ph ụ thuộc h àm đ ầy đủ vào khóa. C ả ba l ư ợc đồ quan hệ: THI, SVIEN v à KETQUA ở Hình III.2 đ ều đạt dạng chuẩn 2. I.3. D ạng chuẩn 3 ( 3NF ) Đ ể tr ình bày d ạng chuẩn 3, ta đ ưa ra khái ni ệm về ph ụ thu ộc bắc cầu như sau: Đ ịnh nghĩa: Cho lư ợc đồ quan hệ R = {A 1 , A 2 , …, A n } và F là t ập các ph ụ thuộc h àm. Cho X là t ập con của R v à A là m ột thuộc tính thu ộc R. Thuộc tính A đ ư ợc gọi l à ph ụ thuộc bắc cầu v ào t ập thu ộc tính X nếu tồn tại một tập con Y của R sao cho X  Y  F + , Y  A  F + , nhưng Y  X  F + , và A  XY. Ngh ĩa l à: đ ể A phụ thuộc bắc cầu v ào X, ta ph ải t ìm đư ợc tập Y thỏa các điều kiện sau: (i) A  XY; thu ộ c tính A không thu ộc X v à A không thu ộc Y. (ii) ph ụ thuộc h àm X  Y  F + (iii) ph ụ thuộc h àm Y  A  F + (iv) ph ụ thuộc h àm Y  X  F + Trang 68 Tính b ắc cầu thể hiện qua s ơ đ ồ sau: C ũng như ở 2NF việc loại bỏ phụ thuộc bắc cầu để đi đ ến 3NF nhằm lọai bỏ những dị th ư ờng gây ra trong trong quá trình c ập nhật dữ liệu. Ta có định nghĩa về dạng chuẩn 3 sau: Đ ịnh nghĩa: M ột l ư ợc đồ quan hệ R với tập các phụ thuộc h àm F, đư ợc gọi l à ở dạng chu ẩn 3 (3NF) nếu nó ở dạng chuẩn thứ hai và n ếu mỗi thu ộc tính không khóa c ủa R đều không đư ợc ph ụ thuộc bắc cầu vào khóa. Thí d ụ III.2: Cho lư ợc đồ quan hệ R (SAIP) với các phụ thuộc h àm SI  P và S  A. Ta th ấy SI l à khóa c ủa R v ì {S,I} + = R và {S} + = {S,A}  R và {I} + = {I}  R. Xét thu ộc tính không khóa A, chọn tập trung gian Y l à S. Ta có: (i) A  {S,I}  {S}. (ii) SI  S  F + ,do tính ph ản x ạ (ti ên đ ề A1) (iii) S  A  F + ,do gi ả thiết (iv) S  SI  F + vì {S} + = {S,A} X Y A Trang 69 V ậy thuộc tính không khóa A ph ụ thuộc bắc cầu vào khóa SI, nên lư ợc đồ quan hệ tr ên vi ph ạm 3NF. Hơn n ữa, l ư ợc đồ tr ên c ũng không ở 2 N F vì thu ộc tính không khóa A không ph ụ thuộc đầy đủ vào khóa SI do ph ụ thu ộc h àm S  A. Thí d ụ III.3: Cho lư ợc đồ quan hệ R (CSZ) với các phụ thuộc h àm CS  Z và Z  C. Ta th ấy R có 2 khóa l à SC và SZ. B ạn h ãy ki ểm chứng. Vì v ậy tất cả các thuộc tính đều l à th u ộc tính khóa, do đó lư ợc đồ tr ên đ ạt 3NF. Thí d ụ III.4: Cho lư ợc đồ quan hệ R (SIDM) v à các ph ụ thuộc h àm SI  D và SD  M. B ạn h ãy ki ểm chứng: l ư ợc đồ nầy chỉ có 1 khóa l à SI. Các thu ộc tính không khóa l à M và D. Lư ợc đồ nầy vi ph ạm 3NF v ì thu ộc tính không khóa M ph ụ thuộc bắc cầu v ào khóa SI khi ch ọn tập trung gian Y = {S,D}. Ta có SI  SD  F + và SD  M  F + và SD  SI  F + và M  {S,D}  {S,I }. [...]... một hàng chỉ chứa toàn a a) R R1 R2 R3 R4 R5 A a1 a1 b31 b41 a1 B b 12 a2 a2 b 42 b 52 C b13 b23 b33 a3 b53 D a4 b24 b34 a4 b54 E b15 b25 a5 a5 a5 Trang 89 b) R R1 R2 R3 R4 R5 A a1 a1 b31 b41 a1 B b 12 a2 a2 b 42 b 52 C b13 b13 b13 a3 b13 D a4 b24 b34 a4 b54 E b15 b25 a5 a5 a5 R R1 R2 R3 R4 R5 A a1 a1 a1 a1 a1 B b 12 a2 a2 b 42 b 52 C a3 a3 a3 a3 a3 D a4 a4 a4 a4 a4 E b15 b25 a5 a5 a5 c) - Hình III.8 – Định... Chú ý rằng những bộ này không vi phạm phụ thuộc CS  Z Trang 75 II THIẾT KẾ CƠ SỞ DỮ LIỆU II.1 Phân rã một lược đồ quan hệ Thí dụ III.8: Chúng ta hãy xét lược đồ cơ sở dữ liệu chỉ gồm một quan hệ sau: SINHVIEN(MASV TENSV DIACHI MALP TENLP ) 11 Lan X CNA1 Cu nhan A1 12 Hai Y CNA1 Cu nhan A1 13 Tu Z CNA2 Cu nhan A2 - Hình III.3 – Cơ sở dữ liệu chưa phân rã – Trong lược đồ nầy có các ràng buộc (phụ thuộc... Hai Y CNA1 t13 13 Tu Z CNA2 R2 ( MALP TENLP ) t21 CNA1 Cu nhan A1 r2 t 22 CNA2 Cu nhan A2 - Hình III.5b – Cơ sở dữ liệu sau khi phân rã – Như vậy ta thay lược đồ R={MASV,TENSV,DIACHI, MALP,TENLP} bằng R1= {MASV,TENSV,DIACHI,MALP} và R2 = {MALP, MALP} Giả sử r là quan hệ (thể hiện) hiện tại của lược đồ R, ta có r là tập gồm các bộ t1, t2 và t3 Nếu CSDL sử dụng các lược đồ R1 và R2 thay cho R, vậy để chứa... R2 nên tại hàng 2 cột 1 ta có giá trị b21 Bước 2: sửa lại dữ liệu sao cho thỏa các phụ thuộc hàm trong F Bạn hãy xem bảng trên là một quan hệ (thể hiện) r nào đó của lược đồ quan hệ R Quan hệ nầy gồm có các bộ sau: t1 = ( a1, a2, a3 , a4 , b15 ) và t2 = ( b21, b 22, b23, a4 , a5 ) Bộ t1 cho thông tin sau: sinh viên có mã số là “a1” có tên là “a2”, … Trang 85 Vấn đề đặt ra là quan hệ r với giá trị của. .. và SI  P, và bảng khởi đầu là: R R1 R2 S a1 a1 A a2 b 22 I b13 a3 P a4 b24 Bởi vì S  A là hai hàng giống nhau ở cột S, chúng ta có thể làm cho các gía trị của cột A bằng nhau, cho b 22 thành a2 Trang 87 Bảng kết quả là: R R1 R2 S a1 a1 - A a2 a2 I b13 a3 P a4 b24 Hình III.7 – Quan hệ nầy cũng thỏa SI  P bởi vì giá trị các thuộc tính ở vế trái phụ thuộc hàm (SI) của hai bộ là khác nhau Ta thấy quan... R2 Kết quả là: r1 = { t11 , t 12 , t13 } và r2 = { t21 , t 22 } Làm thế nào chúng ta biết được r1 và r2 chứa các thông tin giống như r ? Một cách biết được điều đó là kiểm tra xem có thể tính được r khi chỉ biết r1 và r2 hay không ? Chúng ta biết rằng cách duy nhất để hồi phục lại r là lấy nối tự nhiên của r1 và r2 Bạn hãy tính để cho ra kết quả phép nối tự nhiên của r1 và r2 như đã trình bày trong phần. .. SA và R2 = SIP Các phụ thuộc là S  A và SI  P, và bảng khởi đầu là: R R1 R2 S a1 a1 A a2 b 22 I b13 a3 P b14 a4 Bởi vì S  A là hai hàng giống nhau ở cột S, chúng ta có thể làm cho các gía trị của cột A bằng nhau, cho b 22 thành a2 Bảng kết quả là: R R1 R2 S a1 a1 A a2 a2 I b13 a3 P b14 a4 Bởi vì hàng thứ hai đều là a, đây là nối không mất Thí dụ III.11: Xét phân rã R = SAIP thành R1 = SAP và R2 = SI... của R1 và r2 của R2 sẽ gồm những bộ như Trang 79 thế nào ? Thật ra quan hệ của hai lược đồ mới này chính là hình chiếu của r trên tập các thuộc tính R1 và R2 Nghĩa là r1 = R1 (r) và r2 = R2 (r) Bạn hãy thực hiện lại phép chiếu một quan hệ lên một tập các thuộc tính như đã trình bày trong phần các phép toán đại số ở chương I Lưu ý loại bỏ các bộ giống nhau khi chiếu r lên tập các thuộc tính của R2... Trang 78 II .2 Phân rã có nối không mất Tính nối không mất (bảo toàn thông tin) là yêu cầu quan trọng của phép phân rã Ta xem lại thí dụ đã nêu như sau: Quan hệ cũ: R (MASV TENSV DIACHI MALP TENLP ) t1 11 Lan X CNA1 Cu nhan A1 r t2 12 Hai Y CNA1 Cu nhan A1 t3 13 Tu Z CNA2 Cu nhan A2 - Hình III.5a – Cơ sở dữ liệu chưa phân rã – Các quan hệ mới: R1 (MASV TENSV DIACHI MALP) t11 11 Lan X CNA1 r1 t 12 12 Hai Y... đơn giản hơn, đó là nội dung của định lý sau đây Định lý III.4: Nếu  = (R1, R2) là một phân rã của R, và F là tập các phụ thuộc hàm, thì  có nối không mất ứng với F nếu và chỉ nếu (R1 R2)  (R1- R2) hoặc (R1 R2)  (R2-R1) Chú ý rằng những phụ thuộc này không nhất thiết thuộc tập F; chỉ cần chúng thuộc F+ hàng cho R1 hàng cho R2 R1  R2 aa….a aa….a R1- R2 aa….a bb….b R2-R1 bb….b aa….a - Hình III.9 . quan h ệ KETQUA(MONTHI, MASV, DIEM). Lúc n ầy c ơ s ở dữ liệu th ành ba quan h ệ v à các quan h ệ n ầy đều ở dạng chuẩn 2. Trang 65 Cơ s ở dữ liệu mới đ ư ợc tr ình nh ư sau: THI (MONTHI GIAOVIEN) 3 A 4 B 5 C SVIEN(MASV. ph ạm phụ thuộc CS  Z. Trang 76 II. THI ẾT KẾ C Ơ S Ở DỮ LIỆU II.1. Phân rã m ột l ư ợc đồ quan hệ Thí d ụ III.8: Chúng ta hãy xét l ư ợc đồ c ơ s ở dữ liệu chỉ gồm một quan h ệ sau: SINHVIEN(MASV. DIEM nói đ ến thông tin về kết qu ả thi của sinh vi ên. Khi đó MASV, TENSV, DIACHI nói v ề thông tin của đối t ư ợng sinh viên. Trong quá trình c ập nhật v à lưu tr ữ dữ liệu xuất hiện nh ững vấn

Ngày đăng: 10/05/2015, 00:18

Từ khóa liên quan

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

Tài liệu liên quan