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

đề tài tách – kết nối không tổn thất thông tin

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 (701.08 KB, 12 trang )



ĐỀ TÀI


TÁCH – KẾT NỐI KHÔNG
TỔN THẤT THÔNG TIN
Học viên: Nhóm 4 – lớp CH10CNK2 Giảng viên: TS.Phạm Thế Quế
Mục lục
Mục lục 1
1. Mở đầu 2
2. Phép tách – kết nối không tổn thất thông tin 2
2.1 Phép tách 2
2.2. Phép chiếu 2
2.3. Phép nối tự nhiên 3
2.4 Tách - kết nối tự nhiên 3
2.5 Phép tách không tổn thất thông tin 3
3. Thuật toán kiểm tra tách không tổn thất thông tin 5
3.1 Thuật toán 5
3.2 Định lý 6
4. Phép tách bảo toàn phụ thuộc hàm 8
5. Thuật toán kiểm tra bảo toàn phụ thuộc hàm 9
5.1. Thuật toán tìm bao đóng của tập thuộc tính 9
5.2. Thuật toán kiểm tra bảo toàn phụ thuộc hàm 10
6. Kết luận 10
7. Tài liệu tham khảo: 10























Học viên: Nhóm 4 – lớp CH10CNK2 Giảng viên: TS.Phạm Thế Quế
TÁCH – KẾT NỐI KHÔNG TỔN THẤT THÔNG TIN

Giảng viên: TS.Phạm Thế Quế
Học viên: Đỗ Anh Tuấn
Lớp: CH10CNK2
1. Mở đầu
Mục tiêu của lý thuyết CSDL là tính độc lập của dữ liệu. Cấu trúc lưu trữ các hệ cơ
sở dữ liệu phản ảnh tính hiện thực, khách quan và tính toàn vẹn dữ liệu. Vì vậy trong
quá trình chuẩn hoá dữ liệu và tìm kiếm thông tin, cần thiết phải thực hiện các phép
tách lược đồ quan hệ chưa chuẩn hoá về tập các lược đồ quan hệ chiếu đã được chuẩn
hoá, sao cho quá trình tách không làm tổn thất thông tin (lossless- mất mát thông tin),
theo nghĩa các quan hệ gốc được khôi phục chính xác từ phép kết nối tự nhiên của các

quan hệ chiếu.
Tách - kết nối các lược đồ quan hệ có làm tổn thất thông tin hay không, có bảo toàn
các phụ thuộc hay không đã được nhiều người quan tâm nghiên cứu, giải quyết. A.V.
Ho , C.Beeri & J.D. Ullman giới thiệu thuật toán xác định phép kết nối các lược đồ
quan hệ không có tổn thất thông tin với giả thiết các phụ thuộc dữ liệu là các phụ thuộc
hàm. Các ông cũng đã mở rộng vấn đề này cho các trường hợp phụ thuộc dữ liệu là
phụ thuộc đa trị.
2. Phép tách – kết nối không tổn thất thông tin
2.1 Phép tách
Cho s = <Ω, F > là một lược đồ quan hệ, trong đó Ω = {A
1
, A
2
, , A
n
} là tập các
thuộc tính và F là tập các phụ thuộc hàm. Gọi ϕ[Ω
1
, Ω
2
, , Ω
p
] là một phép tách (hay
còn gọi là một phân hoạch) của S= <Ω, F >, nếu:
a) Ω
i

Í
Ω , i=1÷ p
b) Ω = Ω

1

È

È
Ω
p
c) F
i
:= F|Ω
i

:= π
Ωi
(F ) := {X → Y
Î
F , XY
Í
Ω
i

} , i = 1 ÷ p.
d) S
i
:= <Ω
i
, F
i
>: = π
Ωi

(S), i = 1 ÷ p.
Như vậy, nếu ϕ [Ω
1

, Ω
2

, , Ω
p

] là một phép tách của s= <Ω, F >, khi đó tập các
phụ thuộc F
i

:= F|Ω
i

= π
Ωi
(F ) được gọi là tập các phụ thuộc chiếu F trên các tập thuộc
tính tương ứng Ω
i
. Và các lược đồ S
i

= <Ω
i
, F
i
>: = π

Ωi
(S) gọi là các lược đồ chiếu trên
các tập thuộc tính Ω
i

với i =1÷ p. Nếu R là một quan hệ trên tập các thuộc tính Ω, khi
đó các quan hệ chiếu sẽ là R
Ωi
: = π
Ωi
(R) , i =1÷ p, nghĩa là các quan hệ chiếu π
Ωi
(R)
chỉ bao gồm các thuộc tính Ω
i
, i =1÷ p.
2.2. Phép chiếu
Phép chiếu quan hệ Ω trên một số thuộc tính được một quan hệ Ω’. Quan hệ mới có
các thuộc tính là thuộc tính chiếu, có các bộ là một phần của các bộ của quan hệ ban
đầu
Ω’= π
Ai,Ai+1,…Aj
(Ω) với (i≠j)
Học viên: Nhóm 4 – lớp CH10CNK2 Giảng viên: TS.Phạm Thế Quế
2.3. Phép nối tự nhiên
Phép nối tự nhiên của quan hệ Ω
1
(A
1
,A

2
,…A
n
) và quan hệ Ω
2
(B
1
,B
2
,…B
m
) là một
quan hệ Ω
3
ký hiệu là Ω
3
= Ω
1
|><| Ω
2
có thuộc tính là hợp các thuộc tính của hai quan
hệ Ω
1
, Ω
2
và các bộ là ghép nối các bộ của hai quan hệ Ω
1
, Ω
2
theo sự bằng nhau của

các giá trị các thuộc tính chung.
Ω
1
(A
1
,A
2
,…A
n
)|><| Ω
2
(B
1
,B
2
,…B
m
)=Ω
3
(A
1
,A
2
,…A
n
, B
1
,B
2
,…B

m
)
2.4 Tách - kết nối tự nhiên
Phép tách ϕ [Ω
1

, Ω
2

, , Ω
p

] được gọi là phép tách - kết nối tự nhiên của của lược
đồ quan hệ S= <Ω, F >, nếu:
a)
ϕ

1

, Ω
2

, , Ω
p

] là một phép tách của S= <Ω, F >.
b) Kết quả của phép kết nối tự nhiên của các lược đồ chiếu π
Ωi
(S), i = 1 ÷ p, là một
lược đồ m

ϕ

(S) trên các thuộc tính Ω = Ω
1
È
Ω
2
È

È
Ω
p

m
ϕ

(S):=π
Ω1
(S) |><| π
Ω2
(S) |><| |><| π
Ωp
(S) = S
1

|><| S
2

|><| |><| S
p


Nghĩa là với mọi quan hệ RÎS = <Ω, F >, khi đó m
ϕ
(R ) là kết quả phép kết nối tự
nhiên của các quan hệ chiếu tương ứng R
i

:= R
Ωi
:= π
Ωi
(R), i =1 ÷ p, được biểu diễn
như sau: R
Í
m
ϕ

(R):= π
Ω1
(R) |><| π
Ω2
(R) |><| |><| π
Ωp
(R).
Từ định nghĩa trên có thể suy ra, nếu một thể hiện I Î m
ϕ

(S) khi đó:

π

Ωp
(I) = {a
1
, a
2
, , a
p
}| Nếu A
j
Î Ω
i
, tại vị trí j ứng R
i
nhận giá trị a
j
, các vị trí

khác nhận giá trị khác a
i
, i =1 ÷ p
2.5 Phép tách không tổn thất thông tin
Phép tách ϕ [Ω
1

, Ω
2

, , Ω
p


] được gọi phép tách không tổn thất thông tin của lược
đồ quan hệ S= <Ω, F >, nếu:
a)
ϕ

1

, Ω
2

, , Ω
p

] là phép tách – kết nối tự nhiên
b) S= m
ϕ

(S):=π
Ω1
(S) |><| π
Ω2
(S) |><| |><| π
Ωp
(S) = S
1

|><| S
2

|><| |><| S

p

Nghĩa là với mọi quan hệ R ÎS, khi đó R được khôi phục chính xác từ phép kết nối
tự nhiên của các quan hệ chiếu R
i
= π
Ωi
(R ), i = 1 ÷ p.
Tức là: R = π
Ω1
(R) |><| π
Ω2
(R ) |><| |><| π
Ωp
(R ) : = R
1

