Chuyển đổi XML thành dữ liệu quan hệ
Qun trị mạng Trong hướng dẫn này chúng tôi sgiớ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ácng trong các bng
quan h, công việc vẫn được biết đến như việcm nhỏ hay phân tách các tài
liệu XML.
Phương pháp chuyển đổi các tài liu XML thành các hàng trong các bng d
liệu quan hệ hay được biết đến như vi
ệc shred (băm nhỏ) hay decompose (pn
tách) các tài liệu XML. Một trong những lý do chính cho việc shred là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 dng kế thừa, các ứng dụng doanh nghiệp được đóng gói
hoc phần mềm báoo không phải lúc nào cũng làm vic với XML. Chính vì
vậy đôi khi bạn sẽ thấy khữu dụng trong việc m nhỏ (shred) tất cả hoặc
một số giá trị dữ liệu của một tài liu XML được chỉ định vào các cột và các
hàng nm trong các bảng dữ liệu quan hệ.
ớng dẫn này cng tôi sgiới thiệu cho các bạn về:
Những ưu điểm nhược điểm của việcm nhỏ và các pơng pháp
băm nhỏ khác.
Cách băm nhdữ liệu XML thành các bng quan hbằ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 bng quan hệ.
Ưu điểm nhược điểm của việc băm nhỏ
Khái nim của việcm nhỏ được minh chứng trong hình 1. Trong dnày,
các tài liu XML có các thông tin về customer name, address, và phone được
bản đồ a thành hai bng quan hệ. Các tài liệu có thể chứa nhiều thành phn
phone mối quan hgiữ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 bsung trong giản
đồ mục tiêu quan hệ. Giả dụ các tng tin khách hàng có thể chứa nhi
ều địa ch
email, nhiều tài khon, danh sách các đơn đặt hàng gn đây, nhiều sản phẩm
trong mỗi đơn hàng các mục lặp lại khác. Khi đó số các bảng được yêu cu
trong giản đồ mục tiêu quan hệ có thể tăng rất nhanh. Tuy nhiên việcm nh
XML tnh 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àm cho sphát triển ứng dng trở nên khó kn hay r
ất
dy 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 nhiu mối ghép (join) phức tạp.
nh 1: Việcm nhỏ (shred) một tài liệu XML
Ph thuộc vào sphức tạp và khả năng thay đổi, mục đích của các tài liệu
XML, vic 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à nợc điểm của việcm nhỏ (shred) dữ liệu XML
thành các bng 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 vic bản
đồ hóa thành một giản đồ quan
hệ.
Các tài li
u XML không thể hiện
đượcc đối tượng logic doanh
nghip cần được duy trì.
Vic 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 bn 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 ca bạn hay thay
đổi
Bn ưng thuận với giản đồ quan
hệ của mình và thích sử dụng
Mục tiêu ca bạn là qun lý các
tài liệu XML như các đối tượng
nếu thể. doanh nghip nguyên vẹn.
Cu trúc của dữ liệu XML của
bạn dễ dàng được bản đhóa
thành các bng dữ liệu quan hệ.
Bn thư
ng cần xây dựng lại các
tài liệu được m nhhoặc một
phn 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
sở dữ liệu với tốc độ cao cho
ứng dụng của bạn.
Bn ít khi cần xây dựng lại các
tài liệu được m nhỏ.
Vic truy vấn hoặc nâng cấp d
liệu với SQL quan trọng hơn
chèn.
Bng 1. Khi việc m nhỏ là hay không là một lựa chọn thích hợp
Trong nhiu 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 xy ra điều này là do DB2 h
trợ các cột XML thể cho phép bạn đánh chỉ số và truy vn dữ liệu m
cần đến quá trình chuyn đổi. Đôi khi bạn sẽ thấy các yêu cầung 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 phn hoặc các
thuộc tính từ mỗi một tài liệu XML đi o được băm nhỏ thành các bng
quan h. Điều này k hu dụng nếu ứng dụng quan hệ không yêu cu
tất cả giá trị dữ liệu từ mỗi tài liu XML. Trong các trường hợp, nơi việc
băm nhỏ toàn bộ mỗi một tài liu diễn ra khó khăn vàu cầu một giản
đồ quan hệ phức tạp, partial shredding th đơn giản hóa việc bản đồ
hóa sang gin đồ quan hmột cách đáng kể.
Hybrid XML storage có nghĩa trong lúc chèn một tài liu XML vào một
cột XML, thành phn đượ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 trongc cột quan hệ.
N
ếu bạn muốn băm nhỏ các tài liu XML, toàn bhoặc một phần, DB2 cung
cấp cho bạn một tập các tínhng 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àoc cột
quan h.
m nhỏ cùng một giá trị thuộc tính hoặc thành phn vào nhiu cột của
các bảng giống hay khác nhau.
m nhỏ nhiều thành phn 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ầno đó được hay
không được băm nhỏ. Cho dụ, 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 liu XML với một XML Schema trong suốt q trình
băm nhỏ.
Lưu tài liệu XML đầy đủ cùng với dữ liệu đượcm.
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 lnh INSERT của SQL sử dụng hàm XMLTABLE.m này s
điều hướng vào một tài liu đầu vào sinh ra một hoặc nhiều h
àng quan
hdùng để chèn vào bng 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ủac tài liệu XML nên các c thích có thđược bổ
sung vào gin đồ để định nghĩachc thành phần và thuc tính được
bản đồ a thành các bảng quan hệ như thế nào.
Bng 2 và bng 3 sẽ giới thiệu về những ưu điểm và nhược điểm của phương
pháp XMLTABLE phương pháp giản đồ được chú thích.
Ưu điểm của phương pp
XMLTABLE Nhược điểm của phương pháp
XMLTABLE
Cho phép bn băm nhỏ dữ liệu
thậm chí không có XML Schema.
Mỗi một bảng mục tiêu b
n
muốn băm nhỏ vào, bạn phải
cần đến mộtu lệnh INSERT
Không yêu c
u bạn hiểu ngôn ngữ
XML Schema hoặc hiểu các c
thích của giản đồi cho việc phân
tách.
Bn 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 n các giản
đồ có chú thích vì được dựa trên
SQL và Xpath.
Bn có thể sử dụng các hàm và
các biu 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
trin XML Schema.
Quá trình băm nhỏ có thể cần đến
dữ liệu từ nhiều nguồn quan hvà
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.
th cung cấp hiệu suất tốt 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 vic thực thi
cácu lnh INSERT và các
hàm XMLTABLE cần thiết.
Bn cần phải biết về XPath và
SQL/XML.
Bng 2. Phương pháp XMLTABLE
Ưu điểm của phương pp Nhược điểm của phương pháp
Vic bản đhóa tXML 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 bn 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 cp 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 din hỗ trợ
người dùng nhưng bạn vẫn
cần biết ngôn ngữ XML
Schema.
Vic chú thích một XML