Danh mục

Hãy khởi đầu nhanh chóng với DB2 9 pureXML, Phần 4: Truy vấn dữ liệu DB2 XML bằng XQuery

Số trang: 34      Loại file: pdf      Dung lượng: 258.73 KB      Lượt xem: 11      Lượt tải: 0    
10.10.2023

Xem trước 4 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Don Chamberlin, Tác giả chuyên nghiệp, IBMs Almaden Research Center Cynthia M. Saracco, Kiến trúc giải pháp cao cấp, IBM Tóm tắt: DB2® phiên bản V9 của IBM cho Linux®, UNIX® và Windows®(R) mô tả sự hỗ trợ mới quan trọng để lưu trữ, quản lý và tìm kiếm dữ liệu XML, gọi tắt là pureXML. Loạt bài này giúp bạn nhanh chóng nắm vững các tính năng XML mới này thông qua một số bài viết đi dần từng bước giải thích cách hoàn thành các nhiệm vụ cơ bản. ...
Nội dung trích xuất từ tài liệu:
Hãy khởi đầu nhanh chóng với DB2 9 pureXML, Phần 4: Truy vấn dữ liệu DB2 XML bằng XQuery Hãy khởi đầu nhanh chóng với DB2 9 pureXML, Phần 4: Truy vấn dữ liệu DB2 XML bằng XQueryDon Chamberlin, Tác giả chuyên nghiệp, IBMs Almaden Research CenterCynthia M. Saracco, Kiến trúc giải pháp cao cấp, IBMTóm tắt: DB2® phiên bản V9 của IBM cho Linux®, UNIX® và Windows®(R)mô tả sự hỗ trợ mới quan trọng để lưu trữ, quản lý và tìm kiếm dữ liệu XML, gọitắt là pureXML. Loạt bài này giúp bạn nhanh chóng nắm vững các tính năng XMLmới này thông qua một số bài viết đi dần từng bước giải thích cách hoàn thành cácnhiệm vụ cơ bản. Trong bài viết này, hãy tìm hiểu cách truy vấn dữ liệu được lưutrữ trong các cột XML bằng cách sử dụng XQuery. [25.03.2010: Được viết lầnđầu vào năm 2006, bài viết này luôn được cập nhật để theo kịp với các thay đổitrong phiên bản 9.5 và 9.7 của DB2 -- Người hiệu đính.]Bạn đã có thể nghe thấy tin đồn về phiên bản V9 của DB2 -- hệ thống quản lý cơsở dữ liệu đầu tiên của IBM có hỗ trợ cả hai cấu trúc dữ liệu (dựa vào-SQL) dạngbảng và cấu trúc dữ liệu (dựa vào-XML) phân cấp. Các bài viết trước của loạt bàinày đã tóm tắt các tính năng XML mới của DB2, đã mô tả cách tạo các đối tượngcơ sở dữ liệu và điền chúng với dữ liệu XML và giải thích cách làm việc với dữliệu XML bằng cách sử dụng SQL và SQL/XML. Bài viết này tiếp tục tìm hiểucác khả năng của XML của DB2 bằng cách tập trung vào sự hỗ trợ mới của nó choXQuery.DB2 xử lý XQuery như một ngôn ngữ lớp đầu tiên, cho phép những người dùngviết các biểu thức XQuery trực tiếp chứ không yêu cầu những người dùng đónhúng hoặc bao bọc các XQuery trong các câu lệnh SQL. Hơn nữa, máy truy vấncủa DB2 xử lý các XQuery theo cách tự nhiên, nghĩa là nó phân tích cú pháp, đánhgiá và tối ưu hóa các XQuery mà không bao gi ờ chuyển dịch chúng thành SQL sauhậu trường. Tất nhiên, nếu bạn chọn viết các truy vấn song ngữ bao gồm cả cácbiểu thức XQuery lẫn SQL, thì DB2 cũng sẽ xử lý và tối ưu hóa các truy vấn này.Như với SQL/XML trong Phần 3 của loạt bài này, bài viết này tìm hiểu một sốnhiệm vụ truy vấn chung và xem xét cách bạn có thể sử dụng XQuery để hoànthành các mục tiêu của mình. Đầu tiên, hãy xem xét nhanh XQuery khác với SQLnhư thế nào.Giới thiệu về XQueryXQuery khác với SQL ở một số khía cạnh chính, phần lớn là do các ngôn ngữđược thiết kế để làm việc với các mô hình dữ liệu khác nhau có các đặc điểm khácnhau. Các tài liệu XML chứa các hệ thống phân cấp và sở hữu một trật tự vốn có.Các cấu trúc dữ liệu dạng bảng được các DBMS dựa trên SQL hỗ trợ là phẳng vàdựa vào thiết lập. Như vậy, các hàng không có thứ tự.Những khác biệt giữa các mô hình dữ liệu này sinh ra một số các khác biệt cơ bảntrong các ngôn ngữ truy vấn riêng của chúng, bao gồm: XQuery hỗ trợ các biểu thức đường dẫn để cho phép các lập trình viên  chuyển hướng thông qua cấu trúc phân cấp của XML, trong khi SQL thuần (không có các phần mở rộng XML) thì không. XQuery hỗ trợ cả hai dữ liệu được định kiểu và không được định kiểu,  trong khi dữ liệu SQL luôn luôn được định nghĩa với một kiểu cụ thể. XQuery thiếu các giá trị bằng không (null) vì các tài liệu XML bỏ qua dữ  liệu còn thiếu hoặc chưa rõ. Tất nhiên, SQL sử dụng các giá trị bằng không để biểu diễn các giá trị dữ liệu còn thiếu hoặc chưa rõ. XQuery trả về các chuỗi dữ liệu XML, trong khi SQL trả về các tập kết quả  của các kiểu dữ liệu SQL khác nhau.Đây là một tập hợp con về những khác biệt cơ bản giữa XQuery và SQL. Việccung cấp một danh sách đầy đủ nằm ngoài phạm vi của bài viết giới thiệu này,nhưng một bài viết của Tạp chí Các hệ thống IBM đã bàn luận về các khác biệtngôn ngữ cụ thể hơn. Bài viết này tập trung vào một số khía cạnh cơ bản của ngônngữ XQuery và cách bạn có thể sử dụng nó để truy vấn dữ liệu XML trong DB2V9.Cơ sở dữ liệu mẫuCác truy vấn trong bài viết này truy cập các bảng mẫu được tạo ra trong Phần 1của loạt bài này. Để xem lại nhanh, Liệt kê 1 định nghĩa các bảng items (các mặthàng) và clients (các khách hàng) mẫu.Liệt kê 1. Các định nghĩa bảngcreate 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)Dữ liệu XML mẫu có trong cột items.comments được hiển thị trong Liệt kê 2,trong khi mẫu dữ liệu XML có trong cột clients.contactinfo được hiển thị trongLiệt kê 3. Các ví dụ truy vấn tiếp theo sẽ tham chiếu các phần tử cụ thể trong mộthoặc cả hai tài liệu XML này.Liệt kê 2. Tài liệu mẫu XML được lưu trữ trong cột Comments của bảngItems 133 3926 ...

Tài liệu được xem nhiều: