Để sử dụng CSDL, đầu tiên ta phải tạo ra các sưu tập tài liệu và import các tệp vào eXist. Ta có thể thực hiện việc này thông quan giao diện web hoặc sử
"Quản trị CSDL qua web
Từ trình trang eXist, ta bấm vào liên kết Admin trong vùng Administration hoặc có thể gõ trực tiếp địa chỉ http://localhost:8080/exist/admin/admin.xql trong thanh địa chỉ của trình duyệt, sau đó đăng nhập vào với tài khoản “admin” và mật khẩu để trống (trong trường hợp chưđổi mật khẩu của tài khoản admin từ
sau khi cài đặt). Trong trang dành cho quản trị này ta có thể tạo ra các sưu tập tài liệu hoặc có thể sử dụng các chức năng dành cho quản trị theo hướng dẫn.
"Quản trị CSDL sử dụng công cụ eXist Client Shell
Sử dụng công cụ eXist Client Shell để quản trị CSDL thì sau khi khởi động công cụ eXist Client Shell ta phải đăng nhập vào bằng một tài khoản được gán quyền quản trị.
Hình 3.10: Cửa sổđiền thông số kết nối đến CSDL
Ở cửa số này chỉ cấn điền thông tin Username và Password còn các thông số khác ta cứđể theo thông số mặc định. Sau khi cài đặt eXist với Username và Password cho lần đầu tiên đăng nhập ta sử dụng tài khoản quản trị có sẵn là “admin” và mật khẩu để trống.
Sau khi đăng nhập vào CSDL cửa sổ làm việc có dạng sau
Hình 3.11: Cửa sổ làm việc sau khi kết nối
Để xem hướng dẫn sử dụng eXist đầy đủ ta có thể truy cập vào địa chỉ
CHƯƠNG 4: SỬ DỤNG eXist
TRONG QUẢN LÝ NGÂN HÀNG CÂU HỎI
4.1. Ngân hàng câu hỏi cho môn MS Excel
Microsoft Excel 2000 là một trong những nội dung được giảng dạy trong chương trình đào tạo kỹ năng sử dụng máy tính thuộc Đề án 112 Chính Phủ. Viện Công nghệ Thông tin – Đại học Quốc Gia Hà Nội là một đơn vị tham gia tích cực vào dự án này. Viện đã tham gia từ công đoạn viết giáo trình, đào tạo và chuẩn hóa giảng viên đến cung cấp phần mềm sát hạch phục vụ cho việc sát hạch kết thúc các khóa đào tạo.
Ngân hàng câu hỏi sử dụng để sát hạch bám sát theo nội dung đào tạo. Theo khung chương trình thì môn Microsoft Excel 2000 được chia làm 6 bài:
- Bài 1: Làm quen với MS-Excel 2000 - Bài 2: Soạn thảo nội dung bảng tính - Bài 3: Thao tác định dạng
- Bài 4: Công thức và hàm - Bài 5: Biểu đồ, đồ thị
- Bài 6: Hoàn thiện trang bảng tính và in ấn
Bộ câu hỏi cho môn Microsft Excel 2000 trong phần mềm CMTest112
đều ở dạng đơn lựa chọn (choice - một câu hỏi có 4 phương án trả lời và có duy nhất một phương án đúng). Ở đây chúng tôi sử dụng bộ 60 câu hỏi trong đó 47 câu được lọc từ bộ ngân hàng câu hỏi sử dụng trong phần mềm CMTest112 và 13 câu do tác giả biên soạn. IMS đã đề xuất 17 dạng câu hỏi trong đặc tả QTI, nhưng với mục tiêu sát hạch kiến thức và kỹ năng công nghệ thông tin cụ thể cho môn học MS Excel 2000 nên ở đây chúng tôi chỉ sử dụng hai dạng câu hỏi: câu hỏi đơn lựa chọn (choice) và câu hỏi chọn điểm không cho trước trên hình ảnh (selectPoint). Các câu hỏi lý thuyết chỉ thuộc dạng choice còn các câu hỏi tình huống thực hành thuộc cả hai dạng câu hỏi vừa kể trên. Do đặc thù về nội dung của từng bài học nên số câu hỏi lý thuyết và thực hành ở mỗi bài có thể không bằng nhau. Ví dụ như Bài số 5 có nội dung giảng dạy về “Biểu đồ, đồ thị” thì câu hỏi thuộc bài này chủ yếu là câu hỏi tình huống thực hành.
4.2. Tựđộng sinh bài thi trắc nghiệm
Một chức năng rất quan trọng của hệ thống sát hạch trắc nghiệm bằng máy tính là tự động sinh ra các bài thi theo những tiêu chí do chuyên gia sát hạch đặt ra. Ví dụ: tổng số câu hỏi trong một bài, số câu hỏi thuộc các dạng khác nhau, số
câu hỏi kiểm tra những lĩnh vực kiến thức kỹ năng bắt buộc phải có,...
Ví dụ dưới đây là tiêu chí lựa chọn câu hỏi cho một bài thi trắc nghiệm môn MS Excel 2000
1. Bài thi có 10 câu hỏi
2. các câu hỏi rải đều các bài trong chương trình môn học
3. có 4 câu hỏi kỹ năng thực hành có dạng chọn một điểm trên ảnh 4. có ít nhất một câu hỏi về hàm và công thức.
Một nhiệm vụ rất quan trọng đó là cần phải tổ chức lưu trữ, quản lý ngân hàng câu hỏi và xây dựng câu truy vấn để lấy ra tập câu hỏi tạo thành bài sát hạch thỏa mãn các yêu cầu đặt ra.
4.3. Tổ chức và quản lý ngân hàng câu hỏi trong eXist
Trong phần này sẽ trình bày về cách tổ chức quản lý câu hỏi cho môn Microsoft Excel 2000.
eXist có thể chạy như một tiến trình máy chủđộc lập, như một servlet hoặc nhúng trực tiếp vào trong một ứng dụng. Dưới đây trình bày việc nghiên cứu sử
dụng eXist trong việc quản lý ngân hàng câu hỏi theo chuẩn QTI như một phần mềm CSDL độc lập.
Đểđáp ứng yêu cầu sát hạch kiến thức và kỹ năng theo tiến độ học tập, học
đến bài nào thì nội dung sát hạch sẽ nằm trong các bài đó (ví dụ: nội dung học chỉ là bài 1, bài 2, bài 3, bài 6 thì các câu hỏi sát hạch chỉ nằm ở trong các bài này chứ không thể sát hạch cả nội dung bài 4 và bài 5). Với yêu cầu này chúng tôi đề
xuất cách thức tổ chức ngân hàng câu hỏi trong trường hợp này thành 3 bước như
sau:
1. Với mỗi môn tạo một Collection riêng (Ví dụ: Collection có tên là MSExcel tương ứng để quản lý câu câu hỏi cho môn MS Excel 2000)
2. Trong Collection tương ứng cho từng môn, tạo ra các collection con tương
ứng với từng bài trong môn đó (ví dụ trong Collection có tên là MSExcel tạo ra 6 collection con tương ứng với các bài của môn học)
3. Import các gói câu hỏi QTI đã có vào hệ thống.
Có thể tiếp tục tạo ra các collection con nằm trong từng collection tương
ứng từng bài. Tuy nhiên, mỗi môn học không nên chia quá nhỏ, chỉ nên dừng lại
ở độ sâu là 2 tức là một môn học chia thành các bài, và nhóm các câu hỏi của từng bài vào một sưu tập. Nếu để các collection lồng nhau quá sâu thì sẽ gây ra sự rắc rỗi cho người lập trình và tạo ra sự phức tạp đối với người ra đề.
Ngoài việc lưu câu hỏi thuộc bài nào thì lưu vào sưu tập tương ứng với bài
đó thì có thể nhận biết được mục đích hỏi của câu hỏi qua thuộc tính “title” của thẻ “assessmentItem”, với bộ câu hỏi thử nghiệm chúng tôi sử dụng tiêu đề của bài học làm mục đích hỏi. Khi truy vấn các câu hỏi thì chúng ta có thể dụng thuộc tính “title” này để lọc kết quả ra, ví dụ chúng ta lấy ra các câu hỏi nhằm mục đích sát hạch kiến thực và kỹ năng định dạng thì chúng ta có thể sử dụng biểu thức chính quy “[@title=’Thao tác định dạng’]”.
Đối với những môn học mà không có nhu cầu sát hạch theo tiến độ thì chỉ
cần lưu chung các câu hỏi vào trong cùng một sưu tập để tránh việc can thiệp quá sâu của con người.
Để thực hiện được các việc được liệt kê trong 3 bước ở trên chúng ta có thể
sử dụng công cụ eXist Client Shell hoặc có thể sử dụng qua ứng dụng web của eXist. Trong quá trìng thử nghiệm chúng tôi sử dụng công cụ eXist Client Shell
để thực hiện. Chúng tôi tạo một sưu tập MSExcel, trong sưu tập MSExcel tạo ra 6 sưu tập con: B1, B2, B3, B4, B5, B6 tương ứng với 6 bài học trong giáo trình MSExcel. Sau đó sử dụng chức năng import để nhập 60 tệp xml tương ứng với 60 câu hỏi đã chuẩn bị vào các sưu tập tương ứng.
Xác thực lại số câu hỏi trong sưu tập MSExcel đã có chúng ta xem kết quả thể
Hình 4.1: Kết quả xác thực số câu hỏi có trong sưu tập MSExcel
Kết quả xác thực số câu hỏi chi tiết cho từng sưu tập con trong phần [Phụ lục]
4.4. Xây dựng các XQuery khai thác ngân hàng câu hỏi qua web
Với sự hỗ trợ của eXist, ta có thể xây dựng các ứng dụng web bằng ngôn ngữ
XQuery. Ta có thể viết một ứng dụng web đầy đủ các tính năng từ trang đăng nhập tới các truy vấn lấy dữ liệu trong CSDL eXist và hiển thị kết quả ra web như các ứng dụng web quen biết. Theo tài liệu giới thiệu về XQuery chúng ta đã thấy XQuery có thể trả lại tập kết quảở dạng XML, HTML hoặc TEXT.
Trong phần này chúng tôi trình bày một số XQuery thực thi một số truy vấn
điển hình trong quản lý và khai thác ngân hàng câu hỏi trắc nghiệm.
4.3.1. Một vài truy vấn điển hình
Truy vấn 1: Lấy ra tất cả câu hỏi thuộc loại đơn lựa chọn có trong ngân hàng, kết quả trả về là một trang html
Hình 4.2: Truy vấn listItem.xql
Truy vấn listItem.xql sau khi thực thi trả lại kết quả như sau
Truy vấn 2: Truy vấn dưới đây liệt kê tất cả các câu hỏi thuộc Bài 5 và Bài 6 có trong ngân hàng, kết quả trả vềđược thể hiện dưới dạng trang html. Với yêu cầu này ta có thể xây dựng truy vấn XQuery theo hai cách:
- Cách 1: Chọn trực tiếp các trong sưu tập B5 tương ứng với Bài 5 và sưu tập B6 tương ứng với B6
- Cách 2: Chọn các câu hỏi trong ngân hàng tương ứng sưu tập MSExcel với điều kiện assessmentItem[@title='Biểu đồ, đồ thị' and @title='Hoàn thiện trang bảng tính và in ấn']
Truy vấn ItemB5_6.xql dưới đây được thực hiện theo cách 1
Sau khi thực thi truy vấn kết qủa trả về như sau:
Hình 4.5: Trang web hiển thị kết quả thực thi ItemB5_6.xql
4.3.2. Xây dựng truy vấn tựđộng sinh bài thi trắc nghiệm
Trước hết cần phải phân tích yêu cầu đặt ra để phân tách thành các truy vấn con, từ các truy vẫn con đó lại tiếp tục phân tích xem có thể tách thành các truy vấn con nữa hay không. Cụ thểở phần này, để giải quyết yêu cầu đặt ra ở phần 4.1 ta cần phải xây dựng truy vấn đáp ứng các yêu cầu:
- Chọn 10 câu hỏi ngẫu nhiên rải đều các bài: để giải quyết thì ta cần phải xây dựng một hàm để sinh tập ra 10 số ngẫu nhiên phải đảm bảo yêu cầu các số này là số nguyên, đều nhỏ hơn tổng số câu hỏi trong tập câu hỏi lấy ra.
Hình 4.6: Đoạn mã để sinh ra $num số ngẫu nhiên nhỏ hơn $max
- Tối thiểu phải có một câu thuộc nội dung “Công thức và hàm”: ở đây vì câu hỏi được lưu theo từng bài nên ta chọn câu hỏi trực tiếp trong sưu tập tương ứng với bài đó, và ở yêu cầu này không bắt buộc là câu hỏi thuộc loại choice hay selectPoint nên chúng ta có thể dễ dàng đưa ra câu truy vấn như sau:
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”
- Chọn 4 câu tình huống thực hành ở dạng chọn điểm cho trước trên ảnh: giải quyết bằng cách chọn ngẫu nhiên 4 câu hỏi mà thẻassessmentItem có thuộc tính identifier bằng selectPoint
Hình 4.7: Đoạn mã để lấy ra các câu hỏi thuộc dạng selectPoint
Như vậy số câu còn lại đều thuộc loại đơn lựa chọn cần lấy ra là 5 câu, trong 5 câu này đều có thể nằm ở các bài nhưng với điều kiện là chúng không thể
Hình 4.7: Đoạn mã chọn ra các câu hỏi còn lại
4.3.3. Kết quả thử nghiệm
Chúng tôi đã chạy thử truy vấn trong 10 lần và nhận thấy 10 tập câu hỏi lấy ra cơ bản là khác nhau, nhiều nhất là 2/10 câu trùng nhau giữa hai lần thực thi, đa số sự sự trùng lặp này nằm ở phía các câu hỏi thuộc loại selectPoint vì chỉ
có 13 câu hỏi thuộc loại này đưa vào thử nghiệm.
Dưới đây là kết quả của một lần thực thi truy vấn
Hinh 4.9: Kết quả thực thi truy vấn MSExcelQuestion.xql
Ở đây mới giải quyết cho một yêu cầu cụ thể và thấy việc sử dụng eXist trong quản lý ngân hàng câu hỏi là phù hợp, tuy nhiên sử dụng eXist để thay thế
ngay các hệ quản trị CSDL hiện dùng thì cũng cần phải có thêm thời gian để thử
KẾT LUẬN
Dữ liệu XML đã trở nên quen thuộc và phổ biến trong nhiều lĩnh vực. Đã có những hệ quản trị CSDL XML là sản phẩm thương mại được thử thách. Việc sử
dụng hệ quản trị CSDL XML để thay thế các CSDL cũ trong những ứng dụng thích hợp đang được quan tâm. Luận văn đã tập trung nghiên cứu về các đặc tính chung của các NXD và áp dụng vào một ứng dụng thực tế là quản lý và khai thác ngân hàng câu hỏi trăc nghiệm trong một hệ thống sát hạch tuân theo chuẩn.
Một số kết quả của luận văn:
- Tìm hiểu các hướng tiếp cận để lưu trữ dữ liệu XML và một loại cơ sở dữ
liệu XML đang thịnh hành là NXD, đặc biệt là các ngôn ngữ truy vấn dữ
liệu XML và cách đánh chỉ số trong NXD để tối ưu các truy vấn; - Tìm hiểu một số nét khái quát vềđặc tả QTI do IMS Global đề xuất;
- Nghiên cứu một NXD mã nguồn mở là eXist và ứng dụng vào việc quản lý ngân hàng câu hỏi theo chuẩn QTI: Đề xuất cách tổ chức ngân hàng câu hỏi trong hệ thống eXist; sử dụng ngôn ngữ truy vấn dữ liệu XML khai thác ngân hàng câu hỏi phát sinh bài thi tựđộng.
Một số hạn chế của luận văn:
- Luận văn dừng lại ở mức tìm hiểu và ứng dụng NXD, chưa có các nghiên cứu sâu hơn như vấn đề cải tiến hiệu năng, tăng tốc độ, v.v...
- Chưa tích hợp eXist với các phân hệ khác theo phần hướng dẫn thực thi trong đặc tả QTI thành một thể thống nhất.
Hướng phát triển của luận văn:
- Tiếp tục tùy biến để tích hợp eXist với các phân hệ khác theo phần hướng dẫn thực thi trong đặc tả QTI thành một thể thống nhất;
- Tiếp tục nghiên cứu sâu hơn về NXD, cách đánh chỉ số trong NXD và ứng dụng trong tối ưu hóa truy vấn .
TÀI LIỆU THAM KHẢO
"Tài liệu Tiếng Việt
1. Nguyễn Phương Lan (2001), XML – nền tảng và ứng dụng, NXB Giáo dục, Hà Nội
2. Nguyễn Thị Thắm (2006), Lý thuyết trắc nghiệm và ứng dụng trong trắc nghiệm trực tuyến, Viện Công nghệ Thông tin – Đại học Quốc gia Hà Nội
"Tài liệu Tiếng Anh
3. Alexander Nakhimovsky and Tom Myers, “Professional Java XML Programming”, WROX Press Ltd
4. Athena Vakali • Aristotle University,Greece, Barbara Catania and Anna Maddalena • University of Genoa, “XML Data Stores: Emerging Practices”
5. B. McLaughlin (2000), “Java and XML”, O’Reilly
6. Chun Zhang, Jeffrey F. Naughton, David J. DeWitt, Qiong Luo, and Guy M. Lohmann (2001), . “On Supporting Containment Queries in Relational Database Management Systems”, In Proceedings of the SIGMOD Conference
7. Divesh Srivastava, Shurug Al-Khalifa, H.V. Jagadish, Nick Koudas, Jignesh M. Patel, and Yuqing Wu (2002). “Structural Joins: A Primitive for Efficient XML Query Pattern Matching”,. In Proceedings of the ICDE Conference
8. Héctor Barbosa León and , Francisco García Peñalvo, . “An Authoring Tool for Adaptative Assessment Items”, Plaza de la Merced s/n Salamanca Spain 37008
9. Khin-Myo Win Wee-Keong Ng Ee-Peng Lim Nanyang Technological