Tải bản đầy đủ (.pdf) (6 trang)

Chuyển đổi XML thành dữ liệu quan hệ pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (177.8 KB, 6 trang )

Chuyển đổi XML thành dữ liệu quan hệ
Quản trị mạng – Trong hướng dẫn này chúng tôi sẽ giới thiệu cho các bạn một
số phương pháp chuyển đổi các tài liệu XML thành các hàng trong các bảng
quan hệ, công việc vẫn được biết đến như việc băm nhỏ hay phân tách các tài
liệu XML.
Phương pháp chuyển đổi các tài liệu XML thành các hàng trong các bảng dữ
liệu quan hệ hay được biết đến như vi
ệc shred (băm nhỏ) hay decompose (phân
tách) các tài liệu XML. Một trong những lý do chính cho việc shred là các ứng
dụng SQL đang tồn tại vẫn cần truy cập vào dữ liệu dưới định dạng quan hệ.
Cho ví dụ, các ứng dụng kế thừa, các ứng dụng doanh nghiệp được đóng gói
hoặc phần mềm báo cáo không phải lúc nào cũng làm việc với XML. Chính vì
vậy đôi khi bạn sẽ thấy khá hữu dụng trong việc băm nhỏ (shred) tất cả hoặc
một số giá trị dữ liệu của một tài liệu XML được chỉ định vào các cột và các
hàng nằm trong các bảng dữ liệu quan hệ.
Hướng dẫn này chúng tôi sẽ giới thiệu cho các bạn về:


Những ưu điểm và nhược điểm của việc băm nhỏ và các phương pháp
băm nhỏ khác.


Cách băm nhỏ dữ liệu XML thành các bảng quan hệ bằng lệnh INSERT
có chứa hàm XMLTABLE.


Cách sử dụng các chú thích XML Schema để bản đồ và băm nhỏ các tài
liệu XML thành các bảng quan hệ.
Ưu điểm và nhược điểm của việc băm nhỏ
Khái niệm của việc băm nhỏ được minh chứng trong hình 1. Trong ví dụ này,
các tài liệu XML có các thông tin về customer name, address, và phone được


bản đồ hóa thành hai bảng quan hệ. Các tài liệu có thể chứa nhiều thành phần
phone vì mối quan hệ giữa khách hàng và số điện thoại của họ là mối quan hệ
1-n. Do đó, các số điện thoại sẽ được băm nhỏ vào một bảng riêng. Mỗi một
thành phần lặp, chẳng hạn như phone, sẽ dẫn đến một bảng bổ sung trong giản
đồ mục tiêu quan hệ. Giả dụ các thông tin khách hàng có thể chứa nhi
ều địa chỉ
email, nhiều tài khoản, danh sách các đơn đặt hàng gần đây, nhiều sản phẩm
trong mỗi đơn hàng và các mục lặp lại khác. Khi đó số các bảng được yêu cầu
trong giản đồ mục tiêu quan hệ có thể tăng rất nhanh. Tuy nhiên việc băm nhỏ
XML thành một số lớn các bảng có thể dẫn đến sự phức tạp của các đối tượng
logic doanh nghiệp và làm cho sự phát triển ứng dụng trở nên khó khăn hay r
ất
dễ gây lỗi. Việc truy vấn dữ liệu đã được băm nhỏ hoặc việc lắp ráp lại
(reassembling) các tài liệu gốc có thể cần đến nhiều mối ghép (join) phức tạp.

Hình 1: Việc băm nhỏ (shred) một tài liệu XML
Phụ thuộc vào sự phức tạp và khả năng thay đổi, mục đích của các tài liệu
XML, việc băm nhỏ (shred) có hoặc không thể là một tùy chọn bắt buộc. Bảng
1 tóm tắt các ưu điểm và nhược điểm của việc băm nhỏ (shred) dữ liệu XML
thành các bảng quan hệ.
Là lựa chọn thích hợp khi… Là lựa chọn không thích hợp khi…


Dữ liệu XML đư
ợc chỉ định đang
cung cấp cho một cơ sở dữ liệu
quan hệ đang tồn tại.


Dữ liệu XML của bạn phức tạp,

xếp chồng và khó cho việc bản
đồ hóa thành một giản đồ quan
hệ.


Các tài li
ệu XML không thể hiện
được các đối tượng logic doanh
nghiệp cần được duy trì.


Việc bản đồ hóa định dạng
XML của bạn thành giản đồ
quan hệ dẫn đến một số lượng
lớn các bảng.


Mục đích chính của bạn là cho
phép các ứng dụng quan hệ đang
tồn tại có thể truy cập vào d
ữ liệu
XML


XML Schema của bạn hay thay
đổi


Bạn ưng thuận với giản đồ quan
hệ của mình và thích sử dụng nó



Mục tiêu của bạn là quản lý các
tài liệu XML như các đối tượng
nếu có thể. doanh nghiệp nguyên vẹn.


Cấu trúc của dữ liệu XML của
bạn dễ dàng được bản đồ hóa
thành các bảng dữ liệu quan hệ.


Bạn thư
ờng cần xây dựng lại các
tài liệu được băm nhỏ hoặc một
phần trong chúng.


Định dạng XML của bạn tương
đối ổn định và ít thay đổi.


Sử dụng d
ữ liệu XML trong một
cơ sở dữ liệu với tốc độ cao cho
ứng dụng của bạn.


Bạn ít khi cần xây dựng lại các
tài liệu được băm nhỏ.




Việc truy vấn hoặc nâng cấp dữ
liệu với SQL quan trọng hơn
chèn.

Bảng 1. Khi việc băm nhỏ là hay không là một lựa chọn thích hợp
Trong nhiều kịch bản ứng dụng XML, cấu trúc và cách sử dụng dữ liệu XML
không thích ứng với việc băm nhỏ. Nguyên nhân xảy ra điều này là do DB2 hỗ
trợ các cột XML có thể cho phép bạn đánh chỉ số và truy vấn dữ liệu m
à không
cần đến quá trình chuyển đổi. Đôi khi bạn sẽ thấy các yêu cầu ứng dụng của
mình có thể đáp ứng tốt nhất với partial shredding hoặc hybrid XML storage.
Ở đây:


Partial shredding có nghĩa rằng chỉ một tập nhỏ các thành phần hoặc các
thuộc tính từ mỗi một tài liệu XML đi vào được băm nhỏ thành các bảng
quan hệ. Điều này khá hữu dụng nếu ứng dụng quan hệ không yêu cầu
tất cả giá trị dữ liệu từ mỗi tài liệu XML. Trong các trường hợp, nơi việc
băm nhỏ toàn bộ mỗi một tài liệu diễn ra khó khăn và yêu cầu một giản
đồ quan hệ phức tạp, partial shredding có thể đơn giản hóa việc bản đồ
hóa sang giản đồ quan hệ một cách đáng kể.


Hybrid XML storage có nghĩa trong lúc chèn một tài liệu XML vào một
cột XML, thành phần được chọn hoặc các giá trị của thuộc tính được
trích rút và thành phần dự trữ được lưu trong các cột quan hệ.
N

ếu bạn muốn băm nhỏ các tài liệu XML, toàn bộ hoặc một phần, DB2 cung
cấp cho bạn một tập các tính năng phong phú để thực hiện một số hoặc tất cả
những vấn đề dưới đây:


Thực hiện các phép biến đổi giá trị dữ liệu trước khi chèn vào các cột
quan hệ.


Băm nhỏ cùng một giá trị thuộc tính hoặc thành phần vào nhiều cột của
các bảng giống hay khác nhau.


Băm nhỏ nhiều thành phần khác hay thuộc tính khác nhau vào cùng một
cột trong một bảng.


Chỉ định các điều kiện chi phối cho các thành phần nào đó được hay
không được băm nhỏ. Cho ví dụ, băm nhỏ địa chỉ của một tài liệu khách
hàng chỉ khi country là Canada.


Hợp lệ hóa các tài liệu XML với một XML Schema trong suốt quá trình
băm nhỏ.


Lưu tài liệu XML đầy đủ cùng với dữ liệu được băm.
DB2 9 cho z/OS và DB2 9.x cho Linux, UNIX, và Windows hỗ trợ hai ph
ương
pháp băm nhỏ:



Các câu lệnh INSERT của SQL sử dụng hàm XMLTABLE. Hàm này sẽ
điều hướng vào một tài liệu đầu vào và sinh ra một hoặc nhiều h
àng quan
hệ dùng để chèn vào bảng quan hệ.


Phân tách với một XML Schema được chú thích. Do XML Schema định
nghĩa cấu trúc của các tài liệu XML nên các chú thích có thể được bổ
sung vào giản đồ để định nghĩa cách các thành phần và thuộc tính được
bản đồ hóa thành các bảng quan hệ như thế nào.
Bảng 2 và bảng 3 sẽ giới thiệu về những ưu điểm và nhược điểm của phương
pháp XMLTABLE và phương pháp giản đồ được chú thích.
Ưu điểm của phương pháp
XMLTABLE
Nhược điểm của phương pháp
XMLTABLE


Cho phép bạn băm nhỏ dữ liệu
thậm chí không có XML Schema.



Mỗi một bảng mục tiêu mà b
ạn
muốn băm nhỏ vào, bạn phải
cần đến một câu lệnh INSERT



Không yêu c
ầu bạn hiểu ngôn ngữ
XML Schema hoặc hiểu các chú
thích của giản đồi cho việc phân
tách.


Bạn có thể phải kết hợp nhiều
câu lệnh INSERT trong một
thủ tục được lưu.


Thường dễ sử dụng hơn các giản
đồ có chú thích vì được dựa trên
SQL và Xpath.


Bạn có thể sử dụng các hàm và
các biểu thức quen thuộc của
XPath, XQuery, hoặc SQL để
trích rút và điều chỉnh các giá trị
dữ liệu.


Thường yêu cầu đến ít khối lượng
công việc trong quá trình phát
triển XML Schema.



Quá trình băm nhỏ có thể cần đến
dữ liệu từ nhiều nguồn quan hệ và
XML nếu cần, chẳng hạn như các
giá trị từ các chuỗi DB2 hoặc dữ
liệu tra cứu từ các bảng quan hệ
khác.


Có thể cung cấp hiệu suất tốt hơn
phương pháp phân tách giản đồ
chú thích.


Không có hỗ trợ giao diện
người dùng cho việc thực thi
các câu lệnh INSERT và các
hàm XMLTABLE cần thiết.
Bạn cần phải biết về XPath và
SQL/XML.
Bảng 2. Phương pháp XMLTABLE
Ưu điểm của phương pháp Nhược điểm của phương pháp


Việc bản đồ hóa từ XML vào các
bảng quan hệ có thể được định nghĩa
b
ằng một GUI trong IBM Data Studio
Developer.



Không cho phép bạn băm
nhỏ khi không có XML
Schema.


Nếu bạn băm nhỏ dữ liệu XML phức
tạp vào một số lượng lớn các bảng,
cần ít nỗ lực trong việc viết mã hơn
so với phương pháp XMLTABLE


B
ạn có thể phải tự copy các
chú thích khi bắt đầu sử
dụng một phiên bản mới
của XML Schema.


Cung cấp số lượng lớn những thông
tin chuẩn đoán chi tiết nếu một số tài
liệu bị băm nhỏ thất bại.


Mặc dù có giao diện hỗ trợ
người dùng nhưng bạn vẫn
cần biết ngôn ngữ XML
Schema.


Việc chú thích một XML

Schema có thể sẽ phức tạp
nếu một giản đồ bản thân
nó là phức tạp.
Bảng 3: Phương pháp phân tách giản đồ chú thích


×