Ngôn ngữ truy vấn XQuery

Một phần của tài liệu Chuẩn QTI trong các hệ thống sát hạch trắc nghiệm bằng máy tính và triển khai thử nghiệm (Trang 46 - 49)

Bất cứ khi nào cần truy cập và thao tác dữ liệu XML thì một lựa chọn cần xem xét là dùng XQuery. XQuery là một ngôn ngữ để truy vấn dữ liệu XML. Nó đƣợc thiết kế để có thể đƣợc áp dụng rộng rãi cho nhiều nguồn dữ liệu XML. XQuery đƣợc sử dụng phổ biến để định vị và trích ra các thuộc tính và phần tử từ các tài liệu XML và cũng đƣợc dùng để tạo ra các tài liệu XML mới sử dụng các đối tƣợng đã lấy ra. Các mẫu so khớp cơ bản và phổ biến của các biểu thức XQuery là các biểu thức đƣờng dẫn, giống nhƣ trong XPath, nhƣng XQuery có khả năng biểu diễn mạnh hơn XPath.

XQuery là ngôn ngữ lập trình khai báo (declarative), không chỉ sử dụng làm ngôn ngữ truy vấn dữ liệu XML mà còn sử dụng làm ngôn ngữ chuyển đổi dữ liệu giữa các khuôn dạng khác nhau và làm ngôn ngữ tích hợp dữ liệu giữa các hệ thống. Khả năng diễn đạt của XQuery không kém bất cứ ngôn ngữ lập trình mục tiêu chung nào. Hoàn toàn có thể và rất hiệu quả khi phát triển toàn bộ trọn vẹn một ứng dụng web hoàn chỉnh quy mô lớn (enterprise web application) bằng XQuery. Hơn nữa, phát triển ứng dụng web bằng XQuery còn có một số ƣu điểm nhƣ sau:

- Mã lệnh ngắn gọn và đẹp đẽ. Hỗ trợ XLTS của XQuery cho phép thực hiện các trang XHTML rất ngắn gọn. Là một ngôn ngữ khai báo (declarative), XQuery cũng cho phép triển khai các dịch vụ kho câu hỏi đơn giản hơn nhiều so với Java.

- Đơn giản hóa kiến trúc tổng thể của ứng dụng và cải thiện tính linh hoạt. Một ứng dụng XQuery gồm nhiều mô đun, là những tệp XQuery. Một mô đun XQuery gồm nhiều hàm, có thể đƣợc gọi trực tiếp từ một mô đun khác hoặc đƣa ra qua REST hay nhƣ một dịch vụ Web. XQuery rất thuận tiện để xây dựng ứng dụng web theo kiến trúc MVC.

XQuery là một ngôn ngữ truy vấn mới đƣợc thiết kế chuyên dụng khi thao tác với dữ liệu XML. Là một phần của chuẩn kỹ nghệ W3C, XQuery cho phép ngƣời dùng duyệt cấu trúc phân cấp trong tài liệu XML. Kết quả là có thể truy vấn các tài liệu XML hoặc các phân đoạn tài liệu sử dụng XQuery. XQuery hỗ trợ nhiều khả năng nhƣ khả năng biến đổi đầu ra XML và kết hợp logic điều kiện vào các truy vấn.

Một XQuery luôn biến đổi từ một giá trị của mô hình dữ liệu XQuery này (XQuery Data Model) sang một giá trị của một mô hình dữ liệu XQuery khác. Một giá trị trong mô hình dữ liệu XQuery là một chuỗi gồm không hoặc nhiều hơn một danh mục (item). Một danh mục có thể là:

- Giá trị nguyên tử bất kì

- Một nút XML nhƣ phần tử (element), thuộc tính (attribute) hoặc nút văn bản (text node) (đôi khi đƣợc gọi là một phân đoạn tài liệu XML)

- Một tài liệu XML đầy đủ

Thƣờng thì đầu vào một XQuery là một tập hợp các tài liệu XML. Ngôn ngữ XQuery suy ra từ các chuẩn khác của XML, chẳng hạn nhƣ XPath. Nó xác định những ngƣời dùng có thể duyệt qua một tài liệu XML và lƣợc đồ XML nhƣ thế nào, nó chỉ rõ các kiểu dữ liệu và các cấu trúc hợp lệ cho các tài liệu của họ.

XQuery khác với SQL về một số phƣơng diện then chốt, phần lớn là do các ngôn ngữ này đƣợc thiết kế để làm việc với các mô hình dữ liệu khác nhau, mà các mô hình này có các đặc tính khác nhau. Các tài liệu XML có chứa các mức phân cấp và sở hữu một thứ tự có sẵn. 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 trên tập hợp; vì thế, các hàng không theo thứ tự. Các sự khác nhau giữa các mô hình dữ liệu này dẫn đến một số khác biệt cơ bản trong các ngôn ngữ truy vấn riêng tƣơng ứng của chúng. Bảng dƣới liệt kê một vài ví dụ.

XQuery SQL

Hỗ trợ các biểu thức đƣờng dẫn để cho phép các lập trình viên dẫn hƣớng thông qua cấu trúc phân cấp của XML

Không hỗ trợ các biểu thức đƣờng dẫn

Hỗ trợ cả hai dữ liệu có định kiểu và không định kiểu

Luôn luôn đƣợc định nghĩa với một kiểu cụ thể

Không cần các giá trị NULL vì các tài liệu XML bỏ qua dữ liệu thiếu hoặc không đƣợc biết

Sử dụng các giá trị NULL để thể hiện các giá trị thiếu hoặc không đƣợc biết

Trả về các chuỗi dữ liệu XML Trả về các tập hợp kết quả của các kiểu dữ liệu SQL khác nhau

Bảng 2.1: Sự khác nhau giữa SQL và XQuery

Một ứng dụng XQuery gồm các thành phần sau:

- Các mô đun là tệp các lệnh XQuery thực hiện các truy vấn dữ liệu XML cũng nhƣ chuyển đổi dữ liệu và hiển thị kết quả thành trang web.

- Bộ xử lý XQuery thi hành các vấn tin XQuery. Đây có thể là một thành phần chạy độc lập hay phần mở rộng của hệ cơ sở dữ liệu tích hợp sẵn, có khả năng xử lý XQuery.

- Một hệ cơ sở dữ liệu XML chứa dữ liệu cần truy vấn và có hỗ trợ XQuery.

- Một giao diện lập trình ứng dụng XQuery để triệu gọi và xử lý các truy vấn từ trong ứng dụng.

Một số các ứng dụng của XQuery:

- Trích thông tin từ CSDL để sử dụng cho các dịch vụ Web - Tạo các báo cáo tổng kết về dữ liệu lƣu trong một CSDL XML

- Tìm các tài liệu dạng văn bản trên Web có các thông tin phù hợp và trình bày kết quả nhƣ mong muốn

- Chọn và chuyển đổi các dữ liệu XML sang XHTML để công bố trên Web

- Lấy dữ liệu từ CSDL để cho các tích hợp ứng dụng

- Tách một tài liệu XML chứa thông tin về nhiều giao dịch ra thành nhiều tài liệu XML.

Một phần của tài liệu Chuẩn QTI trong các hệ thống sát hạch trắc nghiệm bằng máy tính và triển khai thử nghiệm (Trang 46 - 49)

Tải bản đầy đủ (PDF)

(81 trang)