Nội dung Tổng quan về XML và cơ sở dữ liệu XML XQuery – Ngôn ngữ truy vấn cơ sở dữ liệu XML Bài toán cơ sở dữ liệu phả hệ - ứng dụng XQuery trong cơ sở dữ liệu XML Ưu điểm và hướng n
Trang 1Môn học: Cơ sở dữ liệu nâng cao Giảng viên: TS Nguyễn Hà Nam Nhóm thực hiện: Nguyễn Huy Sinh
Nguyễn Thị Hồng Xuân
Đề tài: XQuery và ứng dụng XML trong
cơ sở dữ liệu Phả hệ
1
Trang 2Nội dung
Tổng quan về XML và cơ sở dữ liệu XML
XQuery – Ngôn ngữ truy vấn cơ sở dữ liệu XML
Bài toán cơ sở dữ liệu phả hệ - ứng dụng XQuery trong cơ sở
dữ liệu XML
Ưu điểm và hướng nghiên cứu mở rộng của XQuery
2
Trang 3Lịch sử và khái niệm XML
GML – SGML – XML ( do W3C xây dựng)
XML (eXtensible Makeup Language) Ngôn ngữ đánh dấu
mở rộng, XML kết hợp được sức mạnh của SGML và tính
phổ dụng của HTML XML là một bộ các 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à ghép
các phần khác nhau lại để dễ nhận diện ra chúng
3 Tổng quan về XML và cơ sở dữ liệu XML
Trang 4Đặc điểm của XML
Dễ thích nghi với SGML
Dễ dàng viết chương trình xử lý tài liệu XML
Tài liệu XML dễ đọc và có tính tích hợp 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 và không đặt nặng tính hình thức trong nội dung thẻ đánh dấu XML
4 Tổng quan về XML và cơ sở dữ liệu XML
Trang 5Cấu trúc tài liệu XML
XML chứa đựng những đặc tả về cấu trúc dữ liệu chỉ
lưu trữ dữ liệu mà không quan tâm đến trình bày dữ
liệu.
Ví dụ: < Thanhvien > nội dung </ Thanhvien >
<> và </> cặp thẻ bắt đầu và kết thúc
Phần tử là thành viên
Nội dung có thể là các đoạn text hoặc một thành phần
XML khác
5 Tổng quan về XML và cơ sở dữ liệu XML
Trang 6Tầm quan trọng của XML
Khả năng mở rộng kế thừa
Thuận tiện cho việc trao đổi
Người dùng không bị giới hạn cách sử dụng, và không sợ sự
sao chép do XML là một chuẩn công cộng
XML và HTML sẽ là công nghệ tương lai
6 Tổng quan về XML và cơ sở dữ liệu XML
Trang 7Phương pháp tiếp cận XML database
Cơ sở dữ liệu XML nguyên gốc (Native XML database –
NXD): XML nguyên gốc là cách dùng các công nghệ liên quan đến XML không pha tạp với các công nghệ phi XML
Dữ liệu XML được lưu trữ dạng cây nguyên bản và tách khỏi
cơ sở dữ liệu quan hệ
Các cơ sở dữ liệu thường có thể lưu trữ cả tài liệu không có
cấu trúc và có cấu trúc Đ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 XML database khắc phục được những yếu điểm này
7 Tổng quan về XML và cơ sở dữ liệu XML
Trang 8Ngôn ngữ truy vấn trong XML database
Tra cứu dữ liệu trong cơ sở dữ liệu luôn là một nhu cầu thiết
thực đối với mỗi cá nhân làm công nghệ và quản lý cơ sở dữ
liệu
XQuery là ngôn ngữ truy vấn được sử dụng trong việc truy
xuất cơ sở dữ liệu XML Ngôn ngữ XQuery tìm hiểu là XPath
và biểu thức FLWOR
8 Tổng quan về XML và cơ sở dữ liệu XML
Trang 9Giới thiệu về XQuery
• XQuery là một ngôn ngữ truy vấn được tạo ra nhằm mục đích
truy 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
• 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
9 Xquery – Ngôn ngữ truy vấn cơ sở dữ liệu XML
Trang 10Cấ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
10
Trang 11XPath – Biểu thức đường dẫn
Một số ký hiệu trong XPath
– “/”: thể hiện thành phần phía dưới nó
– “@” dùng để chỉ thuộc tính
– “*” 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
– “//” dùng để chỉ việc lấy thông tin từ đây trở xuống
– [] điều kiện để lọc lấy một thông tin mà theo điều kiện được đặt trong vị từ đó
11 Xquery – Ngôn ngữ truy vấn cơ sở dữ liệu XML
Trang 12XPath – Biểu thức đường dẫn(tt)
Một số biểu thức và ý nghĩa trong XPath
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.
false() Không mang đối số và trả về giá trị sai
count() Mang một đối số là tập các node, kết quả trả về là số node
trong tập node đó.
number() Mang một chuỗi, Boolean hoặc một tập các node và trả về
một số
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ể
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ự.
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
12 Xquery – Ngôn ngữ truy vấn cơ sở dữ liệu XML
Trang 13Đặc điểm của node trong XPath
XPath là một text node
gian tên nhất định
giải thích
13 Xquery – Ngôn ngữ truy vấn cơ sở dữ liệu XML
Trang 14Biểu thức FLWOR
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
một danh sách các mục, tuy nhiên Let khác với For về cách
duyệt
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
Order by Xác định trật tự kết quả trả về
Return Xác định kết quả được trả về
For – let - where – Order by - Return
14 Xquery – Ngôn ngữ truy vấn cơ sở dữ liệu XML
Trang 15So sánh XQuery và 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
15
Trang 16Tính thực tế và yêu cầu của bài toán
Nhu cầu thực tế việc lưu trữ dữ liệu về các thế hệ trong một
dòng tộc
Nhu cầu về kỹ thuật triển khai trước đây chưa đáp ứng tốt nhất khả năng lưu trữ
Yêu cầu phả hệ với các đặc điểm sau:
Node gốc mô tả cây tên cây phả hệ
Mỗi thành viên là một node con và ID riêng
Phả hệ tuân theo quy tắc phụ hệ (con theo cha)
Các thành viên là “vợ” cũng thuộc cây, thành viên là con gái thì không thể hiện con cái họ
Thành viên có thể có một trường thông tin nào đó hoặc
không có nó
16 Cơ sở dữ liệu phả hệ ứng dụng XQuery
Trang 17Hướng giải quyết và triển khai ứng dụng
Tạo form thực hiện chức năng:Thêm mới một thành
viên
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 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ê
Triển khai ứng dụng
17 Cơ sở dữ liệu phả hệ ứng dụng XQuery
Trang 18Ưu điểm của Xquery
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
18 Ưu điểm và hướng nghiên cứu mở rộng của XQuery
Trang 19Tối ưu hóa 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
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ả
Đây là hướng nghiên cứu mở rộng cho đề tài này.
19 Ưu điểm và hướng nghiên cứu mở rộng của XQuery
Trang 20Chân thành cảm ơn sự theo dõi
của thầy giáo và các bạn!
20