Chuẩn trao đổi dữ liệu XML

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu một số vấn đề về tích hợp dữ liệu Luận văn ThS Công nghệ thông tin 1 01 10 (Trang 32 - 41)

CHƯƠNG 2 MỘT SỐ VẤN ĐỀ CƠ BẢN CỦA TÍCH HỢP DỮ LIỆU

2.3 Khuôn mẫu và mô hình dữ liệu

2.3.2 Chuẩn trao đổi dữ liệu XML

XML là một văn bản tài liệu, trên thực tế nó là một tập con của ngôn ngữ SGML sử dụng cho đánh dấu văn bản (xem thêm thông tin tại [17]). Ở mức cao hơn, XML là một định dạng cấu trúc dữ liệu đơn giản, bao gồm cặp thẻ mở, thẻ đóng và các đơn vị định dạng dữ liệu. Trong một đơn vị, một đơn vị có không hoặc nhiều các thuộc tính. Từ khía cạnh cơ sở dữ liệu, sự khác biệt giữa một thuộc tính và một dơn vị là rất nhỏ. Các thuộc tính có thể chứa các giá trị vô hướng, một thuộc tính có thể chỉ đại diện cho một đơn vị, thông thường thì các thuộc tính không có tính sắp thứ tự đối với các thuộc tính khác. Các phần tử (đơn vị) có thể lặp lại nhiều

lần, nó chứa dữ liệu phần tử hoặc các dữ liệu vô hướng, và có tính sắp thứ tự. Một ví dụ của XML được thể hiện trong hình 2.2.

<db>

<book publisher="mkp">

<title>Readings in Database Systems</title>

<editor>Stonebraker</editor>

<editor>Hellerstein</editor>

<isbn>123-456-X</isbn>

</book>

<book publisher="mkp">

<title>Transaction Processing</title>

<author>Bernstein</author>

<author>Newcomer</author>

<isbn>235-711-Y</isbn>

</book>

<company ID="mkp">

<name>Morgan Kaufmann</title>

<city>San Mateo</city>

<state>CA</state>

</company>

</db>

Hình 2.2: Một tài liệu XML mẫu thể hiện dữ liệu book và publisher Một tài liệu XML luôn có cú pháp đầy đủ và được định dạng tốt, tất cả các thẻ mở đều có 1 thẻ đóng tương ứng và các chi tiết cấu trúc XML đi kèm. Tuy nhiên, cấu trúc một tài liệu XML thông thường luôn phải được thể hiện bằng 1 lược đồ. Có hai phương pháp chuẩn để xác định lược đồ trong XML: DTD và XML Schema.

DTD (Document Type Definition) thiết lập các ràng buộc trong các thẻ XML. Về bản chất DTD là một ngữ pháp EBNF nhằm giới hạn tập các hệ thống thuộc tính và thành phần XML. DTD còn dùng để nhận biết 2 kiểu thuộc tính đặc biệt: ID và IDREF. Thuộc tính ID xác định tính duy nhất của mỗi một phần tử trong tài liệu, trong trường hợp này có thể coi nó là khoá của tài liệu. Còn kiểu thuộc tính IDREF, IDREFS nhằm để thiết lập các mối quan hệ liên quan đến ID trong tài liệu.

Một IDREF chứa một ánh xạ tới một ID; một IDREFS chứa một tập các ánh xạ của ID.

XML Schema là một tiêu chuẩn mới và đang cạnh tranh mạnh mẽ với DTD.

Ích lợi quan trọng của XML Schema là cho phép hỗ trợ các kiểu thành phần và phân lớp thành phần, hỗ trợ các kiểu thông tin giá trị một cách phong phú hơn (ví dụ:

kiểu số, kiểu ngày tháng ...), hỗ trợ khoá chính lẫn khoá ngoại. XML Schema là một tiêu chuẩn khá phức tạp với nhiều ràng buộc khác nhau.

#1

#2

#8

MPK

#4

#3

#5 #6

#7 #9

#10

#11

#12 #13

#15

#14 #16

db

book

title editors ISBN

name name

123-456-X Readings

In Database Systems

Stonebraker HellerStein

book

company

publisher

publisher

title editors

ISBN

Princples Of Transaction

Processing 235-711-Y

name name

Bernstein

Newcomer

name city state

Kaufmann

CA

San Mateo

Hình 2.3: Đồ thị XML-QL cho hình 2.2. Các cạnh nét gạch nối thể hiện IDREFS; Các cạnh nét chấm điểm thể hiện PCDATA.

Đã có rất nhiều các đề xuất cho mô hình XML, nhưng có 2 mô hình được quan tâm nhiều hơn cả. Đề xuất đầu tiên, đó là ánh xạ từ XML vào mô hình dữ liệu

bán cấu trúc truyền thống. Mô hình này được quan tâm bởi nó có khả năng hỗ trợ cầu trúc biểu đồ cho tài liệu XML nhưng nó lại không thể hiện hết được tất cả các thành phần đặc tả của XML. Đề xuất thứ hai là mô hình dữ liệu W3C XML Query.

Đây là mô hình dựa trên cấu trúc cây. Nó thể hiện đựoc tất cả các chi tiết và đặc tính của các đặc tả XML, bao gồm cả những chỉ dẫn, ghi chú, ... Mô hình dữ liệu W3C XML Query cố gắng định nghĩa một cách rõ ràng các tính năng chính của XML Schema.

Mô hình dữ liệu XML-QL

Ngày nay, đứng trước sự xuất hiện của nhiều tiêu chuẩn mới được đề xuất, ngôn ngữ truy vấn XML-QL ngày ít được quan tâm hơn bởi một thực tế rằng mô hình này dần dần đã không thích hợp nữa. Tuy nhiên, mô hình dữ liệu này là một ánh xạ từ XML tới mô hình dữ liệu bán cấu trúc. Đó là một thế mạnh đang thiếu trong các phương pháp tiêu chuẩn mới gần đây.

Trong mô hình dữ liệu XML-QL, mỗi một nút nhận một nhãn duy nhất (hoặc là thuộc tính ID có sẵn hoặc là ID do hệ thống sinh ra). Một nút thành phần được đưa vào có thể được chú giải bởi cặp thuộc tính – giá trị. Chú giải đó được được gán nhãn theo cạnh có hướng tới các thành phần con và các thành phần khác liên quan thông qua thuộc tính IDREF. Hình 2.3 là đồ thị miêu tả ví dụ dữ liệu XML của Hình 2.2. Trong đồ thị, các IDREF được biểu diễn bằng các đường nét đứt và nhãn trên các cạnh là tên thuộc tính của IDREF. Các cạnh này có hướng tới các nút phần tử liên quan. Chúng ta tạo các cạnh PCDATA tới từng dữ liệu được gắn trong tài liệu XML với mục đích cho phép việc trộn lẫn dữ liệu chuỗi với các thông tin xếp vào trong cùng một thành phần. Các cạnh này được thể hiện trong hình 2.3 dưới dạng các đường mũi tên nét chấm chỉ tới các nút lá.

Mô hình dữ liệu XML-QL rất hạn chế trong việc hỗ trợ xác định thứ tự. Các nút anh em có xác định mối quan hệ thứ tự nhưng lại không thể hiện vị trí chính xác trong mô hình, do đó việc so sánh thứ tự các nút bất kì là rất khó khăn. Việc so sánh

này yêu cầu phép so sánh đệ qui lần ngược các nút cha. Bên cạnh đó, mô hình XML-QL không phân biệt các cạnh con và các cạnh IDREF – vì vậy khi 1 đồ thị được đưa ra sẽ có nhiều hơn 1 mô hình XML thoả mãn đồ thị đó.

Mô hình dữ liệu W3C XML Query

Mô hình World Wide Web Consortium’s XML Query (XQuery) dựa trên dạng cây gán nhãn tại các nút nơi IDREF tồn tại. Mô hình đầy đủ của XQuery nhận được từ XML Schema

db

book

book

company

editors title

#5 #6

ISBN title

editors

ISBN

#12 #13

city

name state

name name

123-456-X Readings

In Database Systems

Stonebraker HellerStein

Publisher = “mpk”

Publisher = “mpk”

ISBN

Princples Of Transaction

Processing 235-711-Y

name name

Bernstein

Newcomer

Kaufmann

CA

San Mateo ID=”mpk”

Hình 2.4: Thể hiện mô hình dữ liệu XQuery đơn giản cho hình 2.2. Các cạnh nét gạch nối thể hiện mối liên hệ định nghĩa bằng IDREFS; các cạnh nét chấm điểm chỉ tới các điểm văn bản.

Mô hình này tồn tại một vài điều phức tạp: các thành phần phải được định kiểu như một dạng kiểu hệ thống cấp bậc; các kiểu có thể chia sẻ các cấu trúc hạ tầng (nhóm các thành phần); các thành phần có thể là khoá chính hoặc khoá ngoại;

