Tải bản đầy đủ (.doc) (19 trang)

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ệ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (275.81 KB, 19 trang )

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ệ
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ố biểu thức của Xpath.
- Ký hiệu “/” sử dụng để chuyển từ một thành phần này sang một thành phần
khác ở cấp dưới nó. Ví dụ: “/cao hoc/CSDL NC/TailieuTK” =>trả về thành
phần node TailieuTK
- Ký hiệu “*” thay thế cho bất kỳ tên thẻ nào tính từ cấp con ngay sau của
thành phần trước ký hiệu “*”.Ví dụ: “/cao hoc/*/TailieuTK” => trả về một
thành phần bất kỳ của node TailieuTK mà nó tìm thấy gần nhất dưới nút con.
- Ký hiệu “@” dùng để chỉ thuộc tính. Ví dụ: /Thanhvien [@id]="1"/hoten[1]
=> trả về giá trị là họ tên của người đầu tiên mà có id=1
- Ký hiệu “//” dùng để chỉ việc lấy thông tin từ đây trở xuống.
- Lấy một giá trị là nội dung text thì ta sử dụng hàm “text()”.
- [] các vị từ của Xpath được đặt trong này, có thể hiểu nó như là điều kiện để
lọc lấy một thông tin mà theo điều kiện được đặt trong vị từ đó.
Các đặc điểm của Node.
Root node: nút gốc là nút đỉnh của tài liệu phân cấp
Element node: nút phần tử( nút con) Mỗi phần tử trong XML được thể hiện như
là một phần tử nút trong mô hình Xpath. Mỗi phần tử nút có một tên mà bao
gồm không gian tên URI của phần tử và phần vị trí của tên đó.
Attribute node: thuộc tính node. Mỗi một thuộc tính trong một tài liệu XML thì
được thể hiện trong Xpath như một thuộc tính node.
Textnode: Nội dung của phần tử node được thể hiện trong Xpath là một text
node. Giá trị chuỗi của text node là các đặc trưng dữ liệu. Một textnode không
có tên.
Namespace node: Một nút cụ thể thì chỉ thuộc về một không gian tên nhất định.
Comment node: đây là nút có chức năng như là ghi chú, giải thích.
Processing instruction node: Các node lệnh xử lý
Một số hàm chức năng trong Xpath và ý nghĩa:
Boolean Functions:

- boolean(): Xét những đối tượng như là các đối số của nó và được trả về giá
trị kiểu Boolean. Trường hợp đối số là số nếu đúng thì được trả về còn nếu
sai thì giá trị trả về không phải là số(NaN), nếu đối số là một node-set khi đó
nếu đúng thì được trả về còn nếu sai thì trả về node-set rỗng. Nếu đối số là
chuỗi thì đúng trả về còn sai thì không phải là chuỗi mà là rỗng.
11
XQuery và ứng dụng XML database trong CSDL phả hệ
- false(): Không mang đối số và trả về giá trị sai
- lang(): Mang một đối số là chuỗi. Trả về đúng nếu ngôn ngữ của ngữ cảnh là
ngôn ngữ được chỉ định bởi đối số chuỗi của một ngôn ngữ con trong tập
ngôn ngữ trong ngữ cảnh đó.
- not(): Mang một biểu thức Boolean như là đối số của nó, trả lại đúng nếu
như đối số đó đánh giá là sai và trả về sai nếu đối số đó đánh giá là đúng.
- true(): Không có đối số và trả về giá trị Boolean đúng.
Node-Set Functions:
- count(): Mang một đối số là tập các node, kết quả trả về là số node trong tập
node đó.
- id(): Mang một chuỗi là một đối số của nó và trả về một tập các node bao
gồm những node mà có thuộc tính của loại ID bằng với hàm của đối số.
- last(): Trả lại kết quả bằng với giá trị kích thước của bối cảnh
- local-name(): Không mang hoặc mang một tập các node và trả về phần vị trí
của tên phần tử nếu nó tồn tại, nếu không nó sẽ trả về phần tên của bối cảnh.
- name(): Không mang hoặc mang một tập các node đối số và trả về tên của
node
….
Numeric Functions:
- ceiling(): Mang một số là đối số của nó mà trả về một số nguyên nhỏ nhất
mà lớn hơn nó. (cận trái)
- floor(): Mang một số là đối số của nó mà trả về một số nguyên lớn nhất mà
thấp hơn nó. (cận phải)

- number(): Mang một chuỗi, Boolean hoặc một tập các node và trả về một số.
Nếu trong chuỗi có số thì nó trả về số đó, ngược lại thì nó không trả về số,
đối với kiểu đối số là Boolean là đúng thì trả về 1 ngược lại trả về 0.
- round(): Mang một số là đối số và trả về một số nguyên gần nhất( làm tròn).
- sum(): Mang một tập các node là đối số và trả về tổng các giá trị của mỗi
node sau khi chuyển đổi giá trị của các loại số nếu có thể.
String functions:
- concat(): Mang 2 hoặc nhiều hơn 2 chuỗi là đối số và kết quả trả về là xâu
ghép của các đối số đó theo thứ tự.
- contains(): Mang 2 chuỗi làm đối số, trả về kết quả là một giá trị Boolean
nếu xâu mang đối số thứ nhất chưa xâu thứ 2
- string-length(): Đối số là một xâu, kết quả trả về là độ dài của xâu đó.
- starts-with(): Đối số là hai xâu kết quả trả về là giá trị kiểu Boolean là đúng
nếu như xấu đối số đầu tiên bắt đầu với xâu đối số thứ 2.
12
XQuery và ứng dụng XML database trong CSDL phả hệ
- string(): Đối số là một số, một giá trị kiểu Boolean, một tập các node, kết
quả trả về là một chuỗi.

Các biểu thức FLWOR trong Xquery:
Trong SQL ta sử dụng khối lệnh
SELECT Distinct …
FROM ….
WHERE ….
GROUP BY….
(HAVING)….
ORDER BY…
Cũng tương tự như trong SQL, đối với biểu thức FLWOR thì một biểu thức có
thể chứa nhiều mệnh đề được xác định bằng các từ khóa. Các mệnh đề của biểu thức
FLWOR bắt đầu bằng những từ khóa và ý nghĩa của chúng như sau:

For: Thể hiện một vòng lặp với một chuỗi các giá trị đầu vào và được liên kết
lần lượt một biến với mỗi danh mục đầu vào. Ví dụ: cho tập các giá trị i=(1,2,3) hiện
ra kết quả với cách duyệt for
for $i in (1, 2, 3)
return <output> {$i} </output>
 Kết quả
<output>1</output>
<output>2</output>
<output>3</output>
Let: Khai báo một biến và gán cho nó một giá trị, có thể là một danh sách các
mục, tuy nhiên Let khác với For về cách duyệt. Ví dụ: cho tập các giá trị i=(1,2,3)
hiện ra kết quả với cách duyệt let
let $i := (1, 2, 3)
return <output>{$i}</output>
 Kết quả:
<output>1 2 3</output>
Where: Cũng giống như SQL mệnh đề này xác định điều kiện để lọc các kết quả
truy vấn. Ví dụ: cho một tập các giá trị nguyên i={1,2,3,4,5} trả về kết quả những giá
trị chẵn
13
XQuery và ứng dụng XML database trong CSDL phả hệ
For $i :=(1,2,3,4,5)
Where $i % 2 = 0
Return <output> $i</output>
 Kết quả
<output>2</output>
<output>4</output>
Order by: Xác định trật tự kết quả trả về. Ví dụ: cho một tập các giá trị
i=(7,9,2,3,4) trả về kết quả có săp xếp và không sắp xếp.
For $i := (7,9,2,3,4)

Return $i
 Kết quả:
7-9-2-3-4
For $i := (7,9,2,3,4)
Order by $i
Return $i
 Kết quả:
2-3-4-7-9
Return: Xác định kết quả được trả về.
=> Trong cấu trúc của biểu thức FLWOR có thể chỉ duyệt với FOR hoặc với LET
2.4 So sánh giữa XQuery với SQL
Có nhiều cách tiếp cận với cơ sở dữ liệu XML và với mỗi mục đích khác nhau
mà người ta xây dựng nên các hệ thống lưu trữ, truy xuất cũng như thao tác trên mỗi
tập dữ liệu. Như chúng ta đã thấy với mỗi loại dữ liệu sẽ có một hệ thống thao tác phù
hợp, đồng thời tồn tại những ưu nhược điểm của chính nó. Trong phần đánh giá nhỏ
này, chúng tôi tập trung đánh giá và so sánh XQuery với SQL - dữ liệu có cấu trúc
theo các quan hệ.
2.4.1 Điểm giống nhau giữa XQuery với SQL
Điểm giống nhau cơ bản nhất của XQuery với SQL là cú pháp câu lệnh của
chúng có ý nghĩa tương tự nhau. Vì vậy đã có tiêu chuẩn “XML of SQL” được xây
dựng và phát triển trong một thời gian ngắn.
2.4.2 Điểm khác nhau giữa XQuery và SQL
Mặc dù nhìn 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 khi đó các bảng biểu được hỗ 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 SQL
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
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 đến
Sử dụng các giá trị NULL để thể hiện các
giá trị thiếu hoặc không được biết đến
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
Chương III: Xây dựng mô hình bài toán cụ thể
sử dụng XQuery
3.1 Tính thực tế của bài toán
Từ xa xưa, để giữ gìn cho các thế hệ đời sau biết được nguồn gốc, vai vế thứ
bậc trong một dòng họ, lịch sử của dòng tộc, quá khứ anh hung cũng như trim nổi của
gia tộc mình. Rất nhiều người trong các dòng tộc đã bỏ biết bao tâm huyết ghi chép tỉ
mỉ ra các cuốn lịch sử của dòng họ ( hay rộng hơn đó là “Gia Phả Dòng họ”. Tuy
nhiên yếu tố về mặt con người và kỹ thuật ghi chép như vậy theo thời gian thì rất khó
để bảo vệ nó. Kể từ 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
ta một 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 điểm sau:
o Cây có một node gốc và node đó chính là thông tin diễn giải phả hệ:
<cay title="Phả hệ dòng họ Nguyễn Huy thôn Văn Lôi xã Tam Đồng - Mê
Linh - Hà Nội"></cay>
o Với mỗi một thanh viên thì sẽ lấy node: <thanhvien>, trong đó mỗi thành
viên là một ID riêng, không trùng nhau. <Thanhvien id="1">
<hoten>Nguyễn Huy Thành></hoten>
<namsinh>1852</namsinh>
<gioitinh>Nam</gioitinh>
<noimotang>Xứ Đồng Làng Ngói</noimotang>
o Mô hình phả hệ là mô hình sẽ lấy theo hướng phụ hệ tức là các con sẽ
theo cha. Quá trình này lặp lại mãi khi cứ mỗi lần có thêm một thành
viên mới. Tuy nhiên khi thể hiện phải thể hiện được mối quan hệ của
mỗi thành viên trong phả hệ như đương nhiên là cho ta biết con của ông
nào, và là cha của thành viên nào (quan hệ hai chiều) đời thứ bao nhiêu,
mẹ là ai ( vì một chồng có nhiều vợ).
- Các thành viên là vợ được tính là thành viên trong phả hệ và các thành viên là
con gái thì sẽ không thể hiện con cái của thành viên đó vào trong phả hệ.
- Một số trường thông tin thành viên của người này có thể có hoặc không.


3.3 Quá trình triển khai bài toán (đang xây dựng)
• Yêu cầu xây dựng các chức năng của hệ thống.
+ Tạo form thực hiện chức năng Thêm mới một thành viên ( Thêm một node
mới)
+ Tạo form thực hiên chức năng Sửa thông tin của một thành viên như là đính
16
XQuery và ứng dụng XML database trong CSDL phả hệ
chính tên, tuổi….
+ Tạo form thực hiện chức năng Tìm kiếm thông tin thành viên
+ Tạo báo cáo, thống kê
Chương IV: Tổng kết và đánh giá
4.1 Ưu điểm của XQuery
Những ưu điểm chủ yếu của XQuery là:

- Tính biểu cảm: XQuery có thể truy vấn nhiều cấu trúc dữ liệu khác nhau và
tính chất đệ quy của nó làm cho nó lý tưởng cho các truy vấn cấu trúc cây và đồ
thị .
- Tính ngắn gọn: XQuery báo cáo ngắn hơn so với các chương trình tương tự
như SQL, XSLT.
- Tính linh hoạt: XQuery có thể truy vấn dữ liệu phân cấp và bảng.
- Tính nhất quán: XQuery có cú pháp phù hợp và có thể được sử dụng với các
tiêu chuẩn khác chẳng hạn như XML Schema cho kiểu dữ liệu XML.
XQuery thường xuyên được so sánh với hai ngôn ngữ: SQL và XSLT nhưng
XQuery có một số ưu điểm hơn.
Ưu điểm hơn so với 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 bất cứ ai quen thuộc với
SQL. Nhiều cấ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 điểm lớn của XQuery là: XQuery là ngôn ngữ truy vấn nguyên gốc cơ
bản của World Wide Web. Người ta có thể truy vấn các trang web thực tế với XQuery,
nhưng không phải SQL. Thậm chí nếu một người sử dụng dựa trên cơ sở dữ liệu SQL
để lưu trữ các trang HTML / XHTML hoặc các phần của các trang như vậy, người ta
sẽ bỏ lỡ rất nhiều trong những lợi thế tìm kiếm Tag hay thuộc tính đơn giản của
XQuery (giống như tìm kiếm cho tên cột trong các tên cột).
Ưu điểm hơn so với XSL
Không giống như XSLT, XQuery có thể nhanh chóng học được bởi bất cứ ai đã
quen thuộc với SQL. XSLT có nhiều mô hình không quen thuộc với nhiều nhà phát
triển phần mềm thủ tục. Ngoài ra, trong khi XSLT sử dụng như một phương tiện tĩnh
cho chuyển đổi một loại tài liệu khác tốt, ví dụ RSS sang HTML, thì XQuery là một
công cụ truy vấn năng động hơn, hữu ích cho việc đẩy các phần dữ liệu từ các tài liệu
lớn hoặc số lượng tài liệu lớn.
4.2 Tối ưu hóa XQuery
Có hai nhóm quan trọng đã ảnh hưởng đến sự phát triển của XPath / XQuery.
• Nhóm đầu tiên, cộng đồng tài liệu chủ yếu quan tâm tới việc thay đổi định
dạng của XML. Họ đang tiếp tục tìm kiếm cho sự phát triển này của công cụ
mới cho phép dễ dàng thao tác và chuyển đổi các tài liệu XML tương đối
nhỏ.
• Nhóm thứ 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. Việc tối ưu hóa các 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 bỏ bản sao, đại số và các chỉ số XML. Đây là những nghiên
cứu được phát triển bởi nhóm Galax XQuery Engine từ AT & Labs và Lucent – Bell
Labs.
Đây là hướng nghiên cứu mở rộng cho đề tài này; nếu có thời gian và điều
kiện, chúng tôi sẽ tiếp tục với công việc nghiên cứu tối ưu cho một ngôn ngữ truy vấn
đang dần trở lên phổ biến để thay thế các ngôn ngữ thủ tục. Đồng thời sẽ có ứng dụng
18
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 quyết song đây là những bước nghiên cứu chính để đi sâu
vào nghiên cứu về XQuery nói riêng và XML Database nói chung. Bài tiểu luận khó
tránh khỏi những sai sót, chúng tôi rất mong nhận được sự đóng góp ý kiến từ thầy
giáo và các bạn để hướng nghiên cứu này có ứng dụng cao hơn trong thực tế phát triển
công nghệ thông tin ngày nay.
PHỤ LỤC

Tài liệu tham khảo
[1]. Beginning XML, 4th Edition ( 5 tác giả)
[2]. XML Data Management, Native XML and XML – Enabled Database Systems,
Akmal B. Chaudhri, Awais Rashid, Roberto Zicari
[3]. Nhập môn cơ sở dữ liệu DB2 Express – C, DR. Arvind Krishna
[4]. XML and Database, Bourret, Ronald
[5]. Making Legacy Data Accessible For XML Applications, Turau, Volker
[6]. Wikipedia
[7]. Professinal XML Database, Kevin Williams
[8]. /> />19

×