TIỂU LUẬN MÔN CƠ SƠ DỮ LIỆU NÂNG CAO XQuery và ứng dụng XML trong cơ sở dữ liệu Phả hệ

19 735 10
TIỂU LUẬN MÔN CƠ SƠ DỮ LIỆU NÂNG CAO XQuery và ứng dụng XML trong cơ sở dữ liệu Phả hệ

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

XQuery và ứng dụng XML database trong CSDL phả hệ Lờ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 1 XQuery và ứng dụng XML database trong CSDL phả hệ MỤ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 2 XQuery và ứng dụng XML database trong CSDL phả hệ 1.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 1.1.3 Cấu trúc một tài liệu XML 3 XQuery và ứng dụng XML database trong CSDL phả hệ 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 nà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 4 XQuery và ứng dụng XML database trong CSDL phả hệ 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 systems - 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, 5 XQuery và ứng dụng XML database trong CSDL phả hệ 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ử dụ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 6 XQuery và ứng dụng XML database trong CSDL phả hệ 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 thay đổ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. 7 XQuery và ứng dụng XML database trong CSDL phả hệ 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) XPath 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 8 XQuery và ứng dụng XML database trong CSDL phả hệ 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 XML 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 9 XQuery và ứng dụng XML database trong CSDL phả hệ 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à: + Giá trị nguyên tử bất kì. + Một nút XML như phần tử, thuộc tính, hoặc một nút văn bản. + 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. 2.3 Tìm hiểu về Xpath và Biểu thức FLWOR Có rất nhiều các mô hình Xquery ( Xquery Model) ta tập trung nghiên cứu 2 mô hình Xquery tiêu biểu là biểu thức đường dẫn Xpath và các biểu thức FLWOR. Các biểu thức đường dẫn trong Xquery (Xpath). 10 [...]... XQuery và ứng dụng XML database trong CSDL phả hệ thực tế cho hướng nghiên cứu này nhằm xây dựng và phát triển hệ thống cơ sở dữ liệu XML – một hướng đi mới cho sự phát triển Công nghệ thông tin 4.3 Kết luận về đề tài Trong bài tiểu luận này chúng tôi đã tìm hiểu nghiên cứu cơ bản về XML, cơ sở dữ liệu XML và truy vấn XQuery Quá trình tìm hiểu còn hạn chế và chưa phát huy được hết các vấn đề cần giải... chung XQuery và SQL quá giống nhau như người ta nghĩ thì giữa chúng lại tồn tại những sự khác biệt lớn; bởi vì XQuery được thiết kế để thao tác với các mô hình dữ liệu có nhiều đặc trưng khác biệt Các tài liệu XML khác với dữ liệu 14 XQuery và ứng dụng XML database trong CSDL phả hệ kiểu quan hệ ở chỗ nó có cấu trúc phân cấp và có tính chất thứ bậc đã có sẵn (điều này thấy rõ trong cấu trúc cây) Trong. .. SQL Không giống như SQL, XQuery không chỉ trả về các bảng mà là cấu trúc cây tùy ý Điều này cho phép XQuery trực tiếp tạo ra các cấu trúc XHTML có thể được sử dụng trong các trang web XQuery cho các cơ sở dữ liệu đối tượng dựa trên XML, và cơ sở dữ liệu đối tượng sẽ linh hoạt hơn nhiều và mạnh hơn so với cơ sở dữ liệu lưu trữ hoàn toàn ở định dạng bảng Không giống như XSLT, XQuery có thể được học bởi.. .XQuery và ứng dụng XML database trong CSDL phả hệ Trong một tài liệu XML có thứ bậc hoặc cây, hầu hết các mối quan hệ ẩn trong hệ thống phân cấp, do đó cú pháp của Xpath thiết kế để làm cho việc tra cứu dữ liệu dễ dàng cho từng vị trí trong tài liệu, để hình dung một cách chính xác thì ta hình dung nó như là cách bố trí hệ thống file, thư mục trong cây tài liệu máy tính Một số... cách thể hiện dữ liệu trong trường hợp này một cách trực quan hơn đó là XML database Dữ liệu được lưu dưới dạng XML thể hiện tính chất như một cây dữ liệu với node gốc, các node con, các thuộc tính node đều có thể được thể hiện rất trực quan 15 XQuery và ứng dụng XML database trong CSDL phả hệ 3.2 Hướng giải quyết bài toán  Các yêu cầu và đặc điểm của bài toán: - Xây dựng một cây phả hệ với các đặc... trợ trong hệ quản trị cơ sở dữ liệu quan hệ lại là cấu trúc phẳng và dựa trên tập hợp, do đó mà các bản ghi sẽ không có thứ tự 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 XQuery Hỗ trợ các biểu thức đường dẫn để cho phép các lập trình viên sử dụng dễ dàng hơn thông qua cấu trúc phân cấp của XML Hỗ trợ cả hai dữ liệu. .. trúc của XQuery tương tự với SQL như: - Thứ tự kết quả: Cả XQuery và SQL đều thêm một thứ tự quy định tại mệnh đề truy vấn - Lựa chọn giá trị riêng biệt: Cả XQuery và SQL đều có cách dễ dàng để chọn các giá trị khác biệt từ một tập hợp kết quả - Hạn chế trên hàng: Cả XQuery và SQL có một mệnh đề WHERE X = Y có thể được thêm vào một Xquery 17 XQuery và ứng dụng XML database trong CSDL phả hệ Một ưu... hai, cộng đồng dữ liệu chủ yếu quan tâm tới việc định dạng lưu trữ dữ liệu XML Trọng tâm phần này là thiết kế ngôn ngữ truy vấn và lưu trữ cú pháp để chọn dữ liệu từ khối lượng lớn dữ liệu XML một cách hiệu quả Cho đến gần đây, có nhiều người quan tâm đến vấn đề tối ưu hóa Xpath và Xquery Lý do là vì XML được sử dụng chủ yếu trong việc thay đổi định dạng hơn là việc lưu trữ các dữ liệu có quy mô lớn... truy vấn tài liệu nhở dường như không phải là rất hữu ích Tuy nhiên, với việc sử dụng thay đổi hướng tới mô hình dữ liệu theo hướng XML, nỗ lực thự hiện nó đã cho phép chúng ta đánh giá hiệu quả của Xpath và Xquery Xquery còn là một tiêu chuẩn khá trẻ và có nhiều vấn đề liên quan đến tối ưu hóa cần giải quyết Công việc này sẽ tập trung vào ba khía cạnh của tối ưu hóa trong cơ sở dữ liệu XML là: xóa... khi công nghệ thông tin phát triển đã có rất nhiều người, nhóm lập trình đã thể hiện các chương trình mô tả phả hệ của mình Hầu hết đều phân tích và thể hiện dựa trên cơ sở dữ liệu quan hệ, tuy nhiên nếu hình dung một phả hệ thì nó như một cái cây có rất nhiều nhánh và đi lên từ gốc Điều này làm cho cách tiếp cận cơ sở dữ liệu kiểu đó là tương đối khó Tuy nhiên sự phát triển của công nghệ đã cho chúng . 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. 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 …………………. hình thức trong nội dung thẻ đánh dấu XML 1.1.3 Cấu trúc một tài liệu XML 3 XQuery và ứng dụng XML database trong CSDL phả hệ Tài liệu XML chỉ chứa đựng dữ liệu và cách lưu trữ dữ liệu mà không

Ngày đăng: 08/07/2015, 16:06

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan