Week3
Upcoming SlideShare
Loading in...5
×
 

Week3

on

  • 1,263 views

 

Statistics

Views

Total Views
1,263
Views on SlideShare
1,263
Embed Views
0

Actions

Likes
2
Downloads
77
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Thứ tự xuất hiện của các bộ trong một quan hệ là không quan trọng và quan hệ vẫn không thay đổi
  • tức là mỗi giá trị của X trong r chỉ tương ứng với một giá trị của YCó thể có nhiều giá trị của X tương ứng với 1 giá trị Y
  • Ngữ nghĩa các thuộc tính cho thấy thuộc tính liên quan với nhau như thế nào & xác định các phụ thuộc hàm giữa các thuộc tính này
  • Armstrong nêu ra 1974, đgl hệ tiên đề Armstrong hay qui tắc suy diễn Armstrong

Week3 Week3 Presentation Transcript

  • Cơ sở dữ liệu MÔ HÌNH DỮ LIỆU QUAN HỆ Nguyễn Thanh Tùng1 Cơ sở dữ liệu 12/04/2011
  • Nội dung  Các khái niệm trong Mô hình dữ liệu quan hệ  Phụ thuộc hàm2 Cơ sở dữ liệu 12/04/2011
  • Cấu trúc dữ liệu quan hệ  Cấu trúc dữ liệu quan hệ (Relational data structure) dùng để lưu trữ các quan hệ.  Hệ quản trị CSDL quan hệ cho phép người sử dụng nhìn thấy CSDL dưới dạng các bảng dữ liệu.  Áp dụng ở mức ngoài (external level) và mức ý niệm (conceptual level) trong kiến trúc CSDL ba lược đồ.  Cơ sở dữ liệu quan hệ (relational database) là CSDL mà dữ liệu được lưu trữ trong các quan hệ (bảng). CSDL quan hệ bao gồm nhiều quan hệ.3 Cơ sở dữ liệu 12/04/2011
  • Quan hệ  Quan hệ (relation) là một bảng dữ liệu hai chiều bao gồm nhiều hàng (mẩu tin) và nhiều cột (thuộc tính hoặc vùng tin).  Mỗi hàng là duy nhất: không thể có hai hàng có cùng các giá trị ở tất cả vùng tin.  Thứ tự của các hàng là không quan trọng.  Thứ tự của các cột là không quan trọng.  Không phải mọi bảng đều là quan hệ. Quan hệ là một bảng không chứa các hàng giống hệt nhau.4 Cơ sở dữ liệu 12/04/2011
  • Quan hệ (tt)  Ví dụ: quan hệ Supplier Snum Name City S1 Nguyễn Trung Tiến SF S2 Trần Thị Yến LA S3 Nguyễn Văn An SF5 Cơ sở dữ liệu 12/04/2011
  • Các khái niệm  Thuộc tính (attribute) của quan hệ là một cột được đặt tên của một bảng.  Thứ tự xuất hiện của các thuộc tính trong quan hệ là không quan trọng và quan hệ vẫn không bị thay đổi.  Miền trị (domain) là một tập hợp các giá trị cho phép của một hoặc nhiều thuộc tính.  Miền trị là một tập con của mộ kiểu dữ liệu (data type)  Dựa vào tập các giá trị của một miền trị mà chúng ta có thể biết được ý nghĩa của thuộc tính tương ứng.6 Cơ sở dữ liệu 12/04/2011
  • Các khái niệm (tt)  Bộ (tuple) của một quan hệ là một hàng (row) của một bảng. Các phần tử của một quan hệ là các bộ hoặc các hàng của một bảng. Ví dụ: Một bộ t của quan hệ Employee là: t = (100, „Margaret Simpson‟, „Marketing‟, 48000)  Thành phần (component) của một bộ là giá trị của một hàng. Ví dụ: Thành phần Name của bộ t là „Margaret Simpson‟.7 Cơ sở dữ liệu 12/04/2011
  • Các khái niệm (tt)  Bậc (degree) của một quan hệ là số lượng các thuộc tính của quan hệ.  Quan hệ nhất phân (Unary relation): quan hệ có một thuộc tính  Quan hệ nhị phân (Binary relation): quan hệ có hai thuộc tính  Quan hệ tam phân (Ternary relation): quan hệ có ba thuộc tính  Quan hệ n-phân (n-ary relation): quan hệ có n thuộc tính Ví dụ: Quan hệ Employee có 4 thuộc tính, do đó bậc của quan hệ này là 4.8 Cơ sở dữ liệu 12/04/2011
  • Các khái niệm (tt)  Lượng số (cardinality) của một quan hệ là số lượng các bộ của quan hệ.  Lượng số của quan hệ sẽ bị thay đổi khi thêm vào hoặc xóa bỏ các bộ của quan hệ.  Lượng số của quan hệ được xác định từ thể hiện của quan hệ tại một thời điểm.  Ví dụ: Quan hệ Employee có 5 bộ, do đó lượng số của quan hệ này là 5.9 Cơ sở dữ liệu 12/04/2011
  • Lược đồ quan hệ  Lược đồ quan hệ (Relation schema) được biểu diễn bởi một tên đi theo sau là một tập hữu hạn các thuộc tính {A1, A2,…, An} được ghi trong hai dấu ngoặc đơn. R(A1, A2,…, An) R là tên của lược đồ quan hệ.  Bậc của lược đồ quan hệ là số lượng các thuộc tính của lược đồ quan hệ.  Quan hệ r trên lược đồ quan hệ R (ký hiệu r(R)) là một tập hữu hạn các ánh xạ {t1, t2,…, tp} từ R vào D với điều kiện mọi ánh xạ t r thì t[Ai] Di, 1 i n10 Cơ sở dữ liệu 12/04/2011
  • Lược đồ cơ sở dữ liệu quan hệ  Lược đồ cơ sở dữ liệu quan hệ (Relational database schema) là một tập hợp các lược đồ quan hệ trong CSDL. Lược đồ này ít bị thay đổi theo thời gian.  Thể hiện CSDL quan hệ (Relational database schema) là một tập hợp tất cả các thể hiện quan hệ trong CSDL. Thể hiện CSDL thường xuyên bị thay đổi theo thời gian.11 Cơ sở dữ liệu 12/04/2011
  • Khóa quan hệ  Khóa quan hệ (Key) là một tập nhỏ nhất các thuộc tính dùng để xác định duy nhất một hàng.  Một khóa chỉ có một thuộc tính được gọi là khóa đơn (simple key).  Một khóa có nhiều thuộc tính được gọi là khóa phức hợp (composite key).  Khóa thường được sử dụng làm chỉ mục (index) của bảng dữ liệu để làm tăng tốc độ xử lý câu truy vấn.12 Cơ sở dữ liệu 12/04/2011
  • Khóa quan hệ (tt)  Một quan hệ phải có ít nhất một khóa và có thể có nhiều khóa.  Các thuộc tính thuộc một khóa được gọi là thuộc tính khóa (prime attribute), các thuộc tính còn lại trong lược đồ quan hệ được gọi là các thuộc tính không khóa (nonprime attribute).  Các thuộc tính khóa được gạch dưới.  Các thuộc tính khóa không được có giá trị rỗng (null value).13 Cơ sở dữ liệu 12/04/2011
  • Khóa quan hệ (tt)  Tất cả các khóa của một quan hệ được gọi là khóa dự tuyển (candidate key).  Một trong các khóa dự tuyển được chọn làm khóa tiêu biểu, khóa này được gọi là khóa chính (primary key).  Một quan hệ chỉ có một khóa chính và có thể có nhiều khóa dự tuyển.  Trong một quan hệ, một hoặc nhiều thuộc tính được gọi là khóa ngoại (foreign key) nếu chúng là khóa chính của một quan hệ khác.14 Cơ sở dữ liệu 12/04/2011
  • Nội dung  Các khái niệm trong Mô hình dữ liệu quan hệ  Phụ thuộc hàm15 Cơ sở dữ liệu 12/04/2011
  • Phụ thuộc hàm  Functional Dependency  Lược đồ quan hệ R(U), r là một quan hệ bất kỳ trên lược đồ quan hệ R, X và Y là 2 tập thuộc tính con của U. Phụ thuộc hàm XY trên R được gọi là “X xác định hàm Y” hoặc “Y phụ thuộc hàm vào X” nếu: t1, t2 r(R): t1[X]=t2[X] => t1[Y]=t2[Y]  X−/ Y được gọi là “X không xác định hàm Y” hay “Y không phụ thuộc hàm vào X”  X được gọi là vế trái của f, ký hiệu là left(f).  Y được gọi là vế phải của f, ký hiệu là right(f).16 Cơ sở dữ liệu 12/04/2011
  • Phụ thuộc hàm (tt)  Phụ thuộc hàm mô tả mối liên hệ, ràng buộc giữa các thuộc tính, là đặc điểm ngữ nghĩa của các thuộc tính trong lược đồ quan hệ.  Được sử dụng trong quá trình chuẩn hóa.  Dựa vào các phụ thuộc hàm này chúng ta có thể thiết kế lại các lược đồ CSDL để loại bỏ sự dư thừa dữ liệu tồn tại trong CSDL.17 Cơ sở dữ liệu 12/04/2011
  • Phụ thuộc hàm (tt)  Phụ thuộc hàm X  luôn luôn thỏa mãn trong mọi quan hệ.  Phụ thuộc hàm  Y thỏa mãn trong các quan hệ mà mọi bộ phận của quan hệ này đều có cùng giá trị Y.  Phụ thuộc hàm XY là một phụ thuộc hàm trên lược đồ quan hệ R(U) nếu X và Y đều là tập con của U  F là tập phụ thuộc hàm trên lược đồ quan hệ R nếu mọi phụ thuộc hàm trong F là phụ thuộc hàm trên R.18 Cơ sở dữ liệu 12/04/2011
  • Phụ thuộc hàm (tt)  Phụ thuộc hàm tầm thường (Trivial functional dependency)  Phụ thuộc hàm XY là PTH tầm thường nếu Y X.  Còn được gọi là phụ thuộc hàm hiển nhiên.  Định thuộc (determinant)  Là thuộc tính xác định của một phụ thuộc hàm.  Là tập thuộc tính bên trái của phụ thuộc hàm  Trong phụ thuộc hàm XY thì X là định thuộc.19 Cơ sở dữ liệu 12/04/2011
  • Hệ tiên đề Armstrong  Phụ thuộc hàm XY được suy diễn luận lý từ F, ký hiệu là F|=XY, nếu mọi quan hệ thỏa mãn tất cả các phụ thuộc hàm trong F thì cũng thỏa mãn XY.  F|=XY còn được gọi là F bao hàm XY hay XY được suy diễn theo quan hệ từ F.  Qui tắc suy diễn (inference rule) là qui tắt nếu một quan hệ thỏa mãn một số phụ thuộc hàm nào đó thì quan hệ này cũng thỏa mãn một số phụ thuộc hàm khác.  Còn được gọi là Luật suy diễn hay Tiên đề suy diễn (inference axiom)20 Cơ sở dữ liệu 12/04/2011
  • Hệ tiên đề Armstrong(tt)  Cho lược đồ quan hệ R(X,Y,Z,W)  Hệ tiên đề Armstrong gồm các tiên đề suy diễn sau:  F1: Phản xạ (reflexivity): Y X => XY  F2: Gia tăng (augmentation): XY => XZYZ  F3: Bắc cầu (transitivity): XY và YZ => XZ  Từ đó, ta có thể suy ra các qui tắc suy diễn sau:  F4: Hợp (additivity): XY và XZ => XYZ  F5: Chiếu (projectivity): XYZ => XZ  F6: Bắc cầu giả (pseudotransitivity): XY và YZW => XZW21 Cơ sở dữ liệu 12/04/2011
  • Bao đóng của tập phụ thuộc hàm  Bao đóng (closure) của một tập phụ thuộc hàm F (ký hiệu F+) là một tập phụ thuộc hàm nhỏ nhất chứa F sao cho không thể áp dụng hệ tiên đề Armstrong trên tập này để tạo ra một phụ thuộc hàm không có trong tập hợp này.  F+ là tập hữu hạn.  F+ = (F+)+.  F+ phụ thuộc vào lược đồ quan hệ R.  Nếu R(A,C) thì F+ không chứa BB.  Tập phụ thuộc hàm F suy diễn XY nếu XY thuộc F+.22 Cơ sở dữ liệu 12/04/2011
  • Bao đóng của tập phụ thuộc hàm (tt)  Ví dụ: Cho F={ABC, CB} là một tập phụ thuộc hàm trên r(ABC). F+ = { AA, ABA, ACA, ABCA, BB, ABB, BCB, ABCB, CC, ACC, BCC, ABCC, ABAB, ABCABC, ACAC, ABCAC, BCBC, ABCBC, ABCABC, ABC, ABAC, ABBC, ABABC, CB, CBC, ACB, ACAB, }23 Cơ sở dữ liệu 12/04/2011
  • Bao đóng của tập thuộc tính  Bao đóng của tập thuộc tính X dựa trên một tập phụ thuộc hàm F (closure of X under F), ký hiệu là X+F, là một tập phụ thuộc hàm Y sao cho:  XY F+  XZ F+ : Z Y  Với tập thuộc tính X bất kỳ thì X X+F vì XX F+24 Cơ sở dữ liệu 12/04/2011
  • Bao đóng của tập thuộc tính (tt)  Giải thuật tìm bao đóng của tập thuộc tính: Procedure Closure( X, F, Closure_X ) { Closure_X = X; repeat Old_X = Closure_X; for mỗi WZ trong F do if W Closure_X then Closure_X = Closure_X Z; until Closure_X = Old_X; }25 Cơ sở dữ liệu 12/04/2011
  • Bao đóng của tập thuộc tính (tt)  Ví dụ: Cho lược đồ quan hệ R(A,B,C,D,E,F) và tập phụ thuộc hàm F={f1:DB, f2:AC, f3:ADE, f4:CF}  Tìm {A}+F: Trước tiên {A}+F = {A}. Duyệt lần thứ nhất tập phụ thuộc hàm F  Từ f2: {A}+F = {AC}  Từ f4: {A}+F = {ACF}  Duyệt lần hai {A}+F không thay đổi. Vậy {A}+F = {ACF}  Tìm {AD}+F: Trước tiên {AD}+F = {AD}. Duyệt lần thứ nhất tập phụ thuộc hàm F  Từ f1: {AD}+F = {ADB}. Từ f2: {AD}+F = {ADBC}  Từ f3: {AD}+F = {ADBCE}. Từ f4: {AD}+F = {ADBCEF} = U  Vậy {AD}+F = U26 Cơ sở dữ liệu 12/04/2011
  • Kiểm tra thành viên trong F+  Để xác định tập phụ thuộc hàm F bao hàm phụ thuộc XY (tức F|=XY) chúng ta chỉ cần kiểm tra XY F+.  Tìm F+ không dễ dàng (vì nó lớn hơn nhiều so với F)  Chúng ta kiểm tra XY F+ mà không cần tìm F+.  Kiểm tra Y X+F, nếu đúng thì F|=XY.27 Cơ sở dữ liệu 12/04/2011
  • Kiểm tra thành viên trong F+ (tt)  Ví dụ: Cho tập phụ thuộc hàm F = {DB, AC, ADE, CB}  Kiểm tra F có bao hàm AB hay không  Tìm A+F = ???  A+F = {ACB}  Do B A+F nên F bao hàm AB.28 Cơ sở dữ liệu 12/04/2011
  • Thuật toán tìm khóa quan hệ  N=U- right(f); F  Nếu N+F = U thì K = {N}  Nếu không thì D= right(f) - F F left(f);  L = U – N+FD; K= ;  Với mỗi Li L:  Nếu {N Li}+F = U thì K = K {NLi};  Với mỗi Ki, Kj K  Nếu Ki Kj thì K = K – {Kj};29 Cơ sở dữ liệu 12/04/2011
  • Thuật toán tìm khóa quan hệ (tt)  Ví dụ 1: Cho lược đồ quan hệ R(A,B,C,D,E,F) và tập phụ thuộc hàm F={DB, AC, ADE, CF}. Tìm tất cả các khóa của R?  N=U- F right(f) = {ABCDEF}-{BCEF} = {AD}  N+F = {AD}+F = {ADBCEF} = U  Vậy lược đồ quan hệ R chỉ có một khóa là {AD}30 Cơ sở dữ liệu 12/04/2011
  • Thuật toán tìm khóa quan hệ (tt)  Ví dụ 2: Cho lược đồ quan hệ R(A,B,C,D,E,F) và tập phụ thuộc hàm F={AD, CAF, ABEC}. N=U- F right(f) = {ABCDEF}-{DAFEC} = {B}  N+F = {B}+F = {B} ≠ U D= F right(f) - F left(f)={DAFEC}-{ACB}={DFE}  L = U – N+FD = {ABCDEF}-{BDFE} = {AC}  Các tập con của L là {A}, {C} và {AC}  {BA}+F = {BADECF} = U. Vậy {BA} là khóa của R. Loại bỏ tập cha của {A}, đó là {AC}  {BC}+F = {BCAFED} = U. Vậy {BC} là khóa của R. Loại bỏ tập cha của {C}, đó là {AC}  Lược đồ quan hệ R có 2 khóa là {BA} và {BC}.31 Cơ sở dữ liệu 12/04/2011
  • Phủ tối thiểu của tập phụ thuộc hàm  B1: Tách các phụ thuộc hàm sao cho vế phải chỉ còn một thuộc tính.  B2: Bỏ các thuộc tính dư thừa ở vế trái.  B3: Loại khỏi F các phụ thuộc hàm dư thừa.32 Cơ sở dữ liệu 12/04/2011
  • Phủ tối thiểu của tập phụ thuộc hàm  Ví dụ: Cho lược đồ quan hệ R(A,B,C,D) và tập phụ thuộc hàm F={ABCD, BC, CD}. Tìm phủ tối thiểu?  B1: Tách các phụ thuộc hàm sao cho vế phải chỉ có 1 thuộc tính.  F = {ABC, ABD, BC, CD}33 Cơ sở dữ liệu 12/04/2011
  • Phủ tối thiểu của tập phụ thuộc hàm  Ví dụ: Cho lược đồ quan hệ R(A,B,C,D) và tập phụ thuộc hàm F={ABCD, BC, CD}. Tìm phủ tối thiểu?  B2: Bỏ các thuộc tính dư thừa vế trái  BC, CD không xét vì vế trái chỉ có một thuộc tính.  Xét ABC  Nếu bỏ A thì B+=BCD không chứa A nên ko bỏ A.  Nếu bỏ B thì A +=A không chứa B nên ko bỏ B.  Xét ABD  Nếu bỏ A thì B+=BCD không chứa A nên ko bỏ A.  Nếu bỏ D thì A+=A không chứa D nên ko bỏ D.34 Cơ sở dữ liệu 12/04/2011
  • Phủ tối thiểu của tập phụ thuộc hàm  Ví dụ: Cho lược đồ quan hệ R(A,B,C,D) và tập phụ thuộc hàm F={ABCD, BC, CD}. Tìm phủ tối thiểu?  B3: Loại khỏi F các phụ thuộc hàm dư thừa.  Xét ABC: Tính AB+ = ABCD = U nên loại bỏ ABC  Xét ABD: Tính AB+ = ABCD = U nên loại bỏ ABD  Xét BC: Tính B+ = B không thể bỏ  Xét CD: Tính C+ = C không thể bỏ  Phủ tối thiểu là {BC, CD}35 Cơ sở dữ liệu 12/04/2011
  • Q&A 36