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

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

Đang tải... (xem toàn văn)

Thông tin tài liệu

CHUYỂN ĐỔI DỮ LIỆU TỪ XML SANG CƠ SỞ DỮ LIỆU QUAN HỆ Ths. Nguyễn Thị Mỹ Truyền TÓM TẮT 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ệ. ABSTRACT Converting XML into Relational database is sophisticated because of strict and hierarchic characteristics of XML structure.Two following algorithms may give you a good translating method. The main purpose of New Inlining and XInsert algorithms help this process

CHUYỂN ĐỔI DỮ LIỆU TỪ XML SANG SỞ DỮ LIỆU QUAN HỆ Ths. Nguyễn Thị Mỹ Truyền TÓM TẮT Quá trình chuyển đổi từ XML sang CSDL quan hệ 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 thể thực hiện tự động và đạt hiệu quả cao, ta 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ệ. ABSTRACT Converting XML into Relational database is sophisticated because of strict and hierarchic characteristics of XML structure.Two following algorithms may give you a good translating method. The main purpose of New Inlining and XInsert algorithms help this process become more automaticaly and effectively. The New Inlining algorithm converts XML Schema into relational database schema. Then, the XInsert algorithm maps data of XML document to relational database. 1. ĐẶT VẤN ĐỀ Với mục đích phát huy tối đa tiềm năng và sức mạnh của Internet, W3C cho ra đời một ngôn ngữ mới, ngôn ngữ đánh dấu mở rộng XML. XML được kết hợp bởi tính mềm dẻo của SGML và tính đơn giản của HTML. Điểm nổi bậc của XML là nó được xây dựng theo cấu trúc phân cấp bằng các thẻ tự định nghĩa bởi người dùng theo đúng định chuẩn của W3C. 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 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 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. 2. NỘI DUNG NGHIÊN CỨU 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). <!DOCTYPE univ [ <!ELEMENT univ (colleges, schools?)> <!ATTLIST univ uName CDATA #REQUIRED> <!ELEMENT colleges (college + )> <!ELEMENT college (dep * )> <!ATTLIST college cName CDATA #REQUIRED> <!ELEMENT schools (school + )> <!ELEMENT school (dep * )> <!ATTLIST school sName CDATA #REQUIRED> <!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”> <colleges> <college cName=”Science”> <dep dName=”CS”> <website>www.cs.wayne.edu</website> </dep> </college> <college cName=”Engineering”> <dep dName=”ECE”> <tel>313-5773920</tel> </dep> <dep dName=”IE”></dep> </college> <college cName=”Pharmacy”> </college> </colleges> </univ> 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.1 Đơn giản hoá DTD Áp dụng các qui tắc sau đây một cách đệ qui để đơn giản hóa các toán tử +, ?, |, * trong định nghĩa DTD. 1. e+ → e* 2. e? → e 3. (e 1 | e 2 |…| e n ) →(e 1 , e 2 ,…, e n ) 4. (a) (e 1 , e 2 ,…, e n )* → (e 1 *, e 2 * ,…, e n *) (b) e** →e* 5. (a) …, e,…,e,…→ …,e*,… (b)…, e,…,e*,…→ …, e*,… (c)…, e*,…,e,…→ …, e*,… (d)…, e*,…,e*,…→ …e*,… 2.1.2 Tạo lập và giản lược đồ thị DTD bởi thuật toán Inline() - Một đỉnh thể gộp nếu và chỉ nếu nó đú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 thể gộp khá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 thể gộp đỉnh e (hình D a,b,c,d là cây 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 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 For mỗi nút e trong G do If not visited(e) then InlineNode(e) End If End For DTD 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 a d a, b b * * * * c, d c A B a b c e g f d a, b, c, d g e, f D Hình 4: Thao tác gộp C End Thuật toán InlineNode(Node e) Begin Đánh dấu e là “visited” For mỗi con c của e do If not visited(c) then InlineNode(c) End If End For For mỗi con c của e do If inlinable(c) then e.inlinedSet U = c.inlinedSet; chuyển tất cả các con của c thành con của e; và xóa c trong G End If End For End 2.1.3 Sinh lược đồ quan hệ Mỗi nút e trên đồ thị sinh một quan hệ e 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ùng tên. 2) Nếu |e.inlinedSet| ≥ 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 đú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 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). 6) Nếu ít nhất 2 bộ t 1 (ID, t 1 ) và t 2 (ID, t 2 ) thì ta kết hợp chúng thành một quan hệ đơn table 2 (ID,nodetype, pcdata). 7) Nếu ít nhất một cạnh “*” 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. 3 hàm ánh xạ: σ(e): Ánh xạ phần tử DTD sang bảng quan hệ. Ví dụ: σ(univ) = univ, σ(uName) = univ. θ(a): Ánh xạ thuộc tính XML sang thuộc tính quan hệ. Ví dụ: θ(uName) = uName, θ(dName) = dName. δ(e): Ánh xạ phần tử nút lá sang thuộc tính quan hệ. Ví dụ: δ(tel)=tel, δ(fax) = fax. Mô hình DOM: Mỗi nút e trên cây DOM những tính chất sau: e.name, e.parent, e.children, e.attributes, e.value. univ (ID, nodeType, uName) college (ID, cName) school (ID, sName) dep (ID, nodeType, dName, tel, fax, website) edge (parentID, childID, parentType, childType) Ý 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 thể tìm thấy trong tài liệu “Mapping XML Data to Relational Data: A DOM- BASED APPROACH”). 3. KẾT LUẬN 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 đó những thuật toán chuyển đổi 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,…). Danh mục các từ viết tắt DOM Document Object Model DTD Document Type Definition RDB Relational Database SGML Standard Generalized Markup Language XML eXtensible Markup Language W3C World Wide Web Consortium Tài liệu tham khảo Hồ Thuần, Hồ Cẩm Hà (2004), Các hệ sở dữ liệu lí thuyết và thực hành (tập một), nhà xuất bản Giáo Dục. Lê Tiến Vương (2000), Nhập môn sở dữ liệu quan hệ, nhà xuất bản Thống Kê. univ(uName=”WSU”) colleges college(cName=”Engineering”) college(cName=”Pharmacy”) college(cName=”Science”) dep(dName=”ECE”) dep(dName=”IE”) dep(dName=”CS”) Tel(”313-5773920”) website(”www.cs.waync.edu”) Hình 5: Xây dựng cây DOM từ tài liệu XML hình 2 Edge ParentID childID parentType childType 1 2 univ college 1 3 univ college 1 4 univ college 2 5 college dep 3 6 college dep 3 7 college dep School ID sName Univ ID nodeType uName 1 univ WSU College ID cName 2 Science 3 Engineering 4 Pharmacy Hình 6: CSDL sau khi lưu trữ univ.xml Dep ID nodeType dName tel fax website 5 dep CS null null www.cs.wayne.edu 6 dep ECE 313-5773920 null null 7 dep IE null null null Nguyễn Phương Lan (2001), XML nền tảng và ứng dụng, nhà xuất bản Giáo Dục. Nguyễn Tiến, Đặng Xuân Hường, Nguyễn Văn Hoài, Nguyễn Tuấn Ngọc (2001), Nhập môn XML thực hành và ứng dụng, nhà xuất bản Thống Kê. Mustafa Atay, Yezhou Sun, Dapeng Liu, Shiyong Lu, Farshad Fotouhi, “Mapping XML Data to Relational Data: A DOM-BASED APPROACH”, Department of Computer Science Wayne State University, Detroit, MI 48202. ShiYoung Lu, Yezhou Sun, Mustafa Atay, Farshad Fotouhi: “A New Inlining Algorithm for Mapping XML DTDs to Relational Schemas”. Department Of Computer Science Wayne State University, Detroit, MI 48202. . CHUYỂN ĐỔI DỮ LIỆU TỪ XML SANG CƠ SỞ DỮ LIỆU QUAN HỆ Ths. Nguyễn Thị Mỹ Truyền TÓM TẮT Quá trình chuyển đổi từ XML sang CSDL quan hệ có tính. For DTD 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 a d a,

Ngày đăng: 20/08/2013, 16:48

Hình ảnh liên quan

- 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). - CHUYỂN ĐỔI DỮ LIỆU TỪ XML SANG CƠ SỞ DỮ LIỆU QUAN HỆ

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) Xem tại trang 2 của tài liệu.
Hình 3: Quá trình chuyển đổi XML sang RDB - CHUYỂN ĐỔI DỮ LIỆU TỪ XML SANG CƠ SỞ DỮ LIỆU QUAN HỆ

Hình 3.

Quá trình chuyển đổi XML sang RDB Xem tại trang 2 của tài liệu.
bảng của lược đồ quan hệ. - CHUYỂN ĐỔI DỮ LIỆU TỪ XML SANG CƠ SỞ DỮ LIỆU QUAN HỆ

bảng c.

ủa lược đồ quan hệ Xem tại trang 4 của tài liệu.
- 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 - CHUYỂN ĐỔI DỮ LIỆU TỪ XML SANG CƠ SỞ DỮ LIỆU QUAN HỆ

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 Xem tại trang 4 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan