Trong bài báo này, chúng tôi xem xét một định nghĩa hình thức của sơ đồ cơ sở dữ liệu hướng đối tượng CSDLHĐT và định nghĩa các phụ thuộc hàm, các khóa đối với một lớp.. Sau đó, dựa trên
Trang 1CHUAN HÓA SƠ ĐỒ CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
NGUYÊN KIM ANH
Khoa Cổng nghệ thông tín, Đại học Hách khoa Hà Nội
Abstract In this paper, we discuss a formal definition of an object-oriented database (OODB) schema, and define functional dependencies, keys for a class Then, based on the formal definition
of OODB shema and functional dependencies, we define object normal forms for a class Finally, a algorithm is given to decompose any class into a set of classes such that each class is in 30NF The algorithm allow us to normalize and to optimize an OODB shema
Tóm tắt Trong bài báo này, chúng tôi xem xét một định nghĩa hình thức của sơ đồ cơ sở dữ liệu hướng đối tượng (CSDLHĐT) và định nghĩa các phụ thuộc hàm, các khóa đối với một lớp Sau đó, dựa trên định nghĩa hình thức của sơ đồ CSDLHĐT và khái niệm phụ thuộc hàm, chúng tôi định nghĩa các dạng chuẩn đối tượng đối với một lớp Cuối cùng, một thuật toán được đưa ra để tách một lớp thành một tập các lớp ở dạng chuẩn đối tượng 3 Thuật toán này cho phép chúng tôi chuẩn hóa và tối ưu hóa một sơ đồ CSDLHĐT
1 GIỚI THIỆU Trong những năm qua, việc ứng dụng các khái niệm hướng đối tượng đã trở thành một chủ đề nghiên cứu quan trọng trong một số lĩnh vực của khoa học máy tính Cách tiếp cận
hướng đối tượng đối với việc thiết kế các hệ thống phần mềm đã nhận được một sự chú ý
đáng kể, đặc biệt là trong lĩnh vực cơ sở dữ liệu Mặc dù cách tiếp cận hướng đối tượng đã
trở nên phổ biến nhưng chưa có một sự thống nhất và chuẩn hóa các khái niệm hướng đối
tượng Trong lĩnh vực cơ sở dữ liệu, cho đến nay, chưa có một mô hình dữ liệu hướng đối tượng chuẩn và chưa có một nền tảng toán học vững chắc đối với CSDLHĐT Do vậy, các
kết quả nghiên cứu đối với vấn đề thiết kế CSDLHĐT còn rất hạn chế
Đối với vấn đề thiết kế CSDLHĐT, sau khi mô hình hóa các đối tượng dữ liệu của thế giới thực bởi mô hình dữ liệu hướng đối tượng, một bước quan trọng để tối ưu sơ đồ
CSDLHĐT là chuẩn hóa sơ đồ CSDLHĐT Trong bài báo này, dựa trên định nghĩa hình thức
của lớp va tập phụ thuộc hàm đối với lớp, chúng tôi đưa ra các dang chuẩn đối tượng đối với lớp và một số kết quả chuẩn hóa lớp về dạng chuẩn đối tượng 3 để tối ưu một sơ đồ
CSDLHĐIT
Nội dung của bài báo được trình bày như sau Trong Phần 1, chúng tôi đưa ra định nghĩa hình thức của sơ đồ CSDLHĐT và sau đó định nghĩa các phụ thuộc hàm và các khóa đối với lớp Dựa trên định nghĩa hình thức của sơ đồ CSDLHĐT, khái niệm phụ thuộc hàm
đối với lớp và khoá, chúng tôi đưa ra định nghĩa các dạng chuẩn đối tượng 1, 2, 3 đối với lớp trong Phần 2 Cuối cùng, trong Phần 3, chúng tôi đưa ra khái niệm phép tách không mất mát thông tin đối với lớp và thuật toán chuẩn hóa lớp về dạng chuẩn đối tượng 3 (3ONF)
dựa trên phép tách Để kết luận, chúng tôi đưa ra một vài đánh giá và so sánh kết quả đạt
được của bài báo với vấn đề chuẩn hóa sơ đồ CSDL quan hệ
Trang 22 CAC DINH NGHIA
2.1 Định nghĩa hình thức của sơ đồ CSDLHĐT [1]
Ký hiệu Ó là tập các định danh đối tượng hoặc OID, Ở là tập các tên lớp, 4 là tập các
tên thuộc tinh, va nil 1&4 một hằng đặc biệt biều diễn một giá trị không xác định Integer, string, bool va float 14 miền của các kiểu nguyên tố đom là tập các giá trị nguyên tố, có nghĩa là đom là hợp của miền các giá trị nguyên tố
Đối tượng (object) Một đối tượng là một cap (0, v), o là định danh đối tượng từ Ó, ø là
giá trị trên Ó Các giá trị trên OÓ, ký hiệu val(O), được định nghĩa như sau:
(a) Mot phan tit cla dom, mot phần tử của Ó, va nỉ] là các giá trị trên Ó
(b) Nếu ơị, ,u„ là các giá trị và 4u, , 4„ là các tên thuộc tính thì (4i :0ị, , A„ : ø„) là giá trị bộ và {o, ,„} là giá trị tập trên Ó
Kiểu (types) Một lớp bao gồm một tập các đối tượng có cùng kiểu Kiểu trên Œ, ký hiệu
la types(C), duoc định nghĩa như sau:
1 Integer, string, bool va float 1a cdc kiéu
2 Các tên lớp trong Œ là các kiểu
3 Nếu 7' là một kiểu thì set(7) là kiểu tập
4 Nếu 7¡, 7„, là các kiểu và 4, 4„ là các tên thuộc tính phân biệt từ A, thi
(Ai :7ì, , A„: 72) là kiểu bộ
Ký hiệu đ: Ở — fypes(C) là ánh xạ từ Ở đến types(C)
Sự phân cấp lớp (class hierarchy) Một sự phân cấp lớp là một bộ ba (Œ, đ,p), ở đây Œ
là tập các lớp, đ là ánh xạ từ Œ đến type(C), p là thứ tự bộ phận trên C Mot lớp Ø2 là lớp
con của lớp C1 nếu kiểu của lớp C2 1a tinh hon kiéu của lớp ỚI Quan hệ này được biểu
diễn là C2 p C1 va d(C2) < d(C1), chiing ta nói rằng lớp Œ2 kế thừa từ lớp C1
Phép gán định danh Hàm II: Œ — O, ánh xạ mỗi tên lớp ec Ở đến một và chi mot OID
o € O duoc goi la phép gán định danh của (C,d,p) Chúng ta kí kiệu II(e) là một thể hiện
tách rời của e, và II*(e) = U{H(đ)|œ c Œ,#pe} là một thể hiện day du cia C
Hành vi đối tượng (object behavior) Các phương thức mà là các thủ tục hay các hàm là phần động của một lớp Các đối tượng chỉ có thể hành động hay cư sử thông qua các phương thức mà được nhúng vào trong thân của lớp Một phương thức có ba thành phần: (1) một
tên, (2) một chữ ký, (3) và một sự cài đặt (hay thân của phương thức)
- Đặt ă là một tập hữu hạn các tên phương thức và (Œ,đ,p) là sự phần cấp lớp Với moi lớp e € Ở, các kiểu trên Ở là 7¡, ,7„ và một tên z» € M, mot anh xa cé dang m : ex1ì x x T„_¡ — Tj, là chữ ký của phương thức m
Phương thức m áp dụng đối với các đối tượng của lớp e và đối với các đối tượng của
các lớp ơ € Ở sao cho đ'p e
Sơ đồ CSDLHĐT và thể hiện
Sơ đồ CSDLHĐT là một bộ năm (Œ, d,p, M, Œ) ở đây G là tập các tên khác Œ, đ là ánh
xạ từ ỞU Œ đến types(C), (Œ, đ,p) là sự phân cấp lớp và 4 là tập các chữ ký phương thức với (Œ, d,p)
Thể hiện của sơ đồ CSDLHĐT (Œ,d,p, M, G) là một bộ bốn (HH, „+, ø) ở đây II là phép
Trang 3gin định danh đối tượng với Ó = U{II(e)le € C}, z là ánh xạ từ Ó đến val(Ó) sao cho với
ø c H(e) thi v(o) € dom(d(c)), y Anh xạ mỗi một tên trong Œ có kiểu 7' đến một giá trị trong dom(7),, ánh xạ các ngữ nghĩa đến các tên phương thức phù hợp với các chữ ký phương thức: ữm:e x T1 x x T„ —> T): dom(e x T1 x x Tạ — T) — dom(T)
2.2 Phụ thuộc hàm đối với lớp
Cho lớp Ở xác định trên tập thuộc tính U, X,Y € U và X là tập các thuộc tính nhận
giá trị đơn Chúng ta định nghĩa X xác định hàm Y (hay Y phụ thuộc hàm vào X), ký hiệu
X —Y nếu YÓ¡,Ó¿ € Ơ, nếu Ó¡.X = Ó¿.X = Ó¡.Y = Ó¿.Y (Ó¡.X - giá trị của Ó¡ trên X)
Chú ý Nếu A la thuộc tính nhận gia tri tap thi O,.A = Ós.4 hiểu theo nghĩa so sánh bằng hai tập hợp
Dễ dàng thấy, khái niệm phụ thuộc hàm đối với lớp là sự mở rộng của khái niệm phụ thuộc hàm đối với quan hệ Do vậy, các tính chất của phụ thuộc hàm đối với quan hệ là thỏa mãn đối với phụ thuộc hàm đối với lớp
Bổ dé 1 Cho lép C(U),X CU,A€U,X > A Gid sit A: tuple(A, : T;, , Ap : Th) Néu A duoc thay thé bdi Ay, , Ap trong C thi X <> Aj, i=1,2, ,k
Chitng minh Bo dé duoc chitng minh dé dang tir dinh nghia của phụ thuộc hàm Để đơn
gian, chting ta ky hiéu (A; : T%, , Ap : Tr) A X : T¿ với X = {Ai, , A¿} và Tr = {T1, , Tr}
2.3 Tách các thuộc tính kiểu bộ với phụ thuộc hàm
Việc nhóm một số thuộc tính lại thành một thuộc tính kiểu bộ trong một lớp có thể dẫn
đến một số ràng buộc ngữ nghĩa hay phụ thuộc hàm của lớp không được bảo toàn Trong trường hợp này, chúng ta cần phải tách các thuộc tính kiểu bộ để bảo toàn các ràng buộc
ngữ nghĩa đối với lớp
Giả sử 4; : tuple(X; : Tx,), i=1,2, ,k(k > 1) Nếu A; duoc thay thé béi X; va ton tai phụ thuộc hàm X —> Y với
k
X=(Jx!
=1
X;€C X; và Y CX, thì 4; : tuple(X; : 7x,), ¿— 1,2, ,k được tách thành các thuộc tính như
Sau:
B,: tuple(X;\ X?: Txa\x/), £=1,.,b—T
By : tuple(X¿\ X¿ \Ÿ : TX,\x;\y)
Œ; : tuple(Xj: 7x;),¡ = 1, ,k
D : tuple(Y : Ty)
Cho lớp Œ(), chúng ta định nghĩa # € U là khóa của Ở nếu ƒ£ —— U và K được gọi là
khóa tối thiểu của Ơ nếu K -Ê+ và VK'C K = K'⁄U
Chúng ta chọn một khóa tối thiểu của Ở làm khóa chính đối với Ở
Dễ dàng thấy, nếu chúng ta xem OTD của lớp Œ là một thuộc tính của C thi OID là một khóa tối thiểu của Ở
Trang 4+ - x + +
3 CAC DANG CHUAN DOI VOT LOP
Dinh nghia 1 Cho lép C(U) va X,Y CU X ——Y được gọi là phụ thuộc ham sơ cấp của
C nếu VX'C X= X' 7¬ V,
Định nghĩa 2 Cho lớp C(U), Ac< U, A được gọi là thuộc tính khóa của Ở nếu 4 thuộc một khóa tối thiểu nào đó của Ở Ngược lai, A duoc gọi là thuộc tính không khóa của Ở
Định nghĩa 3 Cho lớp C(U) và X,Y CU Chúng ta nói Y phụ thuộc bắc cầu vào X nếu ton tai Z CU sao cho X > Z, Z + Y va Z 4+ X Newoc lai, ching ta néi rằng Y phụ thuộc trực tiếp vào X
Định nghĩa 4 Dạng chuẩn đối tượng 1 (LONF)
Lớp Œ được gọi là ở dạng chuẩn IONEF nếu mọi phương thức đòi hỏi một thuộc tính A nào đó thì 4 hoặc là thuộc tính không có kiểu bộ nhận giá trị tập hoặc 4 chỉ chứa các thuộc tính không có kiểu bộ nhận giá trị tập
Định nghĩa 5 Dạng chuẩn đối tượng 2 (2ONE)
Lớp Œ được gọi là ở 2ONE nếu C ở IONE và nếu mọi phương thức đòi hỏi một thuộc
tính 4 nào đó thì 4 là thuộc tính khóa không có kiểu bộ hoặc các phụ thuộc hàm giữa một
khóa tối thiểu và 4 đều là các phụ thuộc hàm sơ cấp
Định nghĩa 6 Dạng chuẩn đối tượng 3 (3ONE)
Lớp Ở được gọi là ở 3ONE néu C & 2ONF va nếu mọi phương thức đòi hỏi một thuộc tính không khóa 4 nào đó thì 4 không có kiểu bộ và phụ thuộc trực tiếp vào khóa tối thiểu Định nghĩa 7 Một sơ đồ CSDLHĐT được gọi là ở IONF (2ONF, 3ONPF) nếu mọi lớp thuộc
sơ đồ đều & 1ONF (2ONF, 30NF)
4 CHUAN HOA LOP Định nghĩa 8 Cho lớp C va T = (C1, Co, .,Cm) bao gom m lép, trong dé C chita cdc thudc
tính tham chiếu X = {4;/4; tham chiếu đến lớp C;,i = 1, ,m} Chúng ta định nghĩa lớp DÐ,
cấu trúc lại lớp Œ từ 7' qua X bằng cách thay thế các tên lớp Ở; trong các kiểu của 4; bởi d(Œ,) không bao hàm thuộc tính tham chiếu ngược Ö¿ của 4; trong lớp C; với ¿ = l1, ,m và
ký hiệu D = R(C,T_X)
Định nghĩa 9 Cho Ilép C,T = (C1, C2, ,Cm), X là tập các thuộc tính tham chiếu và lớp Œ! = R(C,T.X) Giả sử tổn tại 7 = 1, ,m mà Ở; chứa các thuộc tính tham chiếu X¿; tham
chiếu đến các lớp của 7; Khi đó , chúng ta định nghĩa lớp D, cấu trúc lại lớp Ở từ 77; qua XX; và ký hiệu D = R(Œ,TT;.XX;) nếu D = R(C!,T;.X;)
Định nghĩa 10 Cho lớp Ð và S = (C,C1,C2, ,Cm) bao gồm mm + 1 lớp Chúng ta định
nghĩa Š là phép tách z» + 1 không làm mất mát thông tin của Ð nếu tôn tại X là tập các
thuộc tinh tham chiéu sao cho D = R(C,T.X) v6iT=S8\C
Bổ đề 2 Cho lớp D va S = (C,Cy, Co, ., Cm) la phép tach m +1 khong làm mất mát thông tin cia D Nếu tổn tại j =1, ,.m ma S; = (Cf, Cy, Chay Cm) la phép tach k +1 khong lam
mất mát thong tin cia C; thi S' = SS; \ C; la phép tich m+k +1 khong lam mất mát thông
tin của D
Trang 5Chitng minh: Theo gia thiét ton tai X,X; 1d tap các thuộc tính tham chiếu tương ứng sao
cho D = R(C,T.X) va Cj = R(CY, T).Xj) voi T= S\ C va T; = 5; \ Cj Do vậy,
R(C,T'.XX;) = R(C,T.X) v6i T! = TT; \ Cj
Cho lớp Œ, xét các trường hợp sau:
(i) Class C tuple (A; : T1, , A; : set(tuple(X : Tx)), , An: Tn)
Ching ta xac dinh 2 lép C1, Cy nhu sau:
Class C, tuple (4; : Ti, , A;: set(C2), , An : Th)
Class Co tuple (X : Tx)
(ii) Class C tuple (Ar: T1, , A; : tuple (B, : h, , By: set(tuple(X : Ty)), , Bm: Im), 5 An: Tn)
Ching ta xac dinh 2 lép C1, Cy nhu sau:
Class C, tuple (4, : T), , Ai tuple (By: f, , By: set(Co), , Bm : Im), , An: Tn)
Class Co tuple (X : Tx)
(iii) Class C tuple (A, : T), , Ac tuple(X : Ty), ., An: Th)
Ching ta xac dinh 2 lép C1, Cy nhu sau:
Class C, tuple (4, : T), , Ai: Co, , An: Tn)
Mệnh đề 1 Với các trường hợp (1),(0) va (ai) trén thi 8 = (C1, C2) la phép tách 2 không lam mat mat thông tin của Ơ
Chứng mình Dễ dàng nhận thấy C — R(Œ\,a.4;)
Để chuẩn hoá một lớp bất kỳ về 3ONE, chúng ta, trước tiên, chuẩn hoá lóp về IONE
áp dụng trường hợp () và (ii) với Mệnh đề 1 cho phép chúng ta chuẩn hoá một lớp bất kỳ
Thuật toán Chuẩn hoá lớp về dang chuẩn đối tượng 3
Vào: lớp C(U) ở IONE, #-tập phụ thuộc hàm của C trén U va {F'4/A: tuple (X : 7x), Fa — tập phụ thuộc hàm trên X}
Ra: phép tách không mất mát thông tin tách lớp Œ về 3ONE
Phương pháp:
1) Đặt T> = Ø và 1s =f,
2) Sử dụng thuật toán tách sơ đồ quan hé 6 dang chuan 1 véi U va F vé dạng chuẩn 3 Kết
quả là một phép tách bảo toàn tập phụ thuộc và không làm mất mát thông tin 7¡ (3|)
3) Xét tập các lớp của 7¡, giả sử xét 2 lớp C va Œ', nếu Ở chứa tập thuộc tính K mà K là khóa chính của Œ' thì thay thế tập K trong Ở bởi thuộc tính k có kiểu là lớp Ở'
4) Chuẩn hoá các lớp trong 7¡ về 2ONE bằng cách tách ra các thuộc tính khóa có kiểu bộ
(i) C & 2ONF thi Ty =T,UC
(ii) Gid st A: tuple(X : Ty) lA thuộc tính khóa của Ở Khi đó C duoc tach thanh C, va Co theo Mệnh đề 1 trường hợp (11), sau đó quay lai buée 4 véi C, va quay lai buée 2 véi
Co(X), Fa.
Trang 65) Chuẩn hoá các lớp trong 7; về 3ONF bằng cách tách ra các thuộc tính không khóa có kiểu bộ Xét lớp Œ € Tp
(i) C & 30NF thi Ts =73UC
(ii) Gia sử A: tuple(X : Ty) là thuộc tính không khóa cla C Khi dé C duoc tách thành Œi
và Cy theo ménh đề1 trường hợp (1), sau đó quay lại bước ð với Ơ; và quay lại bước 2 với Ca(X), Hạ
Mệnh đề 2 Thuậi toán trên tách lớp Ở oề 3ONH oới phép tách Ts không làm mất mát thong tin
Chúng mình: Các phép tách trong các bước 2, 4, 5 đều là các phép tách không làm mất mát
thông tin, Do vậy, theo Bố đề 2, 7; là phép tách không làm mất mát thông tin và tách Ở về
5 KẾT LUẬN
Một sơ đồ cơ sở dữ liệu hướng đối tượng (CSDLHĐT) ban đầu được thiết kế có thể chưa tốt và cho phép dữ liệu dư thừa khá lớn Để tối ưu hoá một sơ đồ CSDLHĐT, một
bước quan trọng tiếp theo là chuẩn hoá các lớp của sơ đồ CSDLHĐT Hành vi của lớp, được xác định bởi các phương thức trong thân của lớp là sự khác biệt chính giữa sự chuẩn hoá của một sơ đồ CSDLHĐT' và một sơ đồ CSDL quan hệ Mục đích của sự chuẩn hoá lớp là cực
đại hoá liên kết nội tại của lớp trong khi tối thiểu hoá sư liên kết giữa các lớp Bài báo đã
đưa ra một thuật toán cho phép chuẩn hoá một sơ đồ CSDLHĐT' về dạng chuẩn đối tượng
3 ở dạng chuẩn này, cấu trúc của các lớp thu được vừa có thể sử dụng khả năng mô hình hoá hướng đối tượng vừa tránh dư thừa dữ liệu và đảm bảo tính toàn vẹn dữ liệu đối với CSDLHĐT Hơn nữa, nếu không sử dụng khả năng mô hình hoá hướng đối tượng, hay các lớp chính là các sơ đồ quan hệ thông thường trong sơ đồ CSDL quan hệ thì thuật toán chuẩn hoá cho phép chúng ta có thể chuẩn hoá sơ đồ CSDLHĐT về 3ONE và kết quả chuẩn hoá là tương đương với kết quả chuẩn hoá sơ đồ CSDL quan hệ tương ứng về dạng chuẩn 3
TÀI LIỆU THAM KHẢO
[1] A Cami, Advanced DBMS, ACCT 5524, (1998)
(2) C.T Yu, W Meng, Principles of Database Query Processing for Advanced Applications, Morgan Kaufmann, SF, California, 1998
[3] J.D Ullman, Principles of Database and Knowledge-Base Systems, Computer Science Press, USA, 1988
[4] W Kim, Object-Oriented Databases: Definition and Research Directions, [EEE Trans-
action on Knowledge and Data Engineering 2 (1990) 327-341
[5] W Kim, Introduction to Object-Oriented Databases, Massachusetts, London, England,
1991
[6] W.W Pan, W.P Yang, An Model at Conceptual Level to Support Updatable Views on
Object-Oriented Databases, Information Sciences 95 (1996) 29-48
Nhận bài ngày 28 - 10 - 2001