1.2 XML và Database 1.2.1 Phương pháp tiếp cận cơ sở dữ liệu XML Nhu cầu sử dụng XML ngày càng tăng đòi hỏi các hệ thống lưu trữ dữ liệu bán cấu trúc mà không cần ép nó vào các cấu trúc
Trang 1Lời mở đầu
Trong nhiều năm gần đây, thuật ngữ Cơ sở dữ liệu - Database đã quen thuộc trên nhiều lĩnh vực Các ứng dụng tin học vào quản lý ngày càng nhiều và đa dạng, hầu hết các lĩnh vực kinh tế, xã hội, … đều ứng dụng các thành tựu mới của tin học vào phục vụ công tác chuyên môn của mình Chính vì lẽ đó mà ngày càng nhiều người quan tâm đến thiết kế, xây dựng và ứng dụng cơ sở dữ liệu Cùng với sự phát triển Công nghệ thông tin ở nước ta, việc sử dụng các kiến thức về cơ sở dữ liệu vào thực tiễn ngày càng trở lên cần thiết
Như chúng ta đã biết có rất nhiều loại tài liệu, kiểu dữ liệu và việc phân loại chúng phụ thuộc vào mục đích sử dụng của người sử dụng Do vậy, việc cần thiết thực hiện là luôn tối ưu hóa mọi dữ liệu sao cho nó phục vụ con người tốt nhất Qua quá trình tìm hiểu và nghiên cứu, chúng tôi đã quyết định chọn hướng ứng dụng của cơ sở
dữ liệu XML Trong bài tiểu luận này chúng tôi đề cập cơ bản về XML, cơ sở dữ liệu XML và cách truy xuất dữ liệu trên nó Đặc biệt chúng tôi có đưa ra mô hình ứng dụng chung và bài toán cụ thể để áp dụng những gì nghiên cứu Đề tài nghiên cứu tập trung trong các đề mục sau:
Chương I: Tổng quan về XML và Cơ sở dữ liệu XML
Chương này nhằm giới thiệu chung các vấn đề: Thế nào là một tài liệu XML, lịch sử phát triển của XML; Cơ sở XML có những đặc trưng gì, vai trò và cách tiếp cận nó ra sao? Các mô hình XML đã được xây dựng như thế nào? Ngôn ngữ truy xuất tài liệu XML được sử dụng là gì?
Chương II: XQuery – Ngôn ngữ truy vấn cơ sở dữ liệu XML
Nội dung chính bài tiểu luận nằm ở chương này Trong phần này chúng tôi trình bày khá chi tiết về một loại ngôn ngữ truy vấn cơ sở dữ liệu XML là XQuery
Chương III: Xây dựng mô hình bài toán cụ thể sử dụng XQuery
Chương IV: Tổng kết và đánh giá
Phụ lục
Nhóm nghiên cứu
Nguyễn Huy Sinh Nguyễn Thị Hồng Xuân
Trang 2MỤC LỤC
Lời mở đầu….……… 1
Chương 1: Tổng quan về XML và cơ sở dữ liệu XML ……… 3
1.1 Giới thiệu chung về XML……… 3
1.1.1 XML là gì? ……… 3
1.1.2 Đặc điểm của XML……… 3
1.1.3 Cấu trúc một tài liệu XML……… 4
1.1.4 Tầm quan trọng của XML……… 5
1.2 XML và Database……… 5
1.2.1 Phương pháp tiếp cận cơ sở dữ liệu XML……… 5
1.2.2 Tại sao cần sử dụng dữ liệu XML……… 7
1.2.3 Ngôn ngữ truy vấn trong cơ sở dữ liệu XML……… 8
Chương 2: XQuery – Ngôn ngữ truy vấn cơ sở dữ liệu XML……… 10
2.1 Giới thiệu về XQuery……… 10
2.1.1 Định nghĩa XQuery……… 10
2.1.2 Tại sao lại sử dụng XQuery……… 10
2.2 Cấu trúc thể hiện Xquery……… 11
2.3 Tìm hiểu về Xpath và Biểu thức FLWOR……… 11
2.4 So sánh XQuery với SQL……… 15
Chương 3: Xây dựng mô hình bài toán cụ thể……… 16
3.1 Tính thực tế của bài toán ……… 16
3.2 Hướng giải quyết bài toán ……… 16
3.3 Quá trình triển khai bài toán ……….17
Chương 4: Nhận xét và đánh giá……… 17
4.1 Ưu điểm của XQuery ……… 17
4.2 Tối ưu hóa XQuery ……… 19
4.3 Kết luận về đề tài ……… 19
Phụ lục……… 20
Chương I: Tổng quan về XML và Cơ sở dữ liệu XML
Trang 31.1 Giới thiệu chung về XML
1.1.1 XML là gì?
Năm 1969, IBM đã cho ra đời ngôn ngữ đánh dấu đầu tiên của mình với tên gọi Generalized Markup Language (GML) GML là một ngôn ngữ tự đặc tả sử dụng cho việc đánh dấu cấu trúc của một tập dữ liệu nhất định Đồng thời GML được định hướng để trở thành một Super Language (siêu ngôn ngữ) - nghĩa là ngôn ngữ dùng để đặc tả cho ngôn ngữ khác
Về sau GML phát triển thành SGML (Standard Generalized Markup Language) Vào năm 1986, SGML được tổ chức ISO công nhận là chuẩn lưu trữ và chuyển đổi dữ liệu SGML được sử dụng để xây dựng những tài liệu như: sách vở, báo cáo, cẩm nang tham khảo, … Những tài liệu này sẽ được chuyển thành dạng thức biểu diễn được và sau đó gửi chúng ra thiết bị xuất như máy in, màn hình, …
Tuy nhiên, trở ngại lớn nhất đối với người dùng SGML là chúng quá phức tạp
và tiêu tốn nhiều công sức trong việc thực hiện Vì vậy hầu hết người dùng cá nhân và doanh nghiệp đều không thể đáp ứng những yêu cầu để sử dụng công nghệ hữu dụng này
Năm 1996, Word Wide Web Consortium (W3C) khởi động kế hoạch xây dựng một ngôn ngữ được gọi là XML (eXtensible Markup Language – ngôn ngữ đánh dấu
mở rộng) kết hợp được sức mạnh của SGML và tính phổ dụng của HTML Nó là một
bộ quy luật về cách chia một tài liệu ra làm nhiều phần, rồi đánh dấu và ráp các phần khác nhau lại để dễ nhận diện chúng
Sự xuất hiện của XML mang lại cho người dùng sức mạnh của SGML, ít tốn kém hơn và không phải đối mặt với sự phức tạp của SGML Hơn nữa việc viết parser (bộ phân tích vừ vựng và cú pháp) cho tài liệu XML cũng đơn giản hơn Ngoài ra, XML tương thích với các giao thức Internet và phần mềm xử lý, chuyển đổi dữ liệu XML được xem là một tập con của SGML, vì vậy XML có được khả năng tương thích với những hệ thống dựa trên SGML, giúp nhà phát triển vẫn có thể duy trì được những
hệ thống đã được xây dựng trên nền tảng SGML mà không phải tốn kém trong việc chuyển đổi
1.1.2 Đặc điểm của XML
- XML tương thích với SGML
- Dễ dàng viết được những chương trình xử lý tài liệu XML
- Tài liệu XML dễ đọc và có tính hợp lý cao
- XML được xây dựng với sự giảm thiểu những thuộc tính tùy chọn
- XML dễ dàng được sử dụng trên Internet
- XML hỗ trợ nhiều ứng dụng
- Không đặt nặng tính hình thức trong nội dung thẻ đánh dấu XML
Trang 41.1.3 Cấu trúc một tài liệu XML
Tài liệu XML chỉ chứa đựng dữ liệu và cách lưu trữ dữ liệu mà không hề đề cập tới cách thức trình bày dữ liệu Một tài liệu XML sẽ chứa những đặc tả về cấu trúc dữ liệu; mỗi cấu trúc gồm nhiều phần tử (element), mỗi thành phần được bắt đầu với một thẻ bắt đầu (Start - tag) và kết thúc với một thẻ kết thúc (End - tag) Giữa Start – tag và End – tag là nội dung của phần tử này Nội dung có thể bao gồm dữ liệu văn bản hay
có thể là một phần tử khác Dưới đây là hình ảnh ví dụ file XML
Một tài liệu HTML có thể tồn tại một số thẻ không đúng quy định (trình biên dịch sẽ bỏ qua những thẻ này) Tuy nhiên với một tài liệu XML thì điều này không thể xảy ra Khi xây dựng một tài liệu XML nó phải tuân thủ theo một số quy luật nào đó Những tài liệu XML tuân thủ đúng những quy luật này được gọi là “well-formed” (định dạng đúng) Với một tài liệu không phải là well-formed Internet Explorer sẽ thông báo lỗi khi nạp tài liệu này Tuy nhiên well-formed chưa chắc là một tài liệu hợp
lệ nếu nó không đảm bảo những quy tắc đặc tả trong tài liệu DTD (Document Type Definition) hay lược đồ (schema) Từ đây DTD hay schema sẽ định nghĩa mọi thứ từ cấu trúc dữ liệu tới kiểu dữ liệu, những thuộc tính được yêu cầu và những ràng buộc
về thành phần và thuộc tính được kết hợp trong tài liệu Phương thức kiểm tra tài liệu
Trang 5này thường được sử dụng trong giao tiếp giữa ứng dụng - ứng dụng, đảm bảo dữ liệu trao đổi hợp lệ tránh dẫn tới những ảnh hưởng của dữ liệu không hợp lệ trên toàn hệ thống
1.1.4 Tầm quan trọng của XML
Tính năng ưu việt nhất của XML là khả năng mở rộng kế thừa Các tổ chức và doanh nghiệp sẽ có khả năng mở rộng XML để đáp ứng những thử thách và các ứng dụng mới Một ngôn ngữ dựa trên XML hiện đang được sử dụng là CDF của Microsoft, Resourse Definition Format (RDF) và Open Software Description (OSD)
Vì tài liệu XML nằm dưới dạng Text String nên để tránh mất mát các Tag thì trong mỗi nghề nghiệp như cơ khí, y học, tin học,… người ta ấn định một số TAGs để quy định cách chứa dữ liệu và cả cách trình bày cho riêng nghề của mình Một công ty
cơ khí có thể dùng một chương trình chạy tự động (Robot) để đọ giá những vật liệu tư
từ các công ty cung cấp qua cách dùng XML Đây là khởi đầu cho việc giao dịch kinh doanh tự động (Business – To – Business B2B) Có một quy ước về cách dùng XML
để trao đổi dữ liệu đã được triển khai gọi là “Open Financial Exchange Format (OFX)” Người ta thiết kế OFX cho các chương trình tài chính như Microsoft Money
và Quicken trao đổi dữ liệu hay gửi dữ liệu tài chính đến nhà băng, …
Vì XML là một chuẩn công cộng, không thuộc về một công ty nào nên người dùng không sợ phải đụng chạm ai về sao chép hay bị giới hạn cách sử dụng, … Ví dụ với XML ta có thể tránh phải lệ thuộc hoàn toàn vào Microsoft Word khi gửi một tài liệu vì sợ đầu kia không có Microsoft Word Miễn là tất cả các Word Processors đều đọc, viết XML được ta có thể dùng XML làm phương tiện trao đổi các tài liệu Người dùng mỗi nơi có thể tự do chọn một Word Processor theo sở thích XML không những cho bạn tự định nghĩa các phần của tài liệu mà còn đặt quy ước về sự liên hệ của các phần đó
Vào năm 1998 hay 1999 thì còn quá sớm để xác định được XML sẽ đi đến đâu Nhưng đến thời điểm hiện tại thì XML được thừa nhận là một chuẩn giao dịch thông tin và có thể hiểu tại sao có quá nhiều sự xôn xao tập trung quanh XML
1.2 XML và Database
1.2.1 Phương pháp tiếp cận cơ sở dữ liệu XML
Nhu cầu sử dụng XML ngày càng tăng đòi hỏi các hệ thống lưu trữ dữ liệu bán cấu trúc mà không cần ép nó vào các cấu trúc dữ liệu không phù hợp Các yêu cầu này đều được đáp ứng bởi cả cơ sở dữ liệu XML nguyên gốc và cơ sở dữ liệu quan hệ hỗ trợ XML
Trong những năm đầu tiên của cơ sở dữ liệu XML, sự khác biệt giữa cái được gọi là cơ sở dữ liệu XML nguyên gốc (native XML database - NXD) và các hệ thống quản lý cơ sở dữ liệu quan hệ có hỗ trợ XML (relational database management
Trang 6systems - RDBMS) là rất lớn Các NXD được tối ưu hóa để lưu trữ các tài liệu XML, còn các bản RDBMS cũ chỉ có một số phần đượcc thêm vào các đối tượng nhị phân lớn (Binary Large Object - BLOB) để chứa XML
Ngày nay, các NXD vẫn là NXD nhưng được cải tiến rất nhiều Cùng thời điểm, các nhà cung cấp RDBMS đã có thời gian đuổi kịp khi chúng có thể lưu trữ các tài liệu XML Các phần XML không còn được lưu trữ trong các BLOBs Thay vì như vậy, chúng được lưu trữ trong các cấu trúc cây (tree – like structure), được tối ưu hóa để chứa các tài liệu có cấu trúc cây - bản chất tự nhiên của một tài liệu XML chuẩn
Cơ sở dữ liệu XML nguyên gốc
Giống như hầu hết các tên phân loại sản phẩm, thuật ngữ cơ sở dữ liệu XML nguyên gốc gây hiểu nhầm đôi chút Nó làm chúng ta thắc mắc kiểu như: Cơ sở dữ liệu là gì? XML nguyên gốc là gì? DB2 có phải là NXD nguyên gốc không?
Theo Wikipedia: “một cơ sở dữ liệu máy tính là một tập hợp có cấu trúc các bản
ghi hoặc dữ liệu được lưu trữ trong một hệ thống máy tính” XML nguyên gốc là cách
dùng của các công nghệ liên quan đến XML mà không pha tạp với các công nghệ phi XML Tức là khả năng sử dụng XQuery và XPath không có một chút SQL nào IBM
dự đoán trước câu hỏi có phải DB2 là XML nguyên gốc không bằng cách gọi các đặc tính của nó là pureXML Đây là một thuật ngữ mà IBM lựa chọn để tránh thuật ngữ cơ
sở dữ liệu XML nguyên gốc (native) nhưng vẫn muốn truyền tải bản chất nguyên gốc của XML trong giải pháp của họ Tên pureXML được chính thống hóa theo hai cách:
Dữ liệu XML được lưu trữ trong định dạng cây nguyên bản, tách biệt khỏi dữ liệu quan hệ
Được phép truy cập tất cả dữ liệu – cả quan hệ và XML – thông qua một giao diện XML đơn nhất
Sự kết hợp của dữ liệu quan hệ và dữ liệu XML trong pureXML giúp cung cấp
sự chuyển vị suôn sẻ - sự chuyển vị từng phần sang công nghệ XML
DB2 Express – C là một điển hình cho NXD, nhưng nó lại chia sẻ một số đặc tính Từ góc độ nào đó thì DB2 dường như giống một RDBMS với các cột XML DB2
là nền tảng cơ sở dữ liệu nguyên gốc Nó không cung cấp một lớp mỏng các chức năng chứa tài liệu mà rất nhiều NXD khác cung cấp Điều đó không có nghĩa là bạn không thể sử dụng DB2 để thực hiện chứa tài liệu – cho dù mỏng hay dày Hiện nay, hầu hết các kho chứa tài liệu như là Alfresco được cài đặt trên các RDBMS không hỗ trợ XML hơn là các NXD Sử dụng DB2 như là cơ sở cho những kho chứa này ít nhất cũng cho kết quả tương tự và hơn thế nữa với lợi ích được thêm vào của các mô hình
dữ liệu mềm dẻo hơn sử dụng khả năng lưu trữ XML
Khi so sánh các NXD với RDBMS có hỗ trợ XML, một NXD điển hình cũng có
thể được phân loại như là một kho chứa tài liệu Thuật ngữ kho chứa tài liệu được sử
Trang 7dụng bởi các sản phẩm như Alfresco và Magnolia Các sản phẩm này được xếp lớp trên cả các cơ sở dữ liệu hiện có và chúng thiếu cơ sở hạ tầng được cung cấp bởi eXist
và Mark Logic – Đáng chú ý nhất là khả năng chạy các XQuery một cách có hiệu quả Chúng tập trung vào các chức năng bậc cao như là luồng làm việc (workflow) và giao diện người dùng thân thiện Các NXD dành những thứ đó cho những người dùng trên các sản phẩm của mình Chúng chỉ cung cấp các hàm API chứa tài liệu bậc thấp, như
là Web-based Distributed Authoring and Versioning (WebDAV) hoặc các kết nối Restful tùy biến
Như vậy, một NXD điển hình lưu trữ các tài liệu XML một cách hiệu quả Nó cung cấp công nghệ Xquery và một lớp mỏng các chức năng kho dữ liệu Các NXD
dường như nhắm tới tài nguyên theo định hướng, nghĩa là các mẩu nội dung riêng
được lưu trữ trong kho chứa có thể được xác định bằng cách sử dụng các định danh tài nguyên đồng bộ (Uniform Resource Identifier - URI) Sử dụng HTTP hoặc WebDAV, các URI tương tự cho phép truy cập tới dữ liệu cái mà làm cho tính kết nối trở thành không vấn đề
Coi dữ liệu như là các tài nguyên đơn lẻ cũng có các yếu điểm của nó Sự chia tách tài liệu làm cho việc tạo quan hệ giữa các dữ liệu mà bị chia nhỏ khắp các đa dữ liệu trở lên khó khăn Nếu một tài liệu chứa các dữ liệu độc quyền mà các tài liệu khác tham chiếu đến, thì việc duy trì tính tích hợp tham chiếu càng khó khăn hơn Các nhà sản xuất cơ sở dữ liệu XML lớn cung cấp các lựa chọn để đặt các ràng buộc trên các
dữ liệu trong các đa tài liệu Tuy nhiên, điều này chưa được tiêu chuẩn hóa như các công nghệ XML khác
1.2.2 Tại sao cần sử dụng cơ sở dữ liệu XML
Các cơ sở dữ liệu thường có thể lưu trữ cả tài liệu không cấu trúc và có cấu trúc
Cả hai đều yêu cầu các cấu trúc dữ liệu mà không thường xuyên thay đổi Tuy nhiên, điểm yếu của các cơ sở dữ liệu quan hệ là việc lưu trữ các tài liệu bán cấu trúc Không như các dữ liệu có cấu trúc, các tài liệu bán cấu trúc này có thể có rất nhiều bậc tự do trong trật tự của các thành phần trong tài liệu và cách những thành phần đó được lồng vào nhau Không như các tài liệu không có cấu trúc, các thành phần riêng lẻ có thể được phân loại bằng cách sử dụng các nhãn mô tả
Bạn có thể lưu trữ dữ liệu bán cấu trúc trong các cấu trúc quan hệ không? Tất nhiên là bạn có thể, nhưng bạn có thể kết thúc bằng một cấu trúc dữ liệu cụ thể mà thường xuyên thay đổi, một cấu trúc dữ liệu tổng quát hóa mà làm mất mô tả của các nhãn hoặc một mô hình trừu tượng như là những thứ mà các hệ thống quản lý nội dung sử dụng, trộn dữ liệu với những thứ mà đáng ra là siêu dữ liệu (metadata) Mặt khác, định dạng XML phù hợp với việc mô tả dữ liệu bán cấu trúc Thêm nữa, bạn có thể duy trì mô hình dữ liệu một cách dễ dàng Thêm các tên của thành phần không làm
Trang 8thay đổi cấu trúc dữ liệu – nó luôn giữ cấu trúc cây Nó chỉ liên quan đến một sự thay đổi trong lược đồ XML mô tả cách thức mà các tên của phần tử được sử dụng và liên kết bên trong cấu trúc cây
Với các tài liệu như là các hồ sơ xin việc, các mô tả sản phẩm hay các đơn hàng của khách hàng, XML có lẽ là định dạng phù hợp Đồng thời, XML có khả năng mô tả
cả dữ liệu có cấu trúc và dữ liệu không có cấu trúc
Kết luận
Mặc dù các tài liệu XML có thể mô tả dữ liệu có cấu trúc, một NXD chứa nhiều tài liệu XML có lẽ không phải là giải pháp tối ưu để mô tả các quan hệ giữa dữ liệu có cấu trúc bị chia nhỏ thành nhiều tài liệu và duy trì tính toàn vẹn tham chiếu Nếu nó đã
có thể quản lý những mối quan hệ đó (sử dụng XPointer) thì việc sử dụng vẫn chưa được chuẩn hóa
Lời khuyên tốt nhất là sử dụng đúng công cụ cho đúng công việc Tuy nhiên, sự song hành của một NXD với một RDBMS tạo ra thách thức cho bảo toàn dữ liệu Các đặc tính của pureXML của DB2 kết hợp những cái tốt nhất của hai bên và cho phép lưu trữ cả dữ liệu có cấu trúc và dữ liệu bán cấu trúc Đối với dữ liệu không có cấu trúc, cả NXD và RDBMS đều thích hợp
Nếu chúng ta thực sự muốn tìm kiếm một kho chứa tài liệu hơn là một cơ sở dữ liệu cần phải xác định rõ câu hỏi của mình Các yêu cầu sẽ tập trung vào khả năng mặt trước (front-end) của kho chứa tài liệu hay chúng tập trung vào mặt sau (back-end)? Nếu muốn nhiều chức năng cho người dùng cuối như là một giao diện quản trị, dòng làm việc và trực quan hóa thì rất nhiều sản phẩm trên thị trường như là Alfesco cung cấp kiểu hỗ trợ này Nếu quan tâm đến các cơ chế truy vấn mạnh mẽ như là XQuery
và tìm kiếm văn bản đầy đủ và lưu trữ hiệu quả các tài liệu bán cấu trúc thì các NXD như là eXist hoặc Mark Logic có lẽ là lựa chọn tốt nhất trong trường hợp này
1.2.3 Ngôn ngữ truy vấn trong cơ sở dữ liệu XML
Đôi khi chúng ta cần phải lấy ra một tập con của dữ liệu được lưu trữ trong một tài liệu XML để sử dụng cho một số mục đích Giống như các cơ sở dữ liệu thông thường thì việc truy xuất tài liệu là quan trọng và cần được xây dựng một hệ thống phục vụ cho công việc này Có một số ngôn ngữ được tạo ra để truy vấn tài liệu XML bao gồm: Lorel, Quilt, UnQL, XDuce, XML-QL, XPath, XQL, XQuery và YaTL XPath đã được W3C công nhận và phát triển trong khi đó XQuery đang trên đường xây dựng Trọng tâm của việc truy vấn cơ sở dữ liệu XML sẽ là hai ngôn ngữ này Cả hai ngôn ngữ đều có thể được sử dụng để truy xuất và thao tác dữ liệu từ một tài liệu XML
XML Path Language (XPath)
Trang 9XPath là một ngôn ngữ để điều hướng các tài liệu XML, giải quyết một phần của một tài liệu XML mà sử dụng một cú pháp tương tự như đường dẫn phân cấp được sử dụng để giải quyết các bộ phận của một hệ thống tập tin hoặc URL XPath cũng hỗ trợ việc sử dụng các chức năng tương tác với dữ liệu được lựa chọn từ tài liệu XML Nó cung cấp chức năng truy cập thông tin về các nút tài liệu cũng như các thao tác của chuỗi, số và các phép toán luận XPath mở rộng các chức năng nên cho phép các nhà phát triển thêm chức năng thao tác với dữ liệu được lấy ra bằng một truy vấn XPath tới các thư viện hàm có sẵn XPath sử dụng một cú pháp XML nhỏ gọn để tạo điều kiện thuận lợi cho việc sử dụng XPath trong các URI và giá trị thuộc tính XML
Xpath hoạt động với cấu trúc trừu tượng, có tính lôgic của một tài liệu XML chứ không phải là cú pháp bề mặt Nó được thiết kế để hoạt động trên một tài liệu XML duy nhất mà nó xem như là một cây của các nút và các giá trị trả về bởi một truy vấn XPath được xem như là các nút Các nút trong mô hình dữ liệu XPath bao gồm:
nút văn bản (textnode), phần tử (element-node), thuộc tính (Attribute node), nút gốc (Root-Node), tên miền không gian (Namespace node), các nút lệnh xử lý (Processing instruction node) và các nút bình luận (Comment node).
XML Query Language (XQuery)
XQuery là một ngôn ngữ truy vấn cho nguồn dữ liệu Nó là một ngôn ngữ truy vấn mà có thể cung cấp cả chức năng và hình thức của dữ liệu tương tự như SQL cho
cơ sở dữ liệu quan hệ XQuery là một ngôn ngữ chức năng mà mỗi truy vấn là một biểu bức; biểu thức tồn tại ở bảy loại chính: biểu thức đường dẫn, xây dựng yếu tố, biểu thức FLWOR, biểu thức liên quan đến điều hành và các chức năng, biểu thức điều kiện, biểu thức định lượng, các biểu thức có kiểm tra hay sửa đổi các kiểu dữ liệu Cú pháp và ngữ nghĩa của các loại khác nhau đáng kể Do vậy nó ảnh hưởng rất nhiều đến việc thiết kế của XQuery
XQuery có một kiểu hệ thống phức tạp dựa trên các kiểu dữ liệu lược đồ XML
và hỗ trợ các thao tác trên các nút tài liệu không giống như XPath Ngoài ra các mô hình dữ liệu của XQuery không chỉ được thiết kế để hoạt động trên một tài liệu XML duy nhất mà còn là một well-form phân đoạn trên một tài liệu, một trình tự của văn bản hoặc một chuỗi các đoạn nhỏ trong tài liệu đó
W3C cũng đang làm việc hướng tới việc tạo ra một phiên bản thay thế của XQuery có ngữ nghĩa tương tự như sử dụng cú pháp dựa trên XML thay vì được đặt tên là XQueryX
Hướng nghiên cứu của đề tài
Trong khuôn khổ của bài tiểu luận này, chúng tôi tập trung vào nghiên cứu ngôn ngữ XQuery để tìm hiểu cấu trúc, cách xây dựng, ứng dụng của nó trong bài toán cụ thể sẽ được xét ở phần tiếp theo Từ đó đưa ra được ưu nhược điểm của loại truy vấn
Trang 10XML này với các truy vấn khác, so sánh và vận dụng trong các cơ sở dữ liệu thông thường Chúng tôi cũng xem xét mở rộng hướng nghiên cứu trên một hệ thống chức năng cao hơn nhằm thấy rõ tầm quan trọng và khả năng ứng dụng của XML hiện nay
Chương II: XQuery – Ngôn ngữ truy vấn
cơ sở dữ liệu XML
2.1 Giới thiệu về XQuery
2.1.1 Định nghĩa XQuery
XQuery là một ngôn ngữ truy vấn được tạo ra nhằm mục đích ruy vấn trong cơ
sở dữ liệu XML XQuery hỗ trợ các biểu thức đường dẫn để định vị trí trong cấu trúc phân cấp XML Thực tế XPath là một tập con của XQuery, do đó những cấu trúc của XPath cũng được áp dụng với XQuery XQuery hỗ trợ cả dữ liệu có kiểu và dữ liệu không có kiểu XQuery không chứa giá trị Null vì tài liệu XML bỏ đi những dữ liệu thiếu hay không xác định XQuery trả về một chuỗi các dữ liệu XML
Trong các biểu thức XQuery có phân biệt ký tự viết hoa và viết thường XQuery
hỗ trợ biểu thức FLWOR có những nét tương đồng với khối lệnh SELECT – FROM – WHERE trong SQL
2.1.2 Tại sao cần sử dụng XQuery
Có một câu hỏi đặt ra là tại sao lại sử dụng XQuery cho tài liệu XML trong việc truy xuất dữ liệu Có thể thấy ưu điểm của XQuery trong một số điểm chính sau:
Trong lập trình XQuery dễ hiểu và sử dụng hơn một số ngôn ngữ thủ tục như Java hay C
Trong cùng hệ thống dữ liệu với XML thì Xquery lại dễ hiểu và dễ yêu cầu hơn nếu sử dụng XSLT và do thiết kế XSLT chỉ chấp nhận đầu vào XML là chính
Cấu trúc cú pháp của XQuery khá giống với ngôn ngữ đã được biết đến rộng rãi là SQL
XQuery có một tập hợp phong phú các chức năng tích hợp
XQuery là một ngôn ngữ lý tưởng cho việc tích hợp thông tin doanh nghiệp
2.2 Cấu trúc thể hiện XQuery
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 Một danh mục trong Xquery có thể là: