CHUYỂN ĐỔI DỮ LIỆU TỪ XML SANG CƠ SỞ DỮ LIỆU QUAN HỆ
lượt xem 152
download
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...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: CHUYỂN ĐỔI DỮ LIỆU TỪ XML SANG CƠ SỞ DỮ LIỆU QUAN HỆ
- 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 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 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. 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). www.cs.wayne.edu 313-5773920 ]> Hình 1: Định nghĩa kiểu tài liệu DTD Hình 2: Tài liệu XML
- Các hàm ánh xạ lược đồ DTD Chuyển Chuyển lược đồ dữ liệu Dữ liệu quan hệ Lược đồ quan hệ Dữ liệu XML Hình 3: Quá trình chuyển đổi XML sang RDB 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. (e1| e2 |…| en) →(e1, e2 ,…, en) 4. (a) (e1, e2 ,…, en)* → (e1*, e2* ,…, en*) (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 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). * * a a d g b a, b, c, d a, b c, d * c * c b g e, f A B e D d f C Hình 4: Thao tác gộp Ý 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 For mỗi nút e trong G do If not visited(e) then InlineNode(e) End If End For
- 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 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) 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 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 t1(ID) và t2(ID) thì kết hợp chúng thành một quan hệ đơn dạng table 1(ID, nodetype). 6) Nếu có ít nhất 2 bộ t1(ID, t1) và t2(ID, t2) thì ta kết hợp chúng thành một quan hệ đơn table2(ID,nodetype, pcdata). 7) Nếu có í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: univ (ID, nodeType, uName) college (ID, cName) school (ID, sName) dep (ID, nodeType, dName, tel, fax, website) edge (parentID, childID, parentType, childType) 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ệ. 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 có những tính chất sau: e.name, e.parent, e.children, e.attributes, e.value.
- univ(uName=”WSU”) colleges college(cName=”Science”) college(cName=”Engineering”) college(cName=”Pharmacy”) dep(dName=”CS”) dep(dName=”ECE”) dep(dName=”IE”) website(”www.cs.waync.edu”) Tel(”313-5773920”) Hình 5: Xây dựng cây DOM từ tài liệu XML hình 2 Ý 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”). Edge Univ ParentID childID parentType childType ID nodeType uName School 1 2 univ college 1 univ WSU 1 3 univ college ID sName 1 4 univ college 2 5 college dep 3 6 college dep 3 7 college dep Dep College ID nodeType dName tel fax website ID cName 5 dep CS null null www.cs.wayne.edu 2 Science 6 dep ECE 313-5773920 null null 3 Engineering 7 dep IE null null null 4 Pharmacy Hình 6: CSDL sau khi lưu trữ univ.xml 3. KẾT LUẬN 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,…). 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ệ cơ 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 cơ sở dữ liệu quan hệ, nhà xuất bản Thống Kê.
- 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.
CÓ THỂ BẠN MUỐN DOWNLOAD
-
CĂN BẢN VỀ XML
59 p | 539 | 254
-
Xây dựng một ứng dụng pureXML và JSON, Phần 1
39 p | 147 | 27
-
Lập trình với XML cho DB2, Phần 3: Lập trình với XML ở phía khách
24 p | 98 | 23
-
Lập trình với XML cho DB2
102 p | 98 | 23
-
Lập trình với XML cho DB2, Phần 1: Hiểu biết mô hình dữ liệu XML
22 p | 145 | 20
-
Các kỹ năng của Kiến trúc sư dữ liệu Rational, Phần 2
45 p | 135 | 17
-
Lý thuyết Căn bản về XML
60 p | 137 | 17
-
Dịch vụ Web dữ liệu của IBM Data Studio, Phần 3: Sử dụng máy chủ Web
20 p | 111 | 10
-
Các kỹ năng của Kiến trúc sư dữ liệu Rational, Phần 2: Tạo các truy vấn SQL/XML với Kiến trúc sư dữ liệu Rational
43 p | 110 | 10
-
DB2 9.7: Sử dụng các khối ẩn danh PL/SQL trong DB2 9.7
16 p | 92 | 9
-
Di chuyển một ứng dụng PHP từ MySQL sang DB2, Phần 3: Chuyển đổi mã PHP của bạn
22 p | 67 | 8
-
Công cụ di chuyển dữ liệu sang IBM
45 p | 100 | 8
-
Chuẩn bị cho kỳ thi 733 về Phát triển ứng dụng DB2 9, Phần 4: Lập trình SQL nhúng Xây dựng các ứng dụng có tương tác với DB2
73 p | 103 | 5
-
XML và thông tin theo yêu cầu
3 p | 59 | 3
-
Chuyển đổi các ứng dụng một bên thuê thành các ứng dụng nhiều bên thuê
11 p | 62 | 3
-
Giới thiệu MicroXML, Phần 1: Khám phá những nguyên tắc cơ bản của MicroXML
8 p | 67 | 3
-
Chuyển đổi hai mô hình dữ liệu XML và quan hệ bằng công cụ HDM
13 p | 63 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn