LĐQH p = (U,F) được gọi là cân bằng nếu tập PTH F trong p thoả các tính chất sau đây:
1. Hợp các vế trái, các vế phải của các PTH trong F đúng bằng tập thuộc tính U: LS(F) = RS(F) = U
2. F không chứa các PTH tầm thường, tức là các PTH có vế trái chứa vế phải: X,YU: XY (XYF)
3. Cả hai vế trái và phải của mọi PTH trong F rời nhau (không giao nhau): f F: LS(f)RS(f) =
4. Các vế trái của mọi PTH trong F khác nhau đôi một: f, g F: LS(f) = LS(g) f = g
Các tính chất thứ 2, 3, 4 cho biết F có dạng thu gọn tự nhiên. Như vậy LĐQH là cân bằng khi và chỉ khi tập PTH có dạng thu gọn tự nhiên và mọi thuộc tính đều xuất hiện ít nhất một lần ở vế trái, một lần ở vế phải.
Ví dụ 19:
1. Cho LĐQH p = (U,F). Với U = ABCD và
F = {ADC, BAC, BCA, DB}. Suy ra p = (U,F) là lược đồ cân bằng.
2. Nếu thêm cho U một thuộc tính, chẳng hạn E và giữ nguyên tập PTH thì thu được một LĐQH không cân bằng q = (UE,F) vì tính chất 1 bị vi phạm:
LS(F) = RS(F) = ABCD ABCDE.
2.9.1 Một số tính chất của lược đồ cân bằng
Ngoài các tính chất trên, lược đồ cân bằng (LĐCB) còn có những tính chất sau đây:
5. Nếu tập PTH F trong LĐQH p = (U,F) ở dạng thu gọn tự nhiên và chỉ có một PTH thì p không thể là LĐCB.
Thật vậy, nếu F = {XY} và F ở dạng thu gọn tự nhiên thì: LS(F) = X Y = RS(F), vi phạm tính chất 1.
6. Từ tính chất 5 ta suy ra LĐQH chỉ có một thuộc tính thì không thể là LĐCB. Thật vậy, gọi thuộc tính duy nhất là A, ta chỉ thấy có 4 khả năng tạo các PTH sau đây:
a. AA (Tầm thường) b. A (Tầm thường) c. (Tầm thường) d. A
Như vậy chỉ có thể chọn U=A và F= hoặc F={A}. - Trường hợp 1: U=A, F= cho ta LS(F) = RS(F) = U.
- Trường hợp 2: U=A, F={A} cho ta LS(F)= A=RS(F). Cả hai trường hợp đều không cho LĐCB.
Để ý rằng trường hợp U= và F= ta có LĐCB (,).
7. Trong LĐCB p = (U,F), tập giao các khoá UI = . Thật vậy theo công thức tính giao
các khoá và theo tính chất 3 fF: RS(f)LS(f) = ta suy ra : fF: RS(f)\LS(f) = RS(f) Do đó F f F f f RS f RS f LS f RS M ( ( )\ ( )) ( ) ( ) theo tính 1 ta có:
RS(F)=U, do đó UI = U\M = U\U = .
2.9.2 Thuật toán thu gọn LĐQH về dạng cân bằng
Algorithm BS // Thu gọn LĐQH về dạng cân bằng Format: BS(a) Input: - LĐQH p = (U,F) Output: - LĐCB q = (V,G) Method
1. Đưa F về dạng thu gọn tự nhiên
G:=Natural_Reduced(F);
2. Tính giao các khoá UI := U\RS(G);
3. Tính lượng thu gọn M 3.1. P := RS(G)\LS(G) 3.2. M := (PUI)G+ 3.3. Tạo LĐQH q = (V,G); V:=U; G:=F; 4. While M do 4.1. Thu gọn q theo M q:=q\M; // q= (V,G); V:=V\M; G:=G\M 4.2. Loại khỏi G các PTH dạng X 4.3. Nhóm các PTH có cùng vế trái trong G XY1, XY2,....,XYk thành XY1Y2...YK; 4.4. M := V\LS(G); Endwhile; 5. Return(q); End BS. Ví dụ
Cho LĐQH p = (U,F). Với tập thuộc tính U = ABCDEH . Tập PTH F = {AED, BCCE, EB, EC, HC}.
Theo thuật toán BS ta có:
1. G := Natural_Reduced(F) = {AED, BCE, EBC, HC} 2. RS(G) = BCDE; UI = U\RS(G) = ABCDEH\BCDE = AH 3. LS(G) = ABCEH;
3.1. P = RS(G)\LS(G)=BCDE\ABCEH = D 3.2. M = (PUI)+ = (ADH)+ = ACDH
3.3. Xét LĐQH q = (V, G); V = ABCDEH, G = {AED, BCE, EBC, HC}. 4. Lặp
4.1. q = (V,G) = q\M = q\ACDH; V = ABCDEH\ACDH = BE;
4.2. G = G\ACDH = {E(loại), BE, EB, (loại)} 4.3. G = {BE, EB}
4.4. M = V\LS(G) = BE\BE =
5. Kết quả: q = (V,G); V = BE; G = {BE, EB}.
2.9.3 Định lý 1
LĐQH thu được sau khi thực hiện thuật toán BS là lược đồ cân bằng.
Chứng minh
Để ý rằng sau bước 1 của thuật toán BS ta thu được phủ tự nhiên G của F, nghĩa là G đã thoả các tính chất 2-4.
Ta rút ra nhận xét sau đây: Nếu PTH G thoả tính chất 3 thì sau khi thực hiện phép thu gọn G:= G\M tính chất 3 vẫn được bảo toàn. Vậy tính chất 3 là bất biến của vòng lặp While trong thuật toán BS.
Nếu G có chứa PTH tầm thường thì PTH đó chỉ có thể ở dạng X, bởi vậy nếu XY và XY thì theo tính chất 3 ta suy ra XY = Y = .
Trước hết ta chứng minh rằng nếu lược đồ q = (V,G) đã ở dạng thu gọn tự nhiên, nghĩa là đã thoả các tính chất 2-4 thì sau bước 4.1 của thuật toán BS ta thu được LĐQH thoả tính chất 1.
Thật vậy lúc đầu ta có, P = RS(G)\LS(G), M = (PUI)G+, V = U và G = F. Theo tính chất 3 của G ta có f G: RS(f)LS(f) = , hay:
RS(f)\LS(f) = RS(f) và do đó G R L I U R L U RS G U \ ( \ ) \ ( ) Ta có G f M G LS M f LS G LS ( ( )\ ) ( )\ ) ( tương tự RS(G) = RS(G)\M
Ta chứng minh đẳng thức LS(G)\M = RS(G)\M = V\M theo sơ đồ sau: LS(G)\M V\M RS(G)\M LS(G)\M
Tại bước lặp đầu tiên ta có,
a) LS(G)\M V/M. Hiển nhiên
b) V\M RS(G)\M. Nếu AV\M thì AM = (PUI)G+ UI , do đó AUI = V\RS(G). Từ đó suy ra ARS(G) và do đó ARS(G)\M.
c) RS(G)\M LS(G)\M. Nếu ARS(G)\M thì A RS(G), và AM = (PUI)G
+
P, do đó AP = RS(G)\LS(G). Từ đây suy ra ALS(G) và do đó ALS(G)\M.
Từ lần lặp thứ hai trở đi, tại bước 4.2 của thuật toán, sau khi loại bỏ các phụ thuộc hàm dạng X khỏi G, các tập V và RS(G) không thay đổi, cụ thể là đẳng thức V = RS(G) vẫn bảo toàn. Tuy nhiên, tập LS(G) có thể bị giảm đi. Như vậy là sau bước 4.2 tính chất 1 có thể bị vi phạm.
Vòng lặp while có nhiệm vụ cân bằng 3 tập V, LS(G) và RS(G), trong đó V = RS(G). Muốn vậy, trước hết phải tính lượng chênh lệch M := V\LS(G) tại bước 4.4.
Theo bổ đề các thuộc tính phi nguyên thuỷ ta có MUo. Nếu M ta tiếp tục thu gọn lược đồ q = (V,G) theo lược chênh lệnh M. Vì MUo nên tập khoá Key(q) luôn luôn được bảo toàn. Vì LĐQH lúc đầu là hữu hạn và các phép thu gọn đều thu nhỏ kích thước của tập V, LS,và RS nên đến một lúc nào đó ta phải thu được điều kiện kết thúc vòng lặp, cụ thể là M=.
Ta chỉ cần chứng minh rằng khi kết thúc vòng lặp, tức là khi M= ta sẽ thu được lược đồ thoả tính chất 1.
Thật vậy, từ M= ta suy ra V=LS(G), kết hợp với bất biến V=RS(G) của vòng lặp ta thu được tính chất 1: LS(G) = RS(G) = V.
2.9.4 Định lý 2
Mọi lược đồ quan hệ p = (U,F) đều đưa về dạng cân bằng q = (V,G) thoả tính chất Key(p) = UI Key(q)
Trong đó UI là giao các khoá của p. Thuật toán thu gọn có độ phức tạp đa thức
theo chiều dài dữ liệu vào O(n2m), n là số thuộc tính trong U, m là số PTH trong F.
Chứng minh
Thuật toán BS đưa LĐQH p về LĐQH q. Theo bổ đề trên LĐQH q thoả các tính chất 1-4 của LĐCB. Ngoài ra theo bổ đề về thu gọn LĐQH theo các bộ phận không khoá và giao các khoá ta nhận được hệ thức:
Key (p) = UI Key (q).
Mọi bước của thuật toán BS đều có độ phức tạp không quá O(nm). Vì M là tập thuộc tính có tối đa n phần tử do đó để M tiến đến , vòng lặp While cần thực hiện tối đa n lần. Tổng hợp lại, độ phức tạp của thuật toán BS là O(n2m).
Ví dụ
Cho LĐQH p = (U,F). Với tập thuộc tính U = ABCDEH. Tập PTH F = {AED, BCCE, EB, EC, HC}.
Sau khi đưa tập PTH F về dạng thu gọn tự nhiên {AED, BCE, EBC, HC} và tính được UI =U\BCDE = AH, ta thu gọn p về lược đồ cân bằng q = (V,G), V = BE, G = {BE, EB}.
Dễ thấy q có hai khoá, cụ thể là Key (q) = {B,E}.
Từ đây suy ra Key(p) = UI Key(q) = AH {B,E} = {AHB, AHE}.
CHƯƠNG III: CÀI ĐẶT CHƯƠNG TRÌNH
ỨNG DỤNG KỸ THUẬT THU GỌN LƯỢC ĐỒ QUAN HỆ TRONG THIẾT KẾ CƠ SỞ DỮ LIỆU
3.1 Giới thiệu
Cơ sở dữ liệu là một trong những chuyên ngành quan trọng bậc nhất trong
lĩnh vực công nghệ thông tin. Hầu hết, cơ sở dữ liệu được vận dụng để xây dựng
phần mềm được xây dựng để hỗ trợ việc thiết kế và kiểm tra tính chất của cơ sở
dữ liệu là chưa nhiều.
Trong luận văn này, em tập trung tìm hiểu và nghiên cứu các phép biến đổi lược đồ quan hệ, đặc biệt là tìm hiểu sâu về kỹ thuật thu gọn lược đồ quan
hệ. Việc cài đặt chương trình ứng dụng nhằm mục đích mô phỏng các kết quả
nghiên cứu được của học viên. Chương trình có giao diện đơn giản, dễ hiểu, dễ
sử dụng và được viết bằng ngôn ngữ C# , một ngôn ngữ hướng đối tượng khá
phổ biến, cho phép tạo giao diện nhanh, dễ dàng.
Chương trình cho phép tạo lược đồ quan hệ mới, lưu và có thể mở tệp đã có sẵn trong máy. Các chức năng chính của chương trình bao gồm: Tìm phủ tối
thiểu của tập phụ thuộc hàm, tìm bao đóng của tập thuộc tính được nhập từ bàn phím, tìm khóa, các dạng biểu diễn khóa và giao các khóa. Đặc biệt, chương
trình xây dựng chức năng ứng dụng kỹ thuật thu gọn lược đồ quan hệ để có thể
vận dụng cho các quy trình thiết kế các cơ sở dữ liệu chuẩn hóa.
3.2 Một số giao diện của chương trình 3.2.1 Giao diện chính
Hình 3.1. Giao diện chính
Hình 3.2. Giao diện tạo LĐQH mới
Hình 3.3. Giao diện tạo ghi dữ liệu
Hình 3.4. Giao diện tạo mở dữ liệu
Hình 3.4. Giao diện xử lý
Hình 3.4. Giao diện Help
3.3 Hướng dẫn sử dụng
a. Tạo một lược đồ quan hệ mới
File/New cửa sổ nhập dữ liệu, dữ liệu được xử lý dưới dạng văn bản. Tập thuộc tính U được nhập đầu tiên với các chữ cái Latin viết liền không có ký tự trống.
Sau khi nhập xong tập thuộc tính ta có thể Enter, hoặc cách, hoặc phẩy để nhập tiếp tập phụ thuộc hàm, các phụ thuộc hàm có thể được ngăn cách nhau bằng ký tự trống hoặc enter hoặc dấu phẩy. Tiếp theo Click nút Save để ghi, chương trình mặc định với đuôi .inp.
b. Mở một quan hệ đã có
File/Open (CTRL+O) xuất hiện hộp thoại c. Tìm khoá
Click vào nút Tìm khoá để tìm khoá của lược đồ p. Kết quả hiện trong ô kết quả. d. Tìm bao đóng của tập thuộc tính
Nhập tập thuộc tính thuộc U vào hộp X. Bấm chuột nút Tìm bao đóng, kêt quả hiện ở ô kết quả.
e. Tìm tập giao của các khoá
Bấm chuột vào nút Tìm giao khoá, giao của khoá hiển thị trong ô Ui. g. Tìm cực tiểu vế trái
Bấm chuột vào nút cực tiểu vế trái, các vế trái cực tiểu được hiển thị trong ô ML(F).
h. Thu gọn theo M
Ta nhập tập thuộc tính cần thu gọn vào ô M. Bấm chuột nút Thu gọn. Kết quả hiển thị lược đồ quan hệ q = p\M.
i. Tìm khoá của lược đồ q
Bấm chuột vào nút Tìm Key(q), kết quả hiện trong ô kết quả. j. Biểu diễn thứ nhất của khoá
Sau khi tìm được khoá của lược đồ q, ta bấm vào nút Biểu diễn khoá thứ nhất, kết quả là khoá của lược đồ quan hệ p được hiển thị theo công thức biểu diễn khoá. k. Biểu diễn thứ 2 của khoá
Sau khi tìm được khoá của lược đồ q và tìm được cực tiểu vế trái, ta bấm vào nút Biểu diễn thứ hai ta được kết quả là khoá của lược đồ p.
KẾT LUẬN VÀ KIẾN NGHỊ 1. Kết luận
Những nội dung chính đã được giải quyết trong luận văn
Về lý thuyết:
- Tìm hiểu kỹ thuật thu gọn lược đồ quan hệ
- Định lý về công thức biểu diễn bao đóng theo phép thu gọn
- Khái niệm và tính chất của lược đồ cân bằng
- Hai dạng biểu diễn khoá thông qua phép thu gọn.
Về thực nghiệm:
- Luận văn cài đặt các kết quả lý thuyết dưới dạng chương trình bao gồm
các chức năng sau:
o Tìm phủ tối thiểu
o Tìm bao đóng
o Tìm khóa, tìm giao các khóa
o Hai cách biểu diễn khóa
o Thu gọn LĐQH theo tập thuộc tính M ...
2. Kiến nghị
- Vận dụng phép thu gọn lược đồ quan hệ trên có thể thiết kế một cở sở dữ liệu lớn có tính thực tiễn cao
- Có thể phát triển ánh xạ đóng trên phép thu gọn
- Tiếp tục xây dựng và hoàn thiện phần mềm hỗ trợ thiết kế cở sở dữ liệu dựa trên kỹ thuật thu gọn và áp dụng với cơ sở dữ liệu cụ thể.
TÀI LIỆU THAM KHẢO Tiếng Việt
1. Nguyễn Xuân Huy, Lê Thị Mỹ Hạnh (2005), Giàn giao của ánh xạ đóng, Chuyên san Các công trình nghiên cứu - triển khai Viễn thông và Công nghệ thông tin.
2. Nguyễn Xuân Huy (2006), Các phụ thuộc logic trong cơ sở dữ liệu, Viện Khoa học và Công nghệ Việt Nam, Nxb Thống Kê.
3. Nguyễn Xuân Huy, Đoàn Văn Ban, Đàm Gia Mạnh, Nguyễn Thế Dũng (2001), Về mối liên hệ giữa suy diễn phụ thuộc hàm và suy diễn logic, Tạp chí Tin học và điều khiển học.
4. J.D Ullman Tập 1,2 (2001), Trần Đức Quang biên dịch, Nguyên lý các hệ cơ sở dữ liệu và cơ sở tri thức, Nxb Thống kê.
5. Lê Tiến Vương (1999), Nhập môn cơ sở dữ liệu quan hệ, Nxb Thống kê.
6. Vũ Đức Thi (1997), Cơ sở dữ liệu: Kiến thức và thực hành, Nxb Thống kê.
Tiếng Anh
7. Demetrovic J., Nguyen Xuan Huy (1991), Closed Sets and Translations of Relation Schemes, Computers math applic.