Nâng cao tính thấu đáo nghiệp vụ và khả năng mở rộng của dữ liệu XML với các đặc tính pureXML của DB2 phiên bản mới 9.7
Các tính năng mới về thiết kế, quản trị và về phát triển cơ sở dữ liệu cho
pureXML đã có sẵn tại cơ sở dữ liệu DB2® phiên bản 9.7 của IBM cho các hệ
điều hành Linux®, UNIX® và Windows®, (được công bố ngày 22 tháng Tư
2009). Bạn hãy tìm hiểu thêm về cách các công nghệ này có thể giúp các công ty
tích hợp dữ liệu XML một cách hiệu quả hơn vào các môi trường kinh doanh
thông minh như thế nào và làm sao các công ty có thể đối phó với khối lượng dữ
liệu XML ngày càng tăng lên. Bài viết này tóm tắt các khả năng mới của
pureXML, giải thích cách chúng có thể được sử dụng và thảo luận về một kịch bản
ứng dụng mẫu.
) PATH '.') ;
END #
--- Invoke the "getphone" table function and inspect the
result
SELECT cid, p.type, p.number
FROM customer, TABLE(getphone(info)) p
WHERE cid = 1004 #
CID TYPE NUMBER
---------------- ---------- --------------------
1004 work 905-555-4789
1004 home 416-555-3376
2 record(s) selected.
Tất nhiên, DB2 tiếp tục hỗ trợ việc sử dụng kiểu dữ liệu XML trong các thủ tục
được lưu sẵn, đây là một khả năng đã được cung cấp lần đầu tiên tại bản phát hành
trước đó.
Khám phá thêm các cải tiến về quản trị, phát triển ứng dụng và hiệu năng
Các công nghệ pureXML khác trong DB2 9.7 cung cấp nhiều hỗ trợ hơn cho việc
quản lý cơ sở dữ liệu, việc đơn giản hoá phát triển ứng dụng và cải thiện hiệu năng
khi chạy thi hành. Phần này của bài viết giới thiệu cho bạn những tính năng bổ
sung đó.
Phân tích XML nội tuyến
Hai hàm mới được hệ thống cung cấp cho phép quản trị viên phân tích nội tuyến
tài liệu XML nhỏ. Một hàm là SYSPROC.ADMIN_IS_INLINED, cho phép quản
trị viên xác định xem DB2 đã có khả năng nhập vào nội tuyến các tài liệu XML
hay không dựa vào độ dài nội tuyến tối đa được xác định khi tạo bảng (hoặc sửa
đổi bảng). Hàm kia là SYSPROC.ADMIN_EST_INLINE_LENGTH, cho phép
quản trị viên ước tính chiều dài nội tuyến tối thiểu, cần phải được xác định để cho
phép DB2 lưu trữ một tài liệu XML đã cho trên cùng một trang với dữ liệu quan
hệ trong một hàng. Các đặc tính này có thể giúp các quản trị viên tinh chỉnh thiết
kế của cơ sở dữ liệu vật lý của họ.
Liệt kê 8 cho thấy cách sử dụng các hàm mới này của DB2 như thế nào.
Liệt kê 8. Phân tích dữ liệu XML nội tuyến với các hàm mới của DB2
-- Create the customer table with a maximum inline
-- length of 1000 bytes for XML data
CREATE TABLE customer(id int, xmlcol XML INLINE
LENGTH 1000);
--- Insert or LOAD some data into the table
INSERT INTO customer VALUES (…);
. . .
-- Query the table using two new DB2 functions
-- for analyzing XML inlining
SELECT id, ADMIN_IS_INLINED(info) AS inlined,
ADMIN_EST_INLINE_LENGTH(info) AS
inline_length
FROM customer;
-- Inspect the result set.
-- "1" in the second column indicates that the XML was
inlined.
-- "0" in the second column indicates that the XML was
not inlined.
-- "-1" in the third column indicates that the XML is too
big
-- to be inlined with the current page size.
ID INLINED INLINE_LENGTH
------- -------- -------------
1000 1 770 -- Inlined. Uses approx 770
bytes
1001 0 2345
1002 1 796
1003 0 1489 -- Not inlined. Inline size of
at least 1489 needed
1004 0 1910
1005 0 -1 -- Too large to be inlined for
the given page size
Liệt kê 8 mô tả cách tạo một bảng với một cột XML nội tuyến, ở đây các tài liệu
XML được lưu trữ ngay trong hàng quan hệ nếu chúng không chiếm hơn 1000
byte, trái lại chúng sẽ được lưu trữ ngoại tuyến tại vùng dữ liệu XML (XDA). Sau
khi chèn số dữ liệu vào bảng, ta gọi ra hai hàm mới để xác định (a) tài liệu XML
trong một hàng có phải là nội tuyến hay không và (b) chiều dài ước tính của tài
liệu XML trong hàng hiện tại mà sẽ cho phép tài liệu được nội tuyến.
Tạo và sắp xếp lại các chỉ mục XML trực tuyến
Trong các phiên bản trước của DB2, việc tạo ra hoặc sắp xếp lại một chỉ mục trên
dữ liệu XML không cho phép các thao tác chèn, cập nhật, hoặc xóa, làm thay đổi
các dữ liệu trong bảng, trong khi chỉ mục đang được xây dựng. Các cải tiến mới
trong DB2 loại bỏ hạn chế này, cho phép sự linh hoạt hơn và tránh làm chậm trễ
hoặc làm dừng ứng dụng khi cần phải tạo ra hoặc sắp xếp lại một chỉ mục XML.
Kết quả là, DB2 làm tăng tính sẵn sàng để sử dụng của dữ liệu cho ứng dụng.
Với DB2 9.7, việc tạo ra chỉ mục XML cho phép các hoạt động viết đồng thời
theo mặc định, giống như việc tạo ra các chỉ mục quan hệ. Khi sắp xếp lại các chỉ
mục XML, quản trị viên cơ sở dữ liệu có thể sử dụng mệnh đề ALLOW WRITE
ACCESS trong câu lệnh REORG INDEXES để cho phép các thao tác viết đồng
thời trên bảng.
Phân rã nhiều tài liệu XML
Các phiên bản mới của DB2 mở rộng các tiện ích được xây dựng sẵn để phân rã
(hoặc chia nhỏ) dữ liệu làm việc với nhiều tài liệu XML. Các bản phát hành DB2
trước cho phép một tài liệu XML đầu vào cho mỗi hoạt động phân rã. Trong bản
phát hành mới của DB2, một thủ tục được lưu sẵn mới do hệ thống cung cấp là
(XDB_DECOMP_XML_FROM_QUERY) lấy một bảng DB2 hiện có làm đầu
vào, cho phép các quản trị viên phân rã dữ liệu được chứa trong một cột cho trước.
Đối với các thiết kế cơ sở dữ liệu có yêu cầu chia nhỏ một số hoặc toàn bộ nội
dung của dữ liệu XML, thì việc gọi thủ tục được lưu sẵn này có thể đặc biệt hữu
ích sau khi nạp một số lượng lớn dữ liệu XML hay BLOB. Cũng như các phiên
bản trước, các phương tiện phân tách của DB2 dựa trên một lược đồ XML có chú
giải để ánh xạ các thuộc tính XML và phần tử XML tới những cột cụ thể của bảng
quan hệ.
Lấy ra các chẩn đoán về hiệu lực của lược đồ XML
Thủ tục được lưu sẵn do hệ thống cung cấp,
XSR_GET_PARSING_DIAGNOSTICS, cung cấp cho các lập trình viên các
thông tin chẩn đoán chi tiết về bất kỳ lỗi nào được phát hiện khi DB2 phân tích
một tài liệu XML hoặc xác nhận hợp lệ một tài liệu XML dựa vào một lược đồ
XML. Khả năng này, lần đầu tiên được đưa vào DB2 phiên bản 9.5, Fix Pack 3, có
thể giúp các lập trình viên xác định các khu vực có vấn đề và sửa chữa tài liệu
XML khi cần thiết.
Nếu một tài liệu XML được tạo ra không đúng hoặc không hợp lệ đối với một
lược đồ XML đã cho, thì bạn hãy gọi thủ tục
XSR_GET_PARSING_DIAGNOSTICS với một tài liệu, và theo tùy chọn, bạn sử
dụng lược đồ XML làm đầu vào. Thủ tục tạo ra thông tin chi tiết về lỗi, bao gồm:
Số dòng và cột của vị trí lỗi trong tài liệu XML dạng văn bản
Một XPath trỏ đến vị trí lỗi trong tài liệu
Các thông báo lỗi gốc, mã lý do và bất kỳ mã thông báo của lỗi ứng dụng
nào
Sử dụng bảng tạm thời toàn cục
Hỗ trợ mới để đưa các cột XML vào các bảng tạm thời toàn cục đã khai báo xứng
đáng để ta nói về một chút về nó, bởi vì nó có thể giúp các lập trình viên cải thiện
hiệu suất trong khi chạy thi hành của các ứng dụng của họ. Bảng tạm thời toàn cục
được khai báo cho phép lập trình viên lấy ra dữ liệu mà họ sẽ sử dụng thường
xuyên trong các ứng dụng của mình, ghi nhớ sẵn (cache) chúng trong một bảng
tạm thời và thao tác các dữ liệu nhiều lần lặp đi lặp lại trong các lần ứng dụng của
họ. Việc khóa lại và đăng nhập được giảm thiểu, và nội dung của bảng được xóa
khi lần làm việc chấm dứt.
Cải thiện truy cập của SQL vào dữ liệu XML
Công nghệ tối ưu hóa truy vấn trong DB2 9.7 mang lại hiệu quả tăng lên cho việc
xử lý các truy vấn đối với các khung nhìn quan hệ của dữ liệu XML. DB2 tự động
sử dụng công nghệ này khi thích hợp, do đó, các lập trình viên không cần phải làm
gì mà vẫn có được các lợi ích về hiệu năng thời gian chạy thi hành tiềm năng.
DB2 9.7 khuyến khích việc sử dụng các chỉ mục XML để xử lý truy vấn đối với
khung nhìn quan hệ của các dữ liệu XML. Để hiểu được điều này làm việc như thế
nào, ta hãy thực hiện một ví dụ nhỏ. Liệt kê 9 tạo ra một bảng của dữ liệu về nhân
viên với một cột XML. Liệt kê cũng tạo ra một chỉ mục XML theo số hiệu văn
phòng của nhân viên, các mục này có thể xuất hiện là các phần tử XML trong hồ
sơ của nhân viên. Cuối cùng, nó tạo ra một khung nhìn trích ra và hiển thị ID của
nhân viên, tên, họ và số văn phòng, như là các cột quan hệ.
Liệt kê 9. Tạo một bảng, chỉ mục XML và khung nhìn quan hệ
-- Create a table with an XML column.
CREATE TABLE emp(doc XML);
-- Create an XML index on the table.
CREATE INDEX officeIdx ON emp(doc) GENERATE
KEYS USING
XMLPATTERN '/dept/employee/office' AS SQL
VARCHAR(20);
-- Create a relational view of the XML data managed by
the table.
CREATE VIEW emp_rel_view(id, first_name ,last_name
,office) AS
SELECT X.* FROM emp,
XMLTABLE ('$d/dept/employee' passing doc as "d"
COLUMNS
empID INTEGER PATH '@id',
firstname VARCHAR(5) PATH 'name/first',
lastname VARCHAR(5) PATH 'name/last',
office INTEGER PATH 'office') AS X;
Bây giờ ta hãy xem xét các lệnh SQL trong liệt kê 10 truy vấn khung nhìn để chọn
ID và tên của tất cả các nhân viên thuộc văn phòng R344.
Liệt kê 10. Truy vấn một khung nhìn với các tiêu chí lọc (một vị từ truy vấn)
SELECT id, first_name
FROM emp_rel_view
WHERE office = 'R344';
Vị từ trong mệnh đề WHERE ràng buộc cột quan hệ office , mà khung nhìn sẽ ánh
xạ với đường dẫn /dept/employee/office ở cột XML. Công nghệ tối ưu mới trong
DB2 phiên bản 9.7 cho phép DB2 sử dụng một cách tự động chỉ mục officeIdx của
XML được định nghĩa tại cột XML nằm ở dưới để xử lý truy vấn này. Việc sử
dụng chỉ mục XML thích hợp sẽ cải thiện hiệu suất thời gian chạy thi hành.
Các ứng dụng không hiểu dữ liệu XML một cách trực tiếp, chẳng hạn như rất
nhiều công cụ báo cáo kinh doanh, có thể có lợi từ các views đó và từ công nghệ
của DB2 9.7, công nghệ này đôi khi được gọi là kỹ thuật đẩy xuống được xác nhận
(predicate pushdown). Tính năng tối ưu hóa này cho phép các ứng dụng truy vấn
dữ liệu XML một cách hiệu quả thông qua một giao diện quan hệ truyền thống với
các truy vấn SQL.
Kết luận
Với DB2 9.7, IBM tiếp tục mở rộng công nghệ DB2 pureXML theo những hướng
đi quan trọng. Các khả năng này bao gồm các tuỳ chọn thiết kế mới của cơ sở dữ
liệu, cung cấp khả năng mở rộng và cải tiến hiệu suất cho cả hai loại ứng dụng:
phân tích và hướng giao dịch. Khả năng hỗ trợ nén mới cho dữ liệu XML và các
chỉ mục làm giảm các yêu cầu về không gian đĩa và có thể cải thiện hiệu suất thời
gian chạy thi hành của các hoạt động vào/ra ( I/O-bound operations). Hỗ trợ cho
XML tại các hàm do người dùng định nghĩa và các bảng chung tạm thời được khai
báo cung cấp những thuận lợi cho việc phát triển ứng dụng mới. Cuối cùng, các
hàm mới do hệ thống cung cấp các thủ tục được lưu trữ đơn giản hóa việc thiết kế
cơ sở dữ liệu và các nỗ lực bảo trì.
File đính kèm:
Nâng cao tính thấu đáo nghiệp vụ và khả năng mở rộng của dữ liệu XML với các đặc tính pureXML của DB2 phiên bản mới 9.7.pdf