các giá trị vô hướng có thể có giới hạn theo việc xác định kiểu dữ liệu; và mô hình còn hỗ trợ các khái niệm XML như là thực thể, các chỉ dẫn quá trình, thậm chí cả những lời chú thích. Hơn nữa, bất kỳ nút nào trong mô hình XQuery đều có các liên kết ẩn tới các nút con, nút anh em, nút cha. Vì vậy, tại một nút chúng ta có thể di chuyển lên trên, xuống dưới và đi ngang trong cây.

Hình 2.4 là một thể hiện đơn giản của tài liệu XML sử dụng mô hình này Truy vấn dữ liệu XML

Trong vài năm gần đây, nhiều ngôn ngữ truy vấn cho XML được đề xuất, nhưng gần đây World Wide Web Consortium đã cố gắng chuẩn hoá chúng bằng đặc tả ngôn ngữ XQuery. Ngôn ngữ XQuery được thiết kế để trích chiết và kết hợp các cây con từ một hoặc nhiều tài liệu XML. Các biểu thức cơ bản trong XQuery bao gồm một cấu trúc mệnh đề For-Let-Where-Return: mệnh đề For hỗ trợ chuỗi biểu thức XPath trong việc chọn lựa các nút đầu vào, mệnh đề Let xác định các giá trị biểu thức trong tập hợp, mệnh đề Where định nghĩa các thuộc tính kết nối và chọn lựa, và mệnh đề Return tạo các cấu trúc đầu ra XML. Biểu thức XQuery có thể chỉ có 1 mệnh đề Return để tạo chuỗi đầu ra. Ngoài ra, XQuery còn hỗ trợ các tính năng vượt trội hơn so với SQL, như là việc hỗ trợ chức năng đệ qui tuỳ ý.

XQuery được xếp vào nhóm các phép toán trong SQL, và quá trình thực hiện truy vấn trong XQuery là tương đối giống với SQL. Song trong XQuery có một số điểm khác biệt chính như sau.

<result> {

FOR $b IN document("books.xml")/db/book,

$t IN $b/title/data(),

$n IN $b/(editor|author)/data() RETURN <item>

<person>{ $n }</person>

<pub>{ $t }</pub>

</item>

} </result>

Hình 2.5: Câu truy vấn XQuery tìm tên những nguời có tài liệu xuất bản. Lệnh FOR xác định Xpath duyệt trên cây XML, và trả về giá trị cây con trong các biến (có tiền tố là dấu $).

Nhập các ánh xạ mẫu (có tính lặp lại)

Các bộ truy vấn XQuery bắt đầu bằng trạng thái biến ràng buộc: Các biểu thức XPath For và Let được xem như những con đường thông qua cây mô hình dữ liệu và bắt đầu từ gốc. Điểm cuối của XPath trong cây kết gắn được giới hạn bởi các biến mệnh đề trong For và Let. Nếu một XPath có nhiều mô hình phù hợp, một mệnh đề For sẽ tự động lặp và đưa các giá trị biến vào nó, quá trình thực thi trong câu truy vấn của mệnh đề Where and Return sẽ thực hiện cho từng giá trị biến này.

Mệnh đề Let sẽ trả về tập hợp tất cả các biến liên kết phù hợp. Một câu truy vấn thông thường có thể có nhiều chỉ định For và Let, và mỗi một kết hợp chỉ định đó dựa trên tính lặp lại trên giá trị đánh giá của câu truy vấn.

Một ví dụ XQuery được thể hiện trong hình 2.5. Chúng ta có thể nhận thấy biến $b được gán với mỗi phần tử con book nằm dưới thành phần db trong tài liệu book.xml; $t được gán với tiêu đề trong quyển sách được đưa ra $b ...

Trong ví dụ này, việc phối kết hợp nhiều đối tượng phù hợp là thoả mãn, vì vậy quá trình ràng buộc các biến cũng được thực thi theo cách này. Đầu tiên, biến

$b được gán cho quyển sách (book) đầu tiên được tìm thấy. Sau đó các biến $t, $n được gán theo thứ tự các thành phần con tiêu đề (title) và editor hoặc author. Mỗi

một cặp thoả mãn của $t và $n cho bởi $b được đánh giá một cách riêng biệt và có tính lặp lại; sau đó quá trình này sẽ lặp lại cho giá trị tiếp theo của $b.

<result>

<item>

<person>Stonebraker</person>

<pub>Readings in Database Systems</pub>

</item>

<item>

<person>Hellerstein</person>

<pub>Readings in Database Systems</pub>

</item>

<item>

<person>Bernstein</person>

<pub>Transaction Processing</pub>

</item>

<item>

<person>Newcomer</person>

<pub>Transaction Processing</pub>

</item>

</result>

Hình 2.6: Kết quả của việc truy vấn từ hình 2.5 với dữ liệu XML trong hình 2.2. Kết quả là một tập giá trị person-publisher, kết quả đó đƣợc nằm trong một thành phần gốc ”result”.

Chúng ta nhận thấy rằng quá trình này giống như một truy vấn trong mô hình quan hệ trong trường hợp chúng ta nối những cuốn sách với tiêu đề và tác giả - chúng ta sẽ có 1 bộ <title, editor|author> đỗi với mỗi cuốn sách. Điều khác biệt lớn nhất ở đây là nằm trong các thuật ngữ; đối với XQuery chúng ta có một sự lặp lại để gắn kết các biến, và trong hệ thống quan hệ chúng ta có 1 bộ các giá trị tương ứng với các thuộc tính.

Bộ xây dựng kết quả XML.

Mệnh đề Return xác định một bộ cấu trúc cây XML dựa trên đầu ra của mỗi kết quả trả về, các biến sẽ thay thế bởi các giá trị. Chú ý rằng các biến trong

XQuery thường là các cây con XML hơn là các giá trị vô hướng. Kết quả của ví dụ truy vấn được thể hiện trong hình 2.6.

Một trong những đặc điểm chính được sử dụng trong XQuery liên quan đến biểu thức nằm trong mệnh đề Return. Biểu thức con trả về một tập thành phần XML thoả mãn sự tương quan của mỗi một kết quả đệ qui của truy vấn. Đây là mối liên hệ ”1- nhiều” giữa phần tử cha và các phần tử con trong kết quả. Các kiểu đặc biệt của truy vấn sẽ không có tính chính xác tương đương như trong cơ sở dữ liệu quan hệ, nhưng nó có nhiều sự tương quan với các truy vấn con trong SQL.

Cấu trúc đồ hoạ của đường đi

Một số dữ liệu XML sử dụng thuộc tính IDREF để thể hiện kết nối giữa các thành phần (đường nét chấm trong hình 2.3). Các IDREF cho phép XML mã hoá cấu trúc đồ thị giống như cấu trúc cây dữ liệu. Tuy nhiên, các khả năng hỗ trợ trong XML là hạn chế: trong XQuery có các xác định ”con cháu” và ”thẻ tự do” cho việc chọn lựa các phần tử con. Những hạn chế này có lẽ được thiết kế để làm đơn giản quá trình truy vấn của các câu truy vấn phức tạp.

Việc truy vấn XML trong tích hợp dữ liệu

Đôi khi dữ liệu XML chỉ có thể truy cập bằng các truy vấn động riêng biệt, giống như việc phải có một ”khung nhìn XML ảo” phủ trên các nguồn dữ liệu ( ví dụ một hệ thống chuyển XML cho các cơ sở dữ liệu quan hệ, hoặc các dữ liệu từ giao diện web ...). Các truy vấn này có thể yêu cầu nội dung từ các nguồn dữ liệu theo các giá trị xác định trước (ví dụ: các cuốn sách cần kèm theo phần tác giả ...).

Mặt khác, một hệ thống tích hợp dữ liệu có thể cần biết tập giá trị từ một hoặc nhiều nguồn, sau đó sử dụng chúng để sinh ra các câu truy vấn động phụ thuộc các nguồn dữ liệu, và tiếp theo kết hợp các kết quả đẻ tạo nên câu trả lời truy vấn. Hiện nay XQuery chỉ hỗ trợ giới hạn một số định dạng các câu truy vấn động.

Với các tính năng của XML, nó đã tạo ra một kỷ nguyên mới cho các ứng dụng trao đổi thông tin hiên nay. Và XML cũng được đánh giá là một chuẩn và là nội dung nghiên cứu chính trong việc trao đổi dữ liệu trong các hệ thống tích hợp dữ liệu.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu một số vấn đề về tích hợp dữ liệu Luận văn ThS Công nghệ thông tin 1 01 10 (Trang 32 - 41)

Tải bản đầy đủ (PDF)

(98 trang)