15
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 - WordPress.com...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

  • Upload
    others

  • View
    21

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 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 (2) Tính tối giản: Không có một tập con thực sự bất kỳ K‟ K

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à:

Page 2: 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 (2) Tính tối giản: Không có một tập con thực sự bất kỳ K‟ K

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)

Page 3: 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 (2) Tính tối giản: Không có một tập con thực sự bất kỳ K‟ K

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}

Page 4: 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 (2) Tính tối giản: Không có một tập con thực sự bất kỳ K‟ K

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

Page 5: 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 (2) Tính tối giản: Không có một tập con thực sự bất kỳ K‟ K

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:

Page 6: 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 (2) Tính tối giản: Không có một tập con thực sự bất kỳ K‟ K

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+

Page 7: 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 (2) Tính tối giản: Không có một tập con thực sự bất kỳ K‟ K

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:

Page 8: 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 (2) Tính tối giản: Không có một tập con thực sự bất kỳ K‟ K

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,

Page 9: 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 (2) Tính tối giản: Không có một tập con thực sự bất kỳ K‟ K

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 = {

Page 10: 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 (2) Tính tối giản: Không có một tập con thực sự bất kỳ K‟ K

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 ?

Page 11: 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 (2) Tính tối giản: Không có một tập con thực sự bất kỳ K‟ K

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

Page 12: 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 (2) Tính tối giản: Không có một tập con thực sự bất kỳ K‟ K

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)

Page 13: 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 (2) Tính tối giản: Không có một tập con thực sự bất kỳ K‟ K

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

Page 14: 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 (2) Tính tối giản: Không có một tập con thực sự bất kỳ K‟ K

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”

Page 15: 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 (2) Tính tối giản: Không có một tập con thực sự bất kỳ K‟ K

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ệ: