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

ÔN THI CƠ SỞ DỮ LIỆU doc

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 (284.47 KB, 14 trang )

1
CHUẨN HÓA CSDL
Giáo viên: Tạ Thúc Nhu
Khoa CNTT trường ĐH Lạc Hồng
ÔN THI
CƠ SỞ DỮ LiỆU
CSDL@Khoa CNTT
2
I- Phụ thuộc hàm:
I- Phụ thuộc hàm:
2
CSDL@Khoa CNTT
3
1. Khái niệm phụ thuộc hàm:
1.
1.
Kh
Kh
á
á
i
i
ni
ni


m
m
ph
ph



thu
thu


c
c
h
h
à
à
m
m
:
:
• Cho một lược ñồ quan hệ Q
• X ⊆ Q
+
, Y ⊆ Q
+
, X ≠ ∅, Y ≠ ∅
Y phụ thuộc hàm vào X, ký hiệu X  Y, nếu
∀u, v ∈ Q: u.X = v.X thì u.Y = v.Y
Quy ước ký hiệu:
• Nếu Y không phụ thuộc hàm vào X ta ký hiệu: X Y
• f : phụ thuộc hàm
• F : tập các phụ thuộc hàm
CSDL@Khoa CNTT
4
Ví dụ: Tìm các phụ thuộc hàm trên quan hệ

Ví dụ: Tìm các phụ thuộc hàm trên quan hệ
Xét lược ñồ quan hệ quản lý kết quả học tập của sinh viên
KQHT(MaSV, Ten, NS, TenLop, KhoaHoc, MaMH,TenMH,Diem)
• Tân từ : Mỗi sinh viên có một mã số phân biệt với các sinh viên
khác (MaSV); có tên (Ten), ngày sinh (NS) và học một lớp
(TenLop). Mỗi lớp có tên lớp phân biệt và thuộc một khóa học
(KhoaHoc). Mỗi môn học có một mã số phân biệt (MaMH), có
tên môn học (TenMH) cũng phân biệt. Mỗi sinh viên học nhiều
môn, mỗi môn có ñiểm thi (Diem) của môn học ñó.
3
CSDL@Khoa CNTT
5
2- Các Phụ thuộc hàm ñặc biệt:
2- Các Phụ thuộc hàm ñặc biệt:
1. Phụ thuộc hàm hiển nhiên: X

X
2. Phụ thuộc hàm ñy ñ (fully functional dependence):
X −−>Y là phụ thuộc hàm ñầy ñủ
Khi và chỉ khi ∀
∀∀
∀X' ⊂
⊂⊂
⊂ X, X' −/−>
−/−>−/−>
−/−> Y
Ví dụ: Phụ thuộc hàm MaSV, MaMH −−>
−−>−−>
−−> DiemMH là phụ thuộc
hàm ñầy ñủ vì :

MaSV −/−>
−/−>−/−>
−/−> DiemMH và MsMH −/−>
−/−>−/−>
−/−> DiemMH
CSDL@Khoa CNTT
6
3- Bao ñóng của tập thuộc tính:
3- Bao ñóng của tập thuộc tính:
Cho LĐQH <Q, F
Q
> và X ⊆
⊆⊆
⊆ Q
+
.
Bao ñóng của tập thuộc tính X dựa trên F
Q
, ký hiệu X
+
FQ
, là tập
các thuộc tính phụ thuộc hàm vào X dựa trên F
Q
.
Ký hiệu: X
+
FQ
= { Y ∈
∈∈

∈ Q
+
: X −−>
−−>−−>
−−> Y ∈
∈∈
∈ F
+
Q
}
Nhận xét:
1. X ∈
∈∈
∈ X
+
FQ
2. W −−>
−−>−−>
−−> Z và W ⊆
⊆⊆
⊆ X
+
FQ
thì Z ⊆
⊆⊆
⊆ X
+
FQ
4
CSDL@Khoa CNTT

7
Ví dụ: Tìm bao ñóng của tập thuộc tính
Ví dụ: Tìm bao ñóng của tập thuộc tính
cho Q(ABCDEGH) và tập phụ thuộc hàm
F
Q
={f
1
:B −−>
−−>−−>
−−>A; f
2
:DA−−>
−−>−−>
−−>CE; f
3
:D −−>
−−>−−>
−−>H; f
4
:GH−−>
−−>−−>
−−>C; f
5
:AC−−>
−−>−−>
−−>D}
1. Tìm bao ñóng của tập thuộc tính X1 = {BD}
2. Tìm bao ñóng của tập thuộc tính X2 = {BCG}
CSDL@Khoa CNTT

8
4- Khóa của quan hệ:
4- Khóa của quan hệ:
Định nghiã:
Cho lược ñồ quan hệ < Q, F
Q
>
1. S ⊆
⊆⊆
⊆ Q
+
, S là siêu khóa của Q nếu S −−>
−−>−−>
−−> Q
+

∈∈
∈ F
Q
2. K ⊆
⊆⊆
⊆ Q
+
, K là khóa chỉ ñịnh nếu
a) K là siêu khóa
b) K
−−>
Q
+
là phụ thuộc hàm ñầy ñủ

5
CSDL@Khoa CNTT
9
II- Dạng Chuẩn Trên Quan Hệ:
II
II
-
-
D
D


ng
ng
Chu
Chu


n
n
Trên
Trên
Quan
Quan
H
H


:
:

• Dạng chuẩn 1
• Dạng chuẩn 2
• Dạng chuẩn 3
• Dạng chuẩn BCK
CSDL@Khoa CNTT
10
1- Dạng chuẩn 1:
1- Dạng chuẩn 1:
1.1Định nghĩa DC1:
Một lược ñồ quan hệ Q ñạt dạng chuẩn 1 nếu mọi thuộc tính của
Q ñều là thuộc tính ñơn.
1.2 Khái niệm Thuộc tính ñơn:
Một thuộc tính ñược gọi là thuộc tính ñơn nếu giá trị thuộc tính
hoặc chỉ mang một thông tin duy nhất; nếu ñược ghép bởi
nhiều thông tin thì hệ thống thường truy xuất trên toàn bộ giá trị
của nó.
Ví dụ:
– Thuộc tính Địa_Chỉ
– Thuộc tính Ngày_Sinh
6
CSDL@Khoa CNTT
11
2- Dạng chuẩn 2:
2- Dạng chuẩn 2:
Một lược ñồ quan hệ Q ñạt dạng chuẩn 2 nếu:
a. Q có DC1
b. Mọi thuộc tính không là thuộc tính khóa ñều phụ thuộc hàm
ñầy ñủ vào các khóa của Q.
Nhận xét: Nu mi khóa ca quan h Q ch có 1 thuc tính thì
Q ñt dng chun 2.

DC1
DC2
CSDL@Khoa CNTT
12
Ví dụ kiểm tra dạng chuẩn 2 của quan hệ:
Ví dụ kiểm tra dạng chuẩn 2 của quan hệ:
1- QLSV(MaSV, Ten, NS, DC, TenLop, KhoaHoc, MaMH, TenMH, Diem)
F = {f1:MaSV  Ten, NS, DC, TenLop
f2: TenLop  KhoaHoc;
f3: MaMH  TenMH; f4 : TenMH  MaMH;
f5: MaSV, MaMH  Diem }
2- KQHT(MaSV, MaMH, TenMH, Diem)
F
KQHT
={ f1: MaMH  TenMH; f2 : TenMH  MaMH;
f3: MaSV, MaMH  Diem}
3- SV(MaSV, Ten, NS, DC, TenLop, KhoaHoc)
F
SV
= { f1:MaSV  Ten, NS, DC, TenLop;
f2: TenLop  KhoaHoc}
7
CSDL@Khoa CNTT
13
3- Dạng chuẩn 3:
3- Dạng chuẩn 3:
3.1 Khái niệm Phụ thuộc bắc cầu:
• Cho lược ñồ quan hệ <Q, F
Q
>;

• A ⊂
⊂⊂
⊂ Q
+
, X ⊂
⊂⊂
⊂ Q
+
và tồn tại X 

 A
X 

 A là phụ thuộc hàm bắc cầu nếu tồn tại nhóm thuộc tính
Y ⊂ Q
+
thỏa mản 4 ñiều kiện sau:
1. X  Y ∈ F
+
Q
2. Y  A ∈ F
+
Q
3. Y −/−> X
4. A

{X ∪ Y}
CSDL@Khoa CNTT
14
Ví dụ:

Ví dụ:
SV(MaSV, Ten, NS, DC, TenLop, KhoaHoc)
F
SV
= { f1:MaSV  Ten, NS, DC, TenLop;
f2: TenLop  KhoaHoc}
a) Kiểm tra tồn tại : MaSV 

 KhoaHoc
b) Chứng minh {KhoaHoc} phụ thuộc bắc cầu vào {MaSV}
8
CSDL@Khoa CNTT
15
3.2 Định nghiã DC3:
Lược ñồ quan hệ Q ñạt dạng chuẩn 3 nếu:
1. Q ñạt dạng chuẩn 2
2. Mọi thuộc tính không là thuộc tính khóa ñều không phụ
thuộc bắc cầu vào một khóa nào của Q.
DC1
DC2
DC3
CSDL@Khoa CNTT
16
Ví dụ kiểm tra dạng chuẩn 3 của quan hệ:
Ví dụ kiểm tra dạng chuẩn 3 của quan hệ:
1- KQMH(MaSV, MaMH, TenMH, Diem)
F
KQHT
={ f1: MaMH  TenMH; f2 : TenMH  MaMH;
f3: MaSV, MaMH  Diem}

2- SV(MaSV, Ten, NS, DC, TenLop, KhoaHoc)
F
SV
= { f1:MaSV  Ten, NS, DC, TenLop;
f2: TenLop  KhoaHoc}
9
CSDL@Khoa CNTT
17
4. Dạng chuẩn BCK (Boyee-Codd-Kent):
4. Dạng chuẩn BCK (Boyee-Codd-Kent):
Lược ñồ quan hệ Q ở dạng chuẩn BCK nếu
1. Q ñạt dạng chuẩn 3
2. Mọi phụ thuộc hàm không hiển nhiên ñều chứa 1 khóa của
Q ở vế trái.

∀∀
∀ X 

 A ∈
∈∈
∈ F
+
Q
: A ∉
∉∉
∉ X và X chứa 1 khóa của Q
DC1
DC2
DC3
DC BCK

CSDL@Khoa CNTT
18
Ví dụ kiểm tra dạng chuẩn BCK của quan hệ:
Ví dụ kiểm tra dạng chuẩn BCK của quan hệ:
1- KQMH(MaSV, MaMH, TenMH, Diem)
F
KQHT
={ f1: MaMH  TenMH; f2 : TenMH  MaMH;
f3: MaSV, MaMH  Diem}
2- SV(MaSV, Ten, NS, DC, TenLop)
F
SV
= { f: MaSV  Ten, NS, DC, TenLop}
3- LOP(TenLop, KhoaHoc)
F
LOP
= { f: TenLop  KhoaHoc}
10
CSDL@Khoa CNTT
19
III- Dạng chuẩn của CSDL:
III- Dạng chuẩn của CSDL:
Là dạng chuẩn thấp nhất trong các lược ñồ quan hệ có trên
CSDL.
Ví dụ: Xét dạng chuẩn của CSDL gồm 2 quan hệ sau:
1- KQMH(MaSV, MaMH, TenMH, Diem)
F
KQHT
={ f1: MaMH  TenMH; f2 : TenMH  MaMH;
f3: MaSV, MaMH  Diem}

2- SV(MaSV, Ten, NS, DC, TenLop, KhoaHoc)
F
SV
= { f1:MaSV  Ten, NS, DC, TenLop;
f2: TenLop  KhoaHoc}
CSDL@Khoa CNTT
20
Ví dụ:
Ví dụ:
Xét dạng chuẩn của CSDL gồm 3 quan hệ sau:
1- SV(MaSV, Ten, NS, DC, TenLop)
F
SV
= { f: MaSV  Ten, NS, DC, TenLop}
2- LOP(TenLop, KhoaHoc)
F
LOP
= { f: TenLop  KhoaHoc}
3- KQMH(MaSV, MaMH, TenMH, Diem)
F
KQHT
={ f1: MaMH  TenMH; f2 : TenMH  MaMH;
f3: MaSV, MaMH  Diem}
11
CSDL@Khoa CNTT
21
Ví dụ:
Ví dụ:
Xét dạng chuẩn của CSDL gồm 4 quan hệ sau:
1- SV(MaSV, Ten, NS, DC, TenLop)

F
SV
= { f: MaSV  Ten, NS, DC, TenLop}
2- LOP(TenLop, KhoaHoc)
F
LOP
= { f: TenLop  KhoaHoc}
3- MONHOC(MaMH, TenMH)
F
KQHT
={ f1: MaMH  TenMH; f2 : TenMH  MaMH}
4- KQHT(MaSV, MaMH, Diem)
F
KQHT
={ f1: MaSV, MaMH  Diem}
CSDL@Khoa CNTT
22
IV- Chuẩn hóa Lược Đồ Quan Hệ:
IV- Chuẩn hóa Lược Đồ Quan Hệ:
12
CSDL@Khoa CNTT
23
1- Mục tiêu chuẩn hóa:
1- Mục tiêu chuẩn hóa:
• Biến ñổi lược ñồ quan hệ có dạng chuẩn thấp trong CSDL
thành các lược ñồ quan hệ ñạt dạng chuẩn cao nhất
Ví dụ: Xét CSDL gồm 2 quan hệ sau:
1- KQMH(MaSV, MaMH, TenMH, Diem)
F
KQHT

={ f1: MaMH  TenMH; f2 : TenMH  MaMH;
f3: MaSV, MaMH  Diem}
2- SV(MaSV, Ten, NS, DC, TenLop, KhoaHoc)
F
SV
= { f1:MaSV  Ten, NS, DC, TenLop;
f2: TenLop  KhoaHoc}
CSDL@Khoa CNTT
24
2- Định lý Delobel: (1973)
2- Định lý Delobel: (1973)
• Xét quan hệ Q(X, Y, Z) có tập phụ thuộc hàm F
Q
• X, Y, Z là các tập con thuộc tính khác rỗng.
Nếu tồn tại X

Y thì phép phân rã Q thành 2 quan hệ con
Q1(X, Y) và Q2(X, Z) là bảo toàn thông tin.
Nghĩa là: - Q
+
= Q1
+

∪∪
∪ Q2
+
.
- Q = Q1 Q2
Ý tưởng: Chuẩn hóa quan hệ Q
1. Phân rã Q thành 2 quan hệ Q1 và Q2 bằng 1 một phụ thuộc hàm f có

VT(f) ∪ VP(f) ⊂ Q
+
.
2. Lặp lại phương pháp phân rã cho Q1 và Q2 cho ñến khi không còn phụ
thuộc hàm như vậy nữa.
13
CSDL@Khoa CNTT
25
3- Thuật toán phân rã:
3- Thuật toán phân rã:
Thuật toán: Phân rã <Q, F
Q
>
Input: <Q, F
Q
>
Output: C = { Q
I
}
n
I=1
{tập các lñqh ñược phân rã}
Begin
b1. F* = F
Q
\ { f ∈ F
Q
: [VT(f)]
+
= Q

+
}
b2. Nếu F* = ∅ thì C = {Q
I
} là nghiệm của bài toán (kết thuc)
Ngược lại thì chuyển sang bước b3
b3. Chọn phụ thuộc hàm f: X  Y ∈ F*
b4. Phân rã lược ñồ quan hệ Q thành 2 lược ñồ quan hệ con:
< Q
1
(X, Y), F
1
={f ∈ F
Q
: VT(f) ∪ VP(f) ⊂ Q
1
+
} >
< Q
2
(Q
+
\ Y), F
2
={ f ∈ F
Q
: VT(f) ∪ VP(f) ⊂ Q
2
+
} >

b5. Nếu F1 ∪ F2 <> FQ thì quay lại b3 chọn một phụ thuộc hàm khác.
ngược lại thì sang b6
b6. Phân rã(Q1, F1);
b7. Phân rã (Q2, F2);
end;
CSDL@Khoa CNTT
26
Ví dụ:
Ví dụ:
1- KQMH(MaSV, MaMH, TenMH, Diem)
F
KQHT
={ f1: MaMH  TenMH; f2 : TenMH  MaMH;
f3: MaSV, MaMH  Diem}
2- SV(MaSV, Ten, NS, DC, TenLop, KhoaHoc)
F
SV
= { f1:MaSV  Ten, NS, DC, TenLop;
f2: TenLop  KhoaHoc}
14
CSDL@Khoa CNTT
27
Ví dụ:
Ví dụ:
VanChuyen(MsKH, TP, CTyVC, MsHH, SL)
F = { f1: MsKH 

 TP; f2: TP 

 CtyVC;

f3: MsKH, MsHH 

 SL }
– MsKH: Mã số Khách hàng.
– TP: Thành phố khách ở.
– CtyVC: công ty vận chuyển hàng.
– MsHH: mã hàng hóa.
– SL: số lượng.
1. Xét dạng chuẩn
2. Phân rã thành các quan hệ có dạng chuẩn cao nhất
CSDL@Khoa CNTT
28
Nhận xét:
Nhận xét:
1. Tất cả các quan hệ kết quả ñều ñạt dạng chuẩn BCK
2. Bảo toàn thông tin.
3. Tùy theo thứ tự các pth ñược xét mà k
ết quả và số lượng
quan hệ con có thể khác nhau
4. Nên ưu tiên chọn phụ thuộc hàm gây chất lượng xấu cho
quan hệ.

×