Tải bản đầy đủ (.pdf) (15 trang)

ôn tập cơ sở dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (778.59 KB, 15 trang )

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 D
1
, D
2
,…, D
n
ký hiệu D
1
x D
2
x … x D
n
là một tập
các phần tử (d
1
, d
2
, …,d
n
) sao cho d
i



D
i

D = D
1
x D
2
x … x D
n
= {(d
1,
d
2
, …, d
n
) | d
i


D
i
, 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 A
1
, A

2
, …,A
n
là tên của các thuộc tính thuộc các miền D
1
, D
2
, …, D
n
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 {A
1
, A
2
, …,A
n
} được ghi trong hai dấu ngoặc đơn. Lược đồ quan hệ
được biểu diễn như sau:
+ R(A
1
, A
2
, …, A
n
) 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 = {A
1

, A
2
, …, A
n
} 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ạ
{t
1
, t
2
,…,t
p}
từ R vào D với điều kiện mọi ánh xạ t

r thì t[A
i
]


D
i
, 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à:
(A
1:
d

1,
A
2
:d
2
, …, A
n
: d
n
) với d
i



D
I
, 1 ≤ i ≤ n
+ Thành phần A
i
của một bộ được kí hiệu là t[A
i
], thành phần có nhiều thuộc
tính X = {A
i, ….,
A
j
} 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 = {A
1
, A
2
, …, A
m
} là một tập
con K = {Aj
1
, Aj
2
,…, Aj
n
}, với j
1
, j
2
, …, j
n
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),


t
1
, t
2


r, nếu t
1


t
2
thì t
1
[K]

t
2
[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 -
()
fF
right f



if ( N
+
F
= U) K = {N}
else {
D =
( ) e ( )
f F f F
right f l ft f
   



L = U – N
+
F
D
K =



for each L
i


L {
if ( {NL
i
}
+
F
= U)
K = K

{NL
i
}
while

K
i
, K
j

K và K
i


K
j


K = K – {K
j
}
}
}
}
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 -
()
fF

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
+
F
D = {ABCDEFGH} – {CDGHA} = {BEF}
Xét các tập con L

i
của L: L
i


L
{L
i
} = {BEF, BE, BF, EF, B, E, F}  (L có n thuộc tính thì có 2
n
– 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 L
i

= {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 -
()
fF
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
+
F
D = {ABCDE} – {D} = {ABCE}
Xét các tập con L
i
của L: L
i


L
{L
i
} = {A, B, C, E, AB, AC, AE, BC, BE,CE, ABC, ABE, ACE, BCE, ABCE}  (L có
n thuộc tính thì có 2
n
– 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:

t
1
, t
2


r(R): t
1
[X] = t

2
[X] => t
1
[Y] = t
2
[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à X
F
+
, 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: A
F
+

= {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
R
1
(giangvien, monhoc)
R
2
(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,
()
in
Ri Ui

= {R
1
(U
1
), R
2

(U
2
), …, R
n
(U
n
)}

là một phân rã của R nếu:
(1) U =
1,in
Ui


= U
1


U
2




U
n
và U
i



U
(2)

r(R) : r
i
=

Ui
(r) , i = 1,n (quan hệ r
i
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:

= {R
i
(U
i
)}
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
U
1
= WZ
U
2
= U – Z
Decomposition(U
1
)
Decomposition(U
2
)
}
}

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à

= {R
i
(U

i
)} i = 1,n = {R
1
(U
1
), R
2
(U
2
), …, R
n
(U
n
)}

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) : r
i
=

Ri
(U
i
)
r =


r
i,
i= 1,n = r
1


r
2

, …,

r
n

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à

= {R
i
(U
i
)} i = 1,n = {R
1
(U
1
), R

2
(U
2
), …, R
n
(U
n
)}

là một phân rã của R
Gọi F
i
là một tập phụ thuộc hàm được thỏa trong R
i
, i = 1,n

f: X  Y

F
i
=> f

F
+
và XY

U
i
Phân rã


của R là phân rã bảo toàn phụ thuộc hàm nếu:
F
+
= (

F
i
)
+
, i = 1,n

= (F
1


F
2




F
k
)
+

Với F là tập phụ thuộc hàm trong R và F
i
là tập phụ thuộc hàm trong R
i

, 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
XY
(
|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 -
()
fF
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
+
F
D = {ABCDE} – {A} = {BCDE}
Xét các tập con L

i
của L: L
i


L
{L
i
} = {B, C, D, E, BC, BD, BE, CD, CE, DE, BCD, BCE, BDE, CDE, BCDE }  (L
có n thuộc tính thì có 2
n
– 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
L
i
{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
L
i
{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
L
i
{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
L
i

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






Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×