Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
234,17 KB
Nội dung
HãykhởiđầunhanhchóngvớiDB29pureXML,
Phần 2:TạovàđiềnmộtcơsởdữliệuXMLcủa
DB2
Tạo các đối tượng cơsởdữliệu
Để bắt đầu, hãytạomộtcơsởdữliệu Unicode duy nhất của DB2. (Với DB2 phiên bản V9.1, cần
có mộtcơsởdữliệu Unicode cho XML. DB2 phiên bản v9.5 và mới hơn không cần cómộtcơ
sở dữliệu Unicode nữa). Sau đó, bạn sẽ tạo các đối tượng trong cơsởdữliệu này để quản lý cả
hai dữliệuXMLvà các kiểu dữliệu khác.
Tạo mộtcơsởdữliệu thử nghiệm
Để tạo ra mộtcơsởdữliệu thử nghiệm Unicode mới của DB2, hãy mở mộtcửasổ lệnh DB2và
đưa ra một câu lệnh quy định một bộ mã Unicode và vùng được hỗ trợ, như trong Liệt kê 1.
Liệt kê 1. Tạomộtcơsởdữliệu để lưu trữ dữliệuXML
create database test using codeset UTF-8 territory us
Một khi bạn tạomộtcơsởdữ liệu, bạn không cần phải phát hành bất kỳ các lệnh đặc biệt nào
hoặc thực hiện bất kỳ hoạt động thêm nào để cho phép DB2 lưu trữ dữliệuXML theo định dạng
phân cấp nguyên gốc của nó. Hệ thống DB2của bạn đã sẵn sàng để chạy.
Tạo các bảng mẫu
Để lưu trữ dữliệu XML, bạn tạo ra các bảng có chứa một hoặc nhiều cột XML. Những bảng này
dùng như là các thùng chứa logic cho các bộ sưu tập các tài liệu. Sau hậu trường, DB2 thực sự sử
dụng một lược đồ lưu trữ khác cho dữliệuXMLvà không-XML. Tuy nhiên, việc sử dụng các
bảng như một đối tượng logic để quản lý tất cả các dạng củadữliệu được hỗ trợ làm đơn giản
hóa các vấn đề phát triển ứng dụng và quản trị, đặc biệt là khi cần tích hợp các dạng dữliệu khác
nhau trong một truy vấn duy nhất.
Bạn có thể định nghĩa các bảng DB2 để chứa chỉ các cột XML, chỉ các cột theo các kiểu SQL
truyền thống hoặc kết hợp cả hai. Bài viết này mô hình hóa cái sau. Ví dụ trong Liệt kê 2 kết nối
đến cơsởdữliệu thử nghiệm vàtạo ra hai bảng. Bảng đầu tiên là một bảng Items (Các mặt
hàng), theo dõi thông tin về các mặt hàng để bán và các ý kiến mà khách hàng đã đóng góp về
chúng. Bảng thứ hai theo dõi thông tin về Clients (Các khách hàng), bao gồm dữliệu liên hệ.
Lưu ý rằng Comments và Contactinfo (Thông tin liên hệ) được dựa vào kiểu dữliệuXML mới
của DB2, trong khi tất cả các cột khác trong các bảng được dựa vào các kiểu dữliệu SQL truyền
thống.
Liệt kê 2. Tạo các bảng cho dữliệuXML
connect to test;
create table items (
id int primary key not null,
brandname varchar(30),
itemname varchar(30),
sku int,
srp decimal(7,2),
comments xml
);
create table clients(
id int primary key not null,
name varchar(50),
status varchar(10),
contactinfo xml
);
Nếu bạn nhìn kỹ vào các ví dụ định nghĩa bảng này, bạn sẽ nhận thấy rằng chẳng có quy định
cấu trúc bên trong của các tài liệuXML được lưu trữ trong cột Comments cũng như trong cột
Contactinfo. Đây là tính năng DB2 quan trọng. Những người dùng không cần định nghĩa sẵn một
cấu trúc dữliệuXML (hoặc, chính xác hơn, một lược đồ XML) để lưu trữ dữliệucủa họ. Thật
vậy, DB2có thể lưu trữ bất kỳ tài liệuXML đúng định dạng nào trong một cột đơn, có nghĩa là
các tài liệuXMLcủa các lược đồ khác nhau (hoặc các tài liệu không liên kết với bất cứ lược đồ
đã đăng ký nào) có thể được lưu trữ trong cùng một cột DB2. Bài viết này bàn về tính năng này
nhiều hơn khi thảo luận cách lưu trữ dữliệu trong DB2.
Tùy chọn để lưu trữ nội tuyến (inline) các tài liệuXML nhỏ hơn đã được giới thiệu trong phiên
bản v9.5. Nếu các tài liệuXMLđủ nhỏ để khớp với kích thước trang, thì nó có thể được lưu trữ
bằng các phần tử SQL khác. Nếu nó không đủ nhỏ để khớp vớimột trang, thì nó sẽ được lưu trữ
riêng biệt. Cùng với từ khoá nội tuyến, bạn cung cấp kích thước tối đa củaXML được nội tuyến.
Giá trị này dựa vào vào kích thước trang và kích thước của các cột quan hệ khác. Liệt kê 3 cho
thấy đoạn mã thực hiện điều này:
Liệt kê 3. Tạo các bảng cho dữliệuXML bằng tùy chọn nội tuyến
connect to test;
create table items (
id int primary key not null,
brandname varchar(30),
itemname varchar(30),
sku int,
srp decimal(7,2),
comments xml inline length 10240
);
Tạo các khung nhìn
Theo tùy chọn, bạn có thể tạo ra các khung nhìn trên các bảng đang chứa dữliệu XML, cũng
giống như bạn có thể tạo các khung nhìn trên các bảng chỉ đang chứa các kiểu dữliệu SQL
truyền thống. Ví dụ trong Liệt kê 4 tạomột khung nhìn của các khách hàng cómột trạng thái
Gold (Vàng):
Liệt kê 4. Tạomột khung nhìn chứa dữliệuXML
create view goldview as
select id, name, contactinfo
from clients where status='Gold';
Lưu ý về các chỉ mục
Cuối cùng, lưu ý rằng bạn có thể tạo ra các chỉ mục chuyên dụng trên các cột XMLcủa bạn để
tăng tốc các tìm kiếm dữliệucủa bạn. Vì đây là một bài viết giới thiệu vàdữliệu ví dụ nhỏ, nên
bài viết này sẽ không trình bày chủ đề đó. Tuy nhiên, trong các môi trường sản xuất, việc định
nghĩa các chỉ mục thích hợp có thể rất quan trọng để đạt được hiệu năng tối ưu. Xem phần Tài
nguyên để có trợ giúp về cách tìm hiểu thêm về công nghệ lập chỉ mục mới của DB2.
Về đầu trang
Lưu trữ dữliệuXML
Với các bảng đã tạo ra, bây giờ bạn có thể điềndữliệu vào chúng. Ban hành trực tiếp các câu
lệnh SQL INSERT hoặc bằng cách gọi phương tiện IMPORT của DB2, ban hành câu lệnh INSERT
sau hậu trường. Với phiên bản v9.5 của DB2, phương tiện LOAD cũng hỗ trợ dữliệu XML.
Sử dụng các câu lệnh INSERT
Với INSERT, bạn cung cấp trực tiếp cho DB2dữliệuXML thô. Có lẽ đó là cách làm dễ nhất khi
bạn đã viết một ứng dụng và đã lưu trữ dữliệuXML trong một biến. Nhưng nếu bạn chỉ mới bắt
đầu vớiDB2và không cần viết một ứng dụng, bạn có thể ban hành các câu lệnh INSERT tương
tác. (Tôi thấy sử dụng Trình soạn thảo lệnh (DB2 Command Editor) củaDB2 là rất thuận tiện,
mặc dù bạn cũng có thể sử dụng bộ vi xử lý dòng lệnh, nếu bạn muốn).
Để sử dụng DB2 Command Editor, hãykhởi động DB2 Control Center (Trung tâm điều khiển
của DB2). Từ trình đơn thả xuống Tools (Các công cụ) ở trên đỉnh, chọn Command Editor. Một
cửa sổ riêng biệt xuất hiện, như trong Hình 1.
Hình 1. DB2 Command Editor
Gõ các câu lệnh sau vào ô bên trên:
Liệt kê 5. Chèn dữliệuXML tương tác
connect to test;
insert into clients values (77, 'John Smith', 'Gold',
'<addr>111 Main St., Dallas, TX, 00112</addr>')
Nhấn vào mũi tên màu xanh lá cây ở bên trái để thực hiện lệnh.
Trong trường hợp này, tài liệuđầu vào khá đơn giản. Nếu tài liệu lớn hay phức tạp, thì việc nhập
dữ liệuXML vào câu lệnh INSERT như đã hiển thị là không thực tế. Trong hầu hết các trường
hợp, bạn muốn viết một ứng dụng để chèn dữliệu bằng một biến lưu trữ trên máy chủ hoặc một
dấu tham số. Bạn sẽ thấy một ví dụ mã hóa Java ngắn đi kèm theo bài viết này. Tuy nhiên,
hướng dẫn giới thiệu này không trình bày các chủ đề phát triển ứng dụng một cách chi tiết. Thay
vào đó, chúng ta sẽ bàn về tùy chọn khác để điềndữliệu vào các cột XMLcủaDB2 — khi sử
dụng phương tiện IMPORT.
Sử dụng phương tiện IMPORT củaDB2
Nếu bạn đã códữliệuXMLcủa mình trong các tệp, phương tiện IMPORT củaDB2 cung cấp
một cách đơn giản để bạn điềndữliệu này vào các bảng DB2của bạn. Bạn không cần viết một
ứng dụng. Bạn chỉ cần tạomột tệp ASCII định giới có chứa dữliệu mà bạn muốn nạp vào bảng
của mình. Đối vớidữliệuXML được lưu trữ trong các tệp, cómột tham số xác định các tên tệp
thích hợp.
Bạn có thể tạo tệp ASCII định giới bằng cách sử dụng trình soạn thảo văn bản theo lựa chọn của
bạn. (Theo quy ước, các tệp như vậy thường là kiểu .del). Mỗi dòng trong tệp của bạn biểu diễn
một hàng dữliệu được nhập khẩu vào bảng của bạn. Nếu dòng của bạn có chứa mộtXML Data
Specifier (XDS-Trình định rõ dữliệu XML), thì IMPORT sẽ đọcdữliệu được chứa trong tệp
XML tham chiếu và nhập khẩu dữliệu đó vào DB2. Ví dụ, dòng đầu tiên trong Liệt kê 6 có
thông tin về Ella Kimpton, bao gồm mã định danh ID, tên và trạng thái khách hàng củacô ta.
Thông tin liên hệ củacô ta có trong tệp Client3227.xml.
Liệt kê 6. Tệp clients.del
3227,Ella Kimpton,Gold,<XDS FIL='Client3227.xml' />
8877,Chris Bontempo,Gold,<XDS FIL='Client8877.xml' />
9077,Lisa Hansen,Silver,*lt;XDS FIL='Client9077.xml' />
9177,Rita Gomez,Standard,<XDS FIL='Client9177.xml' />
5681,Paula Lipenski,Standard,<XDS FIL='Client5681.xml' />
4309,Tina Wang,Standard,<XDS FIL='Client4309.xml' />
Nội dung của tệp Client3227.xml được hiển thị trong Liệt kê 7. Tệp này chứa các phần tử XML
với địa chỉ, sốđiện thoại, số fax và email của Ella Kimpton.
Liệt kê 7. Tệp Client3227.xml
<?xml version="1.0"?>
<Client
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
xsi:noNamespaceSchemaLocation="http://bogus">
<Address>
<street>5401 Julio Ave</street>
<city>San Jose</city>
<state>CA</state>
<zip>95116</zip>
</Address>
<phone>
<work>4084630000</work>
<home>4081111111</home>
<cell>4082222222</cell>
</phone>
<fax>4087776666</fax>
<email>love2shop@yahoo.com</email>
</Client>
Có lẽ bạn muốn tìm hiểu về việc nhập khẩu dữliệu khi bạn không có các tệp XML cho tất cả các
hàng mà bạn muốn chèn. Thật dễ dàng để làm điều đó. Hãy bỏ qua thông tin XDS khỏi tệp đầu
vào của bạn. Ví dụ, tệp items.del trong Liệt kê 8 bỏ qua tên củamột tệp XMLvới Mặt hàng 3641
(bộ Áo đầm gây ấn tượng). Kết quả là, cột XML ứng với hàng này sẽ không chứa bất kỳ dữliệu
nào.
Tệp items.del
3926,NatureTrail,Walking boot, 38112233,64.26,<XDS FIL='Comment3926.xml' />
4023,NatureTrail,Back pack,552238,34.99,<XDS FIL='Comment4023.xml' />
3641,Dress to Impress,Syutm7811421,149.99,
4272,Classy,Cocktail dress,981140,156.99,<XDS FIL='Comment4272.xml' />
Với các tệp XMLvà các tệp ASCII định giới có sẵn của mình, bây giờ bạn đã sẵn sàng sử dụng
phương tiện IMPORT của DB2. Câu lệnh trong Liệt kê 9 nhập khẩu các nội dung được quy định
trong tệp clients.del vào thư mục C:/XMLFILES trong bảng clients.
Liệt kê 9. Nhập khẩu dữliệu vào bảng clients
import from clients.del of del xml from C:/XMLFILES insert into
user1.clients;
Tệp clients.del được chỉ ra trong Liệt kê 6 chứa dữliệu cho sáu hàng, bao gồm các tham chiếu
đến sáu tệp XML. Việc thực hiện thành công một lệnh IMPORT dẫn đến kết quả tương tự như Liệt
kê 10.
Liệt kê 10. Kết quả mẫu của lệnh IMPORT củaDB2
import from clients.del of del xml from C:/XMLFiles insert into
saracco.clients
SQL3109N The utility is beginning to load data from file "clients.del".
SQL3110N The utility has completed processing. "6" rows were read from the
input file.
SQL3221W Begin COMMIT WORK. Input Record Count = "6".
SQL3222W COMMIT of any database changes was successful.
SQL3149N "6" rows were processed from the input file. "6" rows were
successfully inserted into the table. "0" rows were rejected.
Number of rows read = 6
Number of rows skipped = 0
Number of rows inserted = 6
Number of rows updated = 0
Number of rows rejected = 0
Number of rows committed = 6
Các nhà cung cấp phần mềm độc lập (ISV) cung cấp các công cụ giúp bạn chuyển đổi các định
dạng Microsoft® Word, Acrobat PDF và tài liệu khác thành XML để nhập khẩu vào DB2. Xem
phần Tài nguyên để biết thêm thông tin về các ISV.
Về đầu trang
Xác nhận hợp lệ dữliệuXMLcủa bạn
Các ví dụ INSERT và IMPORT vừa được bàn thảo có thể viết bất kỳ dữliệuXML đúng định dạng
nào vào các bảng của bạn. Chúng không xác nhận hợp lệ dữliệu đó. Nói cách khác, chúng không
kiểm tra xem dữliệucó tuân theo một lược đồ XML cụ thể không và do đó cũng không kiểm tra
xem có tuân theo một cấu trúc cụ thể không. Tuy nhiên, có khả năng chỉ thị cho DB2 làm điều
đó. Dưới đây là một cách tiếp cận:
Bước 1: Tạomột lược đồ XML
Để xác nhận hợp lệ dữliệu XML, bạn cần định nghĩa một lược đồ XML, quy định các phần tử
XML có thể chấp nhận được, thứ tự của chúng và các kiểu dữliệuvà v.v Các lược đồ XML là
một tiêu chuẩn công nghiệp của W3C và được viết bằng XML. Dù nó nằm ngoài phạm vi của
bài viết này nên để giải thích các tính năng của các lược đồ XML, hãy xem các hướng dẫn khác
nhau có sẵn (trong phần Tài nguyên).
Có nhiều cách để phát triển các lược đồ XML, trải rộng từ cách sử dụng trình soạn thảo văn bản
yêu thích của bạn để tạo thủ công lược đồ của bạn đến việc sử dụng các công cụ để thiết kế đồ
họa hoặc tạomột lược đồ. Các nhà cung cấp phần mềm độc lập cung cấp các công cụ XML như
vậy và IBM cũng mang đến sự hỗ trợ tạo lược đồ XML thông qua các môi trường phát triển có
tích hợp Java™.
Ví dụ, với IBM Rational® Application Developer (Nhà phát triển ứng dụng Rational của IBM)
hay IBM Rational Software Architect (Kiến trúc sư phần mềm của IBM), bạn có thể nhập khẩu
một tệp xml vào mộtdự án Web. Tệp xml được dùng trong ví dụ này được lấy từ bảng khách
hàng trong cơsởdữliệu mẫu của DB2. Nhấn chuột phải vào dự án và chọn Generate > XML
Schema. Việc này tạo ra một lược đồ XML hợp lệ cho tệp đầu vào riêng của bạn, như trong
Hình 2 (ảnh rộng hơn). Sau đó bạn có thể sửa đổi tệp (nếu cần) và đăng ký nó với DB2.
Hình 2. Sử dụng phần IBM Rational Software Architect để tạo ra một lược đồ XML từ một
tệp XML
Giả sử bạn cần tạo lược đồ XML khá linh hoạt của mình sao cho bạn có thể thu thập các kiểu
thông tin liên hệ với các khách hàng khác nhau. Ví dụ, mộtsố khách hàng có thể cung cấp cho
bạn nhiều sốđiện thoại hoặc nhiều địa chỉ email, trong khi những người khác lại không thể.
Lược đồ XML được hiển thị trong Liệt kê Liệt kê 11, được bắt nguồn từ các lược đồ do IBM
Rational Software Architect đã tạo ra, có tính đến sự linh hoạt này. Nó bao gồm các đặc tả bổ
sung về số lượng các sự kiện tối thiểu và tối đa (minOccurs và maxOccurs) dành cho mộtphần
tử cụ thể. Trong trường hợp này, người ta không yêu cầu khách hàng cung cấp cho bạn bất kỳ
thông tin liên hệ nào mà bạn muốn thu thập. Tuy nhiên, nếu khách hàng lựa chọn cung cấp cho
bạn thông tin email, thì lược đồ này cho phép các tài liệu tuân thủ để chứa tối đa năm địa chỉ
email (có nghĩa là, năm giá trị củaphần tử email).
Liệt kê 11. Lược đồ XML mẫu cho thông tin liên hệ khách hàng
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmins:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="address">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="street" minOccurs="0"/>
<xsd:element ref="apt" minOccurs="0"/>
<xsd:element ref="city" minOccurs="0"/>
<xsd:element ref="state" minOccurs="0"/>
<xsd:element ref="zip" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Client">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Address" minOccurs="0" maxOccurs="5"/>
<xsd:element ref="phone" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="fax" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="email" minOccurs="0" maxOccurs="5"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="cell type="xsd:string"/>
<xsd:element name="city type="xsd:string"/>
<xsd:element name="email" type="xsd:string"/>
<xsd:element name="fax" type="xsd:string"/>
<xsd:element name="home" type="xsd:string"/>
<xsd:element name="phone">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="work" minOccurs="0"/>
<xsd:element ref="home" minOccurs="0"/>
<xsd:element ref="cell" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
. . .
</xsd:schema>
Các lược đồ XML cũng chứa thông tin định kiểu. Lược đồ được hiển thị trong Liệt kê 11 quy
định rằng tất cả các phần tử cơ bản được coi là các chuỗi ký tự. Tuy nhiên, hầu hết các lược đồ
XML sản xuất lại sử dụng các loại dữliệu khác, chẳng hạn như số nguyên, số thập phân, ngày
tháng và v.v Nếu bạn xác nhận hợp lệ các tài liệuXML dựa vào một lược đồ cụ thể như là một
phần của phép toán INSERT hay IMPORT của bạn, thì DB2 tự động thêm các chú thích định kiểu
cho các tài liệuXMLcủa bạn.
Bước 2: Đăng ký lược đồ XML
Một khi bạn đã tạo ra một lược đồ XML thích hợp, bạn cần đăng ký lược đồ đó với DB2. IBM
cung cấp nhiều cách để làm điều này. Bạn có thể khởi chạy trình thủ thuật đồ họa từ DB2
Control Center để hướng dẫn bạn thực hiện thông qua quá trình này, gọi các thủ tục đã lưu do hệ
thống cung cấp hoặc ban hành trực tiếp các lệnh DB2. Đối với ví dụ này, hãy sử dụng phương
pháp sau, vì nó có thể giúp bạn dễ hiểu hơn những gì DB2 đang làm sau hậu trường thay cho
bạn.
Nếu lược đồ của bạn rất lớn, bạn có thể cần phải tăng kích thước vùng lưu trữ đặc biệt (heap) cho
ứng dụng của mình trước khi cố gắng đăng ký nó. Ví dụ, hãy ban hành các câu lệnh sau:
Liệt kê 12. Tăng kích thước vùng lưu trữ đặc biệt cho ứng dụng
connect to test;
update db cfg using applheapsz 10000;
Tiếp theo, hãy đăng ký lược đồ XMLcủa bạn. Nếu lược đồ XMLcủa bạn không tham chiếu các
lược đồ XML khác, bạn có thể đăng ký và hoàn thành quá trình này bằng một lệnh đơn. Nếu
không, bạn cần ban hành các lệnh riêng để đăng ký lược đồ XML chính của bạn, thêm vào các
lược đồ cần thiết khác và hoàn tất quá trình đăng ký. Khi một tài liệu lược đồ trở nên rất lớn,
thông thường cần chia nhỏ nội dung của nó thành nhiều tệp để cải thiện việc bảo trì, tính dễ đọc
và sử dụng lại. Điều này na ná như ngắt một ứng dụng hoặc thành phần phức tạp thành nhiều
mô-đun. Để biết chi tiết về chủ đề này, hãy tham khảo Nhập môn về Lược đồ XMLcủa W3C.
Bài viết này sử dụng một lược đồ XMLđộc lập, đơn giản. Bạn có thể đăng ký nó vớiDB2 bằng
các lệnh sau đây:
Liệt kê 13. Đăng ký một lược đồ XML
register xmlschema 'http://mysample.org' from 'C:/XMLFiles/ClientInfo.xsd' as
user1.mysample complete;
Trong ví dụ này, ClientInfo.xsd là tên của tệp lược đồ XML. Nó nằm trong thư mục
C:/XMLFiles. Lược đồ XML này sẽ được đăng ký trong kho lưu trữ bên trong củaDB2 trong
user1 của lược đồ SQL và mysample của lược đồ XML. Tham số http://mysample.org chỉ là một
trình giữ chỗ trong ví dụ này. Nó quy định chỉ số tài nguyên thống nhất (URI) được các tài liệu
cá thể XML tham chiếu. Nhiều tài liệuXML sử dụng các vùng tên, được quy định bằng một
URI. Cuối cùng, mệnh đề complete chỉ thị cho DB2 hoàn thành quá trình đăng ký lược đồ XML
để có thể sử dụng lược đồ đó để xác nhận hợp lệ dữliệu XML.
Lưu ý rằng quá trình đăng ký lược đồ không liên quan đến việc quy định các cột của bảng mà
các lược đồ sẽ được áp dụng cho chúng. Nói cách khác, các lược đồ không tương đương với các
ràng buộc của cột SQL. Một lược đồ cụ thể có thể xác nhận hợp lệ dữliệu cho một loạt các cột
XML trong các bảng khác nhau. Tuy nhiên, việc xác nhận hợp lệ không diễn ra tự động. DB2
cho phép bất kỳ tài liệuXML đúng định dạng nào được lưu trữ trong một cột XML. Nếu bạn
muốn xác nhận hợp lệ dữliệucủa mình dựa vào một lược đồ đã đăng ký trước khi lưu trữ, bạn
cần phải ra lệnh cho DB2 làm như vậy.
Bước 3: Nhập dữliệuXMLcó xác nhận hợp lệ
Với một lược đồ XML được tạo ra và được đăng ký xong trong DB2, bây giờ bạn đã sẵn sàng có
DB2 xác nhận hợp lệ dữliệuXML khi chèn hoặc nhập khẩu nó vào một bảng. Hãy nghĩ lại kịch
bản IMPORT nói trên có xác nhận hợp lệ lược đồ.
Nếu bạn đã điền vào bảng Clients của mình, bạn có thể thấy rất tiện lợi để xóa các nội dung của
nó hoặc thả xuống vàtạo lại bảng đó. Điều này chỉ cần thiết khi bạn có kế hoạch thêm dữliệu
tương tự vào bảng đó như bạn đã làm từ trước. Hãy nhớ rằng clients đã được định nghĩa vớimột
khóa chính trên cột client ID, do đó, việc cố gắng nhập khẩu các hàng trùng lặp sẽ bị lỗi.
[...]... trữ và xử lý dữliệuXML theo cách hiệu quả Để giúp bạn khởi đầunhanhchóng với các tính năng này, bài viết này đã mô tả cách tạomộtcơsởdữliệu thử nghiệm và các bảng mẫu để lưu trữ các tài liệuXML Nó cũng xem xét cách bạn có thể điềndữliệuXML vào cơ sởdữliệucủa bạn Cuối cùng, nó đã tóm tắt khả năng củaDB2 để xác nhận hợp lệ dữliệuXML dựa vào các lược đồ XML do người dùng cung cấp và. .. hợp lệ dữliệuXML trước khi chèn nó Cú pháp này tương tự như ví dụ IMPORT vừa được hiển thị trong đó bạn quy định một lược đồ XML đã đăng ký (và đã hoàn thành) khi gọi mệnh đề XMLVALIDATE (Xem bài "Một ví dụ Java đơn giản" để biết thêm thông tin) Về đầu trang Tóm tắt DB2 phiên bản V9 cung cấp các khả năng mới quan trọng để hỗ trợ XML, bao gồm một kiểu dữliệuXML và các thành phần mức-máy cơ bản,... nhận hợp lệ dữliệuXML trong khi nhập khẩu nó vào bảng Clients, hãy sử dụng mệnh đề XMLVALIDATE của phương tiện IMPORT củaDB2 Câu lệnh trong Liệt kê 14 chỉ thị cho DB2 sử dụng lược đồ XML đã đăng ký sẵn của bạn (user1.mysample) làm XDS mặc định (XML Data Specifier) để xác nhận hợp lệ tệp XML được quy định trong tệp clients.del trước khi chèn chúng vào bảng Clients Liệt kê 14 Nhập dữliệuXMLcó xác... xml from C:/XMLFILES xmlvalidate using xds default user1.mysample insert into user1.clients; Nếu DB2 xác định rằng một tài liệuXML không tuân theo lược đồ đã quy định, thì toàn bộ hàng liên kết với tài liệu đó bị loại Liệt kê 15 minh họa đầu ra ví dụ từ một phép toán IMPORT trong đó một hàng trong sáu hàng đã bị loại vì tài liệuXMLcủa nó không phù hợp với lược đồ đã quy định Liệt kê 15 Nhập dữ liệu. .. đưa ra các ví dụ cho bạn thấy cách bắt đầu Bây giờ bạn đã học được cách lưu trữ dữliệuXML bằng cách sử dụng các khả năng XML nguyên gốc của DB2, bạn đã sẵn sàng truy vấn dữliệu đó Bạn sẽ thấy cách thực hiện điều đó trong các bài viết tiếp theo, sẽ giới thiệu cho bạn về sự hỗ trợ XQuery củaDB2và về các phần mở rộng XMLcủa nó cho SQL (đôi khi gọi là SQL /XML) ... liệuXMLcó xác nhận hợp lệ SQL3149N "6 rows were processed from the input file "5" rows were successfully inserted into the table "1" rows were rejected Number Number Number Number Number Number of of of of of or rows rows rows rows rows rows read skipped inserted updated rejected committed = 6 = 0 = 5 = 0 = 1 = 6 Lưu ý rằng XMLVALIDATE cũng có thể được dùng với các câu lệnh INSERT để chỉ thị cho DB2 . Hãy khởi đầu nhanh chóng với DB2 9 pureXML, Phần 2: Tạo và điền một cơ sở dữ liệu XML của DB2 Tạo các đối tượng cơ sở dữ liệu Để bắt đầu, hãy tạo một cơ sở dữ liệu Unicode duy nhất của DB2. . dữ liệu này để quản lý cả hai dữ liệu XML và các kiểu dữ liệu khác. Tạo một cơ sở dữ liệu thử nghiệm Để tạo ra một cơ sở dữ liệu thử nghiệm Unicode mới của DB2, hãy mở một cửa sổ lệnh DB2 và. (Với DB2 phiên bản V9.1, cần có một cơ sở dữ liệu Unicode cho XML. DB2 phiên bản v9.5 và mới hơn không cần có một cơ sở dữ liệu Unicode nữa). Sau đó, bạn sẽ tạo các đối tượng trong cơ sở dữ