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

Thiết kế các lược đồ XML ở mức khái niệm

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 (395.96 KB, 11 trang )

1

THIẾT KẾ CÁC LƯỢC ĐỒ XML Ở MỨC KHÁI NIỆM
Hoàng Quang
Trường Đại học Khoa học, Đại học Huế
Võ Hoàng Liên Minh
Trường Đại học Khoa học, Đại học Huế
Võ Văn Hải
Trường Đại học Cơng nghiệp Tp Hồ Chí Minh
TĨM TẮT
Hiện nay, XML chiếm vị trí rất quan trọng trong việc trao đổi dữ liệu giữa các ứng
dụng. Việc phát triển cơ sở dữ liệu XML để lưu trữ thông tin lớn trở nên cần thiết. Liên
quan đến vấn đề thiết kế lược đồ XML từ mơ hình mức khái niệm, Massimo Franceschet và
các cộng sự (2013) đã xây dựng một phương pháp chuyển đổi các thành phần của mơ hình
ER sang lược đồ XML. Tuy nhiên, vấn đề chuyển đổi các thuộc tính đa trị và phức hợp
lồng nhau của một kiểu thực thể trong một mơ hình ER đã khơng được các tác giả đề cập
đến. Nghiên cứu này, ngoài việc giới thiệu phương pháp chuyển đổi của các tác giả trên,
chúng tôi muốn đề xuất một phương pháp chuyển đổi các thuộc tính đa trị và phức hợp
lồng nhau của một kiểu thực thể sang lược đồ XML.
1. GIỚI THIỆU
XML - ngôn ngữ đánh dấu mở rộng, là một ngôn ngữ đánh dấu được tạo nên bởi
W3C nhằm khắc phục những hạn chế của HTML. Hiện nay, XML chiếm vị trí rất quan
trọng trong việc chuyển tải, trao đổi dữ liệu và liên lạc giữa các ứng dụng.
Cùng với việc XML ngày càng phổ biến, số lượng các ứng dụng sử dụng các tài liệu
XML tăng lên nhanh chóng, các tài liệu XML tạo ra ngày càng nhiều. Các tài liệu XML
thường được thiết kế theo cảm tính nên có thể dẫn đến những dư thừa và khơng nhất quán
về mặt dữ liệu. Do đó các phương pháp để thiết kế một lược đồ XML “tốt” nhằm tránh
được những dư thừa và không nhất quán về mặt dữ liệu là rất đáng được quan tâm nghiên
cứu.
Có hai phương pháp tiếp cận chính đã được thực hiện bởi các nhà nghiên cứu cơ sở
dữ liệu XML để thiết kế các tài liệu XML không tồn tại dư thừa dữ liệu [10]. Phương pháp


tiếp cận thứ nhất là sử dụng mô hình dữ liệu mức khái niệm [3][5][9] và phương pháp thứ
hai sử dụng lý thuyết chuẩn hóa [1][4][7]. Cả hai phương pháp tiếp cận này là đều dựa trên
lý thuyết thiết kế cơ sở dữ liệu quan hệ.
Phương pháp tiếp cận mức khái niệm liên quan đến một quá trình gồm hai giai đoạn:
đầu tiên thực hiện việc khái niệm hóa dữ liệu XML dưới dạng một mơ hình mức khái niệm
sao cho nó phản ảnh được thế giới thực, sau đó mơ hình này được cấu trúc lại để loại bỏ sự
dư thừa bằng cách sử dụng các quy tắc chuẩn hóa và cuối cùng là thực hiện việc chuyển
đổi mơ hình này thành một lược đồ XML.
Cịn phương pháp tiếp cận sử dụng lý thuyết chuẩn hóa thì bỏ qua giai đoạn thiết kế
mức khái niệm, để thiết kế các tài liệu XML sử dụng lược đồ DTD một cách trực tiếp cùng


2

với một tập hợp các ràng buộc phụ thuộc dữ liệu. Các ràng buộc phụ thuộc dữ liệu này là
các phụ thuộc hàm được sử dụng để phát hiện những dư thừa dữ liệu trong các tài liệu
XML trong quá trình thiết kế lược đồ [1][4][7]. Theo đó, nhiều khái niệm phụ thuộc hàm
XML đã được đề xuất nhằm phục vụ việc chuẩn hóa các lược đồ.
Đối với mơ hình dữ liệu quan hệ, một trong những nguyên nhân gây ra ra sự dư thừa
và dị thường trong cập nhật dữ liệu chính là sự xuất hiện của các ràng buộc phụ thuộc hàm
(bắc cầu) trong các lược đồ quan hệ. Tuy nhiên việc khái quát hóa những ràng buộc trên
mơ hình quan hệ thành những ràng buộc trên mơ hình dữ liệu XML là rất phức tạp, vì cấu
trúc phân cấp lồng nhau và linh động của XML là khác hẵn với biểu diễn phẳng của bảng
quan hệ.
Liên quan đến phương pháp tiếp cận thứ nhất, Massimo Franceschet và các cộng sự
đã giới thiệu một phương pháp thiết kế lược đồ XML từ mơ hình mức khái niệm [6]. Cụ
thể là nhóm tác giả đã giới thiệu các quy tắc chuyển đổi cho các kiểu thực thể, các thuộc
tính và các mối quan hệ.
Khi chuyển một mơ hình khái niệm thành một lược đồ XML, Massimo Franceschet
chỉ ra hai cách lồng ghép để chuyển: (1) sử dụng tối đa kết nối lồng ghép (tối thiểu hóa số

các ràng buộc trên lược đồ được sử dụng trong việc ánh xạ lược đồ khái niệm nhằm giảm
thiểu sự kiểm tra tính hợp lệ phát sinh). (2) chuyển đổi tối đa sự lồng ghép (mỗi toán tử kết
nối là một cấu trúc lồng ghép vào cấu trúc hiện tại). Bằng lý thuyết đồ thị nhóm tác giả
cũng đã chỉ ra rằng đối với cách thứ nhất, độ phức tạp là tuyến tính trong khi cách thứ hai
là một bài toán NP đầy đủ.
Dựa theo cách thứ nhất, nhóm tác giả đã đưa các phương pháp chuyển đổi cơ bản.
Tuy nhiên, nhóm tác giả chưa đưa ra được phương pháp chuyển đổi cho thuộc tính đa trị
và phức hợp lồng nhau. Nhằm góp phần phản ảnh trung thực sự phong phú của thế giới
thực và đầy đủ hơn khi chuyển đổi một mô hình ở mức khái niệm, bài báo này đề xuất một
phương pháp chuyển đổi các thuộc tính đa trị và phức hợp lồng nhau của một kiểu thực thể
trong mô hình ER.
Theo đó, bài báo này được tổ chức như sau: trong mục tiếp theo, chúng tôi giới thiệu
khái quát việc chuyển đổi các thành phần trong mơ hình ER thành lược đồ XML, kèm theo
đó là việc đề xuất một phương pháp chuyển đổi các thuộc tính đa trị và phức hợp lồng
nhau của một kiểu thực thể. Mục cuối cùng là phần kết luận.
2. CHUYỂN ĐỔI CÁC THÀNH PHẦN TRONG MƠ HÌNH ER THÀNH LƯỢC ĐỒ
XML
Nội dung của việc chuyển đổi các thành phần của mơ hình ER sang lược đồ XML
được trình bày dưới dạng các quy tắc nhằm đảm bảo các ràng buộc về khố chính và khố
ngồi trên lược đồ XML.
2.1. Chuyển đổi các kiểu thực thể
Với mỗi kiểu thực thể được chuyển đổi thành một phần tử có cùng tên. Các thuộc
tính của thực thể được chuyển đổi thành phần tử con. Ngoài ra, thuộc tính đa trị được
chuyển đổi bằng cách sử dụng các ràng buộc bản số thích hợp trong lược đồ XML. Đồng
thời, thực hiện việc khai báo ràng buộc khóa chính cho phần tử tương ứng với khóa của
kiểu thực thể. Xét ví dụ như sau cho bởi Hình 1.


3


Employee

empID

full_name

foreign_language_proficiency

<xs:element name="Employee" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:element name="empID" maxOccurs="1" />
<xs:element name="full_name" maxOccurs="1">
<xs:element name="foreign_language_proficiency" maxOccurs="unbounded" />
</xs:complexType>
</xs:element>
<xs:key name="keyEmployee">
<xs:selector xpath=".//Employee"/>
<xs:field xpath="empID"/>
</xs:key>

Hình 1. Chuyển đổi kiểu thực thể
2.2. Chuyển đổi các mối quan hệ nhị nguyên
Mối quan hệ nhị nguyên có hai ràng buộc bản số có dạng (x, y), trong đó x là ràng
buộc tham gia tối thiểu, và y là ràng buộc tham gia tối đa. Thông thường, x là 0 hoặc 1, và
y là 1 hoặc N. Do đó, có 24 = 16 trường hợp điển hình về hai bản số giữa hai tập thực thể.
Xét hai kiểu thực thể A có khóa KA và kiểu thực thể B có khóa KB. Xét một quan hệ
nhị nguyên R giữa A và B với bản số bên trái (x1, y1) và bản số bên phải (x2, y2), ký hiệu
là: A ←(x1, y1)→ R ←(x2, y2)→ B.
Đối với mỗi trường hợp của hai bản số sẽ cho tương ứng với hai cách chuyển đổi đó
là chuyển đổi phẳng và chuyển đổi lồng nhau1, được chỉ ra trong Bảng 1 (tương ứng với

mối quan hệ 1-1), Bảng 2 (tương ứng với mối quan hệ 1-N), và Bảng 3 (tương ứng với mối
quan hệ N-N).
Xét Bảng 1, đối với trường hợp 1 ta chỉ thực hiện cách chuyển đổi phẳng, khi đó
việc lựa chọn lồng R vào trong A và lồng R vào trong B có số ràng buộc được sử dụng là
như nhau. Đối với cách chuyển đổi lồng nhau là không thể thực hiện trong trường hợp này
do vấn đề mất mát dữ liệu. Tuy nhiên, đối với trường hợp 2, ta có thể sử dụng cách chuyển
đổi lồng nhau bằng cách lồng B vào trong A (do bản số của kiểu thực thể B tham gia vào
mối quan hệ R là (1,1)). Đối với trường hợp 3, ta vừa có thể sử dụng cách chuyển đổi
phẳng, vừa có thể sử dụng cách chuyển đổi lồng nhau trong cả hai trường hợp: lồng B vào
trong A và lồng A vào trong B. Trường hợp 4 là tương tự như trường hợp 2.
Như vậy, khác với cách chuyển đổi phẳng, có một số trường hợp khơng thể thực hiện
được theo cách chuyển đổi lồng nhau. Tuy nhiên, để tránh việc khai báo các ràng buộc về
tham chiếu, cách chuyển đổi lồng nhau nên được ưu tiên thực hiện trong trường hợp cho
phép.
Với Bảng 2, trường hợp 5 là không thể chuyển đổi lồng nhau (do các ràng buộc tối
thiểu của bản số đều bằng 0). Trường hợp 6 là tương tự như trường hợp 5. Trong trường
hợp 7, do ràng buộc tối đa của bản số bên phải lớn hơn 1 nên việc lồng B vào A cũng
khơng thể thực hiện được vì sẽ gây dư thừa dữ liệu, do đó chỉ có thể thực hiện cách chuyển
đổi phẳng. Trường hợp 8 là tương tự như trường hợp 7. Trong trường hợp 9, ta chỉ có thể
1

Chuyển đổi phẳng là chuyển đổi không lồng một thực thể vào một thực thể khác. Chuyển đổi lồng nhau là chuyển đổi
lồng một thực thể vào một thực thể khác.


4

sử dụng cách chuyển đổi lồng nhau bằng cách lồng A vào trong B. Trường hợp 10 là tương
tự như trường hợp 9. Trong trường hợp 11, do ràng buộc tối đa của bản số bên phải lớn
hơn 1 nên việc lồng B vào trong A là không thể thực hiện được vì sẽ gây dư thừa dữ liệu,

tuy nhiên ta có thể sử dụng cách chuyển đổi lồng nhau bằng cách lồng A vào trong B.
Trường hợp 12 là tương tự như trường hợp 11.
Bảng 1: Quy tắc chuyển đổi các mối quan hệ một-một

(0,1) (0,1)
A ←→ R ←→ B

R lồng trong A

flat

nest

1

Mối quan hệ
flat

n

(0,1) (1,1)
A ←→ R ←→ B

flat

nest

2

(1,1) (1,1)

A ←→ R ←→ B

4

(1,1) (0,1)
A ←→ R ←→ B

nest

3

R lồng trong B

A(KA, R?)
R(KB)
B(KB)
KEY(A.KA), KEY(B.KB), KEY(R.KB)
KEYREF(R.KB → B.KB)

B(KB, R?)
R(KA)
A(KA)
KEY(B.KB), KEY(A.KA), KEY(R.KA)
KEYREF(R.KA → A.KA)

Không thể thực hiện

Không thể thực hiện

A(KA,R?)

R(KB)
B(KB)
KEY(A.KA), KEY(B.KB), KEY(R.KB)
KEYREF(R.KB → B.KB)
KEYREF(B.KB → R.KB)
A(KA, R?)
R(B)
B(KB)
KEY(A.KA), KEY(B.KB)
A(KA,R)
R(KB)
B(KB)
KEY(A.KA),KEY(B.KB),KEY(R.KB)
KEYREF(R.KB → B.KB)
KEYREF(B.KB → R.KB)
A(KA,R)
R(B)
B(KB)
KEY(A.KA), KEY(B.KB)

B(KB,R)
R(KA)
A(KA)
KEY(A.KA), KEY(B.KB), KEY(R.KA)
KEYREF(R.KA → A.KA)

Không thể thực hiện
B(KB,R)
R(KA)
A(KA)

KEY(B.KB),KEY(A.KA),KEY(R.KA)
KEYREF(R.KA → A.KA)
KEYREF(A.KA → R.KA)
B(KB,R)
R(A)
A(KA)
KEY(B.KB), KEY(A.KA)

Tương tự trường hợp 2

Bảng 2. Quy tắc chuyển đổi các mối quan hệ một-nhiều
Mối quan hệ

(0,N) (0,1)
A ←→ R ←→ B

7

8

(0,1) (1,N)
A ←→ R ←→ B

(1,N) (0,1)
A ←→ R ←→ B

flat

6


ne
st

(0,1) (0,N)
A ←→ R ←→ B

A(KA, R[0,1])
R(KB)
B(KB)
KEY(A.KA), KEY(B.KB)
KEYREF(R.KB → B.KB)

Không thể thực hiện

R lồng trong B
B(KB, R[0,N])
R(KA)
A(KA)
KEY(B.KB), KEY(A.KA), KEY(R.KA)
KEYREF(R.KA → A.KA)

Không thể thực hiện

Tương tự trường hợp 5

flat

5

R lồng trong A


nest

n

A(KA,R?)
R(KB)
B(KB)
KEY(A.KA),KEY(B.KB)
KEYREF(R.KB → B.KB)
CHECK(B.KB → R.KB)

Gây dư thừa dữ liệu
Tương tự trường hợp 7

B(KB,R+)
R(KA)
A(KA)
KEY(B.KB),KEY(A.KA),KEY(R.KA)
KEYREF(R.KA → A.KA)

Không thể thực hiện


(1,1) (0,N)
A ←→ R ←→ B

nest

9


flat

5

(1,1) (1,N)
A ←→ R ←→ B

12

Không thể thực hiện

B(KB,R*)
R(KA)
A(KA)
KEY(B.KB),KEY(A.KA),KEY(R.KA)
KEYREF(R.KA → A.KA)
KEYREF(A.KA → R.KA)
B(KB,R*)
R(A)
A(KA)
KEY(B.KB), KEY(A.KA)

Tương tự trường hợp 9

nest

11

(0,N) (1,1)

A ←→ R ←→ B

flat

10

A(KA,R)
R(KB)
B(KB)
KEY(A.KA),KEY(B.KB)
KEYREF(R.KB → B.KB)

(1,N) (1,1)
A ←→ R ←→ B

A(KA,R)
R(KB)
B(KB)
KEY(A.KA),KEY(B.KB)
KEYREF(R.KB → B.KB)
CHECK(B.KB → R.KB)

Gây dư thừa dữ liệu

B(KB,R+)
R(KA)
A(KA)
KEY(B.KB),KEY(A.KA),KEY(R.KA)
KEYREF(R.KA → A.KA)
KEYREF(A.KA → R.KA)

B(KB,R+)
R(A)
A(KA)
KEY(B.KB),KEY(A.KA)

Tương tự trường hợp 11

Xét Bảng 3, ta chỉ có thể sử dụng cách chuyển đổi phẳng đối với tất cả các trường
hợp. Bởi vì cách chuyển đổi lồng nhau hoặc khơng thể thực hiện được (do ràng buộc tối
thiểu của các bản số là 0), hoặc gây ra dư thừa dữ liệu (do ràng buộc tối đa của các bản số
đều là N).
Bảng 3. Quy tắc chuyển đổi các mối quan hệ nhiều-nhiều

(0,N) (0,N)
A ←→ R ←→ B

R lồng trong A

15

(1,N) (0,N)
A ←→ R ←→ B

(1,N) (1,N)
A ←→ R ←→ B

Gây dư thừa dữ liệu

R lồng trong B
B(KB,R*)

R(KA)
A(KA)
KEY(B.KB),KEY(A.KA)
KEYREF(R.KA → A.KA)

Không thể thực hiện
B(KB,R+)
R(KA)
A(KA)
KEY(B.KB),KEY(A.KA)
KEYREF(R.KA → A.KA)

Không thể thực hiện

Tương tự trường hợp 14

nest

16

flat

(0,N) (1,N)
A ←→ R ←→ B

Không thể thực hiện
A(KA,R*)
R(KB)
B(KB)
KEY(A.KA),KEY(B.KB)

KEYREF(R.KB → B.KB)
CHECK("B.KB → R.KB")

flat

14

A(KA,R*)
R(KB)
B(KB)
KEY(A.KA),KEY(B.KB)
KEYREF(R.KB → B.KB)

nest

nest

13

Mối quan hệ

flat

n

A(KA,R+)
R(KB)
B(KB)
KEY(A.KA),KEY(B.KB)
KEYREF(R.KB → B.KB)

CHECK(B.KB → R.KB)

Gây dư thừa dữ liệu

B(KB,R+)
R(KA)
A(KA)
KEY(B.KB),KEY(A.KA)
KEYREF(R.KA → A.KA)
CHECK(A.KA → R.KA)

Gây dư thừa dữ liệu

2.3. Chuyển đổi mối quan hệ đa nguyên
Từ các quy tắc chuyển đổi mối quan hệ nhị nguyên ở Mục 2.2, ta có thể áp dụng cho
việc chuyển đổi một mối quan hệ đa nguyên R nào đó, bằng cách xem R như là một kiểu
thực thể, và kiểu thực thể này lần lượt có mối quan hệ nhị nguyên với các kiểu thực thể
tham gia vào mối quan hệ đa nguyên. Do các mối quan hệ nhị nguyên này chỉ có thể là mối
quan hệ nhị nguyên một-một hoặc một-nhiều (bởi vì ràng buộc bản số của kiểu thực thể R


6

với tất cả các mối quan hệ nhị nguyên này đều là (1, 1)), nên ta chỉ có thể sử dụng các
trường hợp trong Bảng 1 hoặc Bảng 2.
Việc chuyển đổi mối quan hệ đa nguyên sẽ được ưu tiên thực hiện theo cách chuyển
đổi lồng nhau cho các mối quan hệ nhị nguyên giữa kiểu thực thể R với các kiểu thực thể
tham gia. Còn đối với các mối quan hệ nhị ngun cịn lại (khơng áp dụng được cách
chuyển đổi lồng nhau) sẽ áp dụng cách chuyển đổi phẳng.
Theo đó, ta có quy tắc chung khi chuyển đổi mối quan hệ đa nguyên thành lược đồ

XML với số ràng buộc ít nhất là như sau: kiểu thực thể tham gia trong R với ràng buộc bản
số là (1, N) thì ánh xạ thành phần tử tương ứng ở mức ngồi cùng trong cây phân cấp. Nếu
khơng có, thì chọn kiểu thực thể tham gia với ràng buộc bản số là (0, 1). Nếu kiểu thực thể
như vậy không tồn tại, chọn một trong các kiểu thực thể tham gia với ràng buộc bản số là
(0, N). Ngược lại, nếu tất cả các kiểu thực thể tham gia với ràng buộc bản số đều là (1, 1),
thì ta chọn một trong số chúng để ánh xạ thành phần tử tương ứng ở mức ngồi cùng. Sau
đó, áp dụng cách chuyển đổi lồng nhau (sử dụng Bảng 1 hoặc Bảng 2) để lồng phần tử R
vào trong phần tử ngoài cùng. Bấy giờ, tùy thuộc vào bản số tham gia của các kiểu thực thể
còn lại với mối quan hệ đa nguyên, mà R có thể chứa các phần tử (sử dụng cách chuyển
đổi lồng nhau) hoặc chứa các thuộc tính khóa tham chiếu đến các phần tử khác (sử dụng
cách chuyển đổi phẳng).
A(KA,R+)
R(KB,C)
C(KC)
B(KB)
KEY(A.KA),KEY(B.KB),KEY(C.KC), KEY(R.KB)
KEYREF(R.KB → B.KB)

Hình 2. Ví dụ chuyển đổi mối quan hệ tam nguyên
Xét ví dụ, cho R là mối quan hệ tam nguyên giữa 3 kiểu thực thể A, B, và C; trong
đó A, B, C tham gia vào mối quan hệ R với ràng buộc bản số lần lượt là (1, N), (0, 1),
(1, 1). Theo đó, các mối quan hệ nhị nguyên giữa kiểu thực thể R với các kiểu thực thể A,
B, C lần lượt là một-nhiều, một-một và một-một. Áp dụng các trường hợp ở Bảng 1 và
Bảng 2, ta có cách chuyển đổi có số lượng các ràng buộc ít nhất là như trong Hình 2.
2.4. Chuyển đổi kiểu thực thể yếu và mối quan hệ định danh
Xét B là kiểu thực thể yếu của mối quan hệ định danh R có kiểu thực thể chủ là A.
Giả sử B có khố bộ phận là KB, và khố chính của A là KA. Vì kiểu thực thể yếu ln
ln tham gia trong mối quan hệ định danh với bản số ràng buộc là (1, 1). Do đó, tùy thuộc
vào ràng buộc bản số thứ hai của mối quan hệ định danh R, mà ta sẽ xây dựng các quy tắc
chuyển đổi tương tự như các quy tắc chuyển đổi mối quan hệ nhị nguyên ở Mục 2.2 (sử

dụng Bảng 1 hoặc Bảng 2). Khi đó, ta có kết quả chuyển đổi sang lược đồ XML là như
Bảng 4.
Nhìn chung, kết quả chuyển đổi mối quan hệ định danh khác với kết quả chuyển đổi
mối quan hệ nhị nguyên một-một và một-nhiều, đó là: ta phải bổ sung thuộc tính khóa KA
cho phần tử B, bởi vì khóa của kiểu thực thể yếu B được tạo ra bằng cách kết hợp khóa bộ
phận của nó là KB với khóa KA của kiểu thực thể chủ A. Chính vì vậy ta có ràng buộc
khóa KEY(B.KB, B.KA).


7

Ngoài ra, ta phải sử dụng một thủ tục kiểm tra ràng buộc CHECK(B.KA = A.KA)
nhằm đảm bảo rằng: thuộc tính KA trong kiểu thực thể yếu B phải có giá trị bằng giá trị
của khóa KA tương ứng trong kiểu thực thể chủ A.
Bảng 4. Quy tắc chuyển đổi các mối quan hệ định danh
N

relationships

Flat
17

(0,1) (1,1)
A ←→ R ←→ B
Nest

Flat
18

(1,1) (1,1)

A ←→ R ←→ B

Nest

Flat
19

(0,N) (1,1)
A ←→ R ←→ B

Nest

Flat
20

(1,N) (1,1)
A ←→ R ←→ B

Nest

A(KA,R?)
R(KB, KA)
B(KB, KA)
KEY(A.KA), KEY(B.KB, B.KA), KEY(R.KB, R.KA)
KEYREF(R.KB → B.KB, R.KA → B.KA)
KEYREF(B.KA → A.KA)
CHECK(R.KA = A.KA)
A(KA, R?)
R(B)
B(KB, KA)

KEY(A.KA), KEY(B.KB, B.KA)
CHECK(B.KA = A.KA)
A(KA,R)
R(KB, KA)
B(KB, KA)
KEY(A.KA),KEY(B.KB,B.KA),KEY(R.KB,R.KA)
KEYREF(R.KB → B.KB, R.KA → B.KA)
KEYREF(B.KB → R.KB, B.KA → R.KA)
KEYREF(B.KA → A.KA)
CHECK(R.KA = A.KA)
A(KA,R)
R(B)
B(KB, KA)
KEY(A.KA), KEY(B.KB, B.KA)
CHECK(B.KA = A.KA)
A(KA,R*)
R(KB,KA)
B(KB,KA)
KEY(A.KA),KEY(B.KB,B.KA),KEY(R.KB,R.KA)
KEYREF(R.KB → B.KB, R.KA → B.KA)
KEYREF(B.KB → R.KB, B.KA → R.KA)
KEYREF(B.KA → A.KA)
CHECK(R.KA = A.KA)
A(KA,R*)
R(B)
B(KB, KA)
KEY(A.KA), KEY(B.KB, B.KA)
CHECK(B.KA = A.KA)
A(KA,R+)
R(KB,KA)

B(KB,KA)
KEY(A.KA),KEY(B.KB,B.KA),KEY(R.KB,R.KA)
KEYREF(R.KB → B.KB, R.KA → B.KA)
KEYREF(B.KB → R.KB, B.KA → R.KA)
KEYREF(B.KA → A.KA)
CHECK(R.KA = A.KA)
A(KA,R+)
R(B)
B(KB, KA)
KEY(B.KB),KEY(B.KB,B.KA)
CHECK(B.KA = A.KA)

Lưu ý rằng chúng ta không thể loại bỏ khóa KA trong phần tử B, bởi vì nếu loại bỏ
thì ta có kết quả quy tắc chuyển đổi sau:
A(KA,R*)
R(B)
B(KB)
KEY(A.KA), KEY(B.KB,A.KA)


8

Ta thấy rằng ràng buộc khóa KEY(B.KB, A.KA) là khơng thể biểu diễn trong lược
đồ XML. Vì vậy, thủ tục kiểm tra ràng buộc CHECK(B.KA = A.KA) là cần phải có.
2.4. Chuyển đổi thuộc tính đa trị và phức hợp lồng nhau
Một vấn đề được đặt ra xuất phát từ việc phản ánh trung thực thế giới thực, đó là đối
với các thuộc tính đa trị và phức hợp lồng nhau thì việc chuyển đổi sẽ được thực hiện như
thế nào. Xét ví dụ sau như trong Hình 3.
Employee


empID

full_name

foreign_language_proficiency

language

certificate

kind

score

Hình 3. Ví dụ thuộc tính đa trị phức hợp lồng nhau
Chúng ta thấy rằng, mọi thuộc tính đa trị và phức hợp đều có khóa bộ phận, chẳng
hạn như trong ví dụ trên thì language là khóa bộ phận của thuộc tính trình độ ngoại ngữ
foreign_language_proficiency, và thuộc tính kind là khóa bộ phận của thuộc tính
certificate.
Như vậy, cấu trúc của các thuộc tính đa trị và phức hợp lồng nhau của một kiểu thực
thể có thể biểu diễn dưới dạng cấu trúc của một cây phân cấp, mà nút gốc tương ứng với
kiểu thực thể đó, và các nút cịn lại là tương ứng với các thuộc tính có trong cây này.
Ngồi ra, do một thuộc tính đa trị của một kiểu thực thể A là có thể biểu diễn bởi mối
quan hệ định danh giữa một kiểu thực thể yếu và kiểu thực thể chủ A, vì vậy ta có thể
chuyển đổi mỗi thuộc tính đa trị và phức hợp có khóa bộ phận thành một mối quan hệ định
danh trong mơ hình ER. Cụ thể, ta có qui tắc chuyển đổi như sau:
Quy tắc chuyển đổi thuộc tính đa trị thành mối quan hệ định danh: Xét kiểu
thực thể A (hoặc thuộc tính đa trị và phức hợp A) có thuộc tính B là thuộc tính đa trị và
phức hợp, trong đó thuộc tính phức hợp B có tập các thuộc tính thành phần là X và khố bộ
phận là KB. Khi đó, thuộc tính B được ánh xạ thành mối quan hệ định danh S_B giữa kiểu

thực thể chủ A và kiểu thực thể yếu W_B. Trong đó, kiểu thực thể yếu W_B có tập thuộc
tính là X và khoá bộ phận là KB.
Sau khi thực hiện việc chuyển đổi tất cả các thuộc tính đa trị và phức hợp của một
kiểu thực thể thành các mối quan hệ định danh, rõ ràng có thể sẽ có các kiểu thực thể là
kiểu thực thể yếu đối với mối quan hệ định danh này, nhưng có thể là kiểu thực thể chủ đối
với mối quan hệ định danh khác.
Áp dụng quy tắc chuyển đổi kiểu thực thể yếu và mối quan hệ định danh (Mục 2.4),
từ đây ta có thể xây dựng thuật tốn chuyển đổi các thuộc tính đa trị và phức hợp lồng
nhau thành lược đồ XML như sau:
+ Vào: Các thuộc tính đa trị và phức hợp lồng nhau của một kiểu thực thể cho trước.
+ Ra: Lược đồ XML với các ràng buộc KEY và KEYREF.
+ Phương pháp: Thực hiện theo hai bước như sau:


9

Bước 1.
Chuyển đổi mỗi thuộc tính đa trị và phức hợp B trong cây phân cấp thành mối quan
hệ định danh S_B trong mơ hình ER (sử dụng quy tắc trên theo hướng top-down của cây
phân cấp) mà mỗi mối quan hệ định danh S_B xác định một kiểu thực thể yếu tương ứng
W_B.
Bước 2.
Chuyển đổi mỗi mối quan hệ định danh S_B tương ứng với kiểu thực thể yếu W_B
(áp dụng Bảng 4).
Xét ví dụ trên (Hình 3), áp dụng Bước 1 ta có mơ hình ER như Hình 4.
Employee

empID

0:N


full_name

S_foreign_language_proficiency

foreign_language
_proficiency

0:N

certificate

S_certificate

language

kind

score

Hình 4. Ví dụ chuyển đổi thuộc tính đa trị phức hợp lồng nhau
Áp dụng Bước 2, ta có ánh xạ chuyển đổi lược đồ XML như sau.
Employee(empID, full_name, foreign_language_proficiency*)
foreign_language_proficiency(language, empID, certificate*)
certificate(kind,score,language,empID))

Tuy nhiên cần phải sử dụng thêm hai thủ tục kiểm tra mở rộng.
CHECK(foreign_language_proficiency.empID = Employee.empID)
CHECK(certificate.language = foreign_language_proficiency.language
and certificate.empID = Employee.empID)


3. KẾT LUẬN
Bài báo này đã giới thiệu một phương pháp chuyển đổi các thành phần của mơ hình
ER thành lược đồ XML. Để áp dụng kết quả này cho việc giải quyết bài toán rộng hơn là
chuyển đổi một mơ hình ER thành lược đồ XML, xét về ngun tắc, ta cần phải chuyển mơ
hình ER truyền thống thành một mơ hình ER có cấu trúc cây phân cấp. Vấn đề này đã được
giải quyết trọn vẹn trong tài liệu [2].
Ngồi ra, trong bài báo này, chúng tơi đã bổ sung một phương pháp chuyển đổi các
thuộc tính đa trị và phức hợp lồng nhau trong một kiểu thực thể sang lược đồ XML, bằng
cách xem mỗi thuộc tính đa trị và phức hợp như một mối quan hệ định danh.
Hướng nghiên cứu tiếp theo của chúng tôi là sẽ mở rộng việc chuyển đổi này trên mơ
hình cơ sở dữ liệu thời gian. Cụ thể là chúng tơi sẽ nghiên cứu quy tắc chuyển đổi mơ hình
TimeER thành lược đồ Temporal XML. Việc nghiên cứu này sẽ có ý nghĩa trong việc giải
quyết bài tốn chuyển đổi mơ hình quan hệ có yếu tố thời gian thành lược đồ Temporal
XML. Bởi vì dựa trên nghiên cứu của tài liệu [7], ta có thể trích xuất một mơ hình TimeER
từ một mơ hình quan hệ có yếu tố thời gian, và theo đó có thể chuyển đổi thành lược đồ
Temporal XML.


10

TÀI LIỆU THAM KHẢO
1. Arenas, M. and Libkin, L., A Normal Form for XML Documents, ACM Transaction
on Database System, 2004.
2. Elmasri R., Navathe S.B., Fundamentals of Database Systems, Addison-Wesley, 6th
edn, 2011.
3. Embley, D. and Mok, W.Y., Developing XML Documents with guaranteed "good"
properties, In Preceedings of the 20th International Conference on Conceptual
Modeling, pp. 426-441, 2001.
4. Gustas, R., A Look Behind Conceptual Modelling Constructs in Information System

Analysis and Design, International Journal of Information System Modelling and
Design, 2010.
5. Kolahi, S., Dependency-preserving normalization of relational and XML data, Journal
of Computer and system Sciences, 2007.
6. Massimo Franceschet, Donatella Gubiani, Angelo Montanari and Carla Piazza, A
Graph-Theoretic Approach to Map Conceptual Designs to XML Schemas, ACM
Transactions on Database Systems, Vol. 38, No. 1, Article 6, 2013.
7. Quang H., Toan V. N., Extraction of a temporal conceptual model from a relational
database, IJIIDS 7(4): 340-355 (2013).
8. Wang, J. and Topor, R., Removing XML Data Redundancies Using Functional and
Equality-Generating Dependencies, 16th Australasian Database Conference, 2005.
9. Yu, C. and Jagadish, J.H., XML schema refinement through redundancy detection and
normalization, The VLDB Journal, 2008.
10. Zainol, Z. and Wang, B., GN-DTD: Graphical Notation for Describing XML
Documents, In Preceeding of 2nd International Conference on Advances in Databases,
Knowledge, and Data Applications, DBKDA, IEEE Computer Society, 2010.


11

CONCEPTUAL DESIGN FOR XML SCHEMAS
Hoang Quang
Hue University of Sciences
Hoang Lien Minh Vo
Hue University of Sciences
Van Hai Vo
Industrial University of Ho Chi Minh City
SUMMARY
Today, XML plays a very important role in data communication among
applications. It is necessary to develop an XML database to store a large amount of data.

Issues related to this problem, Franceschet et al. (2013) have developed a method to allow
mapping almost all the components in the Entity-Relationship model into XML Schema.
However, the study does not pay attention to the nested multi-valued composite attributes
of entities in an Entity Relationship diagram. In this paper, in addition to introducing the
mapping method by Franceschet et al., we propose a method to map from the nested multivalued composite attributes of an entity in the ER model to the XML Schema.

View publication stats



×