1. Trang chủ
  2. » Công Nghệ Thông Tin

Cách “băm nhỏ” các tài liệu XML bằng DB2 (phần I) pdf

7 334 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 202,2 KB

Nội dung

Cách “băm nhỏ” các tài liệu XML bằng DB2 (phần I) Băm nhỏ với XML Schema chú thích Trong phần tiếp theo này chúng tôi sẽ giới thiệu cho các bạn một phương pháp khác để băm nhỏ các tài liệu XML thành các bảng quan hệ. Phương pháp này được gọi là băm nhỏ giản đồ chú thích hay phân tách lược đồ chú thích vì nó dựa trên các chú thích trong XML Schema. Các chú thích này sẽ định nghĩa cách các thành phần XML và các thuộc tính trong dữ liệu XML của bạn để bản đồ hóa vào các cột trong các bảng quan hệ như thế nào. Để thực hiện quá trình băm nhỏ giản đồ có chú thích, bạn hãy thực hiện theo các cách sau:  Nhận dạng và tạo các bảng mục tiêu quan hệ sẽ giữ dữ liệu được băm nhỏ.  Chú thích XML Schema của bạn để định nghĩa việc bản đồ hóa từ XML thành các bảng quan hệ.  Đăng ký XML Schema trong DB2 XML Schema Repository.  Băm nhỏ các tài liệu XML với các lệnh của bộ xử lý lệnh Command Line Processor hoặc các thủ tục. Giả dụ bạn đã định nghĩa các bảng quan hệ mà bạn muốn băm nhỏ, sau đây chúng ta sẽ quan sát việc chú thích một XML Schema. Việc chú thích XML Schema Các chú thích của giản đồ, là các thành phần và các thuộc tính bổ sung trong một XML Schema, nhằm cung cấp các thông tin bản đồ hóa. BD2 có thể sử dụng các thông tin này để băm nhỏ các tài liệu XML vào các bảng quan hệ. Cần biết rằng các chú thích sẽ không thay đổi ngữ nghĩa học của XML Schema. Nếu một tài liệu hợp lệ với giản đồ có chú thích thì nó cũng hợp lệ hóa với giản đồ gốc và ngược lại. Bạn có thể sử dụng giản đồ có chú thích để hợp lệ hóa các tài liệu XML giống như XML Schema gốc. Dưới đây là một dòng từ một XML Schema: <xs:element name="street" type="xs:string" minOccurs="1"/> Dòng trên định nghĩa một thành phần XML có tên gọi street, và tuyên bố rằng dữ liệu của nó là xs:string, thành phần này phải xuất hiện tối thiểu một lần. Bạn có thể bổ sung một chú thích vào định nghĩa của thành phần này để chỉ thị nó là thành phần sẽ được băm nhỏ vào cột STREET của bảng ADDRESS. Chú thích gồm có hai thuộc tính bổ sung trong định nghĩa của thành phần: <xs:element name="street" type="xs:string" minOccurs="1" db2-xdb:rowSet="ADDRESS" db2- xdb:column="STREET"/> Chú thích như vậy cũng có thể được cung cấp cho các thành phần giản đồ thay vì các thuộc tính, xem thể hiện bên dưới. Bạn sẽ thấy trong hình 8 rằng tại sao điều này lại hữu dụng. <xs:element name="street" type="xs:string" minOccurs="1"> <xs:annotation> <xs:appinfo> <db2-xdb:rowSetMapping> <db2-xdb:rowSet>ADDRESS</db2-xdb:rowSet> <db2-xdb:column>STREET</db2-xdb:column> </db2-xdb:rowSetMapping> </xs:appinfo> </xs:annotation> <xs:element/> Tiền tố xs được sử dụng cho tất cả các cấu trúc thuộc về ngôn ngữ XML Schema, tiền tố db2-xdb được sử dụng cho tất cả các chú thích giản đồ DB2. Các tiền tố này giúp bạn có thể phân biệt một cách rõ ràng và bảo đảm rằng giản đồ có chú thích hợp lệ hóa với các tài liệu XML như giản đồ gốc. Có 14 kiểu chú thích khác nhau. Chúng cho phép bạn chỉ định những gì băm nhỏ, nơi băm, cách lọc hoặc biến đổi dữ liệu được băm nhỏ và thứ tự nào để chèn vào các bảng mục tiêu. Bảng 4 cung cấp cho các bạn một cái nhìn tổng quan về các chú thích có sẵn, chúng được chia thành các nhóm logic theo nhiệm vụ của người dùng. Các chú thích riêng lẻ sẽ được miêu tả kỹ hơn trong bảng 5. Nếu bạn muốn Sử dụng chú thích Chỉ định các bảng mục tiêu để băm db2-xdb:rowSet db2-xdb:column db2-xdb:SQLSchema db2-xdb:defaultSQLSchema Chỉ định những gì cần băm db2-xdb:contentHandling Chuyển đổi các giá trị dữ liệu trong khi băm db2-xdb:expression db2-xdb:normalization db2-xdb:truncate Lọc dữ liệu db2-xdb:condition db2-xdb:locationPath Bản đồ hóa một thành phần hoặc thuộc tính vào nhiều cột. db2-xdb:rowSetMapping Bản đồ hóa một số thành phần hoặc thuộc tính vào cùng cột db2-xdb:table Định nghĩa thứ tự trong các hàng được chèn vào bảng mục tiêu, tránh các phá vỡ tính to àn vẹn. db2- xdb:rowSetOperationOrder db2-xdb:order Bảng 4. Tổng quan và việc nhóm các chú thích của giản đồ Chú thích Mô tả db2- xdb:defaultSQLSchema Giản đồ quan hệ mặc định cho các bảng mục tiêu db2-xdb:SQLSchema Ghi đè giản đồ mặc định cho các bảng riêng rẽ. db2-xdb:rowSet Tên bảng mà thành phần hoặc thuộc tính được bản đồ hóa vào db2-xdb:column Tên cột và thành phần hoặc thuộc tính được bản đồ hóa db2-xdb:contentHandling Với một thành phần XML, chú thích này sẽ định nghĩa cách lấy giá trị được chèn vào cột mục tiêu. db2-xdb:truncate Chỉ định giá trị sẽ được cắt hay không nếu chiều dài của nó lớn hơn chiều dài của cột mục tiêu. db2-xdb:normalization Chỉ thị cách xử lý không gian trắng (whitespace) –các giá trị hợp lệ là whitespaceStrip, canonical, và original db2-xdb:expression Chỉ định biểu thức sẽ được áp dụng cho dữ liệu trước khi chèn vào bảng mục tiêu. db2-xdb:locationPath Các bộ lọc dựa trên nội dung XML. Cho ví dụ, sẽ được băm nhỏ vào bảng cust nếu đó là một địa chỉ khách hàng; còn sẽ được băm nhỏ vào bảng employee nếu đó là địa chỉ nhân viên. db2-xdb:condition Chỉ định các điều kiện của giá trị để dữ liệu được chèn vào bảng mục tiêu chỉ khi tất cả các điều kiện thỏa mãn. db2-xdb:rowSetMapping Cho phép người dùng chỉ định nhiều bản đồ hóa, đối với cùng hoặc các bảng khác nhau, cho một thành phần hoặc thuộc tính. db2-xdb:table Bản đồ hóa nhiều thành phần hoặc thuộc tính vào một cột db2-xdb:order Chỉ định thứ tự chèn của các hàng giữa nhiều bảng db2- xdb:rowSetOperationOrder Nhóm nhiều chú thích db2-xdb:order vào với nhau. Bảng 5. Các chú thích XML Schema Để minh chứng cho quá trình phân tách giản đồ có chú thích, chúng ta hãy sử dụng kịch bản băm nhỏ trong hình 1 làm ví dụ. Giả dụ rằng các bảng mục tiêu đều được định nghĩa như thể hiện trong hình 1. Giản đồ chú thích định nghĩa việc bản đồ hóa theo mong muốn được cung cấp trong hình 8. Hãy quan sát các dòng được bôi đậm. Dòng bôi đậm đầu tiên tuyên bố tiền tố tên db2-xdb, tiền tố này được sử dụng xuyên suốt giản đồ để phân biệt các chú thích BD2 với các tab XML Schema thông thường. Trường hợp đầu tiên sử dụng tiền tố này nằm trong chú thích db2-xdb:defaultSQLSchema, đây là chú thích định nghĩa giản đồ quan hệ của các bảng mục tiêu. Chú thích tiếp theo xuất hiện trong định nghĩa của thành phần name. Hai thuộc tính của chú thích này db2- xdb:rowSet="ADDRESS" và db2-xdb:column="NAME" định nghĩa bảng và cột mục tiêu cho thành phần name. Tương tự như vậy, các thành phần street và city cũng được bản đồ hóa vào các cột tương ứng của bảng ADDRESS. Hai chú thích tiếp theo bản đồ hóa số điện thoại phone và thuộc tính kiểu type vào các cột trong bảng PHONES. Khối các chú thích cuối cùng thuộc về định nghĩa thuộc tính Cid. Do thuộc tính Cid sẽ trở thành khóa join giữa bảng ADDRESS và PHONE, nên nó phải được bản đồ hóa vào cả hai bảng. Phải cần đến hai bản đồ thiết lập hàng, yêu cầu sử dụng thành phần chú thích - annotation elements thay vì thuộc tính chú thích - annotation attributes. Đầu tiên db2-xdb:rowSetMapping sẽ bản đồ hóa thuộc tính Cid vào cột CID trong bảng ADDRESS. Sau đó db2- xdb:rowSetMapping sẽ gán thuộc tính Cid vào cột CID trong bảng PHONES. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:db2- xdb="http://www.ibm.com/xmlns/prod/db2/xdb1" > <xs:annotation> <xs:appinfo> <db2-xdb:defaultSQLSchema>db2admin</db2- xdb:defaultSQLSchema> </xs:appinfo> </xs:annotation> <xs:element name="customerinfo"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string" minOccurs="1" db2-xdb:rowSet="ADDRESS" db2- xdb:column="NAME"/> <xs:element name="addr" minOccurs="1" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="street" type="xs:string" minOccurs="1" db2- xdb:rowSet="ADDRESS" db2-xdb:column="STREET"/> <xs:element name="city" type="xs:string" minOccurs="1" db2- xdb:rowSet="ADDRESS" db2-xdb:column="CITY"/> <xs:element name="prov-state" type="xs:string" minOccurs="1" /> <xs:element name="pcode-zip" type="xs:string" minOccurs="1" /> </xs:sequence> <xs:attribute name="country" type="xs:string" /> </xs:complexType> </xs:element> <xs:element name="phone" minOccurs="0" maxOccurs="unbounded" db2- xdb:rowSet="PHONES" db2-xdb:column="PHONENUM"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="type" form="unqualified" type="xs:string" db2- xdb:rowSet="PHONES" db2-xdb:column="PHONETYPE"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="Cid" type="xs:integer"> <xs:annotation> <xs:appinfo> <db2-xdb:rowSetMapping> <db2-xdb:rowSet>ADDRESS</db2- xdb:rowSet> <db2-xdb:column>CID</db2- xdb:column> </db2-xdb:rowSetMapping> <db2-xdb:rowSetMapping> <db2-xdb:rowSet>PHONES</db2- xdb:rowSet> <db2-xdb:column>CID</db2- xdb:column> </db2-xdb:rowSetMapping> </xs:appinfo> </xs:annotation> </xs:attribute> </xs:complexType> </xs:element> </xs:schema> Hình 8: Giản đồ chú thích để thực thi quá trình băm nhỏ trong hình 1. Định nghĩa các chú thích giản đồ trực giác trong IBM Data Studio Bạn có thể tự bổ sung thêm các chú thích vào một XML Schema, bằng cách sử dụng bất cứ trình soạn thảo văn bản nào hoặc trình soạn thảo XML Schema. Ngoài ra bạn có thể sử dụng Annotated XSD Mapping Editor trong IBM Data Studio Developer. Để triệu gọi trình soạn thảo, hãy kích chuột phải vào tên của một XML Schema nào đó và chọn Open With, Annotated XSD Mapping Editor. Khi đó cửa sổ trình soạn thảo bản đồ sẽ được hiển thị như trong hình 9. Bên trái của trình soạn thảo thể hiện cấu trúc tài liệu có thứ bậc được định nghĩa bởi XML Schema (Source). Phía bên phải thể hiện các bảng và các cột của giản đồ mục tiêu quan hệ (Target). Bạn có thể bổ sung thêm các quan hệ bản đồ bằng cách kết nối các mục nguồn với cột mục tiêu. Bên cạnh đó chương trình còn có một chức năng khám phá để giúp bạn tìm các mối quan hệ có thể. Các mối quan hệ được bản đồ hóa sẽ được trình bày trong bộ soạn thảo bằng các dòng kẻ giữa các thành phần nguồn và cột mục tiêu. Hình 9: Trình soạn thảo Annotated XSD Mapping Editor trong Data Studio Developer . Cách “băm nhỏ” các tài liệu XML bằng DB2 (phần I) Băm nhỏ với XML Schema chú thích Trong phần tiếp theo này chúng tôi sẽ giới thiệu cho các bạn một phương pháp khác để băm nhỏ các tài liệu.  Đăng ký XML Schema trong DB2 XML Schema Repository.  Băm nhỏ các tài liệu XML với các lệnh của bộ xử lý lệnh Command Line Processor hoặc các thủ tục. Giả dụ bạn đã định nghĩa các bảng quan. có thể sử dụng các thông tin này để băm nhỏ các tài liệu XML vào các bảng quan hệ. Cần biết rằng các chú thích sẽ không thay đổi ngữ nghĩa học của XML Schema. Nếu một tài liệu hợp lệ với giản

Ngày đăng: 11/07/2014, 21:20

TỪ KHÓA LIÊN QUAN