43
1. Mô hình quan hệ

1. Mô hình quan hệ

  • Upload
    calder

  • View
    59

  • Download
    0

Embed Size (px)

DESCRIPTION

1. Mô hình quan hệ. Nội dung. Giới thiệu Khái niệm Phụ thuộc hàm Khoá của lược đồ quan hệ Lý thuết phân tách Chuẩn hoá lược đồ quan hệ Phụ thuộc đa trị và dạng chuẩn 4 Phụ thuộc kết nối và dạng chuẩn 5. Mục tiêu. Tổ chức của mô hình Các tính chất Các thao tác trên mô hình dữ liệu - PowerPoint PPT Presentation

Citation preview

Page 1: 1.  Mô hình quan hệ

1. Mô hình quan hệ

Page 2: 1.  Mô hình quan hệ

Giới thiệu Khái niệmPhụ thuộc hàmKhoá của lược đồ quan hệLý thuết phân táchChuẩn hoá lược đồ quan hệPhụ thuộc đa trị và dạng chuẩn 4Phụ thuộc kết nối và dạng chuẩn 5

Nội dung

Page 3: 1.  Mô hình quan hệ

Mục tiêuTổ chức của mô hìnhCác tính chấtCác thao tác trên mô hình dữ liệuThiết kế các dữ liệu theo chuẩn

Page 4: 1.  Mô hình quan hệ

Mô hình quan hệ do Codd đề xuất năm 1970.Có kết quả về lý thuyết khá tốtĐến nay sử dụng rộng rãi trong các

HQTCSDLCũng có những hạn chế nhất định

Giới thiệu

Page 5: 1.  Mô hình quan hệ

Cho U={A1, A2, …, An} là tập các thuộc tính trên các miền trị dom(A1), dom(A2), …, dom(An)

Một n-bộ trên U là một bộ t=(a1, a2, .., an), với ai Dom(Ai), i=1,…,n.

Một quan hệ trên U là một tập các n-bộCách khác: một quan hệ r trên U là tập con

của tích Đề Các: dom(A1) ×dom(A2)×…×dom(An)

Một lược đồ quan hệ trên U là tập các thuộc tính và các ràng buộc. Ký hiệu R(U) hay R(A1, A2, …,An).

Ví dụ: SinhVien(MaSV, HoTen, GioiTinh, NgaySinh)

Khái niệm

Page 6: 1.  Mô hình quan hệ

Cho t là một bộ trên r, X, Y U.t[X] là bộ gồm những giá trị của t trên tập

thuộc tính X.XY là tập các thuộc tính của X hợp Y.

Ký hiệu

Page 7: 1.  Mô hình quan hệ

Là một dạng phụ thuộc dữ liệu trên mô hình quan hệ

Cho X, Y U:Quan hệ r thoả phụ thuộc hàm X xác định Y, kí

hiệu X->Y nếu mọi bộ trong r giống nhau trên X thì cũng giống nhau trên Y.

Lược đồ R(U) thoả phụ thuộc hàm X->Y nếu mọi thể hiện của nó thoả phụ thuộc hàm X->Y.

Ví dụ: R(MaNV, HoTen, ngach, bac, hsluong) thì thoả pth: ngach,bac->hsluong, MaNV->HoTen

Lược đồ R thoả tập các pth F, ký hiệu R = (U,F).

Phụ thuộc hàm (Functional dependency - FD)

Page 8: 1.  Mô hình quan hệ

Cho R=(U,F). Một pth f được suy dẫn logic từ F nếu R thoả các pth của F thì R cũng thoả f.

Ký hiệu F |= f Tập tất cả pth suy dẫn logic từ F: F* = { f : F |

= f }Vấn đề: làm sao xác định F*?

Phụ thuộc được suy dẫn logic

Page 9: 1.  Mô hình quan hệ

Mục đích để suy diễn các phụ thuộc hàm.Hệ tiên đề:

FD1 (phản xạ): Nếu Y X thì X->YFD2 (gia tăng): Nếu X->Y thì XZ->YZ với mọi

Z UFD3 (bắc cầu): Nếy X->Y và Y->Z thì X->Z

Pth g được suy diễn từ F nhờ các tiên đề, ký hiệu F|-g

Ký hiệu F+= { g : F |- g }Vấn đề: có thuật toán tính F+? và F+=F*?

Hệ tiên đề Armstrong [1974]

Page 10: 1.  Mô hình quan hệ

Định lý 1.1. Hệ quy tắc suy diễn của Armstrong là:a) Xác đáng (sound), tức F+ F* vàb) Đầy đủ (complete), tức F+ = F*.

Bài tập 1: Chứng minh tính xác đáng của hệ tiên đề Armstrong.

Bài tập 2: Chứng minh tính đầy đủ của hệ tiên đề Armstrong.

Bài tập 3: Chứng minh các quy tắc sau:FD4 (quy tắc hợp): Nếu X->Y và P->Q thì XP-> YQFD5 (quy tắc giả bắc cầu): Nếu X->Y và WY->Z thì

WX->ZFD6 (quy tắc tách): Nếu X->Y thì X->Z với mọi Z Y

Tính xác đáng và đầy đủ

Page 11: 1.  Mô hình quan hệ

Cho R = (U, F), f là một pth trên U, quyết định f thuộc F+?

Bao đóng tập thuộc tính: XF

+ = { A : A U và X->A F+ }Định lý 1.2. Cho lược đồ R=(U, F) và f là một

pth trên U có dạng X->Y. Khi đó f F+ khi và chỉ khi Y X+.

Bài tập 4. Chứng minh định lý 1.2.

Bài toán thành viên

Page 12: 1.  Mô hình quan hệ

Thuật toán 1.1Vào: X U, F là tập các pthRa: X+

Phương pháp:NEWX:=X;Repeat

OLDX:=NEWX;for each P->Q in F do if (P NEWX) then

NEWX:=NEWX Q;Until NEWX=OLDXXPLUS:=NEWX;Return XPLUS;

Thuật toán tìm bao đóng tập thuộc tính

Page 13: 1.  Mô hình quan hệ

Định lý 1.3. Thuật toán tìm bao đóng tập thuộc tính là đúng đắn và có độ phức tạp thời gian là O(n.p. min(n,p)), với n=|U|, p=|F|.

Bài tập 5. Cài đặt thuật toán tìm bao đóng của tập thuộc tính.

Bài tập 6. Chứng minh định lý 1.3

Thuật toán tìm bao đóng…

Page 14: 1.  Mô hình quan hệ

Cho R=(U,F), X U. X được gọi là khoá của R nếu thoả mãn 2 điều kiện:X->U thuộc F+

Không tồn tại X’ là tập con thực sự của X mà X’->U thuộc F+.

Nếu X thoả điều kiện đầu thì X gọi là siêu khoá.

Ví dụ: Cho U={A,B,C,D,E}, F={AB->C, AD->BE, C->D}

1 khoá của lược đồ quan hệ là: AB.

Khoá của lược đồ quan hệ

Page 15: 1.  Mô hình quan hệ

Thuật toán 1.2Vào: U, FRa: Khoá KPhương pháp:K:=U;For each A in U do if A (K\{A})+ then K:=K\{A};Return K;Bài tập 7. Cài đặt thuật toán 1.2 tìm 1 khoá của lược đồ quan hệ.

Thuật toán tìm 1 khoá của LĐQH

Page 16: 1.  Mô hình quan hệ

Gọi L, R tương ứng là hợp tất cả các vế trái, phải trong các phụ thuộc hàm của tập F.

Bài tập 8. Chứng minh các tính chất sau.Nếu (X\{A}) -> A F+ thì X không là khoáNếu A L và X->Y F+ thì X\{A}->Y\{A} F+.

Định lý 1.4 [H.Thuần, L.V.Bào] Nếu X là khoá thì (U\R) X (U\R) (LR)

Tính chất của khoá

Page 17: 1.  Mô hình quan hệ

Chứng minh:a) Nếu X là khoá thì (U\R) XX là khoá nên X+=U. Mặc khác theo thuật toán tìm bao đóng thì: X+ X R U.Vậy X R = U. Hay (U\R) X.b) Nếu X là khoá thì X (U\R) (L R)Rõ ràng X U = (U\R) (L R) (R\L)Ta chứng minh X (R\L) = Giả sử có A X, A R và A L.Vì X là khoá nên X->LVì A L nên X\{A}->LDễ thấy L->R và R->A nên suy ra X\{A}->A (mâu thuẫn)

Page 18: 1.  Mô hình quan hệ

Hệ quả 1.1. Nếu R\L= thì lược đồ có 1 khoá là U.

Hệ quả 1.2. Nếu R L = thì lược đồ có khoá duy nhất là U\R.

Tính chất của khoá

Page 19: 1.  Mô hình quan hệ

1. Thuật toán 1.32. X:=U\R;3. Nếu X+ = U thì chuyển sang bước 54. X:=(U\R) (L R);5. Với mỗi Ai (L R) thực hiện

X:=X\{Ai}; Nếu X+ ≠ U thì X:=X {Ai};

6. Kết luận X là khoáBài tập 9: Cài đặt thuật toán 1.3 tìm 1 khoá của lược đồ quan hệ.

Thuật toán tìm 1 khoá

Page 20: 1.  Mô hình quan hệ

Định lý 1.4 [Lucchesi, Osborn] Cho S=(U,F) là một lược đồ quan hệ. Gọi K là một tập khác rỗng các khoá của S. Điều kiện cần và đủ để họ 2U\K chứa khoá của S là có một phần tử K K và tồn tại một phụ thuộc hàm (Li->Ri) F sao cho T = Li (K\Ri) không chứa một phần tử nào thuộc K.

Tìm tất cả các khoá

Page 21: 1.  Mô hình quan hệ

Thuật toán 1.5: Tìm tất cả các khoáVào: S=(U, F)Ra: tập các khoá của SPhương pháp:K:={Khoá(U,F,U)};For each K in K do for each (Lj->Rj) in F do

T:=Lj (K\Rj);

test:=true; for each H in K do

if T includes H then test:=false; if test then K:=K {Khoá(U,F,T)}Return K;

Page 22: 1.  Mô hình quan hệ

Định lý 1.5. Thuật toán 1.5 là đúng đắn và có độ phức tạp là O(|F||K||U|(|K|+|U|).

Page 23: 1.  Mô hình quan hệ

Cho R là một lược đồ quan hệ. Một phân tách của R là việc thay thế lược đồ R bằng một họ các lược đồ R1, R2, …, Rm sao cho Ri=R.

Ký hiệu (R1, R2,…,Rm)Cho (R1, R2, …, Rm) là một phân tách của

R(A1,A2,…An) và r là một thể hiện trên R.Gọi m(r) là ánh xạ được xác định bởi m(r) =

r1*r2*…*rmTrong đó ri= πRi(r), với i=1,2,…,m.

Lý thuyết phân tách

Page 24: 1.  Mô hình quan hệ

Ta có các tính chất sau:r m(r)Nếu s = m(r) thì πRi(s) = ri

m(m(r)) = m(r)Bài tập 10. Chứng minh các tính chất trên.Phân tách không mất thông tin: Phân tách

(R1,…,Rm) của lược đồ quan hệ (R,F) nếu với mọi thể hiện r của R mà thoả F thì r=m(r).

Lý thuyết phân tách (tiếp)

Page 25: 1.  Mô hình quan hệ

Thuật toán 1.6Vào: (R, F) và (R1, …,Rm)Ra true nếu phân tách không mất thông tin và

ngược lạiPhương pháp: 1. Lập bảng m hàng n cột, các phần tử được xác

định như sau: pt(i,j) = aj nếu Aj Ri, bij nếu ngược lại.

2. Biến đổi bảng:Với mỗi X->Y thuộc F nếu có 2 hàng giống nhau trên X mà khác nhau trên Y thì làm cho giống nhau (ưu tiên cho a)

Thuật toán kiểm tra phân tách

Page 26: 1.  Mô hình quan hệ

Lặp lại cho đến khi không biến đổi bảng được nữa3. Nếu bảng chứa hàng toàn ký hiệu a thì phân tách không mất thông tin. Ngược lại phân tách mất thông tin.Ví dụ: dùng thuật toán 1.6 kiểm tra với lược đồ quan hệ ({A, B, C, D, E, F}, {A->C, B->C, C->D, DE->C, CE->A}) phép phân tách (AD, AB, BE, CDE, AE) có mất thông tin không? Bài tập 11: Chứng minh thuật toán 1.6 đúng đắnBài tập 12: Chứng minh định lý sau.Định lý 1.6. Cho lược đồ (R,F). Khi đó phân tách (R1, R2) là phân tách không mất thông tin nếu và chỉ nếu (R1R2) ->R1\R2 hay (R1 R2) ->R2\R1.

Page 27: 1.  Mô hình quan hệ

Cho (R, F) và Z R. Hình chiếu của F lên Z, ký hiệu πZ(F) = {X->Y: (X->Y) F+ và XY Z}

Phân tách (R1, …, Rm) của (R, F) được gọi là bảo toàn tập F nếu: (πRi(F))+ = F+

Bài tập 12: Cho (R,F) và phân tách (R1,…,Rm) có kết nối không tổn thất. Với mỗi i gọi Fi

= πRi(F) và giả sử (S1, …, Sk) là một phân tách của Ri có kết nối không tổn thất với Fi. CMR phân tách (R1,..Ri-1, S1,…,Sk, Ri+1,..Rm) có kết nối không tổn thất đối với F.

Bài tập 13: Cài đặt thuật toán 1.6

Lý thuyết phân tách (tiếp)

Page 28: 1.  Mô hình quan hệ

Mục đích của chuẩn hoá:Tránh dư thừa dữ liệuTránh dị thường khi cập nhật

Cho lược đồ (R, F), Ai là một thuộc tính. Ai là thuộc tính khoá nếu Ai nằm trong 1 khoá nào đó của R.

Phụ thuộc hàm X->A là pth đầy đủ nếu không tồn tại Y X mà Y->A

Định nghĩa 1: Lược đồ (R, F) là ở dạng chuẩn 1 (1NF) nếu miền trị của các thuộc tính đều nguyên tố.

Lý thuyết chuẩn hoá

Page 29: 1.  Mô hình quan hệ

Định nghĩa 2: Lược đồ (R, F) là ở dạng chuẩn 2 (2NF) nếu:R ở dạng chuẩn 1NFMọi thuộc tính không khoá đều phụ thuộc hàm

đầy đủ vào mỗi một khoá.Ví dụ:

Lược đồ ({A,B,C,D}, {A->B, B->C}) là 2NF.Lược đồ ({S,A,I,P}, {S->A, SI->P}) không là

2NF

Lý thuyết chuẩn hoá (tiếp)

Page 30: 1.  Mô hình quan hệ

Định nghĩa 3: Lược đồ (R,F) được gọi là 3NF nếu pth X->A đúng trên R và A X thì X phải là siêu khoá, hoặc A phải là thuộc tính khoá.

Ví dụ: Lược đồ ({S,A,I,P},{S->A, SI->P}) không là

3NFLược đồ ({C, S, Z},{CS->Z, Z->C}) có 2 khoá

SC và SZ. Do đó là 3NF.

Lý thuyết chuẩn hoá (tiếp)

Page 31: 1.  Mô hình quan hệ

Đinh nghĩa 4: Lược đồ (R,F) là ở dạng chuẩn Boyce Codd (BCNF) nếu phụ thuộc hàm X->A đúng trên R thì X phải là siêu khoá.

Ví dụ:Lược đồ ({A,C,D,E,I,B},{ACD→EBI,CE→AD})

BCNFLược đồ ({A,B,C,D},{AB → C, D → B,C→ ABD})

đạt chuẩn 3NF nhưng không là BCNF

Lý thuyết chuẩn hoá (tiếp)

Page 32: 1.  Mô hình quan hệ

Bài tập 14: Chứng minh mọi lược đồ thoả 3NF cũng thoả 2NF

Bài tập 15: Chứng minh mọi lược đồ thoả BCNF cũng thoả 3NF

Lý thuyết chuẩn hoá (tiếp)

Page 33: 1.  Mô hình quan hệ

Cho F và G là hai tập pth trên U.F phủ G nếu G+ F+

F tương đương G nếu F+=G+.Bài tập 16. Chứng minh F tương đương G khi và

chỉ khi mọi pth của F đều thuộc G+ và mọi phụ thuộc hàm của G đều thuộc F+.

Cho F, G là hai tập pth trên U. F là phủ tối thiểu của G nếu:F là phủ của GMọi pth của F có dạng X->AF không chứa pth dư thừa: f F, (F\{f})+ F+

Các pth của F có vế trái không rút gọn được.

Lý thuyết chuẩn hoá (tiếp)

Page 34: 1.  Mô hình quan hệ

Bài tập 17. Xây dựng thuật toán tìm phủ tối thiểu.

Bài tập 18. Cài đặt thuật toán tìm phủ tối thiểu.

Lý thuyết phân tách (tiếp)

Page 35: 1.  Mô hình quan hệ

Thuật toán 1.7Vào: R, F (phủ tối thiểu)Ra: 1 phân tách của R bảo toàn F, các lược đồ con 3NFPhương pháp:Nếu có những thuộc tính không xuất hiện ở bất kỳ pth nào của F thì tạo một lược đồ con gồm các thuộc tính này và bỏ chúng khỏi R.Nếu có 1 pth thuộc F chứa tất cả các thuộc tính thì dừng.Trường hợp còn lại với các pth có dạng X->A1, X->A2, …, X->Ak thì tách thành lược đồ con XA1…Ak.Bài tập 18. Chứng minh thuật toán 1.7 đúng đắn.

Thuật toán phân tách về 3NF

Page 36: 1.  Mô hình quan hệ

Thuật toán 1.8Vào: R, FRa: 1 phân tách của R bảo toàn F, các lược đồ con

BCNFPhương pháp:Ban đầu phân tách gồm RLặp khi các lược đồ con chưa là BCNF: + Nếu lược đồ con Ri chưa là BCNF thì tồn tại pth X->A mà X không phải khoá và A X. + Tách Ri thành XA và Ri\XA.Bài tập 19. Chứng minh thuật toán 1.8 là đúng đắn.

Thuật toán phân tách về BCNF

Page 37: 1.  Mô hình quan hệ

Định nghĩa: Cho lược đồ R=(U,F), X,Y U, Z=U\XY. Lược đồ R thoả phụ thuộc đa trị X xác định Y, ký hiệu X->->Y nếu với mọi quan hệ r trên R, với hai bộ bất kỳ t1, t2 r mà t1[X]=t2[X] thì tồn tại t3 r sao cho t3[X]=t1[X] và t3[Z]=t2[Z].

Ví dụ:

Phụ thuộc đa trị

Page 38: 1.  Mô hình quan hệ

Phụ thuộc đa trị (tiếp)

Page 39: 1.  Mô hình quan hệ

Hệ tiên đề đối với phụ thuộc hàm và phụ thuộc đa trị:FD1 (quy tắc phản xạ cho FD): Nếu X⊇Ythì X→YFD2 (quy tắc gia tăng cho FD): Nếu X →Y thì XZ → YZFD3 (quy tắc bắc cầu choFD): Nếu X→Y và Y→Z thì X→ZMVD1 (quy tắc bù cho MVD): Nếu X →→Y thì X→→ (U-(X∪Y))MVD2 (quy tắc tăng cho MVD): NếuX→→Y và W⊇ Z thì

WX→→YZMVD3 (quy tắc bắc cầu cho MVD): Nếu X→→ Y và Y→→ Z thì

X→→ (Z – Y)MVD4 (quy tắc tái tạo cho FD và MVD): Nếu X →Y thì X→→ YMVD5 (quy tắc bắc cầu cho FD và MVD): Nếu X→→ Y và Y→

Z thì X→→ (Z – Y)

Phụ thuộc đa trị (tiếp)

Page 40: 1.  Mô hình quan hệ

Định lý 1.8: Hệ tiên đề FD1-FD3 và MVD1-MVD5 là xác đáng và đầy đủ.

Bài tập 20. Chứng minh tính đúng đắn của các luật MVD1-MVD5.

Bài tập 21. Chứng minh các luật sau:Nếu X->->Y thì X->->U-YNếu X->->Y và X->->Z thì X->->Y Z Nếu X->->Y và X->->Z thì X->->Y-Z

Phụ thuộc đa trị (tiếp)

Page 41: 1.  Mô hình quan hệ

Định nghĩa: Cho lược đồ R=(U,F) với F là tập các pth và ptdt. Lược đồ R ở dạng chuẩn 4 (4NF) nếu với mọi phụ thuộc đa trị không tầm thường X->->Y thoả trên R thì X là siêu khoá.

Ví dụ: Lược đồ NhanVien({TenNV, TenDuAn, TenCon}, {TenNV->->TenDuAn, TenNV->->TenCon}) không phải dạng chuẩn 4.

Bài tập 22. Chứng minh lược đồ R được phân tách thành R1 và R2 là không mất thông tin khi và chỉ khi R1R2->->R1-R2 hoặc R1R2->->R2-R1.

Phụ thuộc đa trị (tiếp)

Page 42: 1.  Mô hình quan hệ

Thuật toán 1.9: Phân tách lược đồ về 4NFVào: R=(U,F)Ra: Phân tách R thành các lược đồ con thoả 4NFD:={R};Khi có một lược đồ quan hệ Q trong D không ở

4NF, thực hiện: Chọn một lược đồ quan hệ Q trong D không ở 4NF;Tìm một phụ thuộc đa trị không tầm thường X→→Y

trong Q vi phạm 4NF; Thay thế Q trong D bằng hai lược đồ quan hệ (Q –

Y) và (X ∪ Y);

Phụ thuộc đa trị (tiếp)

Page 43: 1.  Mô hình quan hệ

Định nghĩa: Cho lược đồ R=(U,F), X1, X2, ...,Xk U. Lược đồ R thoả phụ thuộc kết nối X1*X2*…*Xk nếu mọi thể hiện r của R ta có: πR1(r)*πR2(r)* ...*πRk(r) = r

Phụ thuộc kết nối X1*X2*...*Xk là tầm thường nếu có Xi=U.

Định nghĩa: Lược đồ R=(U,F), với F gồm các pth, ptdt và ptkn là ở dạng chuẩn 5 (5NF) nếu mỗi phụ thuộc kết nối không tầm thường X1*X2*...*Xk thì Xi là siêu khoá, với i=1,2,…,k.

Phụ thuộc kết nối