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

TIỂU LUẬN MÔN CƠ SƠ DỮ LIỆU NÂNG CAO Xpath và ứng dụng bài toán quản lý thông tin sinh viên

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 (454.37 KB, 17 trang )

1
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGÔN NGỮ XPATH VÀ ỨNG DỤNG
BÀI TOÁN QUẢN LÝ THÔNG TIN SINH VIÊN
Báo cáo môn Cơ sở dữ liệu nâng cao
Nhóm 8: Phạm Huyền Trang
Đinh Thị Hương
HÀ NỘI - 2012
MỤC LỤC
1. Tổng quan về cơ sở dữ liệu XML 3
1.1. XML 3
1.2. Tài liệu XML 7
2. Cách sử dụng một tài liệu XML trong môi trường Visual Studio 8
3. Ngôn ngữ Xpath và ứng dụng bài toán quản lý thông tin sinh viên 9
3.1. Cú pháp của XPath 9
3.2. Ứng dụng vào bài toán quản lý thông tin sinh viên 10
4. Kết luận 16
5. Tài liệu tham khảo 17
2
1. Tổng quan về cơ sở dữ liệu XML
1.1. XML
1.1.1. Khái niệm XML
XML (Extensible Markup language) là ngôn ngữ đánh dấu mở rộng do tổ chức mạng toàn
cầu W3C (world wide web consortium ) định nghĩa, để tạo ra các ngôn ngữ đánh dấu khác
[1, 2, 3]. XML được kết hợp bởi tính mềm dẻo của SGML (Standard Generalized Markup
Language ) và tính đơn giản của HTML có khả năng mô tả nhiều loại dữ liệu khác nhau. Nó
là ngôn ngữ tổng quát dùng để lưu trữ dữ liệu thông qua các thẻ có nghĩa.
XML đưa ra một định dạng chuẩn cho cấu trúc dữ liệu hoặc thông tin bằng việc tự định nghĩa
dạng của tài liệu. Là ngôn ngữ đánh dấu độc lập với phần mềm, phần cứng và nền (cross
-platform). Bằng cách này, dữ liệu được lưu trữ bằng XML sẽ độc lập với việc xử lý. Vì vậy


XML ra đời sẽ đáp ứng được nhu cầu ngày càng cao trong trao đổi và xử lý thông tin. Điểm
nổi bật của XML là nó được xây dựng theo cấu trúc phân cấp bằng các thẻ tự định nghĩa bởi
người dùng theo đúng định nghĩa chuẩn của W3C - những thẻ này làm cho tài liệu XML đa
dạng hơn những ngôn ngữ thông thường như HTML. Ngày nay, XML đã trở thành chuẩn
chính thức trên Internet và là công nghệ mới cho việc hiển thị, trao đổi, lưu trữ và truy xuất
dữ liệu của World wide web.
Như vậy mục tiêu đặt ra cho sự ra đời XML là gì? Đó là, đầu tiên nó sẽ tương thích với
SGML và dễ dàng viết những chương trình để xử lý cho những tài liệu XML. Kế tiếp, những
tài liệu XML rõ ràng, dễ đọc, dễ dàng tạo lập. Và điều quan trọng là nó được hỗ trợ trong
nhiều ứng dụng.
1.1.2. XML và vấn đề lưu trữ thông tin
Ngày nay, các hệ thống tin học hỗ trợ dịch vụ khách hàng không còn xa lạ đối với chúng ta vì
tầm quan trọng và ích lợi của nó trong vấn đề giao dịch. Đối với bất kỳ một hệ thống tin học
nào, vấn đề quan trọng cần được quan tâm đầu tiên là tổ chức tốt việc lưu trữ dữ liệu. Nếu dữ
liệu được tổ chức tốt thì hệ thống sẽ cải thiện về mọi mặt như tốc độ truy xuất, chi phí lưu
trữ, thời gian cập nhật Như vậy làm cách nào để tổ chức tốt việc lưu trữ dữ liệu nhất là các
ứng dụng dịch vụ khách hàng chạy trong môi trường Internet, môi trường đa người dùng Để
giải quyết vấn đề này, một số giải pháp cho vấn đề lưu trữ dữ liệu của hệ thống được đề nghị
như sau:
Giải pháp 1: Chỉ sử dụng các tập tin XML
3
Theo giải pháp này, việc tổ chức lưu trữ dữ liệu được mô tả theo sơ đồ sau:
Hình 1: Mô hình lưu trữ dữ liệu chỉ sử dụng các tập tin XML
Ký hiệu : A_XMLDom chỉ đến một đối tượng XML có thể đọc và ghi trên tập tin XML
Ưu điểm : Không phụ thuộc vào bất cứ hệ quản trị cơ sở dữ liệu nào, dễ cài đặt và triển khai
phần mềm
Nhược điểm: Việc thao tác truy vấn trên tập tin XML còn nhiều hạn chế và vấn đề bảo mật
không bằng hệ quản trị cơ sở dữ liệu.Tính hiệu quả không cao khi khối lượng dữ liệu lớn.
Nhận xét:
• Mô hình lưu trữ dữ liệu dạng này thích hợp cho các phần mềm trò chơi,các phần mềm

với khối lượng dữ liệu nhỏ và vừa.
• Mô hình này không thích hợp cho các phần mềm hệ thống quản lý. Rất thích hợp cho
các ứng dụng trên môi trường tin học không có hoặc chưa có hệ quản trị cơ sở dữ liệu
như : điện thoại di động, máy công cụ
Giải pháp 2 : Lưu trữ toàn bộ bên trong cơ sở dữ liệu, tài liệu XML khi đó được nhúng
vào nội dung các bảng dữ liệu
Hình2: Mô hình kểt hợp lưu trữ cả tập tin XML và cơ sở dữ liệu
Ưu điểm : Tận dụng được cả hai cách lưu trữ đó là lưu trữ trên tập tin và lưu trữ trên hệ quản
trị cơ sở dữ liệu.
4
Nhược điểm: Không phải tập tin XML nào cũng có thể đọc/ ghi bằng đối tượng database vì
có nhiều tập tin XML lưu trữ phức tạp
Giải pháp 3:
Hình 3: Mô hình giải pháp 3
Ưu điểm : Mô hình này nghiêng về việc lưu trữ trên tập tin XML. Việc trao đổi giữa một đối
tượng XMLDOM và cơ sở dữ liệu quan hệ cũng dễ dàng vì từ SQL Server2000 trở lên đã hỗ
trợ truy xuất trên tập tin XML.
Nhược điểm : Mặc dù từ SQL 2000 trở lên đã có hỗ trợ XML nhưng việc tạo ra tập tin XML
vẫn còn bị lỗi do không thể tạo ra đúng cấu trúc mà người dùng mong đợi nếu như cấu trúc
XML đó phức tạp.
Kết luận: Mỗi mô hình giải pháp trên đều có ưu và nhược điểm khác nhau. Việc chọn lựa
mô hình nào sẽ tùy thuộc vào yêu cầu của từng ứng dụng. Nghĩa là ứng dụng của chúng ta
quan tâm đến vấn đề nào? Vấn đề nào là vấn đề được quan tâm hàng đầu thì lúc đó chúng ta
sẽ lựa chọn giải pháp lưu trữ dữ liệu cho phù hợp.
1.1.3. XML và cơ sở dữ liệu quan hệ
Mặc dù XML rất hiệu quả trong quá trình trao đổi, truy xuất trên Internet nhưng nó không
thể có được những tính năng tuyệt vời của cơ sở dữ liệu (CSDL) quan hệ như lưu trữ hiệu
quả với dung lượng cực lớn, sao chép dự phòng, phục hồi dữ liệu, tối ưu hệ thống Do đó,
nhu cầu chuyển đổi dữ liệu từ XML sang CSDL quan hệ là rất cần thiết khi lượng tải XML
ngày càng tăng.

XML/relational mapping là quá trình chuyển đổi giữa mô hình quan hệ và XML. Văn bản
XML có thể chuyển thành mô hình quan hệ và ngược lại. Có nhiều cách thức để thực hiện
việc chuyển đổi này. Mô hình XML có định dạng phân cấp. Dữ liệu được biểu diễn trong cấu
trúc dạng cây : có các node và mối quan hệ giữa các node . Lược đồ XML cung cấp khả năng
mềm dẻo và dễ dàng thay đổi lại cấu trúc. Nhiều phần tử có thể được biểu diễn trong cùng
một hệ thống phân cấp, bao gồm một phần tử gốc “Comments” và một hoặc nhiều phần tử
con “comments” liên quan đến mục đó.
5
So sánh mô hình XML và mô hình cơ sở dữ liệu quan hệ ta thấy dữ liệu XML thì phân cấp
còn dữ liệu quan hệ thì được biểu diễn bởi một mô hình của các mối quan hệ logic. Dữ liệu
XML có cơ chế tự mô tả trong khi đó dữ liệu quan hệ không có cơ chế đó. Dữ liệu XML có
cơ chế trật tự vốn có còn dữ liệu quan hệ không có cơ chế này. Từ bảng cơ sở dữ liệu ta có
thể chuyển sang dữ liệu XML như sau:
6
1.2. Tài liệu XML
1.2.1. Khái niệm tài liệu 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) [3]. 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.
Một tài liệu XML well- formed chưa chắc là một tài liệu hợp lệ. Một tài liệu XML đựơc xem
là hợp lệ nếu nó đảm bảo những quy tắc đặc tả trong tài liệu Document Type Definition
(DTD) hay lược đồ (schema). Một 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 đuợ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 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.2.2. Cấu trúc của 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ột tài liệu XML có các thành phần sau:
• Khai báo : Mỗi một tài liệu XML có một chỉ thị khai báo
• Chú thích : Được khai báo như sau:
• Phần tử (Elements): Một tài liệu XML được cấu thành từ những phần tử. Mỗi cấu trúc
gồm nhiều phần tử (element), mỗi phần tử được bắt đầu với một thẻ mở (start – tag) và
kết thúc với một thẻ đóng (end - tag). Giữa thử đóng và thẻ mở là nội dung của phần tử
này. Phần tử có thể chứa dữ liệu hoặc có thể lồng vào một phần tử khác
• Phần tử gốc (root) : Trong tài liệu XML, chỉ có một phần tử gốc, và phần tử này sẽ chứa
tất cả những phần tử của tài liệu XML do chúng ta tạo ra.
• Thuộc tính : Như đã trình bày ở trên, một phần tử có thể chứa dữ liệu hoặc chứa phần tử
khác hoặc cả hai. Bên cạnh đó, phần tử có thể rỗng, khi đó nó có thể chứa thuộc tính. Mỗi
thuộc tính chỉ là một sự lựa chọn để gắn dữ liệu đến phần tử. Một thuộc tính đặt trong thẻ
mở của phần tử và chỉ ra giá trị của nó bằng cách sử dụng cặp “name = value”.
7
Chúng tôi đã trình bày về các khái niệm cơ bản của XML cũng như một tài liệu XML. Đồng
thời giới thiệu về cấu trúc của một tài liệu XML. Vậy, câu hỏi được đặt ra là: sử dụng tài liệu
XML như thế nào? Và làm thế nào để truy cập đến một tập tin XML? Câu trả lời được trình
bày trong phần 2 và 3 của bài báo cáo.
2. Cách sử dụng một tài liệu XML trong môi trường Visual Studio
Tiếp theo, chúng tôi sẽ giới thiệu một số kỹ thuật được sử dụng trong môi trường Visual
Studio để làm việc với tập tin XML.
Môi trường Visual Studio hỗ trợ mô hình DOM (Document Object Module) để đọc và trình
bày nội dung của một tập tin XML. DOM biểu diễn một tài liệu XML trong một cấu trúc dữ
liệu dạng cây [4]. Một cây được tạo thành từ nhiều nút, mỗi nút cũng có thể chứa những nút
khác. Nút lá không có nút con, vì thế nút này dùng để thể hiện dữ liệu văn bản. Việc sử dụng
mô hình DOM sẽ thông qua một số đối tượng như XMLDocument, XMLDataDocument. Khi
một XMLDocument được tạo ra, nó tổ chức nội dung của một tập tin XML thành một cây.
Khi đã đọc được một tài liệu XML, cần định hướng qua tài liệu XML và chỉ lấy những dữ
liệu nào cần thiết cho ứng dụng của mình. Môi trường Visual Studio cung cấp lớp

XpathDocument và XpathNavigator hỗ trợ đáp ứng vấn đề này. Lớp XpathDocument cho
phép xử lý dữ liệu XML mà không phải tải lên toàn bộ cây. Lớp XpathNavigator sử dụng để
thao tác trên dữ liệu của XpathDocument. Nó cũng được sử dụng để thao tác trên
XMLDocument, và XMLDataDocument. Nó hỗ trợ kỹ thuật định hướng cho việc chọn nút,
lặp qua các nút đã chọn và làm việc trên những nút đã chọn này.
Tóm lại, để xử lý một tài liệu XML, cần phải có cách đi lại trên các phần tử của tài liệu XML
để trích ra những dữ liệu cần thiết. Ngôn ngữ XPath đã được ra đời để đáp ứng điều này. Để
hiểu rõ hơn về XPath cũng như cách truy vấn dữ liệu trong tài liệu XML, phần tiếp theo
8
chúng tôi xin trình bày chi tiết về ngôn ngữ Xpath và ứng dụng vào bài toán quản lý thông tin
sinh viên.
3. Ngôn ngữ Xpath và ứng dụng bài toán quản lý thông tin sinh viên
XPath có một vai trò quan trọng trong việc trao đổi dữ liệu giữa các máy tính hay giữa các
chương trình ứng dụng vì nó cho chúng ta sàng lọc các dữ liệu mà ta mong muốn. Xpath là
một ngôn ngữ dùng để xử lý truy vấn trên tài liệu XML [1, 2, 3], cũng giống như SQL là một
chuẩn để làm việc với cơ sở dữ liệu. Xpath xem XML như một cây, ví dụ biểu diễn XML
dưới dạng cây như sau:
3.1. Cú pháp của XPath
3.1.1. Đường dẫn tuyệt đối
Nếu đường dẫn Xpath bắng đầu bởi dấu / thì có nghĩa là một đường dẫn tuyệt đối bắt đầu từ
phần tử gốc. Tiếp tục với ví dụ trên:
• Muốn đi đến 1 nút: giả sử muốn đến nút Order thì viết đường dẫn xpath như sau:
- Cú pháp đầy đủ: /Child::Order
- Cú pháp tắt: /Order
• Muốn đi đến một thuộc tính của nút thì cần phải chỉ rõ từ khóa Attribute trong cú
pháp nguyên hoặc @ trong cú pháp tắt, ví dụ muốn đi đến thuộc tính OrderNo thì viết
đường dẫn Xpath như sau:
- Cú pháp đầy đủ: /child::Order/Attribute::OrderNo
9
- Cú pháp tắt: /Order/@OrderNo

3.1.2. Đường dẫn tương đối
Khi muốn trích một phần tử nào đó mà chỉ biết tên của phần tử này chứ không biết phần tử
này nằm ở vị trí nào thì có thể dung đường dẫn tương đối để thực hiện, bằng cách sử dụng
dấu // để chỉ cho trình phân tích biết đây là đường dẫn tương đối. Ví dụ, để trích các phần tử
có tên là Product chúng ta viết như sau:
- Cú pháp nguyên: //child::Product
- Cú pháp viết tắt: //Product
3.1.3. Chọn các phần tử bằng ký tự đại diện
Để chọn tất cả các phần tử con của một phần tử nào đó, có thể dung ký tự đại diện *. Ví dụ,
để lấy tất cả các phần tử con của phần tử Order ta viết như sau:
- Cú pháp nguyên: /child::Order/child::*
- Cú pháp tắt: /Order/*
3.1.4. Chọn các phần tử theo điều kiện
Để lấy các phần tử theo một điều kiện nào đó, sử dụng dấu ngoặc vuông ([ ]). Ví dụ, để lấy
những phần tử Item có phần tử con là Product và có thuộc tính ProductID=1 chúng ta viết
như sau:
- Cú pháp nguyên: //child::Item[child::Product/Attribute::ProductID=1]
- Cú pháp tắt: //Item[Product/@ProductID=1]
3.2. Ứng dụng vào bài toán quản lý thông tin sinh viên
Trong phần này, chúng tôi đã xây dựng một mô hình sử dụng xml database để quản lý thông
tin các sinh viên. Chương trình được lập trình trên môi trường Visual Studio và ngôn ngữ sử
dụng là C#.
Ở đây chúng tôi dùng XPath như là một công cụ để thực hiện các thao tác xử lý trên file xml
(xml database). Các thao tác chính chúng ta sẽ thực hiện mô phỏng đó là:
• Chèn một đối tượng vào cơ sở dữ liệu
• Tìm kiếm một đối tượng trong cơ sở dữ liệu
• Xoá một đối tượng trong cơ sở dữ liệu
• Thay đổi thông tin một đối tượng trong cơ sở dữ liệu.
Các thông tin sinh viên trong cơ sở dữ liệu chương trình gồm:
• MSSV

• Họ và tên
• Ngày sinh
• Địa chỉ
• Email
• Mobile
10
• Điểm tổng kết
Ví dụ 1 file xml chương trình sẽ xuất ra như sau:
Bài toán quản lý thông tin sinh viên trong báo cáo này chỉ hoạt động hiệu quả với quy mô
sinh viên nhỏ và số lượng thông tin được quản lý là không lớn.
3.2.1. Chèn thêm 1 đối tượng vào xml database
Màn hình chương trình khi thêm 1 đối tượng sinh viên mới:
11
Hàm thêm 1 đối tượng sinh viên có cấu trúc như sau:

3.2.2. Tìm kiếm sinh viên theo MSSV
Màn hình tìm kiếm một sinh viên theo MSSV:
12
Hàm tìm kiếm sinh viên theo MSSV có cấu trúc như sau:
13
14
3.2.3. Xóa thông tin sinh viên
15
3.2.4. Sửa thông tin sinh viên
4. Kết luận
Báo cáo đã trình bày những khái niệm cơ bản về XML, cách sử dụng XML trong vấn đề lưu
trữ dữ liệu. Đồng thời, báo cáo cũng đã giới thiệu về tài liệu XML, cấu trúc của một tài liệu
XML cũng như ngôn ngữ truy vấn tài liệu XML - Xpath.
16
Từ những tìm hiểu sơ bộ đó, chúng tôi đã tập trung ứng dụng vào bài toán quản lý thông tin

sinh viên. Có thể nhận thấy rằng XML có tính khả chuyển, mềm dẻo cao, dễ sử dụng do tổ
chức dữ liệu có cấu trúc và phân cấp. Tuy nhiên vẫn còn khá nhiều hạn chế khi áp dụng vào
bài toán quản lý thông tin sinh viên: Không phù hợp với những bài toán có cơ sở dữ liệu lớn.
5. Tài liệu tham khảo
[1]. />[2]. />[3]. Anders Møller, Michael I. Schwartzbach. An Introduction to XML and Web
Technologies. Addison-Wesley, 2006.
[4]. Bipin Joshi. Beginning XML with C# 2008: From Novice to Professional.Apress, 2008.
17

×