tÀi liỆu Ôn thi tỐt nghiÊp - wordpress.com...tÀi liỆu Ôn thi tỐt nghiỆp 2011 3 kiss...
TRANSCRIPT
TÀI LIỆU ÔN THI TỐT NGHIỆP 2011
1 KISS
CƠ SỞ DỮ LIỆU I
Database (Cơ sở dữ liệu)
Cơ sở dữ liệu là: + Sự tập hợp có tổ chức các dữ liệu + Các dữ liệu có liên quan luận lý với nhau
+ Dữ liệu được nhiều người sử dụng chung Data (Dữ liệu)
Dữ liệu là: + Sự biểu hiện của các đối tượng và sự kiện được ghi nhận và lưu trữ trong máy tính.
Dữ liệu có hai loại: + Dữ liệu có cấu trúc: số, ngày, chuỗi kí tự …
+ Dữ liệu không có cấu trúc: hình ảnh, âm thanh, đoạn phim … Thông tin
Thông tin là :
+ Dữ liệu đã được xử lý để làm tăng sự hiểu biết của người sử dụng dữ liệu + Dữ liệu được đặt trong ngữ cảnh thông tin
+ Dữ liệu được tổng hợp, xử lý thông tin Siêu dữ liệu (metadata)
Siêu sữ liệu là:
+ Là dữ liệu dùng để mô tả các tính chất hoặc các đặc điểm của dữ liệu khác, chẳng hạn như các định nghĩa dữ liệu, các cấu trúc dữ liệu và các quy tắc (các ràng buộc)
Cơ sở dữ liệu quan hệ (relational database)
Cơ sở dữ liệu quan hệ là:
+ CSDL mà dữ liệu được lưu trữ trong các bảng (quan hệ) Miền trị (domain)
+ Là tập hợp các giá trị hợp lệ của một hoặc nhiều thuộc tính
+ Miền trị của thuộc tính A được kí hiệu là dom(A) Ex : dom(Phai) = {„nam‟,‟nu‟}
Quan hệ (relation)
+ Là một khái niệm toán học + Là một bảng dữ liệu hai chiều được đặt tên. Mỗi quan hệ bao gồm các cột được
đặt tên và nhiều hàng. + Dùng để lưu trữ thông tin về các đối tượng được biểu diễn trong cơ sở dữ liệu
Dữ liệu không phải là một phần của quan hệ Thuộc tính (attribute)
+ Thuộc tính của một quan hệ là một cột được đặt tên của một bảng.
+ Thứ tự xuất hiện các thuộc tính trong một quan hệ là không quan trọng và quan hệ vẫn không bị thay đổi.
Bộ (tuple)
+ Bộ của một quan hệ là một hàng của một bảng. + 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 bị thay đổi. ex : Một bộ t của quan hệ Sinhvien là:
TÀI LIỆU ÔN THI TỐT NGHIỆP 2011
2 KISS
t = („075400128‟,‟Nguyen Van A‟,‟nam‟,01/01/1989
Thành phần của một bộ (component)
+ Thành phần của một bộ là một giá trị của một hàng
+ ex : Thành phần masv của bộ t là „075400128‟
Bậc của một quan hệ là số lượng các thuộc tính của quan hệ Cơ sở dữ liệu quan hệ (relational database)
+ Là cơ sở dữ liệu mà dữ liệu được lưu trữ trong các quan hệ (bảng). Cơ sở dữ liệu quan hệ bao gồm nhiều quan hệ.
Miền (domain) – Quan hệ toán học
+ Là một tập hợp các giá trị hợp lệ. Thông thường tên của miền được kí hiệu bằng chữ D
Tích Descartes (Cartesian product)
+ Tích Descartes của các miền D1 , D2 ,…, Dn ký hiệu D1 x D2 x … x Dn là một tập
các phần tử (d1, d2, …,dn) sao cho di Di D = D1 x D2 x … x Dn = {(d1, d2, …, dn) | di Di , 1 ≤ i ≤ n }
Quan hệ (relation) – Quan hệ toán học
+ Là một tập con của tích Descartes
Lược đồ quan hệ (relation schema) – Quan hệ cơ sở dữ liệu
+ Cho A1, A2 , …,An là tên của các thuộc tính thuộc các miền D1, D2, …, Dn theo thứ tự tương ứng. + Lược đồ quan hệ đượ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. Lược đồ quan hệ được biểu diễn như sau: + R(A1, A2, …, An) với 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ệ.
+ Gọi U = {A1, A2, …, An} là tập các thuộc tính của lược đồ quan hệ R
+ Lược đồ quan hệ R(U) có bậc n Quan hệ r:
+ Quan hệ r trên lược đồ quan hệ R, kí hiệu là 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 ≤ n. + Quan hệ r là một thể hiện quan hệ của lược đồ quan hệ R tại một thời điểm
+ Mỗi ánh xạ của quan hệ là một bộ của quan hệ và được ký hiệu là: (A1: d1, A2:d2, …, An : dn) với di DI , 1 ≤ i ≤ n
+ Thành phần Ai của một bộ được kí hiệu là t[Ai], thành phần có nhiều thuộc
tính X = {Ai, …., Aj} của bộ t được kí hiệu là t[X] Siêu khóa (subperkey)
+ Siêu khóa của một quan hệ là một thuộc tính hoặc một tập các thuộc tính dùng để xác định duy nhất một bộ của quan hệ này.
Khóa dự tuyển của một quan hệ
+ Là một siêu khóa K mà không có một tập con thực sự bất kì K ‟ K lại là một siêu khóa.
+ Khóa dự tuyển K của một quan hệ r có hai đặc điểm:
(1) Tính duy nhất: các giá trị của K trong các bộ của r là duy nhất (không
trùng nhau)
TÀI LIỆU ÔN THI TỐT NGHIỆP 2011
3 KISS
(2) Tính tối giản: Không có một tập con thực sự bất kỳ K‟ K lại có tính duy
nhất. Tính chất này còn được gọi là tính tối thiểu. Khóa phức hợp
+ Là một khóa có nhiều hơn một thuộc tính. Khóa chính (primary key)
+ Là một khóa dự tuyển được chọn để xác định duy nhất một bộ của quan hệ.
+ Khóa chính có thể chỉ có một thuộc tính hoặc là một khóa phức hợp bao gồm nhiều thuộc tính.
Khóa ngoại (foreign key)
+ Khóa ngoại là một thuộc tính hoặc một tập thuộc tính của một quan hệ tương ứng với (tham chiếu đến) khóa dự tuyển của một quan hệ khác hoặc của cùng
quan hệ này. Khóa (key)
+ Khóa của lược đồ quan hệ R có tập thuộc tính U = {A1, A2, …, Am} là một tập con K = {Aj1, Aj2,…, Ajn}, với j1, j2, …, jn là các số nguyên phân biệt và nằm trong khoảng từ 1 đến m, phải thỏa mãn đồng thời hai điều kiện sau đây:
(1) r(R), t1, t2 r, nếu t1 t2 thì t1[K] t2[K]
(2) Không tồn tại K‟ K sao cho K‟ thỏa mãn điều kiện 1.
Thuật toán tìm tất cả các khóa:
U: Tập thuộc tính F: Tập phụ thuộc hàm
K: Tập khóa
func Set_of_keys(U, F, out K) {
N = U - ( )f F
right f
if ( N+F = U) K = {N}
else {
D = ( ) e ( )f F f F
right f l ft f
L = U – N+FD
K =
for each Li L {
if ( {NLi}+
F = U)
K = K {NLi}
while Ki, Kj K và Ki Kj K = K – {Kj}
} }
}
Ví dụ:
R(ABCDEFGH) Tập thuộc tính U = {ABCDEFGH}
TÀI LIỆU ÔN THI TỐT NGHIỆP 2011
4 KISS
F = {
f1: B G, f2: BE H,
f3: CF A, f4: F BE, f5: E FA,
f6: F G }
Yêu cầu: Tìm tất cả các khóa của R
Giải
N = U - ( )f F
right f
= {ABCDEFGH} – {GHABEF} = {CD}
N+F = {CD}+
F = {CD} Vì N+
F U do đó:
D = ( ) e ( )f F f F
right f l ft f
= {GHABEF} – {BECF} = {GHA}
L = U – N+FD = {ABCDEFGH} – {CDGHA} = {BEF}
Xét các tập con Li của L: Li L
{Li} = {BEF, BE, BF, EF, B, E, F} (L có n thuộc tính thì có 2n – 1 tập) Tìm {NLi}+
F:
{CDB}+F = {CDBGH} U
{CDE}+
F = {CDEFAGBH} = U
{CDE} là một khóa của R, loại bỏ các tập cha của Li = {E} trong L : {BE}, {EF}, {BEF}
{CDF}+F = {CDFBEGHA} = U
{CDF} là 1 khóa của R, loại bỏ các tập cha của {F}: {BF} Kết luận:
R có 2 khóa là {CDE} và {CDF} Chú ý: Nếu N+
F = U R chỉ có 1 khóa là N
Ví dụ 2: R(ABCDE) Tập thuộc tính U = {ABCDE}
F = { f1: A BCDE, f2: B CD,
f3: C ABDE, f4: E D
} Yêu cầu: Tìm tất cả các khóa của R
Giải
f1
f1 f6 f4 f1
TÀI LIỆU ÔN THI TỐT NGHIỆP 2011
5 KISS
N = U - ( )f F
right f
= {ABCDE} – {BCDEA} =
N+F =
Vì N+F U do đó:
D = ( ) e ( )f F f F
right f l ft f
= {ABCDE} – {ABCE} = {D}
L = U – N+FD = {ABCDE} – {D} = {ABCE}
Xét các tập con Li của L: Li L
{Li} = {A, B, C, E, AB, AC, AE, BC, BE,CE, ABC, ABE, ACE, BCE, ABCE} (L có n thuộc tính thì có 2n – 1 tập)
Tìm {NLi}+F:
{A}+F = {ABCDE} = U {A} là khóa loại các tập cha của A
{B}+F = {BCDEA} = U {B} là khóa loại các tập cha của B
{D}+F = {D} U {D} không là khóa
{E}+F = {ED} U {E} không là khóa
Phụ thuộc hàm
Cho một 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à
hai tập thuộc tính con của U. Phụ thuộc hàm X Y trên lược đồ quan hệ R, đọc 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]
Tức là mỗi giá trị của X trong r chỉ tương ứng với một giá trị của Y. X -/→ Y đọc là “X không xác định hàm Y” hoặc “ Y không phụ thuộc hàm vào X”
Trong phụ thuộc hàm f: X Y, X được gọi là vế trái của f, ký hiệu là left(f) và Y được gọi là vế phải của f, ký hiệu là right(f). Quy ước: X, Y,Z : là tập các thuộc tính. A,B,C là 1 thuộc tính
Phụ thuộc hàm riêng phần :
Y X: Y A Phát biểu : tồn tại Y là tập con thực sự của X sao cho Y xác định A Ví dụ: Cho quan hệ
sinhvien(masv, hoten, ngaysinh) Phụ thuộc hàm {masv,hoten} ngày sinh là một phụ thuộc hàm riêng phần vì :
{masv} {masv,hoten}: masv ngaysinh
Phụ thuộc hàm đầy đủ:
, ( )Y X Y A A X
Phát biểu: không tồn tại Y là tập con thực sự của X sao cho Y xác định A, với A thuộc X
Ví dụ: Cho quan hệ Bangdiem(masv,mamh,diemthi) Phụ thuộc hàm {masv,mamh} diemthi là một phụ thuộc hàm đầy đủ vì:
{masv} -/ diemthi
{mamh} -/ diemthi
Phụ thuộc bắc cầu:
TÀI LIỆU ÔN THI TỐT NGHIỆP 2011
6 KISS
X A là phụ thuộc bắc cầu nếu Y sao cho:
X Y,Y A
/ ,X A XY
Y
Ví dụ:
sinhvien(masv, hoten, socmnd, malop, tenlop) f1: masv {hoten, socmnd, malop, tenlop}
f2: malop tenlop f3: socmnd {masv, hoten, malop, tenlop}
masv tenlop là phụ thuộc bắc cầu ? Đúng Giải thích:
malop (Y) : masv (X) malop (Y) , malop (Y) tenlop (A) malop (Y) -/-> masv (X), tenlop (A) {masv, malop} XY
socmnd tenlop là phụ thuộc bắc cầu ? Sai
Giải thích:
masv (Y) : socmnd (X) masv (Y) , masv (Y) socmnd (X) masv (Y) tenlop (A), tenlop (A) {socmnd, masv} XY
Hệ tiên đề Armstrong
Cho lược đồ quan hệ R(U) và X,Y,Z,W là các tập con của U
F1. Phản xạ: Y X => X Y
Phát biểu: Nếu Y là một tập con của X thì X xác định hàm Y Ví dụ : {hoten, phai} hoten F2.Gia tăng: X Y => XZ YZ
Phát biểu: Nếu X xác định hàm Y thì X hợp với Z xác định hàm Y hợp với Z F3. Bắc cầu: X Y và Y Z => X Z
Phát biểu: Nếu X xác định hàm Y và Y xác định hàm Z thì X xác định hàm Z Các quy tắc được suy ra từ hệ tiên đề Armstrong F4. Hợp : X Y và X Z => X YZ
Phát biểu: Nếu X xác định hàm Y và X xác định hàm Z thì X xác định hàm Y hợp Z F5. Chiếu: X YZ => X Y và X Z
Phát biểu: Nếu X xác định hàm Y hợp Z thì X xác định hàm Y và X xác định hàm Z F6. Bắc cầu giả: X Y và YZ W => XZ W Phát biểu: Nếu X xác định hàm Y và Y hợp Z xác định hàm W thì X hợp với Z xác định
hàm W
Bao đóng
Bao đóng của một 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à XF
+, là một tập thuộc tính Y sao cho :
(1) X Y F+
Phát biểu: Tồn tại X xác định Y thuộc bao đóng của tập phụ thuộc hàm F
(2) X Z F+ : Z Y
Phát biểu : Với mọi X xác định hàm Z thuộc bao đóng của tập phụ thuộc hàm F thì Z là tập con của Y
Hệ quả: Với một tập X bất kỳ thì X X+F vì X X F+
TÀI LIỆU ÔN THI TỐT NGHIỆP 2011
7 KISS
Ví dụ:
R(ABCDEF) F = {
f1: D B, f2: A C, f3: AD E,
f4: C F }
1. Tìm A+F = {A}
Lần lặp 1: Lấy vế trái coi là tập con của vế phải {A} Từ f2 lấy vế phải bổ sung vào A+
F A+F = {AC}
Từ f4 lấy vế phải bổ xung vào A+F A+
F = {ACF} (có đổi tiếp tục lặp) (có thêm vào thì đánh dấu không sử dụng lại)
Lần lặp 2: Kết luận: AF
+ = {ACF}
2. Tìm {AD}+F = {AD}
Từ f1: {AD}+F = {ADB}
Từ f2: {AD}+F = {ADBC}
Từ f3: {AD}+F = {ADBCE}
Từ f4: {AD}+F = {ABCDEF}
Kết luận: {AD}+F = {ABCDEF}
Chuẩn hóa
Chuẩn hóa là một quá trình thuận nghịch từng bước để thay thế tập các quan hệ cho trước
thành các quan hệ có cấu trúc đơn giản hơn và chuẩn hơn. Mục đích của chuẩn hóa là loại bỏ các bất thường (anomaly) của một quan hệ để có được
các quan hệ có cấu trúc tốt hơn, chuẩn hơn.
Định nghĩa dạng chuẩn 1 (1NF – First Normal Form)
Lược đồ quan hệ R ở dạng chuẩn 1 nếu mọi thuộc tính của R đều chứa các giá trị nguyên tố, giá trị này không là một danh sách các giá trị hoặc các giá trị phức hợp.
Định nghĩa dạng chuẩn 2 (2NF – Second Normal Form)
Lược đồ quan hệ R ở dạng chuẩn 2 đối với tập phụ thuộc hàm F nếu R ở dạng chuẩn 1
và mọi thuộc tính không khóa đều phụ thuộc hàm đầy đủ vào mọi khóa của R Chú ý:
X A là phụ thuộc hàm đầy đủ: Z X : Z A
X A là phụ thuộc hàm riêng phần:
Z X : Z A
Định nghĩa dạng chuẩn 3 (3NF – Thirt Normal Form)
Lược đồ quan hệ R ở dạng chuẩn 3 đối với tập phụ thuộc hàm F nếu R ở dạng chuẩn 1 và mọi thuộc tính không khóa đều không phụ thuộc bắc cầu vào một khóa của R
Chú ý: X A là phụ thuộc bắc cầu nếu:
TÀI LIỆU ÔN THI TỐT NGHIỆP 2011
8 KISS
Y: X Y, Y A và Y -/-> X, A XY
Dạng chuẩn BCNF
Lược đồ quan hệ R ở dạng chuẩn BCNF nếu R ở dạng chuẩn 1 và mọi định thuộc đều là
siêu khóa
Ví dụ : Cho lược đồ quan hệ R(sinhvien, giangvien, monhoc)
Tập phụ thuộc hàm: {sinhvien, monhoc} giangvien, giangvien monhoc Ta dễ dàng tìm được khóa : {sinhvien, monhoc}, {sinhvien, giangvien}
sinhvien monhoc giangvien
SV1 CSDL GV1
SV2 MMT GV1
Ta thấy quan hệ này có bất thường (không thỏa phụ thuộc hàm giangvien monhoc) do
giangvien monhoc có định thuộc giangvien không là một siêu khóa Phải phân rã lược đồ trên thành 2 lược đồ con
R1 (giangvien, monhoc)
R2 (sinhvien, giangvien)
Như vậy lược đồ của chúng ta đã thỏa dạng chuẩn BCNF
Phủ tối thiểu
Phủ tối thiểu của một tập phụ thuộc hàm F là một tập phụ thuộc hàm được suy ra từ F mà:
(1) Mọi phụ thuộc hàm mà vế phải chỉ có một thuộc tính
f: X Y => Y là một thuộc tính (2) Mọi phụ thuộc hàm là phụ thuộc hàm đầy đủ (vế trái không dư thừa)
f: X A => ~ Z X : Z A F+ (3) Mọi phụ thuộc hàm là không dư thừa (không được suy từ các phụ thuộc hàm
còn lại bằng cách dùng các luật suy diễn Armstrong)
f: X A M : (M – {f}) + = M+ Ví dụ:
Bước 1: Biến đổi tất cả các phụ thuộc hàm mà vế phải có nhiều thuộc tính thành các
phụ thuộc hàm mà vế phải chỉ có một thuộc tính (phép chiếu)
R(ABCDEFGH) F = {
B GH, BE H,
CF A, F BE, E FA,
F G }
F = { f1: B G,
TÀI LIỆU ÔN THI TỐT NGHIỆP 2011
9 KISS
f2: B H,
f3: BE H, f4: CF A,
f5: F B, f6: F E, f7: E F,
f8: E A, f9: F G
} Bước 2: Xét các phụ thuộc hàm đầy đủ. (Các phụ thuộc hàm mà vế trái có 2 thuộc
tính trở lên)
Xét f3: BE H; Xét B và E B+
F = {BGH} có chứa H B H Thay thế {BE} H bằng B H
Trùng f2: Bỏ f3: BE H Xét f4: CF A; C, F (tập con thật sự)
C+F = {C} không chứa A
F+F = {FBEAG} có chứa A
Thay thế CF A với F A
F = { f1: B G,
f2: B H, f3: BE H,
f4: F A, f5: F B, f6: F E,
f7: E F, f8: E A,
f9: F G }
Bước 3: Loại bỏ các phụ thuộc hàm dư thừa (là các phụ thuộc hàm được suy ra từ các
phụ thuộc hàm còn lại bằng cách dùng các luật suy dẫn)
Xét f1: B G B+
F-{f1} = {BH} không chứa G phụ thuộc hàm không dư thừa
Xét f2: B H B+
F – {f2} = {BG} không chứa H phụ thuộc hàm không dư thừa
Xét f4: F A F+
F – {f4} = {FBGEAH} chứa A phụ thuộc hàm dư thừa Bỏ f4: F1 = F – {f4}
F1 = {
TÀI LIỆU ÔN THI TỐT NGHIỆP 2011
10 KISS
f1: B G,
f2: B H, f3: BE H,
f4: F A, f5: F B, f6: F E,
f7: E F, f8: E A,
f9: F G }
Xét f5: F B F+
F1-{f5} = {FEAG} không chứa B là phụ thuộc hàm không dư thừa
Xét f7: E F E+
F1-{f7} = {EA} không chứa F là phụ thuộc hàm không dư thừa Xét f8: E A
E+F1-{f8} = {EFGBH} không chứa A là phụ thuộc hàm không dư thừa
Xét f9: F G
F+F1-{f9} = {FBEAGH} chứa G là phụ thuộc hàm dư thừa
Bỏ f9: F2 = F1 – {f9}
F2 = { f1: B G,
f2: B H,
f3: BE H, f4: F A,
f5: F B, f6: F E, f7: E F,
f8: E A, f9: F G
} Kết luận: Phủ tối thiểu của F là F2
Phân rã
Cho R(U) và = 1,
( )i n
Ri Ui
= {R1(U1), R2(U2), …, Rn(Un)}
là một phân rã của R nếu:
(1) U = 1,i n
Ui
= U1 U2 … Un và Ui U
(2) r(R) : ri = Ui(r) , i = 1,n (quan hệ ri phải tồn tại trong lược đồ quan hệ R)
Ví dụ: Cho R(ABCDEF). Hỏi : Trong các phân rã sau, phân rã nào là phân rã của R ?
TÀI LIỆU ÔN THI TỐT NGHIỆP 2011
11 KISS
1 = {R1(ABCDEF), R2(ABC)} Sai, vì {ABCDEF} = {R} vi phạm quy tắc 1, quan
hệ sau khi phân rã phải là tập con thực sự của R
2 = {R1(ABC), R2(CDE)} Sai, vì R1 R2 R
3 = {R1(ABCD), R2(CDE), R3(F)} Đúng
4 = {R1(ABCDE), R2(CDE), R3(FG)} Sai, vì {G} {ABCDEF} vi phạm quy tắc
2
5 = {R1(ABCD), R2(CDE), R3(DF)} Đúng
Thuật toán:
Input: R(U), F là phủ tối thiểu
Output: = {Ri(Ui)}i=1,n là phân rã bảo toàn thông tin và ở dạng chuẩn 3
func Decomposition(U)
{ E = {f: W Z | f F+ ^ WZ U}
if (E = ) = {R(U)}
else {
chọn f: W Z E U1 = WZ
U2 = U – Z Decomposition(U1) Decomposition(U2)
} }
Ví dụ: Cho lược đồ R(ABCDEFGH),
F = { f1: B GH, f2: F BE,
f3: E FA }
Hãy phân rã lược đồ này thành các lược đồ con ? (Để cho dễ dàng, phải tìm khóa trước, vì các lược đồ con chỉ bảo toàn thông tin khi trong
phân rã chứa một lược đồ là khóa của R, nên nếu trong phân rã mà thấy không có chứa khóa của R thì ta biết là đã phân rã sai)
Lược đồ trên có 2 khóa là {CDE}, {CDF} (thuật toán tìm khóa có thể tham khảo phần trên)
Giải
TÀI LIỆU ÔN THI TỐT NGHIỆP 2011
12 KISS
Phân rã bảo toàn thông tin
Cho R(U) và = {Ri(Ui)} i = 1,n = {R1(U1), R2(U2), …, Rn(Un)}
là một phân rã của R
Phân rã của R là phân rã bảo toàn thông tin nếu:
r(R) : ri = Ri(Ui)
r = ri, i= 1,n = r1 r2 , …, rn Phát biểu: phân rã là bảo toàn thông tin nếu có thể tái tạo lại quan hệ gốc bằng các phép kết từ các quan hệ đã phân rã.
Phân rã bảo toàn phụ thuộc hàm
Cho R(U) và = {Ri(Ui)} i = 1,n = {R1(U1), R2(U2), …, Rn(Un)}
là một phân rã của R
Gọi Fi là một tập phụ thuộc hàm được thỏa trong Ri , i = 1,n
f: X Y Fi => f F+ và XY Ui
Phân rã của R là phân rã bảo toàn phụ thuộc hàm nếu:
F+ = (Fi)+ , i = 1,n = (F1 F2 …Fk)+
Với F là tập phụ thuộc hàm trong R và Fi là tập phụ thuộc hàm trong Ri , i = 1,n
Bài toán thành viên: Một tập phụ thuộc hàm F bao hàm tập phụ thuộc hàm X Y kí hiệu |F X Y nếu mọi quan hệ r 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 Y X+F)
R(ABCDEFGH) f1: B GH
B+F = {BGH}
R1(BGH)
(có trong B+F thì ghi)
R2(BACDEF) (không có trong B+
F thì ghi)
f3: E FA
E+F = {EFABGH}
R3(EFAB) f2: F BE
F+F = {FBEGHA}
giống như trên nên không tiếp tục
nữa
R4(ECD)
(chứa một khóa của R)
TÀI LIỆU ÔN THI TỐT NGHIỆP 2011
13 KISS
Thuật toán:
func Member(X Y, F) : bool
{
if (Y X+F) Member = true
else Member = false
}
Xác định dạng chuẩn:
Để xác định dạng chuẩn của một lược đồ CSDL thì có nhiều cách, nhưng suy cho cùng
thì cũng chỉ có một nguyên tắc: Xét tất cả các phụ thuộc hàm vi phạm, sau đó kiểm tra xem là thuộc vi phạm dạng chuẩn nào và phải kiểm tra từ dạng chuẩn cao nhất trước (BCNF, NF3, NF2). Chú ý: dạng chuẩn 1 thì đề bài không nói ta cũng biết là nó phải
thỏa, vì đã cho tập phụ thuộc hàm thì chỉ có thể xét từ dạng chuẩn 2 trở lên. Ở đây trình bày cách xác định vi phạm thông dụng là thông qua việc xét khóa.
Ví dụ:
Cho lược đồ < R, F >, với R(ABCDE) , F ={AB → CD, D → C , AC → EB, AE→ B }. Hãy:
Xác định dạng chuẩn của < R, F >
Giải
Bước 1: Tìm tất cả các khóa của R (xem phương pháp ở trên)
N = U - ( )f F
right f
= {ABCDE} – {CDEB} = {A}
N+F = {A}+
F = {A}
Vì N+F U do đó:
D = ( ) e ( )f F f F
right f l ft f
= {CDEB} – {ABDC} =
L = U – N+FD = {ABCDE} – {A} = {BCDE}
Xét các tập con Li của L: Li L
{Li} = {B, C, D, E, BC, BD, BE, CD, CE, DE, BCD, BCE, BDE, CDE, BCDE } (L
có n thuộc tính thì có 2n – 1 tập) Tìm {NLi}+
F:
{AB}+F = {ABCDE} = U {AB} là một khóa của R, loại bỏ các tập cha của {B} khỏi
Li {BC, BD, BE, BCD, BCE, BDE, BCDE} {AC}+
F = {ACEBD} = U {AC} là một khóa của R, loại bỏ các tập cha của {C} khỏi
Li {CD, CE, CDE} {AD}+
F = {ADCEB} = U {AD} là một khóa của R, loại bỏ các tập cha của {D} khỏi
Li {DE} {AE}+
F = {AEBCD} = U {AE} là một khóa của R, loại bỏ các tập cha của {E} khỏi Li
TÀI LIỆU ÔN THI TỐT NGHIỆP 2011
14 KISS
Kết luận:
R có 4 khóa là {AB}, {AC}, {AD}, {AE}
Bước 2: Xác định dạng chuẩn
AB CD D C AC EB AE B
BCNF Thỏa Không thỏa Thỏa Thỏa
ND3 Thỏa
ND2
Vậy kết luận: Lược đồ CSDL trên đạt dạng chuẩn cao nhất là dạng chuẩn 3 Giải thích:
Phát biểu của dạng chuẩn BCNF: “Lược đồ CSDL ở dạng chuẩn BCNF nếu nó ở dạng
chuẩn 1 và mọi định thuộc đều là siêu khóa” Ở bài trên các siêu khóa là : {AB}, {AC}, {AD}, {AE} (khóa cũng là siêu khóa ?
mâu thuẫn gì ở đây)
Cách nhận biết: Nếu phụ thuộc hàm nào mà tồn tại thuộc tính bên vế trái không phải là khóa thì vi phạm dạng chuẩn BCNF hay Nếu X A thì
- A là thuộc tính xuất hiện trong X hoặc
- X chứa một khóa của quan hệ R
Xét AB CD: Có {AB} là siêu khóa Thỏa Xét D C: Có {D} không là siêu khóa Không thỏa
Xét AC EB: Có {AC} là siêu khóa Thỏa Xét AE B: Có {AE} là siêu khóa Thỏa
Vì có một phụ thuộc hàm D C không thỏa chuẩn BCNF, ta sẽ tiếp tục xét phụ thuộc hàm này có thỏa chuẩn 3 hay không.
Phát biểu của dạng chuẩn 3: “Lược đồ quan hệ R ở dạng chuẩn 3 đối với tập phụ thuộc
hàm F nếu R ở dạng chuẩn 1 và mọi thuộc tính không khóa đều không phụ thuộc bắc
cầu vào một khóa của R”
Phát biểu thì phức tạp nhưng ta có thể hiểu thế này : “mọi thuộc tính không khóa đều
không phụ thuộc bắc cầu vào một khóa của R” vế phải có chứa thuộc tính khóa thì
thỏa D C với C là thuộc tính khóa vậy D C đạt chuẩn 3
Phát biểu của dạng chuẩn 2: “Lược đồ quan hệ R ở dạng chuẩn 2 đối với tập phụ thuộc
hàm F nếu R ở dạng chuẩn 1 và mọi thuộc tính không khóa đều phụ thuộc hàm đầy
đủ vào mọi khóa của R”
TÀI LIỆU ÔN THI TỐT NGHIỆP 2011
15 KISS
Với phụ thuộc hàm mà vế trái chỉ có một thuộc tính hoặc vế trái là khóa thì đó là
phụ thuộc hàm đầy đủ.
Kết luận: Vậy dạng chuẩn cao nhất của lược đồ trên là dạng chuẩn 3
Một số bài tập về đại số quan hệ: