24. KHÓA CỦA LƢỢCĐỒ QUAN HỆ
24.3.3. Giao của tất cả các khoá
Ký hiệu I là tập mà mỗi phần tử của nó tham gia vào tất cả các khoá của lƣợc đồ hay I là giao của tất cả các khoá của lƣợc đồ.
Ký hiệu N là tập mà mỗi phần tử của nó không tham gia vào bất cứ một khoá nào của lƣợc đồ.
Kí hiệu S ={ U \ (Ri – Li) | Li Ri F } Sau này ta sẽ chứng minh I =S = { U \
F R L i i i i ) L \ R ( | Li Ri F}
Định nghĩa: Cho lƣợc đồ quan hệ = (U, F), thuộc tính A trong U đƣợc gọi là thuộc
tính tiền định nếu nh A có mặt ở vế phải của một phụ thuộc hàm bất kỳ thì A cũng phải xuất hiện ở vế trái của phụ thuộc hàm đó hoặc thuộc tính A không xuất hiện trong bất cứ phụ thuộc hàm nào.
Gọi tập tất cả các thuộc tính tiền định của lƣợc đồ là T ta sẽ chứng minh: T =I =S (1)
Ta cần chứng minh (1)
Chứng minh T =I , để chứng minh T =I ta sẽ chứng minh T I và I T - Chứng minh T Ita sẽ chứng minh bằng phản chứng
Giả sử A T (2) mà AI (3)
Từ (3) suy ra khoá K, để AK, do K là khoá nên K+ =U
Việc tìm K+ sử dụng thuật toán tìm bao đóng, tức là phải có bƣớcthứ i nhƣ sau: K(i) không chứa A nhng K(i+1) lai chứa A, có nghĩa là ta phải sử dụng một phụ thuộc hàm có dạng L R, bởi vì L K(i) nên A L
Vậy tồn tại phụ thuộc hàm mà vế phải chứa A mà vế trái không chứa A, do đó trái với giả thiết A là thuộc tính tiền định
- Chứng minh I T ta cũng chứng minh bằng phản chứng Giả sử có AI và A T suy ra tồn tại một phụ thuộc hàm L R
Xét tập M=U\A thấy rằng M là tập con lớn nhất của U không chứa A, suy ra L M, do vậy:
M L ( theo luật phản xạ ) L R ( theo giả thiết ) R A ( do A R )
Suy ra, M A ( do tính chất bắc cầu)
Hơn nữa, M M nên M M A =U suy ra M là siêu khoá và không chứa A, từ M ta thu đợc một khoá không chứa A, tức:
K M và AK, suy ra A I mâu thuẫn với giả thiết.
Chứng minh I =S để chứng minh I =S ta chứng minh I S và S I Chứng minh I S lấy A I suy ra A( Ri - Li ) suy ra A ( Ri - Li) Suy ra A S
Chứng minh S I lấy A S suy ra A ( Ri –Li ) suy ra nếu ARi thì A Li suy ra AI
Từ các chứng minh trên suy ra (1) đƣợc chứng minh.
Định lý 1: Cho lƣợc đồ quan hệ =(U, F), gọi N={ ( Ri -Li ) | Li I } khi đó N N (hay N là tập chứa một số các phần tử không khoá của lƣợc đồ )
Chứng minh:
A R A L
Lấy A N ta cần chứng minh A K, với K là khoá bất kỳ nào của lƣợc đồ, giả sử ngƣợclại tồn tại một khoá K để A K, suy ra K - A Li -A do K I Li ( theo giả thiết), suy ra K - A Li vì Li không chứa A
Vậy K- A Li ( luật phản xạ) Li Ri ( giả thiết)
Ri A ( luật tách )
Suy ra K-A A, hơn nữa K-A K-A nên K - A K mà K là khoá nên K U mà K - A U vậy K - A là siêu khoá, mâu thuẫn với giả thiết K là khoá.
Định lý 2: với Y N và X I thì Y ( XY)+ \ X N
Chứng minh Y (XY)+ \ X Hiển nhiên Y (XY)+ Do X Y = nên Y \ X = Y Y \ X (XY)+
\ X Suy ra Y (XY)+
\ X
Chứng minh ( XY)+ \ X N, ta chứng minh bằng phản chứng. Giả sử tồn tại A ( XY)+ \ X ( 1) mà AN (2)
Do A ( XY)+ \ X nên A ( XY)+ hay XY A
A Y vì Y N , A N suy ra AX do (1) suy ra AXY Do (2) suy ra có một khoá K, A K
K‟=K\A M=K‟XY
M XYA và MK‟ suy ra MK‟A=KU
Vì siêu khoá M có tập Y không chứa N vì Y là tập con của N suy ra K‟X là khoá XI , I K suy ra X\ A K \ A
Vì A X nên X K\ A=K‟
Vậy K‟X=K‟ suy ra K‟X là siêu khoá suy ra K‟ là siêu khoá , vô lý.
Hệ quả: Từ định lý 2 ta thấy nếu N={ ( Ri -Li ) | Li I } thì N‟=(NI)+\I N. Định lý 3: Cho lƣợc đồ quan hệ =(U, F), gọi N‟‟=R \ L | (R=Ri, L=Li LiRi F) (N‟‟ là tập tất cả các thuộc tính chỉ xuất hiện ở vế phải mà không xuất hiện ở vế trái của các phụ thuộc hàm) thì N‟‟ N
*Thuật toán tìm giao của tất cả các khóa
Cho một lƣợc đồ quan hệ = (U, F), với F={Li Ri với i=1,..n } Hãy tìm giao của tất cả các khoá
Giải:
Giao của tất cả các khoá I ={ U \ n
i1
(Ri – Li)}
Ví dụ: Hãy tìm giao của tất cả các khoá của lƣợc đồ =(U,F) Với U=ABCDEGH
F={AB CDE, AC BCG, BDG, ACHHE, CG BDE }
I = U \ ((CDE – AB) (BCG – AC) (G – BD) (HE – ACH) (BDE – CG) ) =U \ ( CDE BG G E BDE ) =U \ BCDEG=AH
Nhận xét:
- Với lƣợc đồ đã cho ta có thể tìm I một cách dễ dàng
- Lƣợc đồ có duy nhất một khoá khi và chỉ khi I là khoá hay (I)+ =U
24.3.4. Thuật toán kiểm tra một lược đồ đã cho có một hay nhiều khoá
Bài toán: cho lƣợc đồ quan hệ = (U, F) hỏi rằng lƣợc đồ có một hay nhiều khoá. b1. Tính I
b2. Nếu (I)+ = U thì lƣợc đồ đã cho có duy nhất một khoá b3. Nếu (I)+ U thì lƣợc đồ có nhiều khoá
Trong ví dụ trên ta có I =AH do vậy ( I )+ U do vậy lƣợc đồ đã cho có nhiều khoá.
24.3.5. Thuật toán tìm tất cả các khoá của lược đồ quan hệ
Thuật toán 1:
Bƣớc 1:Xác định tất cả các tập con khác rỗng của Q+ . Kết quả tìm đƣợc giả sử là các tập thuộc tính X1,X2,...X2n-1
Bƣớc 2:Tìm bao đóng của các xi
Bƣớc 3:Siêu khóa là các xi có bao đóng đúng bằng Q+ .Giả sử ta đã có các siêu khóa là S={S1,S2,...Sm}
Bƣớc 4:Xây dựng tập chứa tất cả các khóa của Q+ từ tập S bằng cách xét mọi Si,Sj con của S(i#j), nếu Si ⊂ Sj thì ta loại Sj (i,j=1...n), kết quả còn lại của S chính là tập tất cả các khóa cần tìm.
Ví dụ 1: Tìm tất cả các khóa của lƣợc đồ sau: Q(C, S, Z); F = {f1:CS→Z; f2:Z→C}
X1
Xi+ Siêu khóa Khóa
C C S S CS CSZ CS CS Z ZC CZ CZ SZ SZC SZ SZ CSZ CSZ CSZ Thuật toán 2:
Cho lƣợc đồ quan hệ = (U, F). Hãy tìm tất cả các khoá của lƣợc đồ quan hệ . b1) Xác định I
b2) Nếu I+= U thì kết luận lƣợc đồ có một khoá duy nhất là I và kết thúc thuật toán. Ngƣợc lại I+ U thì chuyển sang bƣớc tiếp theo.
b3) Xác định N={ ( Ri -Li ) sao cho Li I } - đặt N‟=(I N)+ \ I ( N‟N )
- đặt N‟‟= R – L (R = Ri, L = Li) - đặt B=U \N‟ \N‟‟\ I
b4) Nếu | B |=2 (tập B chỉ gồm có hai thuộc tính), giả sử B=B1B2 khi đó lƣợc đồ chỉ có hai khoá là IB1 và IB2, kết thúc thuật toán. Ngƣợc lại nếu | B |>2 thì chuyển sang bƣớc tiếp theo.
b5) Tìm tất cả các tập con khác rỗng của B, ký hiệu các tập con đó là {B1, B2, .. Bn}. Tính (BiI)+ (i=1..n), nếu (BiI)+ = U thì đặt Mi=BiI.
b6) Khi đó M= {M1, M2, …, Mh} là họ tất cả các siêu khoá của lƣợc đồ .
b7) Loại bỏ các siêu khoá không tối tiểu ra khỏi M, tức là nếu Mi Mj (*) ( ij, i, j=1,h) thì loại Mj ra khỏi M. Tập M thu đƣợc sau khi loại bỏ tất các phần tử thoả mãn biểu thức (*) chính là họ tất cả các khoá của lƣợc đồ .
Nhận xét: Từ một tập B gồm n phần tử ta có thể lập lên 2n
-1 tập con khác rỗng của B. Cho nên dù n là một số không lớn lắm thì 2n-1 cũng là một số tƣơng đối lớn. Do vậy bài toán tìm tất cả các khoá của lƣợc đồ quan hệ có thể coi là một bài toán khó (vì có độ phức tạp thuật toán là hàm mũ).
Nhận xét:
Nếu I+U và tập B chỉ gồm hai phần tử (giả sử B=B1B2) thì suy ra lƣợc đồ chỉ có hai khoá là I B1 và I B2.
Ví dụ 1: cho lƣợc đồ quan hệ = (U, F) với
U=ABCDEGH, F={ ABCADH, ABGAEH, AEDG} Hãy tìm tất cả các khoá của lƣợc đồ
Giải:
I =U \ (Ri -Li )=U- (DH u EH u DG )= ABCDEGH - DEGH= ABC (I)+= (ABC)+ = ABCDH ≠ U nên lƣợc đồ đã cho có nhiều khóa N= (Ri -Li )=DH ( với Li I )
N‟=(I N)+ \ I =(ABCDH)+ \ ABC = DH N N‟‟ = R- L = ADGEH – ABCGE = DH
N= N U N‟ U N‟‟= DH
B=U \ N \ I = ABCDEGH \ ABC \ DH =EG
Do (I )+ U nên lƣợc đồ đã cho có nhiều khoá, do vậy lƣợc đồ này có hai khoá là I E =ABCE và I G= ABCG
Ví dụ 2:
Tìm tất cả các khóa của lƣợc đồ quan hệ α = (U, F), U=ABCD, F={AB->C, D->B, C->ABD}
Bài làm:
I= U – u (Ri-Li) , Li-> Ri thuộc vào F I= ABCD – (C u B u ABD) = Rỗng I=rỗng
N= I –u (Ri - Li), Li thuộc vào I N=rong N‟=(I u N)+- I N‟=Rỗng N‟‟= R- L = rỗng B= U-N‟-N‟‟-I = ABCD B={ABCD} |B|=4
Tìm tập con khác rỗng của B (2 mũ 4=16-1=15 tập con):
A B C D
AB AC AD BC
BD CD ABC ABD
BCD ACD ABCD
Tìm bao đóng của (B HỢP VỚI I)
A+=A B+=B C+=U D+=BD
(AB)+=U (AC)+=U (AD)+=U (BC)+=U (BD)+=BD (CD)+=U (ABC)+=U (ABD)+=u (BCD)+=U (ACD)+=U (ABCD)+=U
Suy ra, Họ các siêu khóa là:Mi C
AB AC AD BC
CD ABC ABD
BCD ACD ABCD
Hoặc có thể trình bày trên 1 bảng sau:
Bi (Bi hợp với I) (Bi hợp với I)+
Siêu khóa Khóa
A A A B B B AB AB ABCD AB AB C C ABCD C C AC AC ABCD AC BC BC ABCD BC
ABC ABC ABCD ABC
D D BD
AD AD ABCD AD AD
BD BD BD
ABD ABD ABCD ABD
CD CD ABCD CD
ACD ACD ABCD ACD
BCD BCD ABCD BCD
ABCD ABCD ABCD ABCD
Vậy các khóa của lƣợc đồ là: C, AB, AD
Ví dụ 3: Cho lƣợc đồ =(U,F) Với U=ABCDEGH
F={AB CDE, AC BCG, BDG, ACHHE, CG BDE} Tìm tất cả các khóa của lƣợc đồ.
Bài làm: B1:
Tìm I ={ U - (Ri – Li) | Li Ri F } I = U – (CDE BG G E BDE) = AH B2:
(I)+
= (AH)+= AH ≠ U, nên lƣợc đồ có nhiều khóa B3:
F={AB CDE, AC BCG, BDG, ACHHE, CG BDE } N={ ( Ri -Li ) sao cho Li I }
N= rỗng
- Tính N‟=(I N)+ \ I = rỗng ( N‟N ) N‟‟= R- L = BCDGHE – ABCDGH = E N‟‟‟= N‟ N‟‟ = E
VẬY, B=U \N‟„‟\ I = ABCDEGH – E – AH = BCDG |B| =4
Bƣớc 4, 5, 6, 7
F={AB CDE, AC BCG, BDG, ACHHE, CG BDE }
Bi (Bi U Iα) (Bi U Iα)+
Mi Họ các khóa
Rỗng AH AH
B AHB U AHB AHB
C AHC U AHC AHC
D AHD AHD G AHG AHG BC AHBC U AHBC BD AHBD U AHBD BG AHBG U AHBG CD AHCD U AHCD CG AHCG U AHCG DG AHDG AHDG BCD AHBCD U AHBCD BCG AHBCG U AHBCG BDG AHBDG U AHBDG CDG AHCDG U AHCDG BCDG AHBCDG U AHBCDG
25. BÀI TẬP VỀ KHÓA CỦA LƢỢC ĐỒ QUAN HỆ 25.1. Nhắc lại lý thuyết 25.1. Nhắc lại lý thuyết
25.2. Bài tập
26. CÁC DẠNG CHUẨN CƠ BẢN CỦA LƢỢC ĐỒ QUAN HỆ 26.1. Một số khái niệm liên quan 26.1. Một số khái niệm liên quan
Chuẩn hoá là quá trình tách một lƣợc đồ thành một tập các lƣợc đồ con, sao cho quá trình tách là không mất thông tin và các lƣợc đồ con là tối ƣu hơn lƣợc đồ ban đầu theo
nghĩa : hạn chế dƣ thừa dữ liệu, thuận lợi cho các quá trình tạo lập, cập nhật và các thao tác tìm kiếm.
Định nghĩa về thuộc tính khóa:
Cho lƣợc đồ quan hệ =(U, F), thuộc tính AU đƣợc gọi là thuộc tính khoá hay thuộc tính nguyên tố nếu nhƣ A thuộc một trong các khoá nào đó, ngƣợclại A đƣợc gọi là thuộc tính không khoá hoặc thuộc tính không nguyên tố.
Định nghĩa phụ thuộc hàm đầy đủ:
Cho lƣợc đồ quan hệ =(U, F), X, YU tập thuộc tính Y đợc gọi là phụ thuộc hàm đầy đủ vào tập thuộc tính X nếu nh Y phụ thuộc hàm vào X nhng 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 tức là
Định nghĩa phụ thuộc hàm bắc cầu:
Cho lƣợc đồ quan hệ =(U, F), X U, AU, Thuộc tính A đƣợc gọi là phụ thuộc hàm bắc cầu vào tập thuộc tính X nếu nh Y U để
Nếu XY và Y không phụ thuộc bắc cầu vào X thì ta nói Y phụ thuộc trực tiếp vào X.
26.2. Các dạng chuẩn
Sự cần thiết chuẩn hóa dữ liệu
Khi thực hiện các phép lƣu trữ trên các quan hệ chƣa đƣợc chuẩn hóa thƣờng xuất hiện các dị thƣờng thông tin. Nghĩa là trong dữ liệu lƣu trữ, sự dƣ thừa, mất dữ liệu, mâu thuẫn hay không nhất quán dữ liệu có thể xảy ra khi cập nhật, bổ sung hay sửa đổi dữ liệu. Dị thƣờng thông tin là nguyên nhân gây cản trở cho việc tìm khiếm, hỏi đáp thông tin. Mục tiêu của chuẩn hóa dữ liệu là triệt tiêu mức cao nhất khả năng xuất hiện các dị thƣờng thông tin khi thực hiện các phép lƣu trữ. Có nhƣ vậy mục tiêu của các hệ cơ sở mới đƣợc đảm bảo. Dữ liệu lƣu trữ phản ánh thế giới hiện thực khách quan, đầy đủ hơn và sinh động hơn.
Khi thiết kế và cài đặt các hệ CSDL, chuẩn hóa là quá trình khảo sát dang sách các thuộc tính và áp dụng tập các quy tắc phân tích vào danh sách đó, biến đổi chúng thành nhiều tập nhỏ hơn sao cho:
•Tối thiểu việc lặp lại. •Tránh dị thường thông tin
•Xác định và giải quyết được sự không rõ ràng, nhập nhằng trong suy diễn.
Quá trình chuẩn hóa là quá trình tách lƣợc đồ quan hệ về một nhóm tƣơng đƣơng các lƣợc đồ quan hệ chiếu sao cho khi kết nối tự nhiên không làm tổn thất thông tin và
-XY (Y phụ thuộc hàm vào X)
- X‟ X thì X‟Y (mọi tập con thực sự của X đều không thể xác định hàm Y)
- XY - YA - YX - AXY
bảo toàn đƣợc các phụ thuộc hàm. Cơ sở chuẩn hóa dựa trên các khái niệm về phụ thuộc hàm, phụ thuộc đầy đủ, khóa, các thuộc tính không khóa... Một mô hình đƣợc xem là mô hình chuẩn hóa tốt, lý tƣởng là mô hình ở đó mỗi một thuộc thuộc tính không khóa phụ thuộc hàm vào khóa.
Quan hệ chuẩn hóa là những quan hệ mà mỗi giá trị thuộc tính trong bộ là những thuộc tính nguyên tố, không phân chia ra đựợc. Mói cách khác, mỗi toạ độ của hàng và cột trong quan hệ chỉ có đúng một giá trị chứ không phải là một các giá trị.
Ví dụ:
Ngữ nghĩa dữ liệu như sau:
+, Trong một tuyến cáp, giá trị của một loại cáp đƣợc xác định duy nhất. +, Mỗi mã cáp xác định mã nƣớc sản xuất cáp, và
+, Mã nƣớc xác định tên nƣớc sản xuất
F = {(TC#,MC#) → GTR, MC# → NSX, MC# → N#, N# → NSX} tập các phụ thuộc hàm. Các thuộc tính khóa: (TC#,MC# ) và các thuộc tính không khóa: GTR, N#, NSX.
GTC MC#
TC#
NSX
N#
Hình 25.1 Sơ đồ các phụ thuộc hàm trong lƣợc đồ quan hệ QLCAP
TC# GTR MC# N# NSX T01 200 C01 HAQ Hàn Quốc T01 140 C02 HAQ Hàn Quốc T01 120 C03 VTN Việt Nam T02 500 C01 HAQ Hàn Quốc T02 400 C04 JAN Nhật Bản T03 210 C05 RUS Nga T04 400 C06 CHN Trung Quốc T05 450 C03 VTN Việt Nam
Hình 25.2. Một thể hiện của lƣợc đồ quan hệ
26.2.1. Dạng chuẩn 1( 1NF-first normal form)
Một lƣợc đồ quan hệ =(U, F) đƣợc gọi là ở dạng chuẩn 1(1 NF) nếu và chỉ nếu tất cả miền giá trị của các thuộc tính của R đều nguyên tố (không thể phân chia đƣợc).
Chú ý: Tính không thể phân chia đƣợc chỉ có tính chất tƣơng đối.
Định nghĩa này cho thấy ngay rằng bất kỳ quan hệ chuẩn hóa nào cũng ở 1NF.
Ví dụ: Xét quan hệ S (S#, PRO), thấy rằng thuộc tính PRO chứa các giá trị không nguyên tố. Vì vậy quan hệ này không phải là quan hệ dạng chuẩn 1NF.
S# PRO P# QTY S1 210 1 200 1 300 2 S2 210 2 200 2 S3 300 3 210 1 Hình 25.3. Một thí dụ quan hệ không 1NF
26.2.2. Dạng chuẩn 2NF (second normal form)
Trƣớc khi nghiên cứu dạng chuẩn thứ 2, ta xét ví dụ sau đây:
Xét CSDL gồm 2 lƣợc đồ quan hệ THI (MONTHI, GIAOVIEN) và
SINHVIEN(MONTHI, MSSV, TEN, TUOI, DCHI, DIEM) phản ánh thông tin về kết quả thi của một đơn vị nào đó.Trong quan hệ THI thì MONTHI là khoá và trong quan hệ SINHVIEN thì MONTHI và MSSV là khoá.
Ở quan hệ thứ hai dễ nhận thấy rằng MONTHI, MSSV,DIEM xác định kết quả thi của sinh viên còn MSSV,TEN,TUOI,DCHI xác định đối tƣợng dự thi
Xét các hiện hành của 2 lƣợc đồ quan hệ THI và SINHVIEN nhƣ sau: THI MONTHI GIAOVIEN Toán T.Trợ Lý T.Công Hóa T.Giao SINHVIEN
MONTHI MSSV TEN TUOI DCHI DIEM
Toán 11 Lan 20 HN 8.0 Toán 12 Hue 21 HY 7.5 Hóa 11 Lan 20 HN 7.0 Hóa 12 Hue 21 HY 6.0 Lý 11 Lan 20 HN 5.0 Lý 13 An 12 BN 4.0
Trong quá trình cập nhật và lƣu trữ dữ liệu xuất hiện các vấn đề sau: