ràng buộc;
Case mỗi bảng kết nối of:
(1) Phụ thuộc hàm: Chuyển thành một phần tử con của tài liệu XML;
(2) Nhiều giá trị phụ thuộc: Chuyển thành các phần tử con của tài liệu XML; (3) Kết nối phụ thuộc: Chuyển thành một nhóm phần tử của tài liệu XML; (4) Kết nối m:n: Chuyển thành phần tử dẫn của tài liệu XML;
Case End; End;
Chi tiết các phương pháp trong thuật toán được diễn giải theo 4 trường hợp dưới đây:
- Trường hợp 1: Thực hiện phục hồi phụ thuộc hàm vào phần một tử con của tài liệu XML. Cho hai quan hệ R1(A1,A3) và R2(A2,A4,*A1) cùng
với phụ thuộc hàm FD (functional dependency): R2.A1 → R1.A1. Chúng
được phân loại và đưa vào bảng R(A1, A2, A3, A4). Các kiểu quan hệ này sau đó được chuyển vào một phần tử con (sub-element) của tài liệu XML bằng cách ánh xạ quan hệ cha R1 vào phần tử E1 và quan hệ con R2 vào phần tử con E2 được mô tả dưới đây:
Tên quan hệ Kiểu quan hệ Khóa chính KAP KAG FKA NKA
R1R2 R2 PR1 PR1 A1 A2 A3 A4 Các quan hệ
Giữa vào kết quả ta thấy hàm thuộc FD được mô tả tương ứng như sau:
Cơ sở dữ liệu quan hệ Tài liệu XML
FD: R2.A2,
R2.A4 →R1.A1, R1.A3
FD: E2.A2,
E2.A4 →E1.A1, E1.A3- Trường hợp 2: Thực hiện phục hồi nhiều giá trị phụ thuộc hàm vào - Trường hợp 2: Thực hiện phục hồi nhiều giá trị phụ thuộc hàm vào các phần tử con của tài liệu XML. Xét các quan hệ R1(*A1, A2) và R2(*A1, A3) cùng với phụ thuộc đa trị MVD (multiple value dependency): A1->A2|
Lược đồ quan hệ PR1 Quan hệ R1(A1,A3) PR1 Quan hệ R2(A2,A4, *A1)
Lược đồ XML (DTD) <!ELEMENT E1(E2)>
<!ATTLIST E1 A1 CDATA #REQUIRED> <!ATTLIST E1 A3 CDATA #REQUIRED> <!ELEMENT E2 EMPTY>
<!ATTLIST E2 A2 CDATA #REQUIRED> <!ATTLIST E2 A4 CDATA #REQUIRED>
Biến đổi Lược đồ E1 E2 A1 A3 A2 A4 Sub-element Convert dữ liệu Tài liệu XML
<E1 A1= “a11” A3= “a31”>
<E2 A2= “a21” A4= “a41”> </E2>
</E1>
<E1 A1= “a12” A3= “a31”>
<E2 A2= “a22” A4= “a42”> </E2>
A3 (A2, A3 phụ thuộc hàm vào A1). Chúng được phân loại và đưa vào bảng R(R1, R2, R3), tiếp theo sẽ được chuyển thành các phần tử con của tài liệu XML bằng cách ánh xạ KAP A1 vào phần tử E1, KAG A2 và A3 vào phần tử con E2 và E3 như sau:
Tên quan hệ Kiểu quan hệ Khóa chính KAP KAG FKA NKA
R1R2 R2 PR2 PR2 A1 A1 A2 A3 Các quan hệ
Giữa vào kết quả ta thấy các giá trị phụ thuộc MVD được mô tả tương ứng như sau:
Cơ sở dữ liệu quan hệ Tài liệu XML
MVD: A1 → A2Và A1 → A3 Và A1 → A3
MVD: E1.A1 → E2.A2Và E1.A1 → E3.A3 Và E1.A1 → E3.A3 - Trường hợp 3: Thực hiện phục hồi kết nối vào một nhóm phần tử con của tài liệu XML. Xét các quan hệ R1(*A1, *A2), R2(*A2, *A3) và R3(*A3 ,*A1) cùng với phụ thuộc kết nối JD (Join dependency): R = R1 R2 R3. Chúng được phân loại và đưa vào bảng R(A1, A2, A3) Loại này tiếp theo sẽ được chuyển thành nhóm phần tử của tài liệu XML bằng cách ánh xạ KAP A1, A2 và A3 vào nhóm E1, E2 và E3 như sau:
Convert dữ liệu
Tài liệu XML
<E1 A1= “a11”>
<E2 A2= “a21”> </E2> <E3 A2= “a31”> </E3> </E1>
<E1 A1= “a12”>
<E2 A2= “a22”> </E2> <E3 A3= “a32”> </E3> </E1>
Tên quan hệ Kiểu quan hệ Khóa chính KAP KAG FKA NKA R1 R2 R3 SR1 SR2 SR3 A1,A2 A2,A3 A3,A1 Các quan hệ
Giữa vào kết quả ta thấy kết nối JD được mô tả tương ứng như sau:
Cơ sở dữ liệu quan hệ Tài liệu XML
JD: R(A1, A2, A3)→ R1(A1,A2) → R1(A1,A2)
R2(A2,A3) R3(A3,A1)
JD: Group(A1, A2, A3) → Root(E1.A1, E2.A2, E3.A3) - Trường hợp 4: Thực hiện phục hồi các quan hệ m:n vào phần tử dẫn của tài liệu XML. Xét các quan hệ R1(A1, A3), R2(A2, A4) và R3(*A1 ,*A3)
cùng với phụ thuộc đa trị MVD R1(A1, A3) →R2(A2, A4). Chúng được phân
loại và đưa vào bảng R(A1, A2, A3, A4). Loại này tiếp theo sẽ được chuyển thành phần tử dẫn của tài liệu XML bằng cách ánh xạ KAP A1 vào thuộc tính “id” của phần tử E1, và KAP A2 vào thuộc tính “idref” của phần tử E2 như sau:
Convert dữ liệu
Tài liệu XML
<Group>
<E1 A1= “a11”> </E1> <E2 A2= “a21”> </E2> <E3 A3= “a31”> </E3> </Group>
<Group>
<E1 A1= “a12”> </E1> <E2 A2= “a22”> </E2> <E3 A3= “a32”> </E3> </Group>
Tên quan hệ Kiểu quan hệ Khóa chính KAP KAG FKA NKA R1 R2 R3 PR1 PR1 SR1 A1 A2 A1,A2 A3 A4 Các quan hệ
Giữa vào kết quả ta thấy phần tử dẫn được mô tả tương ứng như sau:
Cơ sở dữ liệu quan hệ Tài liệu XML
Referral: R1(A1,A3) →R2(A2,A4)
Referral: E1(A1,A3) → E2(A2,A4) Ví dụ:
Ta xét một phần cơ sở dữ liệu của hệ thống ngân hàng gồm các quan hệ chính như sau: - Quan hệ Customer–Security *Customer *Security John Doe Bob Kusik Chris Bloor LS001 LS002 LS003
Convert dữ liệu <E1 A1= “a11” A3= “a31” id= “1”> </E1><E1 A1= “a12” A3= “a32” id= “2”> </E1> <E2 A1= “a21” A4= “a41” idref= “1”> </E2> <E2 A1= “a22” A4= “a42” idref= “2”> </E2>