|><| R
2

|><| |><| R
p

Thông tin của một quan hệ R bất kỳ có thể nhận được từ các quan hệ chiếu Ri ứng
với phép tách ϕ.








|><|

P

i=1

Học viên: Nhóm 4 – lớp CH10CNK2 Giảng viên: TS.Phạm Thế Quế
Ví dụ1 : Tách quan hệ không tổn thất thông tin
Lược đồ quan hệ quản lý phát hành báo chí QLBC gồm các thuộc tính:
Ω ={MK#, TK, DC, MB#, TB, GIA, SL}
và F={MK#→TK,MK#→DC,MB#→TB,MB#→ GIA, (MK#,MB#) → SL}
MK#:

Mã khách hàng TK :

Tên khách hàng
DC :

Địa chỉ khách hàng MB#:

Mã báo, tạp chí
TB :

Tên báo, tạp chí GIA:

Đơn giá báo, tạp chí
SL :


Số lượng báo, tạp chí khách đặt mua

Trong lược đồ quan hệ QLBC, các thông tin về tên khách (TK) , địa chỉ (DC), tên
báo (TB) lặp lại rất nhiều lần trong các quan hệ thể hiện, đó là nguyên nhân dẫn đến
sự xuất hiện các bất thường, nhập nhằng thông tin. Phép tách j được mô tả dưới đây,
sẽ tách lược đồ QLBC thành 3 lược đồ chiếu. Lược đồ S
3
= <Ω
3
, F
3
> chỉ cần lưu trữ
thông tin về số lượng các loại báo của mỗi một khách hàng đặt mua. Lược đồ quan hệ
S
1
= <Ω
1
, F
1
> lưu trữ thông tin về khách đặt mua báo , và tương tự trong lược đồ quan
hệ S
2
= <Ω
2
, F
2
> lưu trữ thông tin về các loại báo. Có thể kiểm tra phép tách j không
tổn thất thông tin và bảo toàn được các phụ thuộc hàm.
Phép tách j [Ω
1

, Ω
2
, Ω
3
] :
• Ω
1
={M#, TK,DC } , F
1
={MK# → TK, MK# → DC}.
• Ω
2
={MB#, TB, GIA } , F
2
={MB# → TB, MB# → GIA}.
• Ω
3
={M#, MB#, SL} , F
3
={(MK#,MB#) → SL}.
Như vậy mục tiêu của phép tách lược đồ quan hệ là nhằm loại bỏ các dị thường
thông tin khi thực hiện các phép lưu trữ như chèn thêm, loại bỏ hay sửa đổi thông tin
trong trong các quan hệ lưu trữ. Tuy nhiên khi thực hiện phép tách, thông tin của lược
đồ quan hệ có bị tổn thất hay không. Nói cách khác nếu kết nối tự nhiên các thành phần
lược đồ quan hệ chiếu, liệu thông tin của lược đồ quan hệ gốc có tổn thất thông tin hay
không, các phụ thuộc hàm có được bảo toàn hay không? Ta xét Ví dụ2
Ví dụ2 : Thí dụ sau mô tả phép tách tổn thất thông tin và không tổn thất thông tin:
Có quan hệ tổng quát về xe. Quan hệ Xe(n_xe,mác,giá,màu,năm) với các thể hiện của
hai xe, khác nhau về nhãn xe và màu sắc.
n_xe mác màu năm giá

A11 Honda Xanh 1995 500
Xe
A22 Honda Đỏ 1995 500
a) Phép tách – kết nối không tổn thất thông tin: phân rã quan hệ xe thành quan hệ
R1(n_xe,mác,giá) và R2(mác, năm, giá) có các thể hiện:
n_xe mác giá mác năm giá
A11 Honda 500
R2
Honda 1995 500
R1
A22 Honda 500
Nối tự nhiện theo các thuộc tính cùng tên của hai quan hệ R1 và R2 thu được quan
hệ mới như quan hệ Xe ban đầu
b) Phép tách-kết nối tổn thât thông tin: phân rã quan hệ Xe thành các quan hệ
R1(n_xe, năm), R2(năm, màu, giá) và R3(mác, năm) có các thể hiện:


Học viên: Nhóm 4 – lớp CH10CNK2 Giảng viên: TS.Phạm Thế Quế
n_xe năm năm màu giá mác năm
A11 1995 1995 Xanh 500
R3
Honda 1995
R1
A22 1995
R2
1995 Đỏ 500
Nối tự nhiên theo các thuộc tính cùng tên của hai quan hệ R1 và R2 thu được quan
hệ R12 có thể hiện:
n_xe giá năm màu
A11 500 1995 Xanh

A22 500 1995 Đỏ
A11 500 1995 Đỏ
R12
A22 500 1995 Xanh
Nối tự nhiên theo các thuộc tính cùng tên của hai quan hệ R12 và R3 thu được
quan hệ R123 có thể hiện khác với thể của quan hệ Xe ban đầu
n_xe mác màu năm Giá
A11 Honda Xanh 1995 500
A22 Honda Đỏ 1995 500
A11 Honda Đỏ 1995 500
R123
A22 Honda Xanh 1995 500
Trong quan hệ Xe ban đầu ta có thể biết xe số A11 có màu xanh còn trong quan hệ
R123 thông tin về màu của xe A11 đã bị mất.
3. Thuật toán kiểm tra tách không tổn thất thông tin
3.1 Thuật toán
Input:
S = < Ω , F > là một lược đồ quan hệ .
Ω = {A
1

, A
2

, , A
n

} tập các thuộc tính.
F = {f : L
j

→ R
j
| L
j
, R
j
Í Ω } tập các phụ thuộc hàm.
j [Ω
1

, Ω
2

, , Ω
p

] là một phép tách
Output:
Một khẳng định phép tách - kết nối j có tổn thất thông tin hay không.
Phương pháp:
- Tạo một bảng gồm n cột và p dòng. Cột thứ j tương ứng với thuộc tính A
j

, hàng
thứ i tương ứng với lược đồ quan hệ chiếu R
i
:
• Cột : A
1


, A
2

, , A
n


• Hàng: R
1
, R
2

, , R
p


- Các phần tử của bảng:
a(i,j) = ai nếu A
i
Î Ω
i

a(i,j) = bij nếu A
i
∉ Ω
i

Với i = 1 ÷ n, j = 1 ÷ p.
- Áp dụng các phụ thuộc X→ YÎ F để thay đổi các giá trị của bảng như sau: tìm
các hàng giống nhau trên trong các cột thuộc tính của X, trong các cột thuộc tính Y nếu

có giá trị là a sẽ thay giá trị các cột trong Y là ai , nếu không có ai , thay thế bằng bij .
- Xét lặp các phụ thuộc trong F cho đến khi không có sự thay đổi trong bảng.
Học viên: Nhóm 4 – lớp CH10CNK2 Giảng viên: TS.Phạm Thế Quế
- Việc duyệt bảng bao gồm sắp xếp bảng theo cột có tính các thuộc tính xuất hiện
vế trái của phụ thuộc hàm. Nếu có k thuộc tính như vậy thì việc thực hiện sắp xếp cần
thực hiện trong n * k bước.
- Điền các ký hiệu trong các cột có thuộc tính xuất hiện vế phải của phụ thuộc hàm
nếu các hàng bằng nhau trên vế trái. Công việc này cầnO(k) thời gian cho mỗi phụ
thuộc. Tổng tất cả độ dài vế trái của tất cả các phụ thuộc hàm trong một lần duyệt
không quá n, nên toàn bộ thời gian cho một lần duyệt nhiều nhất là k*n.
- Khi không còn một ký hiệu nào được làm bằng nhau trong một lần duyệt thì có
thể kết thúc việc lặp các bước duyệt vì bảng thu được thoả mọi phụ thuộc.
- Kiểm tra có tồn tại một hàng R
i
sao cho giá trị của chứa các ký hiệu a1, a2, , an
hay không. Nếu có, tách - kết nối không tổn thất thông tin. Ngược lại, không tồn tại
dòng nào như vậy, nghĩa là các lược đồ quan hệ chiếu khi kết nối bị tổn thất thông tin.
Điều này có thể suy ra từ định nghĩa của phép tách – kết nối tự nhiên.
- Do đó thời gian tiêu dùng toàn bộ cho thuật toán nhiều nhất là k*n2*p, Nếu k ≤ n
và p ≤ n hiển nhiên thuật toán có thời gian chi phí nhiều nhất là n
4
.
3.2 Định lý
Bảng kết quả của thuật toán trên cho phép ta kết luận được tính bảo toàn hay
không bảo toàn thông tin của phép tách
Chứng minh:
Ta chứng minh nếu bảng kết quả của thuật toán không có hàng chỉ chứa toán giá
trị a thì phép tách không bảo toàn thông tin. Thật vậy:
Ta xây dựng một quan hệ R có các giá trị như bảng kết quả của thuật toán, các
hàng là các bộ. Quan hệ R thỏa tập phụ thuộc hàm F vì thuật toán đã sửa các giá trị để

R khỏi vi phạm các phụ thuộc hàm trong F, suy ra R là một quan hệ của lược đồ S. Ta
tách quan hệ R thành các quan hệ R
i
với R
i
= R.S
i
và dùng phép kết tự nhiên để kết
chúng lại. Nếu:
- $k S
k
+
ÇS
i
+
= Æ "iÞR
1
|><|R
2
…|><|R
k
không tồn tại Þphép tách không bảo toàn
thông tin
- "i, $k S
i
+
ÇS
k
+
= X

ik
≠ Æ mà mỗi R
i
đều có một bộ t
i
chứa toàn giá trị a Þ các t
i

nối được với nhau vì có cùng giá trị trên X
ik
Þ có một bộ tÎ R
1
|><|R
2
…|><|R
k
có toàn
giá trị a, bộ này lại không có trong R Þ R≠ R
1
|><|R
2
…|><|R
k
Þ phép tách không bảo
toàn thông tin.
Ta chứng minh nếu bảng kết quả của thuật toán có hàng chỉ chứa toán giá trị a thì
phép tách bảo toàn thông tin. Ta chứng mình điều này qua 2 bước:
Bước 1: chứng minh nếu t Î R Þ tÎ R
1
|><|R

2
…|><|R
k
. Suy ra RÍ
R
1
|><|R
2
…|><|R
k
. Giả sử t=(a
1
, a
2
,…a
n
) Î R. Ta tách quan hệ R thành các R
i
=R.S
i
với
t
i
=t.S
i
. Có 2 trường hợp:
- "i, $k S
i
+
ÇS

k
+
= X
ik
≠ Æ Þ các t
i
nối được với nhau vì có cùng giá trị trên
X
ik
Þ bộ tÎ R
1
|><|R
2
…|><|R
k
ÞRÎ R
1
|><|R
2
…|><|R
k
- $k S
k
+
ÇS
i
+
= Æ "i Þ bảng kiểm tra bảo toàn thông tin ở giai đoạn chưa
thỏa các phụ thuộc hàm, có dạng:




Hc viờn: Nhúm 4 lp CH10CNK2 Ging viờn: TS.Phm Th Qu
A
1
A
2
A
k
A
k+1

S
1
b
k1
b
k2
b
S
2
b
b
S
k
(A
1
,A
2
,


b b b a
k
a
k+1

Vi mi XQ
+
t
k
.X t
i
.X vi ik nờn khi lm bng cỏc giỏ tr theo cỏc ph thuc
hm XY thỡ cỏc giỏ tr b dũng S
k
khụng thay i cũn cỏc giỏ tr b cỏc ct
A
k
,A
k+1
khụng thay i thnh a c. Suy ra bng kt qu ca thut toỏn khụng bao
gi cha dũng cú giỏ tr ton a. Vy trng hp $k S
k
+
ầS
i
+
= ặ "i khụng xy ra khi
bng kim tra bo ton thụng tin cú mt dũng ton a.
Bc 2: Chng minh nu tẻ R

1
|><|R
2
|><|R
k
ịtẻR. Suy ra R
1
|><|R
2
|><|R
k

R. Gi s t=(a
1
,a
n
) ẻ R
1
|><|R
2
|><|R
k
theo nh ngha suy ra "i, $t
i
sao cho t.S
i
= t
i
.
Nhng R

i
=R.S
i
+
ị$t
i
ẻ R sao cho t
i
.S
i
+
=t.S
i
+
"i. Trng hp xu nht l cỏc t
i
l cỏc
dũng khỏc nhau. Trong trng hp ny, ta cú th xem t
i
l dũng S
i
ca bng kim tra
bo ton thụng tin vi cỏc giỏ tr b xem nh cha bit. Nhng cỏc dũng Q
i
phi tha
cỏc ph thuc hm trong F, phộp lm bng cỏc giỏ tr theo cỏc ph thuc hm ó dn
dn xỏc nh c tt c cỏc giỏ tr b ca mt dũng t
i
no ú, l dũng cú ton giỏ tr a.
Vy cú mt i t

i
= t ịtẻR ịR ấ R
1
|><|R
2
|><|R
k
. T ú suy ra R =
R
1
|><|R
2
|><|R
k
. Hay núi cỏch khỏc, phộp tỏch bo ton thụng tin.

Vớ d3:
Cho :={A,B, C,D, E, F} tp cỏc thuc tớnh. Xột phộp tỏch kt ni j [
1
,
2
,

3
,
4
,
5
] trong ú:
1

:= {A, B},
2
:= {A , C, D},
3
:= {B, C, D},
4
:= {A, E, F},

5
:= {C, D, E} v F := {A B, CD A, BC D, AE F, CE D}.

Bc 1: Thnh lp bng ban u gm 5 hng v 6 ct
A B C D E F

1
a1 a2 b13 b14 b15 b16

2
a1 b22 a3 a4 b25 b26

3
b31 a2 a3 a4 b35 b36

4
a1 b42 b43 b44 a5 a6

5
b51 b52 a3 a4 a5 b56

Bc 2: p dng A

đ
B suy ra b22=b42=a2
A B C D E F

1
a1 a2 b13 b14 b15 b16

2
a1 a2 a3 a4 b25 b26

3
b31 a2 a3 a4 b35 b36

4
a1 a2 b43 b44 a5 a6

5
b51 b52 a3 a4 a5 b56



Học viên: Nhóm 4 – lớp CH10CNK2 Giảng viên: TS.Phạm Thế Quế
Bước 3: Áp dụng CD
®
A suy ra b31=b51=a1
A B C D E F
Ω
1
a1 a2 b13 b14 b15 b16
Ω

2
a1 a2 a3 a4 b25 b26
Ω
3
a1 a2 a3 a4 b35 b36
Ω
4
a1 a2 b43 b44 a5 a6
Ω
5
a1 b52 a3 a4 a5 b56

Bước 4: Áp dụng BC
®
D bảng không thay đổi
Bước 5: Áp dụng AE
®
F suy ra b56=a6
A B C D E F
Ω
1
a1 a2 b13 b14 b15 b16
Ω
2
a1 a2 a3 a4 b25 b26
Ω
3
a1 a2 a3 a4 b35 b36
Ω
4

a1 a2 b43 b44 a5 a6
Ω
5
a1 b52 a3 a4 a5 a6

Bước 6: Áp dụng CE
®
D bảng không thay đổi
Bước 7: Quay lại áp dụng A
®
B suy ra b52=a2
A B C D E F
Ω1 a1 a2 b13 b14 b15 b16
Ω2 a1 a2 a3 a4 b25 b26
Ω3 a1 a2 a3 a4 b35 b36
Ω4 a1 a2 b43 b44 a5 a6
Ω5 a1 a2 a3 a4 a5 a6

Bước 8: Áp dụng CD → A, BC → D, AE → F, CE → D bảng không thay đổi. Ta nhận
thấy trong bảng này tồn tại hàng thứ 5 có chứa đủ các ký hiệu {a1, a2, a3, a4, a5, a6}.
Suy ra phép tách – kết nối j là không tổn thất thông tin.
4. Phép tách bảo toàn phụ thuộc hàm
Phép tách j [Ω
1
, Ω
2
, , Ω
p
] của lược đồ quan hệ S= <Ω, F >, và một tập phụ thuộc
hàm F. Hình chiếu của F trên một tập các thuộc tính Ω

i
ký hiệu là π
Qi
(F) là tập các phụ
thuộc hàm X→ Y ÎF
+
với XYÍ Ω
i
. Hay π
Qi
(F)=F
i
+
={X→Y|X→YÎF
+
và XYÍ Ω
i
}.
Khi đó phép tách j là bảo toàn phụ thuộc hàm F nếu: F
º

È
π
Qi
(F)

Ví dụ 4: Mô tả phép tách bảo toàn phụ thuộc hàm
Cho lược đồ quan hệ Q(A,B,C) và F={A®B,B ®C, C ®A}. Phép phân rã
j=[Q
1

,Q
2
] tách Q thành Q
1
(A,B) và Q
2
(B,C). Phép phân rã trên có bảo toàn phụ thuộc
hàm F không?



Học viên: Nhóm 4 – lớp CH10CNK2 Giảng viên: TS.Phạm Thế Quế
Ta tính cho Q
1
:
Bước 1: Liệt kê các tập con của Q
1
: Æ,A,B,AB
Bước 2: tính bao đóng của các tập con của Q
1
: Æ
+
= Æ, A
+
=ABC,B
+
=ABC,
AB
+
=ABC

Bước 3: tính F
1
+

Q1
(F): A®B,B®A, A ®AB,B ®AB
Ta tính cho Q
2
:
Bước 4: Liệt kê các tập con của Q
2
: Æ,B,C,BC
Bước 5: tính bao đóng của các tập con của Q
2
: Æ
+
= Æ, B
+
=ABC,C
+
=ABC,
BC
+
=ABC
Bước 6: tính F
1
+

Q2
(F): B®C,C®B, B ®BC,C ®BC

Bước 7: G=π
Q1
(F)È π
Q2
(F)={A®B,B®A, A ®AB,B ®AB, B®C,C®B, B
®BC,C ®BC}. Mà F={A®B, B®C, C®A} có A®B, B®C đều là thành
viên của G, còn C®A có là thành viên của G hay không? Ta tính C
G
+
=ABC
suy ra C®A cũng là thành viên của G. Vậy phép phân rã trên bảo toàn phụ
thuộc hàm

Ví dụ 5: Mô tả phép tách không bảo toàn phụ thuộc hàm
Cho lược đồ quan hệ Q(C,S,Z) và F={CS®Z,Z ®C}. Phép phân rã j=[Q
1
,Q
2
] tách
Q thành Q
1
(S,Z) và Q
2
(C,Z). Phép phân rã trên có bảo toàn phụ thuộc hàm F không?
Ta tính cho Q
1
:
Bước 1: Liệt kê các tập con của Q
1
: Æ,S,Z,SZ

Bước 2: tính bao đóng của các tập con của Q
1
: Æ
+
= Æ, S
+
=S,Z
+
=ZC,
SZ
+
=CSZ
Bước 3: F
1
+
chỉ bao gồm các phụ thuộc hàm hiển nhiên vì tất cả các phụ
thuộc hàm sau đều không thỏa: Z®C,Z®ZC, SZ ®C,SZ ®CS, SZ ®CZ,
SZ ®CSZ
Ta tính cho Q
2
:
Bước 4: Liệt kê các tập con của Q
2
: Æ,Z,C,CZ
Bước 5: tính bao đóng của các tập con của Q
2
: Æ
+
= Æ, C
+

=C,Z
+
=ZC,
CZ
+
=CZ
Bước 6: tính F
1
+

Q2
(F): Z®C,Z®ZC
Bước 7: G=π
Q1
(F)Èπ
Q2
(F)={Z®C,Z®ZC} không tương đương với
F={CS®Z, Z®C}. Vậy phép phân rã trên không bảo toàn phụ thuộc hàm
5. Thuật toán kiểm tra bảo toàn phụ thuộc hàm
5.1. Thuật toán tìm bao đóng của tập thuộc tính
Input: j [Ω
1
, Ω
2
, , Ω
p
], F, tập thuộc tính X
Output: X
+


Phương pháp:
Bước 1: Với mỗi phụ thuộc hàm X→ Y ÎF ta thực hiện từ bước 2 đến bước 4
Bước 2: Đặt Z’ = X
Bước 3: Thay thế Z’=Z’ È ((Z’ÇQ
i
+
)
+
Ç Q
i
+
)
Học viên: Nhóm 4 – lớp CH10CNK2 Giảng viên: TS.Phạm Thế Quế
Bước 4: Nếu ở Q
i
, Z’ thay đổi thì thực hiện lại bước 3 cho Q
đầu tiên
. Ngược lại kết
thúc thuật toán và trả về Z’(là bao đóng X
+
)
5.2. Thuật toán kiểm tra bảo toàn phụ thuộc hàm
Input: j [Ω
1
, Ω
2
, , Ω
p
], F
Output: Một khẳng định phép tách j có bảo toàn phụ thuộc hàm hay không?


Phương pháp:
Bước 1: Với mỗi phụ thuộc hàm X→ Y ÎF ta thực hiện từ bước 2 đến bước 3:
Bước 2: Tìm bao đóng X
G
+
với G = È π
Qi
(F)
Bước 3: Nếu YÍ X
G
+
thì X→ Y Î È π
Qi
(F)
+

Bước 4: Nếu tất cả phụ thuộc hàm X→ Y ÎF đều thuộc È π
Qi
(F)
+
thì ta kết luận
phép tách j bảo toàn phụ thuộc hàm và ngược lại j không bảo toàn phụ thuộc hàm

Ví dụ 6: Áp dụng thuật toán kiểm tra bảo toàn phụ thuộc hàm với ví dụ 4
Input: Q(A,B,C), F={A®B,B ®C, C ®A}, Q
1
(A,B) và Q
2
(B,C).

Phương pháp: Hiển nhiên G=π
Q1
(F)È π
Q2
(F)Ê {A®B,B ®C}. Ta xác định C ®A
có thuộc (π
Q1
(F)È π
Q2
(F))
+
hay không?
Bước 1. Gán Z’=C
Bước 2. Gán Z’=Z’ È((Z’ÇQ
1
+
)
+
ÇQ
1
+
)ÛZ’=C È(ÆÇAB)=C. Bước 1 và 2 Z’
không thay đổi ta sang lược đồ Q
2
và tính tiếp Z’
Bước 3: Gán Z’=Z’ È((Z’ÇQ
2
+
)
+

ÇQ
2
+
)ÛZ’=CÈ(ABCÇBC)=BC. Tại đây Z’ thay
đổi nên ta tính tiếp Z’ từ lược đồ Q
1

Bước 4: Gán Z’=Z’ È((Z’ÇQ
1
+
)
+
ÇQ
1
+
)ÛZ’=BCÈ(ABCÇAB)=ABC. Do Z’=Q
+

nên Z’ sẽ không bao giờ thay đổi
Bước 5: Vậy C
G
+
=ABC suy ra C ®A Î (π
Q1
(F)È π
Q2
(F))+ nên phép phân rã bảo
toàn phụ thuộc hàm
6. Kết luận
Khi thiết kế CSDL quan hệ đòi hỏi tìm được một tập các lược đồ quan hệ “tốt”,

nhằm: Tránh dư thừa dữ liệu; Tránh bất thường khi sửa dữ liệu; Đảm bảo mối quan hệ
giữa các thuộc tính đều được thể hiện; Có thể kiểm tra việc cập nhật dữ liệu có vi phạm
ràng buộc CSDL không
Để thực hiện được điều đó cần thiết phải chuẩn hóa dữ liệu và trong quá trình
chuẩn hóa dữ liệu cần thiết phải thực hiện các phép tách lược đồ quan hệ chưa chuẩn
hóa về tập các lược đồ quan hệ chiếu đã được chuẩn hóa sao cho quá trình tách không
làm tổn thất thông tin và bảo toàn được các phụ thuộc hàm
7. Tài liệu tham khảo:
[1] TS. Phạm Thế Quế. Cơ sở dữ liệu. Học viện công nghệ bưu chính viễn thông. Hà
Nội – 2006.
[2] Đỗ Trung Tuấn. Cơ sở dữ liệu. Nhà xuất bản giáo dục 1998.



Học viên: Nhóm 4 – lớp CH10CNK2 Giảng viên: TS.Phạm Thế Quế















×