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