1. Trang chủ
  2. » Giáo án - Bài giảng

Bài soạn môn CSDL

25 260 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Nội dung

Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang Chương I Phụ thuộc hàm I. Một số vấn đề thường xảy ra trong thiết kế cơ sở dữ liệu Xét lược đồ quan hệ NC(TCC, DCC, TMH, GIA) Một số vấn đề nảy sinh: 1. Sự dư thừa: Địa chỉ của người cung cấp sẽ được lặp lại mỗi khi một mặt hàng được cung cấp Ví dụ: TCC DCC TMH GIA A 10-Lê lợi Bắp1 10000 B 12-Hùng vương Cafe 6000 A 10-Lêlợi Bắp 2 30000 C 20-Nguyễn huệ Kẹo 15000 B 22-Nguyễn huệ Cafe 15000 Người cung cấp A lặp lại hai lần. 2. Sự mâu thuẩn khi bổ sung Nếu một người cung cấp hàng, cung cấp mặt hàng mới nhưng địa chỉ bị thay đổi lúc này sẽ xuất hiện sự mâu thuẫn vì một người có hai địa chỉ. 3. Sự bất thường khi loại bỏ Khi cần xoá các mặt hàng được cung cấp bởi một người ta lại xoá hết các thông tin về người đó. Ví dụ: Trong bảng trên nếu xoá mặt hàng cafe thì tên người cung cấp và địa chỉ cũng bị xoá theo. Vì vậy ta không tìm được khi cần thiết. 4. Sự bất thường khi bổ sung Ta không thể ghi địa chỉ cho người cung cấp hàng nếu người đó chưa cung cấp mặt hàng nào. Ta có thể đặt giá trị Null cho tên mặt hàng và giá của một bộ cho người cung cấp mới, nhưng khi ta đưa vào một mặt hàng đối với người cung cấp này, ta có nhớ để xoá các bộ có giá trị Null hay không. Những nhược điểm trên sẽ được khắc phục nếu ta thay quan hệ NCC(TCC, DCC) CC(TCC, TMH, GIA). II. Các phụ thuộc hàm Các quan hệ có thể sử dụng để mô hình hoá thế giới thực. Mỗi bộ của quan hệ có thể biểu diễn thông tin về một thực thể hoặc về mối quan hệ giữa các thực thể. Trong nhiều trường hợp không phải mội tập hợp hữu hạn các bộ có thể là giá trị hiện hành của một quan hệ trên lược đồ cơ sở dữ liệu đã cho. Ta phân biệt hai loại hạn chế trên các quan hệ: 1. Hạn chế phụ thuộc vào ngữ nghĩa của miền Hạn chế này phụ thuộc vào sự hiểu biết các thành phần nào của một bộ là có nghĩa chẳng hạn không thể có người có chiều cao là 3m. Còn một người có tuổi đời 1 Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang 30 tuổi thì không có thâm niên công tác là 32. Những hạn chế này cho phép tạo ra các ràng buộc trong quá trình nhập và xử lý dữ liệu. 2. Hạn chế liên quan đến các giá trị giữa các thuộc tính trên quan hệ. Hạn chế này không phụ thuộc vào giá trị trong các thành phần của mỗi bộ mà phụ thuộc vào: Hai bộ có trùng nhau trong một thành phần nhất định nào đó hay không, trong chương này sẽ nghiên cứu kỹ loại hạn chế như vậy, được gọi là phụ thuộc hàm. Một số quy ước: - Các chữ cái in hoa ở đầu dãy anphabê(A, B, C,…) dùng để ký hiệu các thuộc tính. - Các chữ cái in hoa ở cuối dãy anphabê(U, V, X, Y, Z) để ký hiệu tập các thuộc tính - Chữ cái R để ký hiệu lược đồ quan hệ. Nếu một lược đồ quan hệ R có các thuộc tính A, B, C thì ta viết R = ABC = {A, B, C} - Phép ghép được sử dụng thay cho phép hợp . Chẳng hạn: A ∪ B được viết AB, X ∪ Y được viết XY. III. Cơ sử lý luận của phụ thuộc hàm 1. Định nghĩa: Cho lược đồ quan hệ R. X , Y ⊂ R, r là quan hệ trên R, r thoả mãn phụ thuộc X→Y (X xác định Y) ⇔ ∀ t 1 ,t 2 ∈ r: t 1 (X)=t 2 (X) ⇒ t 1 (Y)=t 2 (Y). X→Y là một phụ thuộc hàm của R ⇔ ∀ hiện hành r của R đều thoả mãn X→Y Ví dụ: Cho R = ABC và các phụ thuộc hàm A→B, B→C. Dễ thấy: Nếu quan hệ r trên R thoả A→B, B→C thì R cũng thoả A→C. ∀ t 1 ,t 2 ∈ r. Giả sử t 1 (A)=t 2 (A) . Vì r thoả A→B ⇒ t 1 (B)=t 2 (B). Vì r thoả B→C ⇒ t 1 (C)=t 2 (C). Vậy ∀ t 1 ,t 2 ∈ r, t 1 (A)=t 2 (A) ⇒ t 1 (C)=t 2 (C). Vậy r thoả A→C. 2. Phụ thuộc được suy diễn logic Cho lược đồ quan hệ R, F là tập các phụ thuộc hàm trên R. Cho f là phụ thuộc hàm tuỳ ý Ta nói: f được suy diễn logic từ F nếu mọi quan hệ r trên R mà thoả F thì cũng thoả f. Ký hiệu: F ╞ f : f được suy diễn logic từ F F* = {f / F╞ f } Việc xác định tập F* là rất khó ta sẽ sử dụng một quan hệ tiên đề để từ đó xác định tập F* Ví dụ: Cho R = ABC F = {A→B, B→C }. Chứng minh: F ╞ A→C. Dùng phản chứng: Tồn tại một quan hệ Trên R thoả F và không thoả A→C. Ta có: r thoả F ⇒ r thoả A→B, r thoả B→C 2 Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang Vì r thoả A→B ⇒ ∀ t 1 ,t 2 ∈ r: t 1 (A)=t 2 (A) ⇒ t 1 (B)=t 2 (B) (Vì r thoảB→C) ⇒ t 1 (C)=t 2 (C). ⇒ r thoả A→C Vô lý. 3. Hệ tiên đề Armstrong (1974) 3 tiên đề (A 1 ) Phản xạ: Nếu Y ⊆ X thì X→Y. trong đó X,Y ⊂ R. (A 2 ) Gia tăng: Nếu X→Y thì XZ→YZ (X, Y, Z ⊂ R ) (A 3 ) Bắc cầu : Nếu X→Y và Y→Z thì X→Z. Ký hiệu F + = {f / F╞ f } (F + là tập các phụ thuộc hàm f được suy diễn logic từ F bằng cách áp dụng một số hữu hạn lần các quy tắc Armstrong ). Định lý : F + là xác đáng, nghĩa là F + ⊆ F* F + là đầy đủ, nghĩa là F + = F* 4. Tính chất a. Quy tắc hợp: X→Y và X→Z ⇒ X→ YZ. b. X→Y và U→V ⇒ XY→ UV. X 1 →Y 1 , X 2 →Y 2 ,…, X k →Y k ⇒ X 1 ,X 2 ,…,X k →Y 1 ,Y 2 ,…,Y k . c. Quy tắc chiếu: X→Y và Z ⊆ Y ⇒ X→Z. d. Quy tắc giả bắc cầu: X→Y và WY→Z ⇒ WX→Z . Chứng minh: a. X→Y ⇒ X→ XY (do A 1 ) X→Z ⇒ XY→ YZ (do A 2 ) ⇒ X→YZ(do A3). b. X→Y ⇒ XU→YU (do A 2 ) U→V ⇒ YU→ YV(do A 2 ) ⇒ XU→YV. c. Vì Z ⊆ Y ⇒ Y→Z (do A 1 ) Theo giả thiết X→Y ⇒ X→Z (do A 3 ).  Một số ví dụ: Ví dụ 1: Chứng minh rằng: Nếu A→B là phụ thuộc hàm trên lược đồ quan hệ R(AB) thì phép suy diễn B→A là không đúng. Hướng dẫn: Xem phản ví dụ: Xét quan hệ r A B a 1 a 2 b 1 b 1 Ta có r thoả A→B nhưng không thoả B→A Ví dụ 2: Cho R = ABC. Hãy chứng minh phép suy diễn sau là sai: a. AB→C ⇒ A→C b. AB→C ⇒ B→C . Hướng dẫn: a. Xem phản ví dụ: 3 Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang r A B C a 1 a 1 b 1 b 2 c 1 c 2 Ta có r thoả AB→C nhưng r không thoả A→C b. r A B C a 1 a 2 b 1 b 1 c 1 c 2 Ta có r thoả AB→C nhưng r không thoả B→C . Ví dụ 3: Cho R = ABC. Chứng minh phép suy diễn sau là sai: AB→C , C→A ⇒ C→B. Hướng dẫn: Xét quan hệ: r A B C a 1 a 2 b 1 b 2 c 1 c 1 Ta có r thoả AB→C và C→A nhưng r không thoả C→B. Ví dụ 4: Cho R = ABCD và tập phụ thuộc hàm: F = {A→B, BC→D}. Cho biết các phụ thuộc hàm sau đây có thể suy diễn được trên tập F. a. AC→D b. B→ D c. AD→ B. Hướng dẫn: a. Cách 1: Ta có: A→B ⇒ AC→BC (Gia tăng). Vì BC→D (Gỉa thiết). ⇒ AC→D. Cách 2: A→B và BC→D Theo quy tắc giả bắc cầu ⇒ AC→D. b. Xem quan hệ: r A B C D a 1 a 2 b 1 b 1 c 1 c 2 d 1 d 2 Ta có r thoả A→B, BC→D nhưng r không thoả B→D. c. Ta có :A→B ⇒ AD→BD (Gia tăng) ⇒ AD→B (Quy tắc chiếu/tách) Ví dụ 5: Cho R = ABCD, F = {A→C, B→D}. Chứng minh: F ╞ AB→ABCD. Hướng dẫn: A→C ⇒ AB→BC (Gia tăng) B→D ⇒ AB→AD (Gia tăng) ⇒ AB→ABCD (Quy tắc hợp). 4 Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang Nhận xét: AB là siêu khkoá của lược đồ quan hệ R = ABCD. 5. Định nghĩa khoá: Cho lược đồ quan hệ R = (U, F), ( U: Tập thuộc tính, F: Tập phụ thuộc hàm ). X ⊆ U được gọi là khoá của lược đồ quan hệ R nếu nó thoả mãn hai điều kiện: (i) X→R ∈ F + . (ii) ∃ Y là tập con thực sự của X mà Y→R ∈ F + Vấn đề: Tìm một khoá của lược đồ quan hệ và tổng quát tìm tất cả các khoá của lược đồ quan hệ. Chú ý: Nếu X chỉ thoả mãn điều kiện Y thì nó được gọi là một siêu khoá. 6. Bao đóng của tập thuộc tính Giả sử lược đồ quan hệ R = (U,F), U là tập thuộc tính, F là tập phụ thuộc hàm. X ⊆ U Bao đóng của X đối với F, kí hiệu X + là tập hợp: X + = {A / X→A ∈ F + } (F ╞ X→A) Tính X + ? Bổ đề: X→Y ∈ F + ⇔ Y ⊆ X + (Y ⊆ U). Chứng minh: Điều kiện cần: Giả sử X→Y ∈ F + . Chứng minh Y ⊆ X + Ta có thể giả sử Y = A 1 A 2 … A k Do X→Y = A 1 A 2 …A k ∈ F + ⇒ X→A i ∈ F + , i = 1,k (tách/chiếu) ⇒ A i ∈ X + i = 1,k ⇒ Y = A 1 A 2 … A k ⊆ X + Điều kiện đủ: Giả sử Y = A 1 A 2 … A k và Y ⊆ X + . Chứng minh: X→Y ∈ F + Do Y = A 1 A 2 …,A k ⊆ X + ⇒ X→A i ∈ F + i = 1,k ⇒ X→A 1 A 2 … A k ∈ F + * Thuật toán tính X + : Thực hiện theo các bước. 1. X (0) = X. 2. X (i+1) = X i ∪ {A/Y→Z ∈ F + , A ∈ Z, Y ⊆ X i }. 3. Lặp lại bước 2 cho đến khi X (i+1) = X i thì dừng. Kết luận X + = X (i) . Ví dụ1: Cho lược đồ quan hệ R = ABCD. F = {A→B, B→C, BC→D, DA→B}. X = A Tìm X + ? Hướng dẫn: Ta có: 1. X 0 = X = A. 2. X 1 = X 0 ∪ B = AB X 2 = X 1 ∪ C = ABC X 3 = X 2 ∪ D = ABCD = U Vậy X 4 = X 3 . ⇒ X + = A + = ABCD. 5 Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang Nhận xét: A→ABCD ⇒ A là siêu khoá, hơn nữa A là một khoá. Chú ý: Cho lược đồ quan hệ R = (U, F), X ⊆ U: X + = U ⇔ X là siêu khoá và ngược lại. Chứng minh: Giả sử X + = U (Theo định nghĩa X + ) ⇒ X→U ∈ F + ⇒ X là siêu khoá. Đảo lại: Giả sử X là siêu khoá ⇒ X→U ∈ F + ⇒ U ⊆ X + mà X + ⊆ U ⇒ X + = U. Ví dụ2: Cho lược đồ quan hệ R = ABCD , F = {A→C, B→D}. Chứng minh AB là khoá. (X = AB, X + = ?) 1. X 0 = X = AB 2. X 1 = X 0 ∪ CD = ABCD = U. ⇒ X 2 = X 1 ⇒ X + = AB + = ABCD. Vậy AB là siêu khoá. Dễ chứng minh: AB là khoá, ta chứng minh không thể có A→ABCD và B→ABCD. (Dùng phản chứng). Xét quan hệ: r A B C D a 1 a 2 a 1 b 1 b 1 b 2 c 1 c 2 c 1 d 1 d 1 d 2 Ta có r thoả A→C, B→D nhưng r không thoả A→ABCD và B→ABCD. Ví dụ3: Cho lược đồ quan hệ R = XYZWQRP F = {XY→W, Y→Z, WZ→P, WP→QR,Q→X }. Chứng minh XY→P ∈ F + theo hai cách. Cách 1: XY→W và WZ→P ⇒ XYW→P(theo tính chất giả bắc cầu) mà Y→Z ⇒ XYY = XY→P (theo tính chất giả bắc cầu). Cách 2: 1. T 0 = XY 2. T 1 = T 0 ∪ WZ = XYWZ T 2 = T 1 ∪ P = XYWZP T 3 = T2 ∪ QR = XYWZPQR = U. XY→U ⇒ XY→P. Định lý: Thuật toán tính bao đóng X + là đúng. Chứng minh: Gỉa sử thuật toán dừng khi X (n+1) = X n Ta chứng minh X + = X n .  Trước hết ta sẽ chứng minh nếu A ∈ X (j) thì A ∈ X + (j = 1,2,…,n). Theo quy nạp: - Với j = 0 ⇒ A ∈ X ⇒ X→A ∈ F + ⇒ A ∈ X + - Giả thiết quy nạp: với j > 0, nếu A ∈ X (j-1) thì A ∈ X + lúc đó với A ∈ X (j) thì: hoặc A ∈ X (j-1) hoặc A ∈ Z, Y→Z ∈ F, Y ⊆ X (j-1) . (X (j) = X (j-1) ∪ {A / Y→Z, A ∈ Z, Y ⊆ X (j-1) } ) 6 Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang Vậy: - Nếu A ∈ X (j-1) thì A ∈ X + (do giả thiết quy nạp). - Nếu A ∈ Z, Y→Z ∈ F, Y ⊆ X (j-1) ⇒ Y ⊆ X + ⇒ X→Y ∈ F + mà Y→Z ∈ F nên X→Z ∈ F mà A ∈ Z ⇒ X→A ∈ F + ⇒ A ∈ X + . Vậy X (n) ⊆ X + .  Đảo lại: Ta chứng minh X + ⊆ X (n) . Giả sử ∃ A ∈ X + mà A ∉ X (n) . Xét quan hệ r gồm 2 bộ 11…11 1…1 11…11 0…0 Các thuộc tính ∈ X (n) Các thuộc tính ∈ U \ X (n) Ta sẽ chứng minh r thoả tập phụ thuộc hàm F. Thật vậy: Nếu r không thoả F ⇒ ∃ phụ thuộc hàm V→W ∈ F không được thoả bởi r ⇒ V ⊆ X (n) (Vì nếu không quan hệ r sẽ thoả V→W ) và W chứa ít nhất một thuộc tính A ∈ X (n) (Vì nếu không r sẽ thoả V→W ) . Từ V ⊆ X (n) / A ∈ W, V→W suy ra A ∈ X (n+1) Vậy X (n) ≠ X (n+1) vô lý . Tóm lại: X + ⊆ X (n) . 7. Tính đầy đủ của hệ tiên đề Armstrong F* = {f / F╞ f }. F + = {f / F╞ f }. • Tính xác đáng : F + ⊆ F* • Tính đầy đủ : F* ⊆ F + ⇔ ∀ f, f ∈ F* ⇒ f ∈ F + ⇔ ∀ f, f ∈ F + ⇒ f ∉ F* Chứng minh: Giả sử U là tập thuộc tính và f: X→Y ∉ F + tức là f không suy diễn logic từ hệ tiên đề Armstrong. Ta sẽ chứng minh f ∉ F* Xét quan hệ r gồm 2 bộ : bộ 11…11 1…1 11…11 0…0 Các thuộc tính ∈ X + Các thuộc tính ∈ U \ X + Ta chứng minh rằng r thoả tập phụ thuộc hàm. Dùng phản chứng: Giả sử: r không thoả F ⇒ ∃ phụ thuộc hàm V→W ∈ F không được thoả bởi r ⇒ V ⊆ X + (Vì nếu không r thoả V→W : do cách xây dựng quan hệ r) và W chứa ít nhất một thuộc tính ∉ X + (Vì nếu không r thoả V→W ). Mặt khác: X→X + ∈ F + và V ⊆ X + ⇒ X + →V ∈ F + , V→W , Vì A ∈ W ⇒ W→A Từ đó suy ra: X→A ∈ F + ⇒ A ∈ X + vô lý. Vậy r thoả tập phụ thuộc hàm F Ta sẽ chứng minh r không thoả f (nhưng f ∉ F*). Dùng phản chứng: Giả sử r thoả f . Ta có X ⊆ X + ⇒ Y ⊆ X + ( Vì nếu không thì có hai bộ bằng nhau trên X nhưng không bằng nhau trên Y ) ⇒ f: X→Y ∈ F + vô lý (điều phải chứng minh) 7 A Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang F* = F + 8. Thuật toán tìm một khoá 8.1. Định lý (Hồ Thuần – Lê Văn Bào, 1983). Cho lược đồ quan hệ R = (U, F),U là tập thuộc tính, F là tập phụ thuộc hàm. Cho X ⊆ U. Giả sử F = {L i →R i / L i , R i ⊆ U, i = 1,…,k } Nếu X là khoá của lược đồ quan hệ R thì U\R ⊆ X ⊆ (U\R) ∪ (L ∩ R) Trong đó: L =  k i Li 1 = , R =  k i Ri 1 = Định lý này cho ta điều kiện cần để X là khoá của lược đồ quan hệ. 8. 2.Hệ quả: (i) Nếu L ∩ R = Ø thì K = U\R là khoá duy nhất của R. (ii) Ký hiệu: G =  i Ki , ki là khoá của R ⇒ G = U\R. (iii) Từ định lý ở trên, ta có cấu trúc chung của một khoá của lược đồ quan hệ R là: K = (U\R) ∪ Z trong đó Z ⊆ L ∩ R. Ví dụ 1: Cho lược đồ quan hệ R = (U, F) U = {A 1 ,…, A 10 } F = {A 1 →A 2 , A 3 →A 4 , A 5 →A 6 , A 7 →A 8 , A 9 →A 10 }. Ta có: L = A 1 A 3 A 5 A 7 A 9 , R = A 2 A 4 A 6 A 8 A 10 ⇒ L ∩ R = Ø thì K =U\R =A 1 A 3 A 5 A 7 A 9 là khoá duy nhất của R=(U, F). Ví dụ 2:Cho lược đồ quan hệ R=(U, F). Giả sử L ∩ R = {A 1 , A 2 } ≠ Ø, (U\R) + ≠ U. a. Chứng minh: (U\R) ∪ (L ∩ R) không phải là khoá của R. b. Chứng minh R có đúng 2 khoá là: (U\R) ∪ {A 1 } và (U\R) ∪ {A 2 }. Hướng dẫn: a. Giả sử K = (U\R) ∪ (L ∩ R) là khoá của R ⇒ K là khoá duy nhất. ⇒ G =  i Ki = K = U\R theo hệ quả (ii). Vô lý với K = (U\R) ∪ (L ∩ R). c. Do (U\R) + ≠ U ⇒ U\R không là khoá của R. (U\R) ∪ (L ∩ R) không phải khoá (Chứng minh trên). Theo hệ quả (iii) thì có 3 khả năng: α . (U\R) ∪ {A 1 } là khoá và (U\R) ∪ {A 2 } không là khoá β . (U\R) ∪ {A 2 } là khoá và U\R) ∪ {A 1 } không là khoá χ . (U\R) ∪ {A 1 } là khoá và (U\R) ∪ {A 2 } là khoá . • Trường hợp α không xảy ra vì nếu không (U\R) ∪ {A 1 } là khoá duy nhất ⇒ G =  i Ki = (U\R) ∪ {A 1 } = U\R. Vô lý. • Tương tự trường hợp β không xảy ra: - Vậy chỉ còn χ là đúng. Ví dụ 3: Cho lược đồ quan hệ R = (U, F). U = {A, B, C, D, E, G} F = {B→C, C→B, A→GD}. 8 Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang Chứng minh AEBC không là khoá. Hướng dẫn: Ta có: L = ABC, R = BCDG ⇒ L ∩ R = BC. Mặt khác: U\R = AE và (U\R) + = (AE) + = AEGD ≠ U. ⇒ (U\R) ∪ (L ∩ R) = AEBC không là khoá .Hơn nữa R có 2 khoá: (U\R) ∪ {B} = AEB (U\R) ∪ {C} = AEC. 8.3. Thuật toán tìm một khoá Từ định lý nói trên ta có thể viết thuật toán tìm một khoá của lược đồ quan hệ như sau: Vào: Lược đồ quan hệ R = (U, F) Ra : Một khoá của R. Phương pháp: Thuật toán được tính theo các bước 1. X:= U\R 2. Nếu X + = U thì sang bước 5 3. X := (U\R) ∪ (L ∩ R) 4. ∀ Ai ∈ L ∩ R thực hiện: X := X \ {Ai} Nếu X + ≠ U thì X := X ∪ Ai 5. Kết luận X là khoá của R. Kết thúc Ví dụ1: Cho lược đồ quan hệ R = (U, F). U = {A, B, C, D, E, G} F = {B→C, C→B, A→GD}. Tìm các khoá của R? Hướng dẫn: Ta có: L = ABC, R = BCDG ⇒ L ∩ R = BC 1. X:= U\R 2. Ta có X + = (AE) + = AEGD ≠ U 3. X := (U\R) ∪ (L ∩ R) = AEBC 4. + Với B ⊂ L ∩ R : X :=X \ B = AEC X + = (AEC) + = AECGDB = U + Với C ⊂ L ∩ R : X :=X \ C = AE X + = (AE) + = AEGD ≠ U Vậy X := X ∪ U = AEC Vậy X = AEC là một khoá của R. Tiếp theo ta viết L ∩ R = CB + Với C ⊂ L ∩ R : X :=X \ C = AEB X + = (AEB) + = AEBCGD = U + Với B ⊂ L ∩ R : X :=X \ B = AEB \ B= AE 9 Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang X + = (AE) + = AEGD ≠ U Vậy X :=AE ∪ B = AEB Vậy X = AEB là một khoá của R. Tóm lại R có hai khoá là AEB và AEC. 9. Thuật toán tìm mọi khoá của lược đồ quan hệ 9.1. Định lý( Luccheri – Orborn - 1979). Cho lược đồ quan hệ R = (U, F), U = {A 1 ,…,A n }, F = {L i →R i / L i , R i ⊆ U, i = 1,…,k Gọi Қ là tập khác rỗng các khoá của R. Điều kiện cần và đủ để họ 2 U /Қ có chứa khoá của lược đồ quan hệ là: (i) ∃ K ∈ Қ (ii) ∃ phụ thuộc hàm Li 0 →Ri 0 ∈ F sao cho: Tập T = L i0 ∪ (K \ R i0 ) không chứa phần tử nào của Қ ( 2 U là ký hiệu tập các tập con của U ). Từ định lý trên ta có thuật toán tìm mọi khoá của lược đồ quan hệ như sau: Vào: Lược đồ quan hệ R = (U, F) Ra : Mọi khoá của R. Phương pháp: 1. Tìm một khoá K của R ( theo thuật toán tìm một khoá đã biết ) Đặt Қ = {K}. 2. Với mỗi K ∈ Қ và với mỗi phụ thuộc hàm L i →R i ∈ F . Kiểm tra T = L i ∪ (k \ R i ) có chứa phần tử thuộc Қ hay không? (i) Nếu ∃ T mà không chứa phần tử nào của Қ .Ta sẽ xác định khoá mới ~ K trong siêu khoá T (theo thuật toán tìm khoá ) và gán Қ = Қ ∪ { ~ K }, quay lại bước 2. (ii) Nếu không tồn tại T như vậy thì kết luận ~ K là tập tất cả các khoá. Chú ý: Tập T thoả mãn điều kiện (ii) ở định lý trên là một siêu khoá. Ví dụ1: Xét lại ví dụ trên. Cho lược đồ quan hệ R = (U, F). U = {A, B, C, D, E, G} F = {B→C, C→B, A→GD}. Tìm mọi khoá của R = (U, F)? Hướng dẫn: 1. Tìm một khoá K của R K = AEC (theo thuật toán tìm khoá ) Қ = {AEC}. 2. +. Với Қ = AEC Xét phụ thuộc hàm B→C ∈ F, T = B ∪ (K \C) = AEB. Không chứa phần tử của Қ . Ta tìm khoá ~ K trong siêu khoá T = AEB. Ta dễ dàng tìm được ~ K = AEB 10 [...]... để tìm 1 khoá của lược đồ quan hệ 11 Chứng minh các tính chất sau đây: a X ⊆ X+ b X ⊂ Y ⇒ X+ ⊆ Y+ Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc c X++ = X+ d (XY)+ ⊇ X+Y+ e (X+Y)+ = (XY+)+ = (XY)+ f X → Y ∈ F+ ⇔ Y+ ⊆ X+ g X → X+ ∈ F+, X+ → X∈ F+ h X+ = Y+ ⇔ X → Y ∈ F+ và Y → X ∈ F+ Trang 13 Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Chương II Trang 14 Phủ của tập phụ thuộc hàm và lý thuyết phân... SC Xét phụ thuộc hàm CS→Z∈ F, T = CS ∪ { SZ \ Z } = SC ∈ Қ Z→C ∈ F, T = Z ∪ { SZ \ C } = SZ ∈ Қ ⇒ Қ = {SC, SZ} là tập tất cả các khoá BÀI TẬP CHƯƠNG I 1 Cho lược đồ quan hệ R = (U, F), X ⊆ U, A∈ X Chứng minh rằng: X \ {A}→ A ∈ F+ thì X không là khoá của R Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang 12 2 Cho quan hệ r r A B 1 2 2 1 0 2 2 1 R thoả mãn những phụ thuộc hàm sau đây: AB → C D→E... bảng này ta kết luận ρ là phân tách kết nối không mất thông tin, vì có hàng thứ hai chứa toàn a BÀI TẬP CHƯƠNG II 1 Cho R = ABCDE ρ = (AD, AB, BE, CDE, AE) F = {A→C, B→C, C→D, DE→C, CE→A} Hỏi phân tách ρ là phân tách kết nối mất thông tin hay không? Chương III I Ví dụ mở đầu: Lý thuyết chuẩn hoá 18 Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang 19 Giả sử xét một Cơ sở dữ liệu gồm có hai quan hệ... (L ∩ R) = ABCDEG Vì trong ρ có lược đồ con CGB chứa khoá CG nên ρ là một phân táchbảo toàn tập phụ thuộc hàm không mất thông tin và chuẩn hoá R về 3 NF BÀI TẬP CHƯƠNG III 1 Chứng minh định nghĩa sau đây là tương đương với định nghĩa của 3 NF Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang 25 Lược đồ quan hệ R là thuộc 3 NF nếu mọi phụ thuộc hàm X→A ∈ F+ thì hoặc X là siêu khoá hoặc A là thuộc... thuyết phân tách Ý nghĩa: - Tránh dư thừa dữ liệu - Tránh dị thường trong cập nhật - Không mất thông tin, bảo toàn tập phụ thuộc hàm III.1 Định nghĩa 1: Cho lược đồ quan hệ R = (U, F), U = A1 A2 …An Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang 16 Giả sử R1, R2, …, Rk là các lược đồ con của lược đồ quan hệ R thoả mãn điều kiện k R=  Ri i= 1 Ta nói rằng R1, R2, …, Rk là một phân tách của lược... trình làm bằng ở trên Y như sau: - Nếu một trong hai giá trị là Aj thì thay giá trị còn lại là Aj - Nếu các giá trị đều là bij và bi`j thì có thể thay đổi ở các dòng là một trong hai giá trị này Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang 17 Nếu trong quá trình biến đổi bảng ta phát hiện ra một dòng nào đó trở thành a1,a2, …,an thì kết luận ρ là một phân tách có kết nối không mất thông tin... A→C ta có bảng: CDE BE AE AB AD - A b11 b21 a1 a1 a1 B b12 a2 b32 a2 b52 C a3 b23 b33 b33 b33 D a4 b24 b34 b44 a4 E a5 a5 a5 b45 b55 C a3 D a4 E a5 Với phụ thuộc hàm B→C ta có bảng: CDE A b11 B b12 Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc BE AE AB AD - a2 b32 a2 b52 b33 b33 b33 b33 b24 b34 b44 a4 a5 a5 b45 b55 C a3 b33 b33 b33 b33 D a4 a4 a4 a4 a4 E a5 a5 a5 b45 b55 C a3 a3 a3 b33 b33 D a4 a4.. .Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang 11 ⇒ Қ = {AEC, AEB}, lặp lại quá trình này + Với Қ = AEC Xét phụ thuộc hàm B→C, T = B ∪ (K \C) = AEB Chứa phần tử của Қ C→B, T = C ∪ (K \B) = AEC Chứa... Trong quá trình cập nhật dữ liệu: khi cần thay đổi địa chỉ của một sinh viên ta cần phải thay đổi nhiều lần Nếu muốn bổ sung thêm một sinh viên chưa thi môn nào thì sẽ gặp khó khăn và muốn loại bỏ một môn thi thì các thông tin về sinh viên dự thi môn đó sẽ mất Nếu ta tách quan hệ SINHVIEN thành hai quan hệ: SINHVIEN (Masv Ten Tuoi Diachi ) DIEMTHI ( Masv Monthi Diem ) Xét trở lại lược đồ quan hệ SINHVIEN... nguyên tố (nghĩa là những giá trị không thể phân chia được nữa) Một quan hệ thuộc lược đồ quan hệ ở dạng 1NF được gọi là quan hệ 1NF Ví dụ: quan hệ THI ở trên là 1NF I.2 Dạng chuẩn 2(2NF) a Định nghĩa: Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang 20 Cho lược đồ quan hệ R = (U) với F là tập các phụ thuộc hàm trên R, U là tập thuộc tính, A∈ U là thuộc tính khoá nếu A thuộc vào một khoá của R Ngược . khoá. BÀI TẬP CHƯƠNG I 1. Cho lược đồ quan hệ R = (U, F), X ⊆ U, A ∈ X Chứng minh rằng: X {A}→ A ∈ F + thì X không là khoá của R. 11 Bài soạn môn cơ. hạn không thể có người có chiều cao là 3m. Còn một người có tuổi đời 1 Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang 30 tuổi thì không có thâm

Ngày đăng: 01/08/2013, 05:41

HÌNH ẢNH LIÊN QUAN

Nếu trong quá trình biến đổi bảng ta phát hiện ra một dòng nào đó trở thành a1,a2, …,an thì kết luận ρ  là một phân tách có kết nối không mất thông tin - Bài soạn môn CSDL
u trong quá trình biến đổi bảng ta phát hiện ra một dòng nào đó trở thành a1,a2, …,an thì kết luận ρ là một phân tách có kết nối không mất thông tin (Trang 17)
sau khi biến đổi bảng với tất cả các phụ thuộc hàm trong F mà bảng cuối cùng không có dòng nào toàn kí hiệu a như vậy thì kết luận ρ  là một phân tách có kết  - Bài soạn môn CSDL
sau khi biến đổi bảng với tất cả các phụ thuộc hàm trong F mà bảng cuối cùng không có dòng nào toàn kí hiệu a như vậy thì kết luận ρ là một phân tách có kết (Trang 17)
- Với phụ thuộc hàm C→D ta có bảng: - Bài soạn môn CSDL
i phụ thuộc hàm C→D ta có bảng: (Trang 18)

TỪ KHÓA LIÊN QUAN

w