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

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 pptx

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 (5.27 MB, 40 trang )

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
Matthias Nicola, Chuyên gia về hiệu năng CSDL, IBM Silicon Valley Laboratory
Cynthia M. Saracco, Kiến trúc giải pháp cao cấp, IBM
Tóm tắt: 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.
Mục lục

 Giới thiệu
 Nhìn lại quá trình phát triển của DB2 pureXML
 Khám phá các trường hợp sử dụng mẫu
 Sử dụng phân đoạn (cơ sở dữ liệu) dựa trên băm để có khả năng mở rộng
tối đa
 Sử dụng phân đoạn theo dải để cuộn vào và cuộn ra dữ liệu theo dòng thời
gian
 Sử dụng phân cụm nhiều chiều để thực hiện truy vấn
 Khám phá việc nén dữ liệu XML và chỉ mục để đạt hiệu quả lưu trữ và hiệu
năng
 Hiểu biết các hàm do người sử dụng định nghĩa để tăng tính linh hoạt của
ứng dụng
 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
 Kết luận
 Tài nguyên
 Đôi nét về các tác giả


Giới thiệu
Đối với nhiều tổ chức đang cố gắng để tạo một môi trường CNTT linh hoạt và
đáng tin cậy, một môi trường cung cấp một cái nhìn thấu đáo hơn đối với các hoạt
động kinh doanh trọng yếu, thì các hệ thống quản lý thông tin cốt lõi đang chịu áp
lực nhiều hơn để thích ứng với nhu cầu kinh doanh luôn thay đổi. Để giúp các
công ty đối phó với các thách thức, IBM đã nâng cao các đặc tính của DB2 9.7 của
mình cho pureXML trong nhiều hướng quan trọng.
Các đặc tính mới trong DB2 9.7 cho phép quản trị viên sử dụng các tuỳ chọn mới
cho việc thiết kế cơ sở dữ liệu dành cho dữ liệu XML, bao gồm việc phân đoạn
dựa vào băm (phân đoạn cơ sở dữ liệu), phân đoạn theo dải (phân đoạn bảng) và
phân cụm nhiều chiều. Các tùy chọn này có thể giúp các công ty chứa đựng khối
lượng dữ liệu lớn, khai thác môi trường xử lý song song, đơn giản hóa việc bổ
sung hoặc loại bỏ các dữ liệu nhạy thời gian, nâng cao tốc độ thực hiện của nhiều
kiểu truy vấn. Được sử dụng riêng rẽ hoặc kết hợp với nhau, các tùy chọn thiết kế
này của DB2 cho phép các tổ chức kết hợp dữ liệu XML vào kho dữ liệu quan hệ
của họ; tạo kho lưu trữ dữ liệu vận hành cho các thông điệp, tài liệu và cấp dữ liệu
XML; và cải thiện khả năng mở rộng tải công việc xử lý giao dịch XML.
Các tùy chọn thiết kế cơ sở dữ liệu mới này chỉ là một phần của những cải tiến về
pureXML trong DB2 9.7. Bài viết này giới thiệu cho bạn những tùy chọn đó và
các khả năng mới khác của pureXML, giải thích khi nào thì chúng có ích nhất và
cung cấp các mẹo để giúp bạn bắt đầu. Bài viết này bàn về các vấn đề sau:
 Một tổng quan ngắn về DB2 pureXML cho những ai chưa quen với công
nghệ này.
 Các ca sử dụng mẫu và kịch bản ứng dụng cho DB2 pureXML.
 Phân đoạn cơ sở dữ liệu dựa vào băm, mang lại khả năng mở rộng đáng kể.
 Phân đoạn dựa theo dải, giúp các công ty cuộn vào và cuộn ra (roll in và
roll out) dữ liệu theo thời gian (một yêu cầu phổ biến trong kho dữ liệu).
 Phân cụm nhiều chiều, phương thức này thường cải thiện hiệu suất của các
truy vấn phân tích.
 Nén dữ liệu XML và các chỉ mục, cải thiện hiệu quả lưu trữ và hiệu năng

chạy thi hành cho những tải công việc nhất định.
 Các hàm do người dùng định nghĩa chúng tiêu thụ, xử lý và trả lại dữ liệu
XML. Những hàm như vậy khuyến khích tái sử dụng mã và đơn giản hóa
việc phát triển và bảo trì các truy vấn.
 Các thủ tục lưu sẵn mới, các hàm do hệ thống cung cấp, nâng cao hiệu năng
và các đặc tính năng khác, đơn giản hóa việc phát triển ứng dụng và quản
trị của DB2 pureXML.
Nhìn lại quá trình phát triển của DB2 pureXML
Từ năm 2006, DB2 phiên bản 9 đã cung cấp cho các công ty một giao diện lập
trình ứng dụng phổ biến và nền tảng quản lý cơ sở dữ liệu cho dữ liệu được mô
hình hóa trong các bảng và trong các phân cấp XML. Kiến trúc quản lý cơ sở dữ
liệu lai này, như được minh họa trong hình 1, cho phép các công ty mở rộng môi
trường cơ sở dữ liệu quan hệ truyền thống của mình để quản lý trực tiếp các thông
điệp và các tài liệu XML mà không cần phải chia nhỏ hoặc ánh xạ dữ liệu này vào
các cột riêng lẻ của các bảng khác nhau (do vậy sẽ chuyển đổi XML thành các
kiểu dữ liệu SQL truyền thống). Thay vào đó, dữ liệu XML có thể được lưu giữ
nguyên vẹn ở định dạng phân cấp nguyên sinh của nó cùng với các dữ liệu quan
hệ. Các ứng dụng có thể lấy ra những phần có liên quan của dữ liệu XML một
cách dễ dàng và hiệu quả. Ứng dụng cũng có thể dễ dàng tích hợp dữ liệu XML và
dữ liệu quan hệ.

Hình 1. Kiến trúc DB2 phiên bản 9 với hỗ trợ được xây dựng sẵn cho các dữ
liệu quan hệ và XML

Để sử dụng khả năng pureXML của DB2, các quản trị viên tạo một bảng với một
hoặc nhiều cột kiểu XML. Dịch vụ lập chỉ mục XML, tối ưu hóa truy vấn, quản lý
lưu trữ, và các dịch vụ khác của DB2 giúp đảm bảo hiệu quả và hiệu suất thời gian
chạy thi hành mạnh.
Liệt kê 1 cho thấy làm việc với dữ liệu XML trong DB2 đơn giản như thế nào. Các
mã trong liệt kê 1 làm các việc sau:

1. Tạo ra một bảng với các cột quan hệ và các cột XML
2. Lập chỉ mục cho một phần cụ thể của cột XML
3. Chèn dữ liệu vào bảng
4. Đưa ra các truy vấn (bằng các câu lệnh SQL, SQL/XML và Xquery đơn
giản)
5. Cập nhập giá trị của một phần tử XML được lưu giữ trong một tài liệu
XML

Liệt kê 1. Làm việc với DB2 pureXML

Create a table with an integer and an XML column
CREATE TABLE customer (cid INTEGER, info XML);

Create an XML index for customer zip code data
CREATE INDEX idx1 ON customer(info) GENERATE
KEYS USING
XMLPATTERN '/customerinfo/addr/zip' AS SQL
VARCHAR(5);

Populate the table with data using a simple INSERT
statement
INSERT INTO customer (cid, info) VALUES (?,?);

Retrieve relational data and full XML documents
for customers using simple SQL
SELECT cid, info
FROM customer
WHERE cid > 1234;

Retrieve names of customers in a specific zip code

who have an ID of > 1234 using SQL/XML
SELECT XMLQUERY('$INFO/customer/name')
FROM customer
WHERE cid > 1234 and
XMLEXISTS('$INFO/customer/addr[zip = 95123]');

Retrieve an XML element that lists the names of
customers
in a given zip code using XQuery
xquery for $i in db2-
fn:xmlcolumn("CUSTOMER.INFO")/customer
where $i/addr/zip = 95123
return <myresult>{$i/name}</myresult> ;

Update XML element value related to zip code
UPDATE customer
SET INFO = XMLQUERY('copy $new := $INFO
modify do replace value of
$new/customer/addr/zip
with 95141
return $new')
WHERE ;




Khám phá các trường hợp sử dụng mẫu
Kiến trúc hướng dịch vụ (SOA), các ứng dụng lấy Web làm trọng tâm, và các dự
án tích hợp dựa trên tiêu chuẩn đặc thù công nghiệp thường dựa vào dữ liệu XML
để xác định các dữ liệu kinh doanh quan trọng được biểu diễn và được trao đổi

như thế nào. Hơn nữa, việc kiểm định và tự tuân thủ thường yêu cầu là các hồ sơ
đầy đủ của các giao dịch kinh doanh vẫn có thể truy cập được cho một khoảng thời
gian nào đó. Việc sử dụng XML ngày càng tăng lên khiến nhiều công ty phải đánh
giá xem liệu cơ sở dữ liệu của họ có thể được điều chỉnh để đối phó với những cấu
trúc phức tạp, hay thay đổi, là tính chất cố hữu của các thông điệp và tài liệu
XML. Việc quản lý dữ liệu XML đang tác động đến cả môi trường hướng giao
dịch lẫn các ứng dụng phân tích.
Tích hợp các dữ liệu vận hành
Bản chất linh hoạt, tự miêu tả của XML làm cho nó rất phù hợp để trình bày các
tạo tác nghiệp vụ khác nhau. Các tạo tác này thường được lưu trữ trong hệ quản lý
cơ sở dữ liệu quan hệ hiện có hoặc hệ thống tệp tin, hoặc các tạo tác được tạo ra
một cách động bởi các dịch vụ Web, nguồn cấp dữ liệu thời gian thực, hoặc phần
mềm khác . Việc xử lý và phân tích thông tin từ các nguồn khác nhau này là một
thách thức rõ ràng. Các công ty có thể được lợi do việc duy trì một kho chứa dữ
liệu dựa trên XML cùng chia sẻ. Bản chất biến đổi của cấu trúc XML đáp ứng
được một phạm vi rộng các nhu cầu nghiệp vụ. Kho lưu trữ dữ liệu vận hành
(Operational Data Storage-ODS) được xây dựng trên XML có thể giảm chi phí
phát triển ứng dụng và có thể cung cấp một cơ sở hạ tầng lanh lẹn để thích ứng với
nhu cầu quản lý dữ liệu đang tiến triển.
Hình 2 minh họa một kiến trúc mẫu, trong đó công nghệ pureXML của DB2 được
sử dụng như một kho lưu trữ dữ liệu vận hành để tích hợp dữ liệu từ nhiều nguồn
đại diện cho nhiều ứng dụng kinh doanh. Các nguồn dữ liệu và các ứng dụng mới
hơn có thể thậm chí không cần bộ tiếp hợp XML, bởi vì chúng có thể sử dụng
XML làm định dạng trao đổi dữ liệu nguyên sinh của chúng.

Hình 2. DB2 pureXML hoạt động như một kho dữ liệu vận hành tích hợp

Mở rộng kho dữ liệu
Kể từ khi được chấp nhận vào những năm 1990, kho dữ liệu đóng một vai trò ngày
càng quan trọng trong việc giúp đỡ các công ty phân tích các xu hướng và cải

thiện chiến lược kinh doanh của họ. Trong khi việc quản lý cơ sở dữ liệu quan hệ
vẫn là sự lựa chọn công nghệ thích hợp cho các kho dữ liệu, thì việc bổ sung khả
năng quản lý dữ liệu XML có thể mang lại tính linh hoạt cao hơn, cho phép các
công ty hỗ trợ báo cáo kinh doanh đang tiến triển và các yêu cầu phân tích mà
không phải thay đổi đáng kể lược đồ cơ sở dữ liệu hoặc viết lại mã ứng dụng hiện
có.
Xin lấy ví dụ, ta hãy xem xét một kho dữ liệu theo dõi các thông tin bán hàng. Khi
sử dụng một thiết kế cơ sở dữ liệu theo lược đồ hình sao, một bảng sự việc có thể
chứa các dữ liệu bán hàng theo sản phẩm, theo vùng địa lý và theo khoảng thời
gian. Dữ liệu trong bảng sự việc này thường sẽ được nối với dữ liệu trong các
bảng chiều (dimension tables) để có được những chi tiết cụ thể về các sản phẩm,
các vùng khác nhau, vv. Thật không may, việc phát triển một thiết kế cơ sở dữ liệu
chi tiết cho một kho dữ liệu như vậy có thể gặp nhiều thách thức.
Ta hãy xem xét những thách thức liên quan đến việc thiết kế một bảng chiều dữ
liệu thích hợp nếu ta có một dải sản phẩm đa dạng cần phải trình bày. Các loại sản
phẩm khác nhau có các thuộc tính khác nhau, như vậy làm cho rất khó xác định
trước thuộc tính nào của sản phẩm nào cần được cung cấp cho các nhà phân tích
và điều hành kinh doanh. Rất có thể các nhà phân tích sẽ muốn khoan sâu xuống
hoặc cắt lát và băm nhỏ (slice-and-dice) các dữ liệu về việc bán sản phẩm theo các
cách mà ta không dự kiến được, chẳng hạn họ muốn xem xét việc bán áo len của
phụ nữ theo kích thước, màu sắc, loại chất liệu, đường viền cổ áo, chiều dài tay áo,
vv. Với một thiết kế chỉ theo mô hình quan hệ, thì mỗi thuộc tính có thể quan tâm
đến của mỗi sản phẩm sẽ cần phải được lưu trữ tại cột riêng của nó, dẫn đến một
bảng chiều dữ liệu cồng kềnh. Bởi vì các thuộc tính sẽ khác nhau từ sản phẩm này
đến sản phẩm khác, một bảng như vậy sẽ có nhiều hàng và các cột thì thưa dữ liệu,
rất kém hiệu quả. Và, vì các sản phẩm mới và các thuộc tính sản phẩm mới sẽ
được đưa thêm vào theo thời gian, nên lược đồ cơ sở dữ liệu (và bất kỳ ứng dụng
nào phụ thuộc vào lược đồ đó) sẽ cần phải được thay đổi, làm như vậy khá tốn
kém. Việc thêm một cột vào bảng trong kho dữ liệu của công ty cũng có thể gặp
phải quy trình xem xét và phê duyệt lâu tại nhiều tổ chức CNTT.

Một cách ít gây phiền toái để phục vụ cho nhu cầu kinh doanh hay thay đổi như
vậy là cách sử dụng một hoặc nhiều cột XML trong lược đồ kho dữ liệu. Các
thuộc tính thường sử dụng có thể vẫn thu thập trong các cột quan hệ, trong khi các
chi tiết bổ sung có thể được duy trì trong một cột XML sẵn sàng để chứa các cấu
trúc hay thay đổi và được truy cập một cách dễ dàng để truy vấn và báo cáo. Trong
ví dụ trên, một cột XML có thể được sử dụng trong bảng chiều dữ liệu có chứa dữ
liệu về sản phẩm. Thuộc tính mới của sản phẩm cần phải được theo dõi chỉ cần
đơn giản đưa vào làm các phần tử mới trong các tài liệu XML được kết hợp với
sản phẩm đích. Ta không cần phải thay đổi lược đồ của cơ sở dữ liệu.
Hình 3 mô tả cách mà kho dữ liệu có thể được mở rộng bằng XML.

Hình 3. Kho dữ liệu quan hệ được mở rộng bằng khả năng quản lý dữ liệu
XML. Bảng sự kiện và tất cả các bảng chiều dữ liệu có thể bao gồm các cột
XML, tuy nhiên ví dụ này chỉ cho ta thấy một bảng cho một loại dữ liệu với
một cột XML.

Trong hình 3, một kho lưu trữ dữ liệu vận hành cấp thông tin mới theo định kỳ cho
kho dữ liệu. Một số thông tin này có thể là XML, trong khi các thông tin khác có
thể là thông tin quan hệ. Các cột XML có thể được bổ xung vào bảng sự kiện hoặc
bảng chiều dữ liệu khi cần thiết, mặc dù hình 3 minh hoạ dữ liệu XML tại chỉ một
bảng chiều dữ liệu (bảng để theo dõi các chi tiết của các sản phẩm khác nhau).
Hỗ trợ các ứng dụng lấy XML làm tâm điểm
Trong khi công nghệ DB2 pureXML có thể mở rộng các cơ sở dữ liệu phân tích và
hỗ trợ ra quyết định, thì nó cũng rất phù hợp để giúp các công ty quản lý khối
lượng tăng lên của các thông điệp và tài liệu XML mà nhiều kiến trúc hướng dịch
vụ tạo ra cho các ứng dụng xử lý giao dịch. Việc sử dụng ngày càng tăng của các
biểu mẫu điện tử và dịch vụ Web là hai yếu tố đóng góp vào việc tăng khối lượng
dữ liệu XML.
DB2 giúp các công ty đối phó với việc tăng khối lượng của dữ liệu XML bằng
cách loại bỏ việc phải chia nhỏ XML vào các cột của các bảng khác nhau. Việc

lưu trữ XML trong định dạng phân cấp nguyên sinh của nó và làm cho XML có
thể ngay lập tức được truy cập thông qua các biểu thức XPath, XQuery và
SQL/XML theo tiêu chuẩn công nghiệp sẽ giảm chi phí hành chính và đơn giản
hoá việc phát triển ứng dụng.


Sử dụng phân đoạn (cơ sở dữ liệu) dựa trên băm để có khả năng mở rộng tối đa
Vì khối lượng dữ liệu tăng lên, nên việc phân tán nội dung của một cơ sở dữ liệu
trên nhiều bộ xử lý và thiết bị lưu trữ có thể giúp các công ty đạt được khả năng
mở rộng tuyến tính. DB2 phiên bản 9.7 mở rộng tính năng phân đoạn cơ sở dữ liệu
của DB2 (DPF) để hỗ trợ cả XML và dữ liệu quan hệ. Trước đây, DPF chỉ hỗ trợ
dữ liệu quan hệ.

Hình 4. Kiến trúc DB2 mẫu với phân đoạn dựa trên băm, cho phép xử lý song
song các truy vấn và các hoạt động cơ sở dữ liệu khác

Như hình 4 cho thấy, DPF là một tùy chọn thiết kế cơ sở dữ liệu vật lý, sử dụng
nhiều phân đoạn cơ sở dữ liệu riêng biệt trong một môi trường đa xử lý. Nhiều
phân đoạn cơ sở dữ liệu có thể được tạo ra trong chỉ một máy SMP (đa xử lý đối
xứng) hoặc có thể được phân tán trên các máy riêng biệt trong một môi trường
không chia sẻ gì.
DPF có thể hữu ích cho tải công việc nặng về đọc, bao gồm cả những công việc
phổ biến cho các môi trường kho dữ liệu. Với DPF, mỗi hàng của một bảng đã cho
được đặt trong một phân đoạn cơ sở dữ liệu cụ thể dựa vào giá trị băm của khóa
phân phối của bảng đó, khóa này được định nghĩa khi tạo bảng. Khi dữ liệu được
đọc ra hoặc được viết vào cơ sở dữ liệu, thì DB2 tự động hướng công việc thích
hợp tới các phân đoạn có liên quan. Kết quả là, các nguồn tài nguyên tính toán kết
hợp với nhiều phân đoạn có thể hoạt động song song để đáp ứng các yêu cầu của
người dùng ban đầu. Khả năng mở rộng tuyến tính đạt được bằng cách bổ sung
thêm phân đoạn mới khi khối lượng dữ liệu tăng lên. Trình Cố vấn thiết kế của

DB2, một công cụ quản trị được xây dựng sẵn, có thể đưa ra lời khuyên cho quản
trị viên về thiết kế phân đoạn của họ.
Để đơn giản hóa việc quản trị dữ liệu XML và cung cấp khả năng mở rộng tối đa,
DB2 phiên bản 9.7 cho phép dữ liệu XML được phân tán trên các phân đoạn cơ sở
dữ liệu khác nhau. Việc phân tán dữ liệu cho phép nhiều hoạt động được thực thi
song song một cách tự động, bao gồm nạp, chèn, truy vấn, cập nhật, xóa, xác nhận
hợp lệ và xuất bản dữ liệu XML. Đặc biệt, các truy vấn phân tích phức tạp và có
khả năng sẽ chạy thi hành lâu có thể được chia nhỏ và được thực thi song song,
điều này cải thiện đáng kể thời gian đáp ứng.
Cũng như với các bản phát hành trước của DB2, điều quan trọng là phải chọn một
khoá phân phối, khóa này phân phối đều các hàng trên các phân đoạn. Khoá phân
phối phải bao gồm các cột quan hệ, và nó không thể tham khảo một cột XML. Lý
tưởng nhất là khóa này chứa dữ liệu với nhiều giá trị khác biệt để tránh các phân
đoạn có kích thước không đồng đều.
Việc khai thác DPF cho dữ liệu XML trong DB2 9.7 là rất tương tự như khai thác
DPF cho dữ liệu quan hệ. Cụ thể là quản trị viên phải định nghĩa các đối tượng
thích hợp của cơ sở dữ liệu, chẳng hạn như các nhóm phân đoạn, các vùng bảng,
các pool đệm, vv. Các bảng phải được tạo ra bằng mệnh đề DISTRIBUTE BY
HASH trong câu lệnh CREATE TABLE.
Liệt kê 2 tạo ra một bảng SALES với các cột quan hệ cho ORDERID, PERSONID
và SALESDATE, cũng như tạo ra một cột XML để thu thập DETAILS (chi tiết)
về đơn đặt hàng. Bạn lưu ý rằng các giá trị của cột ORDERID sẽ quyết định việc
phân đoạn các hàng như thế nào đối với bảng này.

Liệt kê 2. Tạo một bảng phân đoạn dựa trên băm, bao gồm một cột XML

CREATE TABLE sales (
orderid INT NOT NULL,
personid INT,
salesdate DATE,

details XML)
DISTRIBUTE BY HASH (orderid)

Việc tìm kiếm toàn văn bản của dữ liệu của các bảng phân đoạn dựa trên băm
bằng cách sử dụng công cụ tìm kiếm Net Search Extender (NSE) bây giờ đã có sẵn
để sử dụng.
Sử dụng phân đoạn theo dải để cuộn vào và cuộn ra dữ liệu theo dòng thời gian
Một yêu cầu thường xuyên đối với kho dữ liệu và môi trường kinh doanh thông
minh là duy trì một lịch sử cuốn chiếu của dữ liệu chọn lựa trong một chu kỳ thời
gian đã cho. Ví dụ, một công ty muốn duy trì lịch sử cuốn chiếu bán hàng trong
thời kỳ 5 năm để các nhà phân tích kinh doanh có thể truy cập thông tin về mua
hàng và đánh giá xu hướng kinh doanh mới xuất hiện. Trong kịch bản như vậy, dữ
liệu cũ có thể cần phải được thanh lọc hoặc được lưu trữ trên cơ sở theo tháng
hoặc theo quý (cuộn ra), và các dữ liệu mới có thể cần phải được nạp theo các
khung thời gian tương tự (cuộn vào).
Phân đoạn theo dải đáp ứng yêu cầu quản trị này, và DB2 9.7 mở rộng hỗ trợ trước
đó cho công nghệ này để bao gồm cả các dữ liệu XML. Phân đoạn theo dải — đôi
khi được gọi là phân đoạn bảng — là phân đoạn một bảng dựa trên dải các giá trị
được chứa trong một hoặc nhiều cột. Thông thường thì khóa phân đoạn dựa trên
thời gian, dẫn đến một thiết kế hướng dữ liệu của một tuần, tháng hoặc quý đã
cho, được lưu trữ trong một phân đoạn nhất định. Bởi vì mỗi phân đoạn được coi
như là một đối tượng cơ sở dữ liệu riêng biệt, nên các quản trị viên có thể dễ dàng
cuộn vào (gắn thêm) dữ liệu mới hoặc cuộn ra (tháo bỏ) dữ liệu cũ. Ngoài ra,
nhiều truy vấn có được hiệu năng thời gian chạy thi hành ưu việt vì DB2 tự động
tránh truy xuất dữ liệu trong các phân đoạn không liên quan đến các yêu cầu của
người sử dụng.
Hình 5 minh hoạ một môi trường DB2 mẫu, phân đoạn dữ liệu trong bảng Sales
(bán hàng) theo quý.

Hình 5. Trong môi trường phân đoạn theo dải, DB2 chỉ nhằm vào các phân

đoạn cần thiết để đáp ứng yêu cầu của người sử dụng

Việc quản lý một bảng phân đoạn theo dải bao gồm một hoặc nhiều cột XML
không khác nhiều so với việc quản lý bảng phân đoạn theo dải chỉ với các cột
quan hệ. Đặc biệt là các câu lệnh SQL trước đây được hỗ trợ để tạo và thay đổi các
bảng để phân đoạn theo dải cũng như gắn thêm và tháo bỏ các phân đoạn vẫn áp
dụng được. Thêm nữa, các khóa phân đoạn vẫn còn phải dựa vào dữ liệu quan hệ.
Liệt kê 3 tạo ra bảng phân đoạn theo dải với các dữ liệu quan hệ và dữ liệu XML,
cuộn ra (tháo bỏ) một phân đoạn chứa dữ liệu cũ ra, và cuộn vào (gắn thêm) một
phân đoạn chứa dữ liệu mới nhập.

Liệt kê 3. Sử dụng phân đoạn theo dải với pureXML của DB2

Create a range-partitioned table
CREATE TABLE salespart (
orderid INT,
orderdate DATE,
ordermonth INT NOT NULL GENERATED
ALWAYS AS (month(orderdate)),
orderyear INT
NOT NULL GENERATED ALWAYS
AS (year(orderdate)),
customerid INT,
salesrepid INT,
details XML)
PARTITION BY RANGE (orderyear, ordermonth)
(PART q109 STARTING(2009, 1) ENDING (2009, 3)
INCLUSIVE,
PART q209 ENDING (2009, 6) INCLUSIVE,
PART q309 ENDING (2009, 9) INCLUSIVE,

PART q409 ENDING (2009, 12) INCLUSIVE);

Insert or load data for 1Q –
4Q 2009 sales into the table
. . .

Create another table to contain new sales data to be
attached
CREATE TABLE currentsales (
orderid INT,
orderdate DATE,
ordermonth INT NOT NULL GENERATED
ALWAYS AS (month(orderdate)),
orderyear INT NOT NULL GENERATED ALWAYS
AS (year(orderdate)),
customerid INT,
salesrepid INT,
details XML) ;

Insert or load new sales data for 1Q 2010 into the
"currentsales" table
. . .

Attach a new partition for the 1Q 2010 sales data.
Perform an integrity check for index maintenance,
range checking, etc.
ALTER TABLE salespart ATTACH PARTITION q110
STARTING (2010, 1) ENDING (2010, 3) INCLUSIVE

FROM TABLE currentsales ;


SET INTEGRITY FOR salespart IMMEDIATE
CHECKED;

Detach the partition containing old sales data from 1Q
2009
ALTER TABLE salespart DETACH PARTITION q109
INTO OLDSALES;

Việc tìm kiếm toàn văn bản của dữ liệu của bảng phân đoạn theo dải bằng cách sử
dụng công cụ tìm kiếm Net Search Extender (NSE) bây giờ đã có sẵn để sử dụng.


Sử dụng phân cụm nhiều chiều để thực hiện truy vấn
Việc phân cụm nhiều chiều cho các bảng chứa dữ liệu XML là một tùy chọn mới
cho việc thiết kế cơ sở dữ liệu. Các bản phát hành trước chỉ hỗ trợ khả năng này
cho các bảng không có cột XML. Việc phân cụm nhiều chiều có thể đặc biệt hữu
ích cho các ứng dụng phân tích, thường đưa ra các truy vấn bao trùm dữ liệu được
chứa trong nhiều cột.
Ta lấy ví dụ, một ứng dụng phân tích có thể yêu cầu các thông tin bán hàng được
chứa trong một bảng sự việc lớn phải được lấy ra theo sản phẩm, theo vùng địa lý
và theo ngày (ba chiều). Để hỗ trợ truy vấn như vậy, quản trị viên có thể sử dụng
phân cụm nhiều chiều để chỉ dẫn cho DB2 tổ chức các hàng về mặt vật lý trong
bảng SALES theo các chiều đó. Vì các hàng liên quan đến bán hàng cho cùng một
sản phẩm trong cùng một vùng địa lý và cùng một khoảng thời gian sẽ cùng nằm
trong một hoặc nhiều khối dữ liệu, nên thiết kế này sẽ giúp giảm việc vào/ra dữ
liệu và cải thiện hiệu suất thời gian chạy thi hành của các truy vấn đa chiều. Ngoài
ra, việc phân cụm nhiều chiều cũng có thể cải thiện hiệu năng của việc sắp xếp lại,
chèn và xóa dữ liệu.
Với DB2 phiên bản 9.7, thì các bảng có chứa các cột XML có thể tham gia vào

phân cụm nhiều chiều, miễn là các chiều dùng để phân cụm được định nghĩa bởi
các cột quan hệ. Tại các phiên bản trước, các quản trị viên sử dụng mệnh đề
ORGANIZE BY DIMENSION (…) của câu lệnh CREATE TABLE để chỉ rõ việc
phân cụm nhiều chiều. Liệt kê 4 tạo ra một bảng có phân cụm nhiều chiều các dữ
liệu về bán hàng theo sản phẩm, vùng địa lý và thời gian.

Liệt kê 4. Tạo một bảng cho dữ liệu quan hệ và dữ liệu XML, sử dụng phân
cụm nhiều chiều

CREATE TABLE salesMDC (
id INT,
product VARCHAR(25),
region VARCHAR(25),
time DATE,
details XML)
ORGANIZE BY (product, region, time)




Khám phá việc nén dữ liệu XML và chỉ mục để đạt hiệu quả lưu trữ và hiệu năng
Việc nén dữ liệu XML và các chỉ mục XML có thể cải thiện hiệu quả lưu trữ và
hiệu năng chạy thi hành của các truy vấn, bị giới hạn bởi số lần vào/ra dữ liệu.
DB2 phiên bản 9.7 cung cấp các tùy chọn mới trong cả hai lĩnh vực.
Nén dữ liệu XML có thể được thực hiện theo hai cách:
 Các tài liệu XML nhỏ, chiếm ít hơn 32KB không gian lưu trữ có thể được
nằm nội tuyến (inlined) ngay trong bảng cùng với bất kỳ dữ liệu quan hệ
nào có mặt trong cùng hàng đó, và toàn bộ hàng có thể được nén. Khả năng
xử lý dữ liệu nằm nội tuyến này, được đưa vào DB2 phiên bản 9.5, vẫn là
một tùy chọn có ích.

 Các tài liệu XML có dung lượng lớn hơn, cư trú trong một khu vực dữ liệu
tách biệt với dữ liệu quan hệ, cũng có thể được nén. Theo mặc định, DB2
lưu dữ liệu XML tại một nơi riêng biệt được gọi là Vùng dữ liệu XML
(XML Data Area - XDA) để xử lý các tài liệu có dung lượng lên đến 2GB.
Khả năng nén dữ liệu XML lưu trữ trong XDA được đưa thêm vào trong
phiên bản mới của DB2.
Trong DB2 phiên bản 9.7, khả năng nén dữ liệu XML được kích hoạt đơn giản chỉ
cần thông qua mệnh đề COMPRESS YES của câu lệnh CREATE TABLE câu
lệnh này nén cả hai loại cột quan hệ và cột XML có trong bảng. Để đạt được kết
quả nén tốt nhất, DB2 sử dụng hai bộ từ điển nén riêng biệt, một cho các cột quan
hệ và một cho vùng dữ liệu XML của bảng. Cả hai từ điển này được tự động tạo ra
sau khi bảng đã có các dữ liệu lên đến một vài megabyte. Ngoài ra, bạn có thể sửa
đổi một bảng để bật cho phép nén, sau đó bạn có thể tổ chức lại nó để nén dữ liệu.
Các kiểm thử đầu tiên được tiến hành tại IBM cho thấy việc nén dữ liệu XML
được lưu giữ tại vùng dữ liệu XML thường cho kết quả là tiết kiệm được 60-80
phần trăm không gian đĩa, như tại hình 6.

Hình 6. Nén dữ liệu XML lưu trữ trong XDA có thể tiết kiệm được 60-80
phần trăm không gian đĩa

Hình 6 cho thấy kết quả của IBM, thử nghiệm sáu bộ dữ liệu khác nhau được cung
cấp bởi khách hàng hoặc có sẵn trong khu vực công cộng. Những bộ dữ liệu này
bao gồm các tài liệu có các kích cỡ khác nhau từ 2KB đến 100MB.

×