ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
] ^
BÙI THỊ ĐÔNG
CƠ SỞ DỮ LIỆU XML
TRONG TỔ CHỨC QUẢN LÝ
NGÂN HÀNG CÂU HỎI THEO CHUẨN QTI
LUẬN VĂN THẠC SĨ
HÀ NỘI - 2007
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
] ^
BÙI THỊ ĐÔNG
CƠ SỞ DỮ LIỆU XML
TRONG TỔ CHỨC QUẢN LÝ
NGÂN HÀNG CÂU HỎI THEO CHUẨN QTI
LUẬN VĂN THẠC SĨ
Hà Nội - 2007
Ngành: Công nghệ Thông tin
Mã số: 1.01.10
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS. NGUYỄN ĐÌNH HÓA
i
MỤC LỤC
MỤC LỤC i
DANH MỤC CÁC TỪ VIẾT TẮT iii
DANH MỤC CÁC HÌNH VẼ iv
MỞ ĐẦU 1
CHƯƠNG 1 SÁT HẠCH TRẮC NGHIỆM BẰNG MÁY TÍNH VÀ CHUẨN
QTI 3
1.1. Sát hạch trắc nghiệm bằng máy tính 3
1.1.1 Sự phát triển của các hệ thống sát hạch 3
1.1.2 Các đặc điểm của trắc nghiệm trực tuyến 5
1.1.3 Sử dụng trắc nghiệm trực tuyến trong các hệ thống e-Learning 6
1.2. Đặc tả QTI 7
1.2.1. Mục đích đưa ra đặc tả QTI 7
1.2.2. Các đối tượng chính trong QTI 8
CHƯƠNG 2 XML VÀ CƠ SỞ DỮ LIỆU XML 10
2.1. XML 10
2.1.1. Giới thiệu 10
2.1.2. Cấu trúc của tài liệu XML 11
2.1.3. Định nghĩa kiểu tài liệu – DTD 13
2.1.4. Tài liệu hướng dữ liệu và tài liệu hướng văn bản 14
2.1.5. Mô hình đối tượng của tài liệu XML (DOM) 15
2.2. Các ngôn ngữ truy vấn XML 18
2.2.1. XPath 18
2.2.2. XQuery 19
2.3. Cơ sở dữ liệu XML 21
2.3.1. Từ hệ thống tệp phẳng đến XML [9] 22
2.3.2. Các hệ thống CSDL XML 23
2.4. Cơ sở dữ liệu XML nguyên bản - NXD[20] 24
2.4.1. NXD là gì? 24
2.4.2. Các đặc tính của NXD 25
2.4.3. Hai kiểu NXD 33
2.4.4. Kiến trúc NXD 34
2.4.5. Khung kiến trúc chung cho các NXD[11] 35
ii
CHƯƠNG 3 eXist – HỆ CSDL XML NGUYÊN BẢN 38
3.1. Giới thiệu 38
3.2. Lưu trữ và đánh chỉ số XML 38
3.2.1. Nền tảng 38
3.2.2. Các giản đồ đánh chỉ số 40
3.2.3. Tổ chức dữ liệu và chỉ số 43
3.3. Thực thi ngôn ngữ truy vấn trong eXist 46
3.3.1. Thuật toán ghép đường 46
3.3.2. Sự mở rộng ngôn ngữ truy vấn trong eXist 49
3.3.3. Hiệu năng và tính mở rộng 50
3.4. Các bước cơ bản để triển khai eXist 53
3.4.1. Cài đặt eXist 53
3.4.2. Khởi động eXist Database 54
3.4.3. Truy cập tới eXist Database 55
3.4.4. Quản trị CSDL 55
CHƯƠNG 4: SỬ DỤNG eXist 58
TRONG QUẢN LÝ NGÂN HÀNG CÂU HỎI 58
4.1. Ngân hàng câu hỏi cho môn MS Excel 58
4.2. Tự động sinh bài thi trắc nghiệm 59
4.3. Tổ chức và quản lý ngân hàng câu hỏi trong eXist 59
4.4. Xây dựng các XQuery khai thác ngân hàng câu hỏi qua web 61
KẾT LUẬN 70
TÀI LIỆU THAM KHẢO 71
PHỤ LỤC 74
iii
DANH MỤC CÁC TỪ VIẾT TẮT
Stt Từ hoặc cụm từ Từ viết tắt Từ Tiếng Anh
1. Trắc nghiệm trực tuyến iBT internet Based Testing
2. Đào tạo trên Web WBT Web Based Training
3. Đặc tả về tính khả thi tương
tác giữa câu hỏi và bài trắc
nghiệm của tổ chức IMS
Global
IMS QTI IMS Q
uestion & Test
I
nteroperability Specification
4. Ngôn ngữ đánh dấu mở
rộng
XML eXtensible Markup Language
5. Mô hình đối tượng tài liệu DOM Document Object Model
6. Định nghĩa kiểu tài liệu DTD Document Type Definition
7. Giao diện lập trình ứng
dụng đơn giản cho XML
SAX Simple API for XML
8. Định nghĩa giản đồ XML XSD XML Schema Definition
9. Cơ sở dữ liệu XML nguyên
bản
NXD Native XML Database
10. Cơ sở dữ liệu khả XML XED XML-Enabled Database
11. Ngôn ngữ truy vấn XML XQUERY XML QUERY LANGUAGE
12. Cơ sở dữ liệu CSDL Database
13. Không gian tên Namespace Namespace
14. Giản đồ XML XML
shema
XML shema
15. Hệ quản trị nội dung CMS Content Management System
16. Giao diện lập trình ứng
dụng
API Application Programing
I
nterface
iv
DANH MỤC CÁC HÌNH VẼ
Hình 2.1: Một tài liệu XML “books.xml” 12
Hình 2.2: Thể hiện tài liệu XML dưới mô hình cây 12
Hình 2.3: Một tài liệu DTD đơn giản “book.dtd” cho “books.xml” 14
Hình 2.4: Trục thời gian thể hiện sự phát triển của các hệ thống CSDL 22
Hình 2.5: Khung kiến trúc chung cho một hệ quản trị dữ liệu XML 36
Hình 3.1: Giản đồ đánh số theo kiểu level-order 41
Hình 3.2: Giản đồ đánh số theo kiểu level-order 42
Hình 3.3: Tổ chức lưu trữ dữ liệu XML 45
Hình 3.4: Phân tích biểu thức đường dẫn 47
Hình 3.5: Thuật toán Ancestor-Descendant 49
Hình 3.6: Thời gian thực thi truy vấn trung bình theo dung lượng dữ liệu 53
Hình 3.7: Các biểu tượng của eXist 54
Hình 3.8: Cửa sổ eXist Database Startup 54
Hình 3.9: Trang eXist 55
Hình 3.10: Cửa sổ điền thông số kết nối đến CSDL 56
Hình 3.11: Cửa sổ làm việc sau khi kết nối 57
Hình 4.1: Kết quả xác thực số câu hỏi có trong sưu tập MSExcel 61
Hình 4.2: Truy vấn listItem.xql 62
Hình 4.3: Trang web hiển thị kết quả thực thi listItem.xql 62
Hình 4.4: Truy vấn ItemB5_6.xql 63
Hình 4.5: Trang web hiển thị kết quả thực thi ItemB5_6.xql 64
Hình 4.6: Đoạn mã để sinh ra $num số ngẫu nhiên nhỏ hơn $max 65
Hình 4.8: Đoạn mã để lấy ra các câu hỏi thuộc bài “Công thức và hàm” 65
Hình 4.7: Đoạn mã để lấy ra các câu hỏi thuộc dạng selectPoint 65
Hình 4.7: Đoạn mã chọn ra các câu hỏi còn lại 66
Hình 4.8: Mã nguồn của truy vấn MSExcelQuestion.xql 67
Hinh 4.9: Kết quả thực thi truy vấn MSExcelQuestion.xql 68
1
MỞ ĐẦU
Những năm gần đây XML đang trở hành một chuẩn để trao đổi và thể hiện dữ
liệu trên Internet. XML không chỉ xuất hiện trong các nghiên cứu khoa học mà
đã được sử dụng trong nhiều sản phẩm thương mại. Sự xuất hiện của chuẩn QTI
cho các hệ thống sát hạch trắc nghiệm đã khẳng định thêm vai trò quan trọng của
XML, XML như là một cầu nối để trao đổ
i và chia sẻ tài nguyên giữa các đơn vị
giáo dục đào tạo. Theo chuẩn QTI, các câu hỏi được dùng trong các hệ thống sát
hạch là các tệp XML. Vì vậy việc quản trị dữ liệu XML hiệu quả trở thành vấn
đề cốt lõi trong quản lý và khai thác ngân hàng câu hỏi. Hầu hết việc lưu trữ
XML trước đây dựa trên các hệ thống quản trị dữ liệu truyền thống nhưng thời
gian gần đ
ây đã có sự xuất hiện của một số sản phẩm CSDL chuyên biệt dành
cho dữ liệu XML.
Luận văn tập trung nghiên cứu về một loại CSDL XML và ứng dụng nó vào
quản trị ngân hàng câu hỏi trong hệ thống thi trắc nghiệm do Viện CNTT-
ĐHQG HN phát triển.
Luận văn được chia thành 4 chương với các nội dung sau:
Chương 1: Sát hạch trắc nghiệm bằng máy tính và chuẩn QTI
Giới thiệu về sự phát tri
ển của các hệ thống sát hạch; các đặc điểm của hệ
thống trắc nghiệm trực tuyến và vấn đề quản trị ngân hàng câu hỏi, tạo các bài
thi.
Từ nhu cầu phát triển của các hệ thống sát hạch chương này tiếp tục trình
bày về chuẩn QTI, mục đích đưa ra đặc tả QTI, một số đối tượng chính trong đặc
tả QTI.
Chương 2: XML và cơ sở dữ
liệu XML
Trong chương này tập trung giới thiệu về XML; giới thiệu hai ngôn ngữ
truy vấn dữ liệu XML đang thịnh hành; giới thiệu hai loại CSDL XML; giới
thiệu về NXD và kiến trúc của NXD.
Chương 3: eXist – Hệ CSDL XML nguyên bản
Chương này trình bày cách thức tổ chức dữ liệu, đánh chỉ số và thực thi
truy vấn của eXist. Trong chương này cũng giới thiệu một số bước rất cơ bản
để
những người mới làm quen có thể sử dụng eXist.
2
Chương 4: Sử dụng eXist trong quản lý ngân hàng câu hỏi theo chuẩn QTI
Trình bày cách thức tổ chức, quản lý và khai thác ngân hàng câu hỏi tuân
theo chuẩn QTI. Ngoài ra phần này cũng tập chung vào việc thử nghiệm với bộ
câu hỏi cho một môn học cụ thể, tập trung vào việc giải quyết một yêu cầu cụ
thể.
Phần kết luận đưa ra tổng kết các kết quả luận văn đã làm được và một số hướ
ng
nghiên cứu tiếp theo của luận văn.
3
CHƯƠNG 1 SÁT HẠCH TRẮC NGHIỆM BẰNG MÁY TÍNH
VÀ CHUẨN QTI
1.1. Sát hạch trắc nghiệm bằng máy tính
1.1.1 Sự phát triển của các hệ thống sát hạch
Từ những năm 2000 trở lại đây, các tổ chức giáo dục đã và đang triển khai
ứng dụng các công nghệ mới trong dạy và học để tăng chất lượng, hiệu quả trong
giáo dục và đào tạo. Từ việc đưa các bài giảng phổ biến kiến thức lên truyền hình
đến việc sử dụng hạ tầng mạng máy tính để triển khai các khóa học từ cơ bản đế
n
nâng cao trên Internet, chính điều này đã làm tăng kênh tiếp thu kiến thức và kỹ
năng cho người học. Tính ưu việt và sự thành công của quá trình phát triển như
thế có thể tăng lên bởi sự thực hiện việc thích ứng với từng người dùng do đó
kinh nghiệm học tập có thể được tăng.
Bên cạnh sự phát triển của các môi trường học tập thì phương pháp kiểm
tra kiến thức c
ũng được phát triển theo. Nếu như trước những năm 2000 thì việc
thi trắc nghiệm hầu hết chỉ được thực hiện đối với các môn ngoại ngữ, thi sát
hạch lấy giấy phép lái xe thì sau những năm 2000 việc sử dụng hình thức thi trắc
nghiệm đã được triển khai hầu như ở rất cả các môn chỉ ngoại trừ các môn yêu
cầu về kỹ năng hình thể như
múa, hát. Việc triển khai hình thức thi trắc nghiệm
có thể được thực hiện ở nhiều mức khác nhau: thi trắc nghiệm trên giấy và giáo
viên tự chấm điểm, thi trắc nghiệm trên giấy và kết hợp với công nghệ thông tin
trong việc chấm điểm, thi trắc nghiệm qua một phần mềm được cài đặt trên máy
tính cá nhân, thi trắc nghiệm qua mạng.
Trong các hình thức thi trắc nghiệm đã kể trên thì hình thức thi trắc
nghi
ệm qua mạng đã và đang rất được quan tâm và đầu tư trong các đơn vị giáo
dục. Thi trắc nghiệm qua mạng được triển khai theo nhiều phương thức khác
nhau và mức ứng dụng công nghệ trong từng công đoạn (ra đề thi, tổ chức đề thi,
thi, chấm thi, đánh giá và tổng kết kết quả thi) cũng khác nhau. Việc sử dụng
chương trình máy tính nhằm hỗ trợ giáo viên trong việc xây dựng, quản lý ngân
hàng câu hỏi, t
ổ chức các đề thi và chấm điểm tự động là hết sức cần thiết. Thông
qua đó, thí sinh có thể thực hiện bài thi trắc nghiệm trực tiếp trên máy và biết
điểm ngay sau đó.
4
Một hệ thống sát hạch trực tuyến luôn gồm hai thành phần quan trọng là
CSDL ngân hàng câu hỏi và các chức năng quản lý, phân phát bài thi thông qua
mạng Intranet/Internet. Ngân hàng câu hỏi được xem là phần nội dung của hệ
thống, trong đó các câu hỏi được phân loại theo môn học hoặc theo chủ đề, rồi
được tập hợp lại trong CSDL đặt ở máy chủ. Các chức năng quản lý ngoài nhiệm
vụ quản lý toàn bộ các đối tượng tham gia hệ thống nh
ư thí sinh, giáo viên còn
có nhiệm vụ tổ chức những câu hỏi được rút ra từ ngân hàng thành bài thi và
phân phối cho thí sinh thông qua trình duyệt web, đồng thời phân tích các
phương án trả lời và hiển thị kết quả bài thi của thí sinh đó. Trong một số hệ
thống sát hạch trực tuyến, các thành phần của hệ thống có thể được sử dụng như
những phân hệ độc lập như phân hệ tạo câu hỏi (Authoring Tool), phân hệ quản
lý ngân hàng câu hỏi (Item Bank System), phân hệ tổ chức và phân phối bài sát
hạch (Delivery System). Các phân hệ này có thể hoạt động độc lập, đặc biệt là
phân hệ tạo câu hỏi (do cần huy động nhiều tài nguyên trên máy tính đơn nên
thường được cài đặt vào máy tính đơn thay vì hoạt động trên nền web) hoặc có
thể kết nối với nhau thành một hệ thống nhất khi tổ chức kỳ thi [17].
Việc tổ chức và phân phối bài trắc nghiêm đến thí sinh được thự
c hiện theo nhiều
phương thức, trong đó, có thể kể đến hai phương thức phổ biến là:
(1) dùng phần mềm thi trắc nghiệm cài đặt sẵn trên máy tính cá nhân (Computer
Based Testing - CBT);
(2) dùng phần mềm thi trắc nghiệm trực tuyến (Online Testing hay Internet
Based Testing - iBT).
Trắc nghiệm trực tuyến là một phương thức triển khai thi trắc nghiệm được ra
đời cùng với sự phát triển của công nghệ Web và ngày càng được quan tâm và
ứng dụng rộng rãi. Trắc nghiệm tr
ực tuyến được hiểu như sau:
Trắc nghiệm trực tuyến (Online Testing) là hình thức thi trắc nghiệm áp dụng
cho loại trắc nghiệm khách quan, trong đó các công đoạn tổ chức bài thi, thi,
chấm thi, đánh giá và tổng hợp kết quả đều có thể được thực hiện thông qua trình
duyệt Web.
5
1.1.2 Các đặc điểm của trắc nghiệm trực tuyến
Trắc nghiệm trực tuyến mang đầy đủ các đặc điểm của hình thức trắc nghiệm
trên máy tính như [2]:
Phát sinh các bài thi và chấm thi tự động. Hệ thống thi trắc nghiệm thực
hiện chọn ngẫu nhiên các câu hỏi trong ngân hàng câu hỏi và đưa vào các bài thi
sao các câu hỏi trong mỗi bài thi được trải khắp trên toàn bộ các nội dung của
môn học, số lượng câu hỏi trên các bài thi là như nhau và chúng cùng độ khó.
Nếu ngân hàng với số lượng lớ
n các câu hỏi, có thể đảm bảo cho các thí sinh
ngồi gần nhau có đề thi khác nhau. Công việc chấm thi cũng được thực hiện ngay
khi thí sinh kết thúc bài thi và cho kết quả ngay sau đó. Việc phát sinh bài thi và
chấm thi được thực hiện tự động và khách quan, đặc biệt thích hợp với các kỳ thi
có số lượng thí sinh lớn. Đây cũng chính là một trong những ưu điểm của hệ
thống thi trắc nghiệm trên máy tính nói chung.
Vấn đề đảm b
ảo an toàn bí mật cho các câu hỏi và đáp án được quan
tâm và xem xét một cách nghiêm túc.
Ngoài các đặc điểm chung của phương thức thi trắc nghiệm trên máy tính, trắc
nghiệm trực tuyến còn có một số đặc điểm riêng như:
Dễ dàng triển khai các kỳ thi trắc nghiệm trên diện rộng. Một hệ thống
thi trắc nghiệm trực tuyến cho phép thí sinh có thể tham gia kỳ thi từ bất kỳ nơi
nào, chẳng hạ
n, các trung tâm sát hạch được ủy quyền, có máy tính được kết nối
với máy chủ cung cấp đề thi. Đây là một thuận lợi lớn đối với các kỳ thi trên diện
rộng và theo quy mô lớn, chẳng hạn như kỳ thi thi sát hạch lấy chứng chỉ quốc tế.
Khi tham gia những kỳ thi tổ chức theo hình thức thi trắc nghiệm trực tuyến thí
sinh có thể thực hiện bài thi ở ngay hội đồng thi
được uỷ quyền tại địa phương,
do đó, giúp giảm chi phí đi lại cho thí sinh.
Giáo viên dễ dàng xây dựng và cập nhật ngân hàng câu hỏi. Hệ thống
thi trắc nghiệm trực tuyến giúp cho giáo viên dễ dàng hơn trong việc xây dựng
ngân hàng câu hỏi nhờ việc phân chia thành các dạng câu hỏi. Giáo viên cũng có
thể dễ dàng cập nhật các câu hỏi từ bất kỳ máy tính nào có kết nối với hệ thống
trắc nghiệm. H
ệ thống thi trắc nghiệm trực tuyến cho phép các giáo viên trong
cùng bộ môn dễ dàng sử dụng chung các câu hỏi trong ngân hàng. Ngân hàng
câu hỏi dùng chung có ý nghĩa là mối liên kết thực hiện giao lưu chia sẻ kinh
nghiệm và học tập giữa các giáo viên trong việc đánh giá. Nhờ thực hiện chung
trên mạng, các câu hỏi có thể được sử dụng chung, tiết kiệm công sức, không lặp
6
lại những câu hỏi đã có, từ đó có thể phát triển nhiều câu hỏi đa dạng và phong
phú hơn. Do đó, nếu sử dụng thi trắc nghiệm trực tuyến trong việc đánh giá kết
quả của một môn học, một chương trình học trong trường đại học cũng rất thuận
lợi.
Có thể gặp các sự cố trên đường truyền. Trắc nghiệm trực tuyế
n sử dụng
hạ tầng mạng máy tính để truyền tải bài thi từ máy chủ tới máy tính của thí sinh,
do đó, có thể gặp một số sự cố như: thí sinh đang làm bài thi thì mất điện, tính an
toàn và bảo mật cho các câu hỏi không cao khi truyền tải trên đường truyền… Do
vậy, mỗi hệ thống trắc nghiệm trực tuyến cần có những biện pháp khắc phục
nhược điểm này
1.1.3 Sử dụng trắc nghiệm trực tuyến trong các hệ thống e-Learning
Đối tượng tham gia các khóa học e-Learning đặc biệt là hình thức đào tạo
qua mạng (Web Based Training) từ nhiều nơi khác nhau và học vào những thời
điểm khác nhau. Hơn nữa, trong cấu trúc của một số khóa học điện tử được thiết
kế có đan xen các bài kiểm tra vào giữa chương trình học hoặc giữa các bài học.
Do vậy, việc sử dụng hình thức trắc nghiệm trực tuyến trong các bài kiểm tra,
hoặ
c trong kỳ thi đầu vào hay kỳ thi cuối khóa của các khóa học điện tử là một
lựa chọn hợp lý và mang lại hiệu quả. Trong các hệ thống phần mềm e-Learning
như Moodle, … đều tích hợp module hỗ trợ thi trắc nghiệm để giáo viên có thể
sát hạch học viên của mình hoặc bản thân học viên có thể tự kiểm tra lại kiến
thức mình đã thu thập được.
Một số trường đạ
i học và cao đẳng chuyên nghiệp ở Việt Nam có sử dụng
hệ thống e-Learning trong hệ đào tào từ xa. Tuy nhiên khi thi thì học viên phải
đến tham gia thi tập trung có thể sử dụng hình thức thi truyền thống hoặc sử dụng
các hệ thống sát hạch trắc nghiệm, sở dĩ ở đây chưa hoàn toàn tin tưởng vào hình
thức sát hạch qua mạng vì lý do gian lận trong thi cử.
Ngoài ra còn có rất nhiều trung tâm ủy quyền để sát hạch lấy ch
ứng chỉ
quốc tế như CCNA, CCNP, MSCA … đã mang lại hiệu quả cao cả về mặt kinh
tế lẫn học vấn, tuy nhiên không có cơ quan nào đảm bảo được tính chính xác việc
tuân thủ đúng quy định ở các trung tâm này. Trong quá trình thi chất lượng đảm
bảo đến đâu phụ thuộc vào sự nghiêm khắc của trung tâm ủy quyền cũng như
tính tự giác của thí sinh tham gia thi.
Với các hệ thống sát hạch trắc nghiệ
m vừa và nhỏ thường thì các phân hệ
được tích hợp vào cùng với nhau và được xem như các module nhỏ của hệ thống,
7
tuy nhiên khi triển khai ở diện rộng và việc chuyên nghiệp hóa từng chức năng
thì từng phân hệ nên được xây dựng một cách độc lập và dữ liệu ra của phân hệ
này có thể dùng làm dữ liệu vào của phân hệ kia. Với hệ thống quản lý ngân hàng
câu hỏi thì có thể sử dụng dữ liệu ra của phân hệ soạn thảo câu hỏi để làm dữ liệu
vào của mình, mặt khác thì dữ liệu ra của phân h
ệ này được dùng làm dữ liệu vào
cho phân hệ phân phát bài thi.
1.2. Đặc tả QTI
Đặc tả IMS Question & Test Interoperability (QTI) [2,17] mô tả cấu trúc
cơ bản để biểu diễn dữ liệu câu hỏi (item), bài thi (assessment) và các báo cáo kết
quả tương ứng. Bởi vậy, đặc tả cho phép trao đổi dữ liệu của câu hỏi, bài thi và
kết quả giữa các hệ quản trị học LMS, cũng như giữa các người tạo ra nội dung,
các thư viện nội dung và tuyển tập các nội dung. Đặc tả IMS QTI được mô tả
bằng ngôn ngữ XML. XML là một ngôn ngữ đánh dấu mềm dẻo và thường được
sử dụng để mã hóa các mô hình dữ liệu cho các ứng dụng trên Internet và ứng
dụng phân tán. Đặc tả IMS QTI có thể mở rộng và tuỳ biến để các hệ thống
chuyên dụng hay cá nhân đều có thể áp dụng.
1.2.1. Mục đích đưa ra đặc tả QTI
Nhóm làm việc IMS QTI đặc biệt liên quan tới các nhà sản xuất nội dung (ví
dụ như các nhà tạo câu hỏi và xây dựng bài thi), các nhà kinh doanh bán ra các
hệ thống và công cụ học ảo, các người dùng câu hỏi/bài thi (ví dụ như người học,
giáo viên, người đào tạo…). Thị trường đích bao gồm giáo dục tiểu học, trung
học, đại học, đào tạo về thương mại và quân sự. Các đặc tả IMS QTI dự định
hướng t
ới các yêu cầu quốc tế, tập trung vào các tính năng sau:
- Khả năng cung cấp các ngân hàng câu hỏi tới người dùng mà không quan
tâm tới môi trường học ảo của người dùng đó.
- Khả năng sử dụng nhiều nguồn ngân hàng câu hỏi trong một môi trường
học ảo.
- Hỗ trợ cho các công cụ để phát triển các ngân hàng câu hỏi mới một cách
nhất quán.
- Khả năng đưa ra các kết qu
ả thi một cách nhất quán.
8
Để có được các tính năng trên, chuẩn QTI phải thoả mãn các yêu cầu dưới đây
theo trình tự ưu tiên:
- Định nghĩa về các thuộc tính đã được chuẩn hóa (meta-data của câu hỏi)
cho các câu hỏi, các lựa chọn, phản hồi/rẽ nhánh, chấm điểm, meta-data
cùng với định danh của các thành phần bắt buộc hay tuỳ chọn.
- Tính khả thi tương tác của câu hỏi/ngân hàng câu hỏi - định nghĩa về đóng
gói và phân phát.
- Lược đồ mở rộng cho báo cáo kết quả thi.
- Lược đồ mở rộng cho phiên thi, theo vết và biểu diễn.
- Các API cho các giao diện động lấy câu hỏi và thi, chấm điểm.
1.2.2. Các đối tượng chính trong QTI
Trong tài liệu QTI, 3 đối tượng cơ bản nhất được đưa ra là: Assessment,
S
ection, Item (ASI) .
- Item: là đối tượng có thể trao đổi được nhỏ nhất trong tài liệu QTI-XML.
Một “Item” rộng hơn một “Question”, cụ thể là Item chứa câu hỏi
(Question), ngoài ra còn có các thành phần khác như: các lời dẫn hay chú
thích; biểu diễn về cách xử lý phương án trả lời của thí sinh; phần thể hiện
phản hồi khi thí sinh trả lời câu hỏi (trong một số trường hợp); meta-data
mô tả cho item.
- Assessment: Một “Assessment” tương đương vớ
i một bài trắc nghiệm
(Test). Assessment chứa tập các Item dùng để đánh giá năng lực thí sinh.
Assessment cũng chứa những chỉ dẫn (instruction) cần thiết để tổng hợp
điểm của tất cả các item trong nó thành điểm của bài trắc nghiệm.
- Section: Một section được sử dụng để xây dựng các đối tượng đánh giá
theo thứ bậc. Một section cũng có thể chứa một hoặc nhiều section khác.
Một section có thể xem như một chủ đề trong một môn học cần được
lượng giá trong bài trắc nghiệm.
Ngoài 3 đối tượng cơ bản nêu trên, còn có một số đối tượng khác thường
xuyên có mặt trong tài liệu tuân thủ QTI, đáng chú ý là: object-bank và
assessment-bank.
9
- Object-bank: đây là một tập các item và section. Một object-bank có một
định danh duy nhất và nhờ có meta-data mà nội dung của nó có thể được
tìm thấy bởi các hệ thống. Một object-bank được sử dụng để chứa cơ sở
dữ liệu về đánh giá các đối tượng được sử dụng trong các bài trắc nghiệm
(assessment). Các Object-bank được chuyển đổi sử dụng nhờ đóng gói
thành gói chuẩn (QTI package). Một QTI package là một file ZIP trong đó
gồ
m một file chứa XML meta-data (imsmanifest.xml), file XML mô tả
các đối tượng dữ liệu (item, section) – các đối tượng dữ liệu này được
chứa trong cặp thẻ <questestinterop> </questestinterop> và cuối cùng là
các tài nguyên khác như hình ảnh, âm thanh. Các object-bank sử dụng
trong trường hợp cần tổng hợp bài thi từ các thành phần đơn lẻ là các item
và các section.
Phân hệ tổ chức và phân phối bài sát hạch cần tổng hợp các item, section
thành các bài thi trước khi phân phối đến thi sinh.
- Assessment-bank: là một tập các bài trắc nghiệm (assessment) mà trong
các bài trắ
c nghiệm này đều có chứa các item, section. Một assessment-
bank có định danh (identifier) duy nhất và meta-data, nhờ đó, nội dung
của nó có thể được tìm thấy bởi các hệ thống. Một assessment-bank được
sử dụng để chứa một tập các bài trắc nghiệm có liên quan với nhau.
Tương tự như các object-bank, các assessment-bank có thể được chuyển
đổi sử dụng nhờ đóng gói thành gói chuẩn (QTI package).
Như vậy, phân hệ tổ chức và phân phối bài sát hạch có thể chọ
n các bài trắc
nghiệm (assessment) từ assessment-bank.
10
CHƯƠNG 2 XML VÀ CƠ SỞ DỮ LIỆU XML
2.1. XML
2.1.1. Giới thiệu
XML (eXtensible Markup Language) ra đời vào tháng 2/1998, là ngôn ngữ có
kiến trúc gần giống với HTML nhưng XML nhanh chóng trở thành một chuẩn
phổ biến trong việc chuyển đổi thông tin qua các trang web sử dụng giao thức
HTTP. Trong khi HTML là ngôn ngữ chủ yếu để hiển thị dữ liệu thì XML lại
phát triển mạnh về việc trao đổi và thao tác dữ liệu bằng XML. XML đưa ra một
định dạng chuẩn cho cấu trúc của dữ liệu hoặc thông tin bằng việc tự
định nghĩa
định dạng của tài liệu. Với cách này, dữ liệu được lưu trữ bằng XML sẽ độc lập
với việc xử lý. Những tài liệu XML rõ ràng, dễ đọc, dễ tạo và điều quan trọng là
nó được hỗ trợ trong nhiều ứng dụng. Vì vậy XML ra đời sẽ đáp ứng được yêu
cầu ngày càng cao của các nhà lập trình trong vấn đề trao đổi thông tin. XML dế
dàng chia sẻ thông tin qua nhữ
ng định dạng khác nhau thông qua môi trường
web.
Việc sử dụng Internet trong thương mại điện tử đang phát triển theo số
mũ trong những năm gần đây. Như vậy các tổ chức trong các doanh nghiệp chấp
nhận XML như là một giao thức độc lập với phần mềm nền để trao đổi thông tin
doanh nghiệp giữa các ứng dụng khác nhau. XML nổi bật như là một nguyên lý
chuẩn để th
ể hiện dữ liệu, trao đổi dữ liệu điện tử bằng việc cung cấp một cú
pháp đơn giản cho dữ liệu. Dữ liệu biểu diễn bằng XML thì cả máy và con người
đều hiểu và đọc được. Với sự phát triển của việc phân phối dữ liệu XML, một mô
hình dữ liệu hiệu quả và việc quản lý CSDL mềm dẻo là cần thiết để quả
n lý dữ
liệu như vậy trong một tổ chức.
Các yêu cầu này được xem như một nhân tố thúc đẩy cộng đồng nghiên
cứu CSDL giới thiệu một số loại mô hình quản lý dữ liệu khác trước. Hầu hết các
giải pháp sử dụng các CSDL truyền thống như CSDL phân cấp, hướng đối tượng
và quan hệ như mô hình nền tảng để lưu dữ liệu XML sử dụng khả
năng của bản
thân CSDL đó hoặc có thể sử dụng sự trợ giúp của phần mềm trung gian thứ 3.
Một giải pháp khác bắt nguồn từ việc thiết kế các hệ thống quản trị dữ liệu mới
xử lý cho riêng dữ liệu XML. Khác với cách tiếp cận truyền thống, các hệ thống
11
này đặc biệt được tùy biến theo các đặc tính riêng biệt và các ràng buộc của
XML. Cấu trúc lưu trữ nền tảng của các hệ thống như thế này có thể khác nhau
nhưng chúng đều bảo đảm các yêu cầu đưa ra.
" Ưu điểm khi sử dụng XML
Trong quá trình hoàn thiện và phát triển, XML đã đối mặt với nhiều thử
thách để thuyết phục các nhà lập trình rằng XML là sự lựa chọn hàng đầu vì tính
dễ hiểu, dễ đọc và dễ thực hiện. Dưới đây là một số lợi ích mà XML mang lại:
- XML có thể tách rời dữ liệu. Dữ liệu được lưu trữ trong các tệp XML
riêng biệt.
- XML có thể mô tả thông tin của những
đối tượng phức tạp mà CSDL
quan hệ không thể giải quyết được
- XML có thể dùng để trung chuyển dữ liệu giữa các hệ thống không tương
thích
- XML dùng để chia sẻ dữ liệu với những tệp tin văn bản đơn giản dễ hiểu.
- XML cũng được dùng để lưu trữ dữ liệu, có thể làm cho dữ liệu hữu ích
hơn.
Qua đây chúng ta cũng đã thấy được vai trò và lợi ích do XML mang lại
trong vấn đề lưu trữ và trao đổi thông tin.
2.1.2. Cấu trúc của tài liệu XML
Thành phần cơ bản của tài liệu XML là một phần tử, một đoạn văn bản
được bao bởi cặp thẻ mở và đóng của phần tử (<Element1> và </Element1>).
Văn bản ở giữa cặp thẻ mở và đóng được gọi là nội dung của phần tử. Hơn thế
nữa, một phần tử có thể không có nội dung và người ta gọi đó là phẩn tử r
ỗng.
Tuy nhiên một phần tử rỗng có thể chứa các thuộc tính. Một thuộc tính được kết
nối với phần tử và thường chứa ít nhất một giá trị. Một tập các thuộc tính của một
phần tử được đưa ra là không có thứ tự. Một phần thử có thể chứa một danh sách
tuần tự các phần tử khác gọi là phần tử con, hoặc dữ liệu ngườ
i dùng. Bởi vì nội
dung của một phần tử là một sự liên tục, các mục có thể có thứ tự. Chuỗi tuần tự
này có thể chứa các phần tử với các thẻ định danh. Nội dung hỗn hợp nghĩa là
một phần tử có thể chứa cả các phần tử khác và cả dữ liệu người dùng.
12
Các phần tử bên trong một phần tử đặc tính của XML nghĩa là tính đệ quy
và khả năng các tài liệu XML được thể hiện bởi các cây. Các tài liệu XML được
thể hiện dưới dạng các cây có gán nhãn, không thứ tự và có gốc. Trong đó từng
nút tương xứng với từng phần tử, và từng cạnh gán nhãn với phần tử đuôi thể
hiện một mối quan hệ cha con. Thêm vào đó, cây có một nút đặc biệt
được gọi là
gốc.
Hình 2.1: Một tài liệu XML “books.xml”
bookstore
book
@category
title author year
@lang
COOKING
en
Everyday
Italian
Giada De
Laurentiis
2005 30.00
price
book
@category
title author year
@lang
CHILDREN
en
Harry Potter
J K.
Rowling
2005 29.99
price
Hình 2.2: Thể hiện tài liệu XML dưới mô hình cây
Khai báo (prologue): Mỗi tài liệu XML có một chỉ thị khai báo
13
<?xml version="1.0" encoding="ISO-8859-1" ?>
Định nghĩa tài liệu XML tuân theo chuẩn W3C và đây là phiên bản 1.0
Chú thích (comments): được khai báo như sau
<! Nội dung cần chú thích >
Phần tử (Elements): Một tài liệu XML được cấu thành từ những phần tử.
Một phần tử có thẻ mở và thẻ đóng. Giữa cặp thẻ mở và đóng là nội dung của
phần tử đó. Phần tử có thể chứa dữ liệu hoặc có thể chứa các phần tử con lồng
trong nó.
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 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 (Attributes): Một phần tử có thể chứa dữ liệu hoặc chứa các
phần tử khác. Ngoài ra, cũng có những phần tử rỗng. Một thuộc tính là một sự
lựa chọn để gắn dữ liệu tới các phần tử. Một thuộc tính bao giờ cũng nằm trong
thẻ mở và s
ử dụng cặp “name=value”
" Một tài liệu hợp lệ
Một tài liệu XML được tạo ra đầu tiên phải hợp khuôn dạng. Một tài liệu
hợp khuôn dạng là tài liệu chỉ có một nút gốc, mỗi phần tử phải có thẻ mở và thẻ
đóng, và phải lồng nhau đúng thứ tự đồng thời tên mỗi thuộc tính chỉ xuất hiện
một lần trong thẻ mở. Tuy nhiên một tài liệu XML hợp khuôn dạng thì không có
nghĩa là hợp lệ. Để kiể
m tra tính hợp lệ của một tài liệu XML thì chúng ta phải
dựa vào DTD hoặc Schema (giản đồ) đi kèm với nó.
2.1.3. Định nghĩa kiểu tài liệu – DTD
DTD và Schema là hai cách để quy định những luật về nội dung của một
tài liệu XML. Chúng là các phần cơ bản của thế giới XML và định nghĩa sức
mạnh cốt lõi của XML đối với các nhà phát triển ứng dụng.
Cấu trúc của một tài liệu XML được định nghĩa riêng biệt hoặc nó gắn
liền với một định nghĩa kiểu – DTD hay xu thế hiện tại thì nó còn được gắn liền
với một giản đồ XML. Một DTD định nghĩa các khối xây dựng nên một tài liệu
XML hợp lệ, điển hình là sự miêu tả từng phần tử được cho phép trong tài liệu.
14
Cụ thể, DTD miêu tả các thuộc tính của từng phần tử và giá trị của các
thuộc tính; DTD cũng có thể miêu tả cây phân cấp các phần tử trong tài liệu.
Hình 2.3: Một tài liệu DTD đơn giản “book.dtd” cho “books.xml”
Tuy DTD hỗ trợ các đặc tính để định nghĩa kiểu tài liệu XML như thế
nhưng nó vẫn còn một số nhược điểm. Nhược điểm đầu tiên đó là tài liệu DTD
không sử dụng định dạng XML, do đó người dùng cần phải hiểu thêm về một
định dạng mới, và cũng vì lý do này mà làm cho người dùng mới khó viêt và khó
hiểu. Nhược điể
m thứ 2 là kiểu dữ liệu có sẵn cho một thuộc tính hoặc một phần
tử bị giới hạn. Cuối cùng, DTD không có khả năng mở rộng và không hỗ trợ
namespace.
2.1.4. Tài liệu hướng dữ liệu và tài liệu hướng văn bản
Các tài liệu XML thuộc một trong hai loại sau: data-centric (hướng dữ
liệu) và document-centric (hướng văn bản).
Các tài liệu hướng dữ liệu là các tài liệu mà ở đó XML được sử dụng như
là một công cụ vận chuyển dữ liệu. Các tài liệu ở dạng này ví dụ như các hóa đơn
bán hàng, các thông tin bệnh nhân và tài liệu khoa học. Cấu trúc vật lý của chúng
– thứ tự các phần tử anh em, dữ liệu được lưu trong các thuộ
c tính hoặc các phần
tử PCDATA nếu có sử dụng thường là không quan trọng. Một trường hợp đặc
biệt của các tài liệu hướng dữ liệu là các trang web động, như danh sách các địa
chỉ và danh mục trực tuyến, mà nó được cấu trúc từ những tập dữ liệu thông
dụng đã biết.
Các tài liệu hướng văn bản là các tài liệu mà trong nó XML được sử dụng
giống như SGML(S
tandard Generalized Markup Language). Chúng thường là
các tài liệu ví dụ như hướng dẫn sử dụng, các trang web tĩnh, các tờ rơi tiếp thị.
Đặc trưng của chúng là cấu trúc không không thống nhất và nội dung hỗn tạp và
cấu trúc vật lý (thứ tự của các thành phần anh em) của chúng là rất quan trọng.
Tài liệu-hướng văn bản thường được xây dựng thủ công bằng XML hay dưới một
15
khuôn dạng khác nào đó ví dụ RTF, PDF, hay SGML, rồi được chuyển đổi thành
XML.
Để lưu trữ và lấy dữ liệu trong các tài liệu hướng dữ liệu, chúng ta cần
dùng loại phần mềm nào sẽ phụ thuộc vào cấu trúc dữ liệu của chúng là gì. Đối
với dữ liệu có cấu trúc chúng ta sẽ cần một CSDL khả XML (XML – enable
datatabase) như các CSDL quan hệ hoặc CSDL hướng đối tượng, và một số loại
phần mề
m chuyển đổi dữ liệu. Điều này có thể được xây dựng sẵn trong CSDL
(trong trường hợp này được gọi là XML-enabled) hoặc có thể là một phần mềm
của bên thứ ba như phần mềm trung gian hoặc một máy chủ XML. Nếu dữ liệu
của chúng ta là dữ liệu nửa cấu trúc, như các trang vàng trong sổ điện thoại hoặc
dữ liệu sức khỏe, chúng ta có 2 lựa chọn. Chúng ta có thể c
ố gắng làm cho dữ
liệu của chúng ta phù hợp với một CSDL có cấu trúc như một CSDL quan hệ
hoặc chúng ta có thể lưu nó trong NXD (NXD này được thiết kế cho dữ liệu nửa
cấu trúc).
Để lưu và lấy các tài liệu hướng văn bản, chúng ta sẽ cần một NXD hoặc
CMS. Một số CSDL hỗ trợ XML cũng cung cấp việc lưu trữ nguyên bản. Chúng
được thiết kết để lưu các phân đ
oạn nội dung như các thủ tục, các chương, từng
từ điển và có thể bao gồm cả các tài liệu metadata như các tên tác giả, ngày sửa,
số tài liệu. Các hệ quản trị nội dung thường có các chức năng thêm vào như
người hiệu chỉnh, … Mặc dù các CMS thường sử dụng một NXD để lưu và NXD
trong trường hợp này bị ẩn so với người dùng.
2.1.5. Mô hình đối tượng của tài liệu XML (DOM)
" DOM là gì
W3C DOM là một định nghĩa trung lập với phần mềm nền và ngôn ngữ.
DOM định nghĩa các giao diện cho các đối tượng khác nhau mà không cung cấp
chi tiết của việc thực thi nó, và nó có thể được thực hiện bằng bất kỳ ngôn ngữ
nào. DOM cho phép các nhà phát triển đọc, tìm kiếm, sửa đổi, thêm và xóa đối
với một tài liệu XML. DOM đưa ra một tính năng chuẩn để định vị tài liệu và
điều khiển cấu trúc và n
ội dung của các tài liệu XML và HTML.
Trong DOM các tài liệu XML được thể hiện giống như các đối tượng
trong cấu trúc cây. DOM định nghĩa các giao diện cho từng thành phần trong một
tài liệu XML (các phần tử, khối dữ liệu, thuộc tính …) và các phương thức đặc
biệt để duyệt cấu trúc và điều khiển tài liệu.
16
Khác với SAX, SAX cung cấp việc truy cập tới dữ liệu XML dựa trên
luồng, DOM cung cấp việc truy cập tới các nút trong và biểu diễn đối tượng dựa
trên cấu trúc cây. Hơn thế nữa, DOM còn cung cấp các cách thức để điều khiển
dữ liệu XML trong khi SAX chỉ cung cấp việc truy cập tới dữ liệu. DOM tải cả
tài liệu XML vào trong một cấu trúc đối tượng sử dụng một một b
ộ phân tích
(thường thì bộ phân tích SAX) để xây dựng cấu trúc đối tượng. Do đó không thể
duyệt và điều khiển cấu trúc đối tượng cho tới khi toàn bộ tài liệu được đọc. Do
DOM phải đọc toàn bộ tài liệu XML vào trong bộ nhớ để có thể xây dựng cấu
trúc cây, một dung lượng RAM lớn được đòi hỏi khi DOM làm việc với các tài
liệu XML lớn
Khi ta có thông tin về dạng thức XML, ta muốn có khả nă
ng thực hiện các
việc với thông tin đó trong các ứng dụng mà ta biết. Không những ta cần truy cập
nó, mà ta còn muốn thay đổi nó và bổ xung vào nó. DOM cung cấp một biện
pháp để làm việc với các tư liệu XML thông qua việc dùng mã và cung cấp một
cách để giao tiếp với mã đó trong chương trình mà ta viết.
Định chuẩn DOM được xây dựng theo từng cấp: DOM level 1,2,3 và hiện
tại đang phát triển tiếp.
DOM là một mô hình đối tượng, cho phép viết mã trong nó. Ta cũng th
ấy
một tài liệu XML được cấu trúc rất giống với mô hình đối tượng: nó mang tính
phân cấp.
Các mô hình hướng đối tượng mà ta đã xét chỉ làm việc cho một kiểu tài
liệu. Để làm việc với một kiểu tài liệu khác, ta phải tạo một kiểu mô hình mới
cho từng kiểu. Tuy rằng các mô hình đối tượng đơn lẻ này tỏ ra hữu ích trong
nhiều tình huống, song cũng có các tình huống ở đó cần có cách tiế
p cận chung
hơn. Nghĩa là, ta cần một mô hình đối tượng có thể lập mô hình bất kỳ tài liệu
XML nào, bất chấp nó được cấu trúc nó như thế nào. DOM vận dụng cách tiếp
cận chung đó.
DOM thường được bổ sung dưới dạng một tầng giữa trình phân ngữ XML
và ứng dụng, cần thông tin trong tài liệu, nghĩa là trình phân ngữ đọc dữ liệu ứng
dụng từ tài liệu XML rồi nạp d
ữ liệu vào một DOM. Sau đó DOM được dùng bởi
một ứng dụng cao cấp hơn. Ứng dụng đó có thể thực hiện những gì mà nó muốn
với thông tin này, kể cả việc đặt nó vào một mô hình đơn lẻ khác.
Do đó, để viết một ứng dụng sẽ truy cập một tài liệu XML thông qua DOM, ta
cần có một trình phân ngữ XML và một thực thi DOM cài đặt trên máy.
17
" Các thực thi DOM
DOM không chỉ đơn thuần là một API để làm việc với các dữ liệu XML, nó
còn được dùng để làm việc với các trang HTML các trang CSS, và nhiều dữ liệu
đa dạng khác. Thực tế, có thể chuyên hoá các thực thi DOM để chỉ làm việc với
các tài liệu XML, hoặc có thể xây dựng chúng để làm việc với một số kiểu dữ
liệu khác.
Dynamic HTML trở nên hữu dụng, bởi các nội dung của các tư liệu HTML
được phổ bi
ến thông qua mô hình đối tượng. Khi một trang Web được nạp vào
trình duyệt Web theo DHTML, các đối tượng được tạo cho mỗi và mọi thành
phần trên trang. Điều này cho phép người viết trên trang Web chèn ký mã script
trên trang, để gọi các phương pháp và các tính chất trên đối tượng đó.
" Các giao diện mở rộng trong DOM
Giao diện cơ bản nhất mà ta sẽ gặp với DOM sẽ là giao diện nút. Giao diện
này biểu thị một nút đơn lẻ trong cây tài liệu. Do hầu hết các đối tượng trong
DOM đều là nút, nên hầu hết các giao diện đều là mở rộng của giao diện nút.
Điều này có nghĩa là các đối tượng thực thi các giao diện này sẽ có tất cả các tính
chất và các phương pháp của nút, cộng với mọi tính chất và phương pháp bổ
sung cần thiết.
Các ngoại lệ: Khi làm việc với DOM cần lưu ý các ngoại lệ. Chúng là cách để
phát hiện tín hiệu rằng một sự cố đã xảy ra và chúng được DOM sử dụng rất
nhiều. Các ngoại lệ được định nghĩa bằng cách tạo ra một kiểu đối tượng đặc
biệt. Khi một tình huống nảy sinh sẽ gây ra một ngoại lệ, đối tượng này kích phát
rồi đượ
c chặn bắt bởi một trình điều quản ngoại lệ.
" Các nút - Node
Là giao diện cơ bản trong DOM. Hầu hết mọi đối tượng mà chúng ta sẽ gặp
đều mở rông giao diện này, tạo nên ý nghĩa, bởi mọi phần của tài liệu XML đều
là một nút.
Tuy nhiên, mặc dù nút được thực thi trong tất cả các đối tượng DOM, song nó
có vài tính chất và phương pháp có thể không thích hợp với một số kiểu nút nhất
định. Chúng được gộp chỉ để tiện dụng, để nếu chúng ta đang làm việ
c với một
biến có kiểu nút, ta có quyền truy cập vài công năng của các giao diện khác, mà
không phải áp đổi thành một trong các kiểu đó.
18
2.2. Các ngôn ngữ truy vấn XML
Để lấy dữ liệu XML từ các CSDL, một số ngôn ngữ truy vấn được đề xuất để
cung cấp các cơ chế truy vấn mềm dẻo – Xpath, XQuery và XQL…. Thường thì
một truy vấn XML bao gồm 2 phần: các ràng buộc cấu trúc và thuộc tính giá trị
(vị ngữ giá trị). Trong các truy vấn dựa vào cấu trúc, ràng buộc cầu trúc thường
được thể hiện dưới dạng một cây, với cây này thì có thể có một hoặc nhiều
đường nhánh. Trong truy v
ấn dựa trên giá trị, có thể là các biểu thức so sánh (<,
> , >=, <=, =) hoặc vị ngữ chứa đựng (contains, does not contains…). Các truy
vấn định vị dữ liệu nửa cấu trúc qua các biểu thức đường dẫn và có thể được tăng
tốc truy vấn bằng việc sử dụng chỉ số. Đặc biệt đối với các CSDL XML chứa
nhiều tài liệu thì các chỉ số sẽ tạo điều kiện thuận l
ợi cho việc truy vấn.
2.2.1. XPath
XPath mô hình hóa một tài liệu XML như một cây gồm các nút: các nút phần
tử, các nút thuộc tính và các nút văn bản (nội dung). Cú pháp nguyên thủy xây
dựng trong Xpath là biểu thức. Một biểu thức khi thực thi sẽ tạo ra một đối
tượng, một tập hợp nút (một tập hợp không có thứ tự các nút không có sự trùng
lặp), một giá trị Boolean (true hoặc false), một số hoặc một xâu (một xâu ký tự).
Ví dụ, “bookstore//title” là để tìm tất cả các title
được chứa trong từng bookstore.
Trong Xpath thì dấu “//” thể hiện mối quan hệ “tổ tiên – con cháu” (“ancestor-
descendant”), dấu “/” thể hiện mối quan hệ “cha-con” (“parent-child”). Ví dụ
thực thi truy vấn “bookstore//title”, nếu một phương án duyệt cây đơn giản thì có
thể dẫn đến việc quét toàn bộ cây dữ liệu XML mặc dù kết quả trả về có thể là rất
ít. Phương án khác là: đầu tiên lấy ra các phần tử title và bookstore, sau đó tìm
các mối quan hệ ancestor-descendant giữa các tập phầ
n tử vừa lấy ra. Cách này
được xem như là thao tác nối cấu trúc.
Để xử lý một tài liệu XML chương trình ứng dụng phải có cách di chuyển bên
trong tài liệu để lấy ra giá trị của các phần tử hay các thuộc tính. Do đó ngôn ngữ
XML Path hay Xpath đã ra đời. Xpath đóng vai trò quan trọng trong việc truy
vấn dữ liệu trong các chương trình ứng dụng, vì nó cho phép ta lựa chọn hay
sàng lọc ra những phần tử nào mình muốn để phục vụ cho nhu cầu trao
đổi dữ
liệu hay hiển thị dữ liệu.
Khi làm việc với CSDL quan hệ thì ta dùng các câu lệnh SQL như “SELECT
… FROM … WHERE …” để trích ra một số thông tin từ một bảng. Khi làm việc
19
với tệp XML, Xpath cho ta những biểu thức về điều kiện giống như WHERE
trong SQL.
Xpath là một ngôn ngữ dùng để xử lý truy vấn trên tài liệu XML cũng giống
như SQL là một chuẩn để làm việc với CSDL quan hệ. Chúng ta có thể áp dụng
toán tử boolean, hàm string và toán tử số học trong biểu thức Xpath để xây dựng
câu truy vấn phức tạp trên tài liệu XML. Xpath cũng cung cấp một số hàm về số
nh
ư tính tổng, hàm làm tròn v.v…
2.2.2. XQuery
XQuery là một ngôn ngữ để truy vấn dữ liệu XML. Nó được thiết kế để có thể
được áp dụng rộng rãi cho nhiều nguồn dữ liệu XML. XQuery được sử dụng phổ
biến để đinh vị và trích ra các thuộc tính và phần tử từ các tài liệu XML và cũng
được dùng để tạo ra các tài liệu XML mới sử dụng các đối tượng đã lấy ra.
" Các biểu thức đường dẫn trong XQuery
Các mẫu cơ bản và phổ biến của các biểu thức XQuery là các biểu thức đường
dẫn, các biểu thức đường dẫn này có thể chứa các ràng buộc trên cả cấu trúc và
nội dung của các phân đoạn XML.
Các biểu thức đường dẫn được dựa trên một khung nhìn, với khung nhìn này
thì một tài liệu XML được xem như một cây bao gồm các nút.
Để đưa ra khung nhìn này thì các biểu thức đường dẫn là các mẫu cần thiết
được làm cho phù hợp với các nút trong cây XML. Một biểu thức đường dẫn
được xem như một xâu tuần tự với một hoặc nhiều bước định vị. Mỗi bước định
vị bao gồm một trục để chỉ ra mối quan hệ phân cấp giữa các nút. Trong đó có 2
trục hay dùng đó là trục con “/” (ví dụ các nút ở các mức liền kề), và trục con
cháu “//” (ví dụ các nút bị tách bởi một số các mức).
Mỗi bước định vị cũng có thể bao gồm một hoặc nhiều biểu thức chính quy để
lọc tập hợp các nút phần tử được chọn. Một biểu thức chính quy xác định bởi các
ký tự “[“ và “]”, được áp dụng cho các nút phần tử đã chỉ ra ở bước định vị. Biểu
thức chính quy có thể đưa vào các ràng buộc trên nội dung văn bản hoặc các
thuộc tính của các nút phần t
ử đã chỉ ra. Thêm vào đó, các biểu thức chính quy
cũng có thể bao gồm cả các biểu thức đường dẫn khác được gọi là các biểu thức
đường dẫn lồng nhau.