« Home « Kết quả tìm kiếm

CHUYỂN ĐỔI DỮ LIỆU TỪ XML SANG CƠ SỞ DỮ LIỆU QUAN HỆ


Tóm tắt Xem thử

- CHUYỂN ĐỔI DỮ LIỆU TỪ XML SANG CƠ SỞ DỮ LIỆU QUAN HỆ.
- Quá trình chuyển đổi từ XML sang CSDL quan hệ có tính phức tạp bởi đặc tính phân cấp của tài liệu XML và tính chặt chẽ về cấu trúc của DTD.
- Do đó với mong muốn quá trình chuyển đổi có thể thực hiện tự động và đạt hiệu quả cao, ta có thể dùng hai thuật toán New Inlining và XInsert để thực hiện quá trình chuyển đổi này.
- Thuật toán New Inlining chuyển từ lược đồ XML sang lược đồ CSDL quan hệ và thuật toán XInsert chuyển dữ liệu của tài liệu XML sang dữ liệu quan hệ..
- Ngày nay, XML đã trở thành chuẩn chính thức trên Internet và là công nghệ mới cho việc hiển thị, trao đổi, lưu trữ và truy xuất dữ liệu của World Wide Web..
- Mặc dù XML rất hiệu quả trong quá trình trao đổi, truy xuất trên Internet nhưng nó không thể có được những tính năng tuyệt vời của CSDL quan hệ như lưu trữ hiệu quả với dung lượng cực lớn, sao chép dự phòng, phục hồi dữ liệu, tối ưu hệ thống.
- Do đó, nhu cầu chuyển đổi dữ liệu từ XML sang CSDL quan hệ là rất cần thiết khi lượng tài liệu XML ngày càng tăng..
- Theo chuẩn W3C, tài liệu XML (hình 2) phải được định nghĩa bởi DTD (hình 1).
- DTD mô tả cấu trúc các phần tử, thuộc tính XML thông qua các phần tử con, toán tử và các ràng buộc về dữ liệu.
- Vì vậy, quá trình chuyển đổi bao gồm hai tiến trình con (hình 3): Chuyển lược đồ DTD sang lược đồ quan hệ (thuật toán New Inlining) và chuyển dữ liệu XML sang dữ liệu quan hệ (thuật toán XInsert)..
- <!ELEMENT univ (colleges, schools?)>.
- <!ELEMENT colleges (college + )>.
- <!ELEMENT college (dep * )>.
- <!ATTLIST college cName CDATA #REQUIRED>.
- <!ELEMENT schools (school + )>.
- <!ELEMENT school (dep * )>.
- <!ELEMENT dep (tel?, fax?, website?)>.
- <!ATTLIST dep dName CDATA #REQUIRED>.
- <!ELEMENT tel (#PCDATA)>.
- <!ELEMENT fax (#PCDATA)>.
- <!ELEMENT website (#PCDATA)>.
- <?xml version=”1.0”?>.
- <!DOCTYPE univ SYSTEM “univ.dtd”>.
- <univ uName=”WSU”>.
- <college cName=”Science”>.
- <dep dName=”CS”>.
- <college cName=”Engineering”>.
- <dep dName=”ECE”>.
- <dep dName=”IE”></dep>.
- <college cName=”Pharmacy”>.
- Hình 1: Định nghĩa kiểu tài liệu DTD.
- Hình 2: Tài liệu XML.
- 2.1 Chuyển đổi lược đồ.
- Thuật toán New Inlining ánh xạ dữ liệu DTD sang lược đồ quan hệ gồm 3 bước: Đơn giản hóa DTD, tạo và giản lược đồ thị DTD, sinh lược đồ quan hệ..
- 2.1.2 Tạo lập và giản lược đồ thị DTD bởi thuật toán Inline().
- Một đỉnh có thể gộp nếu và chỉ nếu nó có đúng một cạnh đi vào - tương ứng với một toán tử bộ (đỉnh b, d hình A)..
- Đỉnh e và tất cả các đỉnh có thể gộp khác có thể đến được từ e bằng đúng một cạnh tạo thành cây thì cây đó là cây có thể gộp đỉnh e (hình D có a,b,c,d là cây có thể gộp đỉnh a)..
- Ý tưởng của thuật toán New linining là sử dụng chiến lược tìm kiếm theo chiều sâu trên đồ thị DTD để xác định cây có thể gộp cho từng nút và cuối cùng gộp cây đó vào nút gốc của nó.
- Độ phức tạp của thuật toán là O(n)..
- Thuật toán Inline(DTDGraph G) Begin.
- Lược đồ quan hệ.
- Chuyển dữ liệu.
- Dữ liệu XML.
- Dữ liệu quan hệ Các hàm ánh xạ lược đồ.
- Chuyển lược đồ.
- Hình 3: Quá trình chuyển đổi XML sang RDB.
- Thuật toán InlineNode(Node e) Begin.
- 2.1.3 Sinh lược đồ quan hệ.
- Mỗi nút e trên đồ thị sinh một quan hệ e có thuộc tính quan hệ sau:.
- 1) ID là khóa chính, thuộc tính A của e sinh ra một thuộc tính quan hệ A tương ứng có cùng tên..
- 2 thì ta thêm thuộc tính nodetype..
- 3) Tên các phần tử XML cuối (xem như nút lá) trong tập e.inlinedSet..
- 4) Nếu có đúng một cạnh đơn từ e đến c thì ta thêm c.ID như là một khóa ngoại của e tham chiếu đến quan hệ c..
- 5) Nếu ít nhất có 2 quan hệ dạng t 1 (ID) và t 2 (ID) thì kết hợp chúng thành một quan hệ đơn dạng table 1 (ID, nodetype)..
- trong đồ thị giản lược DTD thì ta thêm quan hệ edge(parentID, childID, parentType, childType) để lưu trữ tất cả các quan hệ cha con tương ứng với những cạnh.
- Lược đồ kết quả của DTD ở hình 1:.
- 2.2 Chuyển đổi dữ liệu.
- Thuật toán XInsert cần dữ liệu đầu vào là lược đồ quan hệ (kết quả của thuật toán New Inlining), các hàm ánh xạ và mô hình dữ liệu dựa trên mô hình DOM của W3C..
- Có 3 hàm ánh xạ:.
- σ(e): Ánh xạ phần tử DTD sang bảng quan hệ.
- θ(a): Ánh xạ thuộc tính XML sang thuộc tính quan hệ.
- δ (e): Ánh xạ phần tử nút lá sang thuộc tính quan hệ.
- Ý tưởng của thuật toán XInsert:.
- XInsert dùng 2 hàng đợi q, r để lưu các phần tử trên cây DOM.
- Các phần tử không thể gộp được lưu vào q..
- Dựa trên dữ liệu lưu trong hàng đợi và các hàm ánh xạ, XInsert tạo ra từng bộ dữ liệu và lần lượt đưa vào các bảng của lược đồ quan hệ..
- Nếu quan hệ giữa hai phần tử là nhiều-nhiều thì những thông tin về mối quan hệ đó sẽ được lưu vào bảng edge..
- Độ phức tạp của thuật toán XInsert là O(n) với n là số phần tử XML và những thuộc tính trên cây T..
- (Chi tiết về thuật toán XInsert có thể tìm thấy trong tài liệu “Mapping XML Data to Relational Data: A DOM- BASED APPROACH”)..
- Có nhiều thuật toán hỗ trợ cho quá trình chuyển đổi dữ liệu giữa XML và CSDL quan hệ.
- Hai thuật toán New Inlining và XInsert tương đối đơn giản và đáp ứng được phần lớn các yêu cầu trong quá trình chuyển đổi về mặt dữ liệu.
- Bên cạnh đó có những thuật toán chuyển đổi có thể bảo toàn các ràng buộc ngữ nghĩa của lược đồ gốc hoặc chuyển đổi theo chiều ngược lại (CPI, NeT, CoT,…)..
- W3C World Wide Web Consortium Tài liệu tham khảo.
- Lê Tiến Vương (2000), Nhập môn cơ sở dữ liệu quan hệ, nhà xuất bản Thống Kê..
- dep(dName=”ECE”) dep(dName=”IE”) dep(dName=”CS”).
- Hình 5: Xây dựng cây DOM từ tài liệu XML hình 2

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt