Tải bản đầy đủ

Các thuật toán biến đổi lược đồ quan hệ và ứng dụng

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

PHẠM NGỌC TOÁN

CÁC THUẬT TOÁN BIẾN ĐỔI
LƯỢC ĐỒ QUAN HỆ VÀ ỨNG DỤNG

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

THÁI NGUYÊN - 2013


ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

PHẠM NGỌC TOÁN

CÁC THUẬT TOÁN BIẾN ĐỔI
LƯỢC ĐỒ QUAN HỆ VÀ ỨNG DỤNG
Chuyên ngành: KHOA HỌC MÁY TÍNH

Mã số: 60.48.01

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Người hướng dẫn khoa học: PGS.TSKH. NGUYỄN XUÂN HUY

THÁI NGUYÊN - 2013


i

LỜI CAM ĐOAN
Học viên cam đoan luận văn này là do bản thân tự nghiên cứu và thực hiện
theo sự hướng dẫn khoa học của thầy giáo PGS. TSKH. Nguyễn Xuân Huy.
Học viên hoàn toàn chịu trách nhiệm về tính pháp lý quá trình nghiên
cứu khoa học của luận văn này.
Thái Nguyên, ngày 10 tháng 11 năm 2013
Người cam đoan

Phạm Ngọc Toán


ii

LỜI CẢM ƠN
Trước tiên học viên bày tỏ lời cảm ơn chân thành đến các Thầy, cô giáo
đã giảng dạy, hướng dẫn và giúp đỡ học viên trong thời gian học tập và
nghiên cứu hoàn thành luận văn này.
Xin được bày tỏ lòng biết ơn sâu sắc tới Thầy giáo PGS.TSKH.

Nguyễn Xuân Huy đã tận tình hướng dẫn, giúp đỡ và đóng góp nhiều ý kiến
quí báu để hoàn thành luận văn này.
Xin chân thành cảm ơn các Thầy, cô giáo Trường Đại Học Công nghệ
Thông tin và Truyền thông - Đại học Thái Nguyên, giúp đỡ và tạo điều kiện
thuận lợi cho em trong thời gian học tập.
Học viên xin chân thành cảm ơn đến Ban giám hiệu, các đồng nghiệp
trường Trung học Nghiệp vụ quản lý LTTP, các bạn học viên lớp Cao học
khóa 2011 - 2013 đã giúp đỡ và tạo điều kiện thuận lợi trong quá trình học tập
và làm luận văn.
Cuối cùng, xin chân thành cảm ơn gia đình và bạn bè đã động viên,

quan tâm, giúp đỡ học viên hoàn thành khóa học và luận văn.


iii

MỤC LỤC
 Một số tính chất của bao đóng..............................................................5
 Thuật toán tìm bao đóng của tập thuộc tính [2, 3]....................................5
Cho LĐQH p = (U, F). Tập thuộc tính B ⊆ U được gọi là cơ sở của LĐQH
p nếu:...........................................................................................................10
Algorithm Translation...........................................................................17
Algorithm Translation.........................................................................27


iv

DANH MỤC CÁC KÝ HIỆU, CHỮ CÁI VIẾT TẮT


Suy dẫn

!╞

Không suy dẫn



Khác



Thuộc



Không thuộc



Là tập con


Suy ra

:=

Gán

\

Phép trừ tập hợp



Phép giao tập hợp



Phép hợp tập hợp



Tương đương


Tương đương

!≡

Không tương đương



Chứa tập con



Với mọi



Tập rỗng

LĐQH

Lược đồ quan hệ

PTH

Phụ thuộc hàm


v

DANH MỤC CÁC HÌNH
 Một số tính chất của bao đóng..............................................................5
 Thuật toán tìm bao đóng của tập thuộc tính [2, 3]....................................5
Cho LĐQH p = (U, F). Tập thuộc tính B ⊆ U được gọi là cơ sở của LĐQH
p nếu:...........................................................................................................10
Algorithm Translation...........................................................................17
Algorithm Translation.........................................................................27


1

MỞ ĐẦU
1. Lý do chọn đề tài
Ngày nay, Công nghệ Thông tin đang phát triển rất nhanh, được ứng
dụng rộng rãi trong nhiều lĩnh vực của cuộc sống như: giáo dục, y tế, kinh tế,
khoa học, xây dưng,… Việc dùng phương tiện tin học để tổ chức và khai thác
cơ sở dữ liệu đã được phát triển từ những năm 60. Trong những năm gần đây
vai trò của máy tính trong việc lưu trữ thông tin ngày càng trở nên quan trọng.
Vì vậy đã tạo ra những kho dữ liệu khổng lồ. Quản lý các cơ sở dữ liệu lớn và
phức tạp đòi hỏi nhiều thuật toán hữu hiệu để tính toán các đối tượng như bao
đóng, khóa, phủ...
Một số thuật toán tốt theo nghĩa độ phức tạp tính toán giới hạn ở các
hàm tuyến tính hoặc đa thức theo chiều dài dữ liệu vào đã được công bố như
thuật toán tính bao đóng của tập thuộc tính, thuật toán tìm một khóa, thuật
toán xác định thành viên hay thuật toán xác định PTH suy dẫn, thuật toán tìm
giao các khóa, thuật toán xác định một LĐQH có một khóa duy nhất...
2. Đối tượng và phạm vi nghiên cứu
Luận văn tập trung tìm hiểu các thuật toán biến đổi lược đồ quan hệ và
ứng dụng thông qua phép biến đổi của lược đồ quan hệ theo một tập thuộc
tính X. Tiếp tục phát triển dạng biểu diễn cơ sở thứ nhất và khảo sát biểu diễn
cơ sở dạng thứ 2 của lược đồ quan hệ. Xây dựng một hệ trình minh họa và
đánh giá các kết quả lý thuyết.
3. Hướng nghiên cứu của đề tài
- Giới thiệu tổng quan về phép biến đổi của lược đồ quan hệ
- Các thuật toán biến đổi, giản lược lược đồ quan hệ
- Thuật toán biểu diễn cơ sở, tính bao đóng
- Cài đặt chương trình


2

4. Phương pháp nghiên cứu
- Phương pháp tổng hợp, phân tích các kết quả của các nhà nghiên cứu
liên quan đến lĩnh vực nghiên cứu trên các tài liệu đã xuất bản, trên các bài
báo, tạp chí khoa học, trên mạng Internet
- Giải quyết các vấn đề đặt ra trong phạm vi đề tài là tiên đề hóa. Các
hệ tiên đề được xây dựng trên cơ sở một hệ suy dẫn hình thức với các tính
chất cơ bản về các đối tượng cơ sở và các mối liên hệ giữa chúng. Cơ sở toán
học của các hệ tiên đề là định lý về tính xác đáng và đầy đủ cùng với các định
lý về điều kiện cần và đủ cho các hệ tiên đề tương đương.
- Kết hợp chặt chẽ giữa lý thuyết và thực hành, sử dụng và phát triển
các phần mềm nói chung và các phần mềm toán học nói riêng để kiểm định và
thể hiện các kết quả lý thuyết.
5. Ý nghĩa khoa học của đề tài
- Tổng hợp được lý thuyết về cơ sở của phép biến đổi của lược đồ quan hệ.
- Vận dụng khái niệm, các thuật toán biến đổi lược đồ quan hệ và ứng
dụng để giải quyết một số vấn đề trong quản lý ngữ nghĩa của dữ liệu như phụ
thuộc dữ liệu, cơ sở, các dạng chuẩn của dữ liệu
- Các kết quả thu được có thể vận dụng cho các quy trình thiết kế các
cơ sở dữ liệu quan hệ dùng trong các hệ thống thông tin là:
+ Tính bao đóng của các tập thuộc tính,
+ Tìm cơ sở của lược đồ quan hệ.
+ Biểu diễn cơ sở dạng thứ hai
+ Giản lược LĐQH
6. Tên đề tài: "Các thuật toán biến đổi lược đồ quan hệ và ứng dụng"
7. Bố cục luận văn
Toàn bộ nội dung của Luận văn được chia thành 3 chương như sau:
CHƯƠNG 1. CÁC KHÁI NIỆM VỀ CƠ SỞ DỮ LIỆU
CHƯƠNG 2. PHÉP GIẢN LƯỢC CỦA LƯỢC ĐỒ QUAN HỆ
CHƯƠNG 3. CÀI ĐẶT CHƯƠNG TRÌNH


3

Chương I

CÁC KHÁI NIỆM VỀ LƯỢC ĐỒ QUAN HỆ
1.1. Quan hệ và bộ [2]
Cho tập hữu hạn U = {A1, A2, ..., An} khác trống (n ≥ 1). Các phần tử
của U được gọi là thuộc tính, ứng với mỗi thuộc tính Ai ∈ U, i = 1, 2, ..., n có
một tập không rỗng dom(Ai) được gọi là miền trị của thuộc tính Ai (thập chí
được giả thiết là chứa hơn 1 giá trị).
n

Đặt

D = U dom( Ai )
i =1

Một quan hệ R với các thuộc tính U = {A1, A2, ..., An}, ký hiệu là R(U),
là một tập các ánh xạ t: U → D sao cho với mỗi Ai ∈ U ta có t(Ai) ∈ dom(Ai).
Mỗi ánh xạ được gọi là một bộ của quan hệ R.
Mỗi quan hệ R(U) có hình ảnh là một bảng, mỗi cột ứng với một thuộc
tính, mỗi dòng là một bộ.
Ta ký hiệu t(X) hoặc t.X là một bộ trên tập thuộc tính X.
Một quan hệ rỗng, ký hiệu ∅, là quan hệ không chứa bộ nào.
Chú ý: Mỗi quan hệ là một tập các bộ nên trong quan hệ không có hai
bộ trùng lặp.
1.2. Phụ thuộc hàm, hệ tiên đề Armstrong, lược đồ quan hệ
1.2.1. Phụ thuộc hàm [2]
 Định nghĩa phụ thuộc hàm
Cho tập thuộc tính U. Giả sử X, Y ⊆ U. Một phụ thuộc hàm (PTH) trên
U là biểu thức dạng f: X → Y.
Nếu f: X → Y là một PTH trên U thì ta nói tập thuộc tính Y phụ
thuộc hàm vào tập thuộc tính X, hoặc tập thuộc tính X xác định hàm tập
thuộc tính Y.


4
Cho quan hệ R(U) và một PTH f: X → Y trên U. Ta nói quan hệ R thỏa
PTH f (hay PTH f đúng trong quan hệ R), ký hiệu R(f), nếu hai bộ tùy ý trong
R giống nhau trên X thì cũng giống nhau trên Y, tức là:
R(X → Y) ⇔ ∀u,v ∈ R: u.X = v.X ⇒ u.Y = v.Y
Cho quan hệ R(U) và tập PTH F trên tập thuộc tính U. Ta nói quan hệ
R thỏa tập PTH F, ký hiệu R(F), nếu R thỏa mọi PTH trong F, tức là R(F) ⇔
∀f ∈ F: R(f).
1.2.2. Hệ tiên đề Armstrong [2, 3]
Cho quan hệ R(U). Giả sử X, Y, Z, W ⊆ U.
F1. Tính phản xạ:
Nếu X ⊇ Y thì X → Y
F2. Tính gia tăng:
Nếu X → Y thì XZ → YZ
F3. Tính bắc cầu:
Nếu X → Y và Y → Z thì X → Z
Chú ý: Các PTH có vế trái chứa vế phải như mô tả trong F1 được gọi là
tầm thường. Các PTH tầm thường thoả trong mọi quan hệ.
1.2.3. Lược đồ quan hệ [2]
Lược đồ quan hệ (LĐQH) là một cặp p = (U, F) trong đó U là tập hữu
hạn các thuộc tính, F là tập các PTH trên U.
Quy ước: Trong trường hợp không chỉ rõ tập PTH F, ta xem LĐQH chỉ
là một tập hữu hạn các thuộc tính U.
1.3. Bao đóng của tập thuộc tính [2]
Cho tập PTH F trên tập thuộc tính U và một tập con các thuộc tính X
trong U. Bao đóng của tập thuộc tính X, ký hiệu X +, là tập tất cả các thuộc tính
A ∈ U mà PTH X→A có thể được suy diễn logic từ F nhờ hệ tiên đề
Armstrong:


5
X+ = {A ∈ U | X → A ∈ F+}
 Một số tính chất của bao đóng
Cho LĐQH a = (U, F). Khi đó ∀X, Y ⊆ U ta có
1. Tính phản xạ: X ⊆ X+
2. Tính đồng biến: X ⊆ Y ⇒ X+ ⊆ Y+
3. Tính lũy đẳng: (X+)+ = X+
4. (XY)+ ⊇ X+Y+
5. (X+Y)+ = (XY+)+ = (XY)+
6. X → Y ⇔ Y ⊆ X+
7. X → X+ và X+ → X
8. X+ =Y+ ⇔ X → Y và Y → X
 Thuật toán tìm bao đóng của tập thuộc tính [2, 3]
Cho tập PTH F trên tập thuộc tính U và một tập con các thuộc tính X
trong U. Để xác định bao đóng của tập thuộc tính X , ký hiệu X + xuất phát từ
tập X và bổ sung dần cho X các thuộc tính thuộc vế phải của các PTH L→R
∈ F thoả điều kiện L ⊆ X. Thuật toán sẽ dừng khi không thể bổ sung thêm

thuộc tính nào cho X.
Algorithm Closure
- Tập thuộc tính X ⊆ U

Input:

- Tập PTH F
Output:

X+ = {A∈U|X→A∈F+}

Method
Y: = X ;
Repeat
Z: = Y ;
For each FD L→R in F do
If L ⊆ Y then Y: = Y∪R ;
Enddif ;


6

Endfor ;
Until Y: = Z;
Return Y;
End Closure.
 Đánh giá độ phức tạp
Giả sử n là số lượng các thuộc tính trong U, m là số lượng các PTH
trong F thì thuật toán trên có độ phức tạp đa thức bậc hai theo chiều dài dữ
liệu O(mn2).
Ví dụ 1: Cho lược đồ quan hệ R = (U,F)
U = ABCDEGH
F= {AB→C, D→EG, ACD→B, C→A, BE→C, CE→AG,
BC→D, CG→BD, G→H}
a. Tính D+
b. Tính (BE)+
c. Tính (DE)+
d. Tính (CG)+
Giải
a. Tính D+
X0 = D
1. X1 = DEG (áp dụng D→EG)
2. X2 = DEGH (áp dụng G→H)
Vậy (D)+ = DEGH
b. Tính (BE)+
X0 = BE
1. X1 = BEC (áp dụng BE→C)
2. X2 = BECAG (áp dụng CE→AG)
3. X3 = BECAGD (áp dụng BC→D)
4. X4 = BECAGDH (áp dụng G→H)


7

Vậy (BE)+ = ABCDEGH
c. Tính (DE)+
X0 = DE
1. X1 = DEG (áp dụng D→EG)
2. X2 = DEGH (áp dụng G→H)
Vậy (DE)+ = DEGH
d. Tính (CG)+
X0 = CG
1. X1 = CGA (áp dụng C→A)
2. X2 = CGABD (áp dụng CG→BD)
3. X3 = CGABDH (áp dụng G→H)
4. X4 = CGABDHE (áp dụng D→EG)
Vậy (CG)+ = ABCDEGH
Ví dụ 2: Cho lược đồ quan hệ R = (U,F)
U = ABCDEG
F = {C→G, BG→CD, AEG→BC, CG→EA, B→CG)
a. Tính C+
b. Tính B+
c. Tính (AEG)+
Giải
a. Tính C+
X0 = C
1. X1 = CG (áp dụng C→G)
2. X2 = CGEA (áp dụng CG→EA)
3. X3 = CGEAB (áp dụng AEB→BC)
4. X4 = CGEABD (áp dụng BG→CD)


8

Vậy C+ = ABCDEG
b. Tính B+
X0 = B
1. X1 = BCG (áp dụng B→CG)
2. X2 = BCGD (áp dụng BG→CD)
3. X3 = BCGDEA (áp dụng CG→EA)
Vậy B+ = ABCDEG
c. Tính (AEG)+
X0 = AEG
1. X1 = AEGBC (áp dụng AEG→BC)
2. X2 = AEGBCD (áp dụng BG→CD)
Vậy (AEG)+ = ABCDEG
1.4. Phủ của tập phụ thuộc hàm [2, 3]
Cho hai tập PTH F và G trên cùng một tập thuộc tính U. Ta nói F suy
dẫn được ra G, ký hiệu F╞ G nếu ∀g∈G: F╞ g.
Ta nói F tương đương với G, ký hiệu F ≡ G, nếu F╞ G và G╞ F.
Nếu F ≡ G ta nói G là một phủ của F.
Ký hiệu: F !╞ G: F không suy dẫn ra được G
F !≡ G có nghĩa là F và G không tương đương.
Cho tập PTH F trên tập thuộc tính U và X là tập con của U, ta dùng ký
hiệu XF+ trong trường hợp cần chỉ rõ bao đóng của tập thuộc tính X lấy theo
tập PTH F.
 Phủ thu gọn tự nhiên
Cho hai tập PTH F và G trên cùng một thuộc tính U. G là phủ thu gọn
tự nhiên của F nếu:
1. G là phủ của F, và


9

2. G có dạng thu gọn tự nhiên theo nghĩa sau:
a. Hai vế trái và phải của mọi PTH trong G rời nhau (không giao nhau)
∀f ∈ G: LS(f)∩RS(f) = ∅
b. Các vế trái của mọi PTH trong G khác nhau đôi một.
∀f, g ∈ G: f ≠ g ⇔ LS(f) ≠ LS(g)
 Thuật toán tìm phủ thu gọn tự nhiên của tập PTH F
Algorithm Natural_Reduced
Function: Tính phủ thu gọn tự nhiên của tập PTH
Format: Natural_Reduced (F)
Input: Tập PTH F
Output: Một phủ thu gọn tự nhiên G của F
i) G ≡ F
ii) L→R ∈ G: L∩R = ∅
iii) ∀ Li→Ri, ∀ Lj→Rj ∈ G: i≠j ⇒ Li ≠ Lj
Method
G := ∅;
For each FD L→R in F do
Z := R \ L;
If Z ≠ ∅ then
If there is an FD L→Y in G then
Replace L→Y in G by L→YZ
Else Add L→Z to G;
Endif
Endif
Endfor
Return G;


10

End Natural_Reduced.
Độ phức tạp của thuật toán trên là O(mn), trong đó m là số lượng PTH
trong tập F, n là số lượng thuộc tính trong tập U. Để ý rằng mn là chiều dài dữ
liệu vào của thuật toán.
1.5. Cơ sở của lược đồ quan hệ [2, 3]
Cho LĐQH p = (U, F). Tập thuộc tính B ⊆ U được gọi là cơ sở của
LĐQH p nếu:
(i) B+ = U
(ii) ∀A∈K: (B\{A})+ ≠ U
Hai điều kiện trên tương đương với
(i) B → U
(ii) ∀A∈B: (B\{A}) ! → U
Nếu B thỏa mãn điều kiện (i) thì B được gọi là một siêu cơ sở.
Thuộc tính A ∈ U được gọi là thuộc tính cơ sở (nguyên thủy hoặc cơ
sở) nếu A có mặt trong một cơ sở nào đấy. A được gọi là thuộc tính không cơ
sở (phi nguyên thủy hoặc thứ cấp) nếu A không có mặt trong bất kỳ cơ sở
nào. Ký hiệu UB là tập các thuộc tính cơ sở của LĐQH p và U 0 là tập các
thuộc tính không cơ sở của p.
Chú ý: Trong một số tài liệu, thuật ngữ cơ sở được dùng theo nghĩa
siêu cơ sở và thuật ngữ cơ sở tối tiểu được dùng theo nghĩa cơ sở .
 Thuật toán tìm một cơ sở của LĐQH
Tư tưởng: Xuất phát từ một siêu cơ sở B tuỳ ý của LĐQH, duyệt lần
lượt các thuộc tính A của B, nếu bất biến (B\{A}) + = U được bảo toàn thì A
loại khỏi B. Có thể thay kiểm tra (B\{A})+ = U bằng kiểm tra A ∈ (B\{A})+
Algorithm Base
Function: Tìm một cơ sở của LĐQH


11

Input:

- Tập thuộc tính U

- Tập PTH F
Output: Cơ sở B ⊆ U thoả
i) B+ = U
ii) ∀A∈B : (B\{A})+ ≠ U
Method
B := U;
For each attribute A in U do
If A ∈ (B\{A})+ then
B := B \ {A}
Endif;
Endfor;
Return B;
End Base.
Độ phức tạp tính toán: Thuật toán duyệt n thuộc tính, với mỗi thuộc
tính thực hiện phép lấy bao đóng với độ phức tạp n 2m. Tổng hợp lại, độ phức
tạp tính toán của thuật toán là O(n3m).
Ví dụ 3: Cho LĐQH p = (U,F), trong đó:
U = {A, B, C, D, E}
F={D → E
AB → CD
C → AB }
Hãy tìm một cơ sở của p.
Dễ thấy rằng, LĐQH p có cơ sở B = C, vì thoả mãn hai điều kiện:
(i) B+ = C+ = ABCDE = U
(ii) C tối tiểu ( theo nghĩa (B \ {C})+ ≠ U ).
Ví dụ 4: Cho P = (U,F), trong đó:

U = ABCDE
F = { C→ B
DE → AC


12
A → DE }
Tìm cơ sở của LĐQH đã cho?
Ta thấy, LĐQH P có cơ sở B = A, vì thoả mãn 2 điều kiện:
(i) B+ = A+ = ABCDE = U
(ii) A tối tiểu ( theo nghĩa (B \ {A})+ ≠ U ).
Mặt khác, tương tự như trên, ta cũng dễ thấy rằng LĐQH P còn cơ sở
thứ 2, đó là B = DE.
Để trả lời cho câu hỏi: Lược đồ có trên một cơ sở hay không, ta đi tìm
giao các cơ sở
1.6. Cách tính giao các cơ sở [2]
Những phần tử không xuất hiện ở vế phải thì nó có mặt ở mọi cơ sở, đó
chính là giao các cơ sở.
Vậy giao các cơ sở chính là những thuộc tính không xuất hiện ở vế phải.
Giả sử M là giao các cơ sở. Nếu M+ = U thì lược đồ chỉ có đúng 1 cơ
sở, nếu M+ ≠ U thì lược đồ có trên 1 cơ sở.
Gọi M là giao các cơ sở khi và chỉ khi: M+ = U.
Cho LĐQH p = (U,F) với n thuộc tính trong U và m PTH trong F. Gọi
M là giao các cơ sở của p. Khi đó có thể xác định giao các cơ sở bằng một
thuật toán tuyến tính theo mn qua công thức: M = U \ L →R∈(FR \ L) .
 Thuật toán xác định giao các cơ sở trong LĐQH
Algorithm BaseIntersec
Input: - Tập thuộc tính U
- Tập PTH F
Output: Giao các cơ sở M = U \ L→R∈(FR \ L)
Method
M:=U;


13

For each FD L→R in F do
M:=M\(R\L);
Endfor;
Return M;
End BaseIntersec.
Ví dụ 5: Cho p = (U,F), trong đó:

U = ABCDE
F = {AB → C
AD → B
B → D}

Ta có, giao của các cơ sở là UI = ABCDE\BCD = AE
UI+ = (AE)+ = AE ≠ U nên p có hơn một cơ sở. Vì UI là giao các cơ sở
nên ta có thể bổ sung cho UI một số thuộc tính để thu được các cơ sở.
Dễ xác định được p có hai cơ sở là B 1 = ABE và B2 = ADE. Tập các
thuộc tính cơ sở là UB = ABDE, tập các thuộc tính không cơ sở là U0 = C.
1.7. Thuật toán tìm 2 cơ sở của LĐQH [2]
Bước 1: Tính giao các cơ sở
Bước 2: Tính M+. Nếu M+ = U ⇒ Lược đồ có 1 cơ sở M là duy nhất
M+ ≠ U ⇒ Lược đồ có trên 1 cơ sở
Gọi thuật toán Base 1 – Tìm cơ sở 1
Gọi thuật toán Base 2 – Tìm cơ sở 2
 Thuật toán tìm cơ sở thứ hai của LĐQH
Tư tưởng: Xuất phát từ tập thuộc tính M = U, trước hết duyệt các
thuộc tính A của B, nếu bất biến (M\{A}) + = U được bảo toàn thì loại A khỏi
M. Sau đó duyệt tương tự với các thuộc tính trong U\B.
Algorithm Base 2
Function: Tìm một cơ sở thứ 2 của LĐQH
Input:
- Tập PTH F

- Tập thuộc tính U


14
- Cơ sở B ⊆ U
Output: Cơ sở thứ hai, nếu có, M ⊆ U thoả
i) M+ = U
ii) ∀A∈M : (M\{A})+ ≠ U
Nếu không có cơ sở thứ 2: ∅
Method
M := U;
For each attribute A in B do
If A ∈ (M\{A})+ then
M := M \ {A}
Endif;
Endfor;
For each attribute A in U \ B do
If A ∈ (M\{A})+ then
M := M \ {A}
Endif;
Endfor;
If M = K then return ∅
Else return M;
Endif
End Base 2.
Ví dụ 6: Cho LĐQH P = (U,F) trong đó: U = ABCDE
F = { BC → D
CD → A
D→E
A → B}
a. Hãy xác định phần giao của các cơ sở trong P


15

b. Tìm một cơ sở B1 của P
c. P có còn cơ sở nào khác ngoài B1 không ? Vì sao ?
d. Xác định tập các thuộc tính không cơ sở U0 của P
Giải
a. Xác định phần giao của các cơ sở trong P
UI = U\vế phải của F = ABCDE – ABDE = C
b. Tìm một cơ sở B1 của P
Lập bảng
Loại thử thuộc tính nào ta đánh dấu phẩy (') bên cạnh thuộc tính đó.
Nếu bao đóng các thuộc tính còn lại bằng U thì loại thuộc tính đó ký hiệu ( _ )
ví dụ: A' (loại). Những thuộc tính không loại được thì tô đậm.
Base (B)
BCDE (thử loại bỏ A)
CDE (thử loại bỏ B)
DE (thử loại bỏ C)
CE (thử loại bỏ D)
CD (thử loại bỏ E)

A'
A
A
A

B'
B
B

C'
C
C

B

C
C

D'
D
D
D
D

E'
E
E
E
E
E

Vậy cơ sở B1 của P là: CD
c. P còn cơ sở khác ngoài cơ sở B1 vì:
M+ = C+ = C ≠ U nên lược đồ có hơn một cơ sở .
Vậy ngoài cơ sở B1, lược đồ còn có cơ sở B2 = BC vì thoả 2 điều kiện sau:
(i) B+ = (BC)+ = ABCDE = U
(ii) BC tối tiểu ( theo nghĩa (B \ {BC})+ ≠ U ).
d. Xác định tập các thuộc tính không cơ sở U0 của P.
- Thuộc tính cơ sở là thuộc tính có mặt trong mọi cơ sở, ký hiệu là UB.
- Thuộc tính không cơ sở là thuộc tính không có mặt trong bất cứ cơ sở
nào, ký hiệu U0.
Ta có: UB = ABCD ⇒ U0 = E.


16

Chương 2

PHÉP GIẢN LƯỢC CỦA LƯỢC ĐỒ QUAN HỆ
2.1. Phép biến đổi LĐQH [2]
Cho hai LĐQH p = (U,F), q = (V,G) và tập thuộc tính M ⊆ U. Ta nói
LĐQH q nhận được từ LĐQH p qua phép thu gọn (dịch chuyển) theo tập
thuộc tính M, nếu sau khi loại bỏ mọi xuất hiện của các thuộc tính của M
trong lược đồ p thì thu được lược đồ q.
Nếu sau khi thực hiện phép thu gọn theo M cho LĐQH p ta thu được
LĐQH q thì ta viết q = p\M.
Thao tác loại bỏ M được thực hiện trên lược đồ p = (U,F) để thu được
lược đồ q = (V,G) như sau:
1. Tính V = U\M có độ phức tạp O(n) với n là số lượng thuộc tính trong U.
2. Mỗi PTH X→Y trong F ta tạo ra PTH X\M→Y\M cho G. Thủ tục
này ký hiệu là G = F\M. Tính F\M đòi hỏi độ phức tạp O(mn) với m là số
lượng PTH trong F.
Như vậy q = p\M = (U\M,F\M) được thực hiện với độ phức tạp O(mn),
tức là tuyến tính theo chiều dài dữ liệu vào (của LĐQH p).
Sau khi thực hiện thủ tục G = F\M nếu:
- G chứa PTH tầm thường (dạng X→Y, X⊇Y) thì ta loại các PTH này
khỏi G.
- G chứa các PTH trùng lặp thì ta bớt các PTH này.
Ví dụ 1
Cho LĐQH p = (U, F); U = ABCDEFG
F = {ABC → DE,
BCD → AG,
DE → FC,
CE → FG}
Với M = CFG, hãy xác định q = (V,G) = p\M.


17

Giải
Bước 1: Tính V = U \ M = ABCDEFG \ CFG = ABDE
Vậy V = ABDE
Bước 2: Tính G = F\M = { AB → DE,
BD → A,
DE → ∅, (Loại)
E → ∅, (Loại)}
G = {AB → DE,

Vậy

BD → A}
Lược đồ quan hệ q = (V,G) trong đó:
V = ABDE
G = {AB → DE,
BD → A}
Ta cũng dễ nhận thấy kỹ thuật thu gọn LĐQH thoả tính hợp thành và
giao hoán, cụ thể nếu p là LĐQH trên tập thuộc tính U và X, Y là hai tập con
rời nhau của U thì
p\XY = (p\X)\Y = (p\Y)\X
2.2. Thuật toán biến đổi LĐQH [2, 3]
Algorithm Translation
Input:
- LĐQH p = (U,F)
- Tập thuộc tính M ⊆U
Output:
LĐQH q = (V,G) = p\M, V = U\M, G = F\M.
Method
V := U\M;
G := ∅


18

For each FD L→R in F do
G := G ∪ {L\M→R\M};
Endfor;
G := Natural_Reduced(G);
Return (V,G);
End Translation.
Thủ tục Natural_Reduced(G) đưa tập PTH G về dạng thu gọn tự nhiên
bằng cách loại khỏi G những PTH tầm thường (có vế trái chứa vế phải), chuyển
đổi mỗi PTH có hai vế trái phải rời nhau và gộp các PTH có cùng vế trái.
Ví dụ 2
Cho LĐQH p = (U,F), U = ABCDEH
F={ AE → D,
A → DH,
BC → E,
E → BC}
Với M = ADH, hãy xác định q = (V,G) = p\M ?
Áp dụng thuật toán trên:
Bước 1: Tính V = U\M = ABCDEH\ADH = BCE
Vậy V = BCE
Bước 2: Tính G = F\M = {E → ∅ (loại) ,
∅ → ∅ (loại),
BC → E,
E → BC}
Vậy G = {BC → E,
E → BC}


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

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

×