1. Trang chủ
  2. » Luận Văn - Báo Cáo

Cơ sở dữ liệu XML trong tổ chức quản lý ngân hàng câu hỏi theo tiêu chuẩn QTI

82 879 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 82
Dung lượng 1,79 MB

Nội dung

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

Trang 1

ĐẠ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

Trang 2

ĐẠ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

Trang 3

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

Trang 4

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

Trang 5

DANH MỤC CÁC TỪ VIẾT TẮT

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 Question & Test

Interoperability Specification

4 Ngôn ngữ đánh dấu mở

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

13 Không gian tên Namespace Namespace

Trang 6

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

Trang 7

đề 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

Trang 8

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

Trang 9

CHƯƠNG 1 SÁT HẠCH TRẮC NGHIỆM BẰNG MÁY TÍNH

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 đó

Trang 10

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

Trang 11

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

Trang 12

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,

Trang 13

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

Trang 14

Để 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, Section, 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

Trang 15

- 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

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

Trang 16

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

Trang 17

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

Trang 18

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”

en Harry Potter RowlingJ K 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

Trang 19

<?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

Trang 20

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(Standard 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

Trang 21

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

Trang 22

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

Trang 23

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 đó

Trang 24

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

Trang 25

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

Trang 26

Ví dụ, một người quan tâm đến thông tin về từng cuốn sách trong kho sử dụng Query1 dưới dây

Query 1: $doc/bookstore/book

Biểu thức đường dẫn này hoàn toàn giống như trong Xpath 2.0

Ta có thể đưa các biểu thức điều kiện để lọc bớt kết quả muốn lấy như sau

- For: chứa các biến tuần tự cho từng nút lặp

- Let: lưu biến giá trị

- Where: lọc kết quả

- Order: sắp xếp kết quả

- Return: kết qủa trả về, với XQuery thì có thể định dạng lại kết quả trả về

Ví dụ: Query 3 dưới đây lấy ra tất cả các thẻ title là con của thẻ book với điều kiện book/price>30

Trang 27

2.3 Cơ sở dữ liệu XML

Cùng với sự phổ dụng của XML thì các sản phẩm CSDL XML cũng ra đời nhằm phục vụ cho nhu cầu tương thích giữa những công nghệ mới và những công nghệ cũ Như chúng ta đã biết với sự phát triển của các hệ quản trị cơ sở dữ liệu hiện nay việc thay thế hoàn toàn cái cũ là một việc làm không khả thi, không khả thi cả ở phía nhà cung cấp cũng như ở phía người sử dụng Đối với nhà cung cấp, khi có công nghệ mới một mặt họ phải thực hiện cải tiến và cập nhật công nghệ cũ sao cho phù hợp với yêu cầu mới, một mặt họ xây dựng hệ thống mới hoàn chỉnh hơn Điển hình với bộ Visual Studio.Net của hãng Microsoft, họ đã xây dựng bộ này giúp cho nhà lập trình theo hướng thủ tục trước đây dần dần quen với cách lập trình hướng đối tượng Một mặt, đối với những người lập trình mới thì hoàn toàn có thể sử dụng ngôn ngữ lập trình C# để xây dựng ứng dụng Net một cách tối ưu, chính C# là công nghệ được xây dựng mới để hỗ trợ cho lập trình theo hướng đối tượng và là công nghệ tốt nhất để xây dựng ứng dụng Net hiện nay

Cũng tương tự như vậy, sự xuất hiện của XML không thể phủ nhận ngay vai trò của các cơ sở dữ liệu quan hệ vốn vẫn được đánh giá là hoàn hảo từ trước đến nay Người ta cùng một lúc đang sẵn sàng đón nhận vừa là cơ sở dữ liệu XML vừa là cơ sở dữ liệu quan hệ hoặc cơ sở dữ liệu hướng đối tượng Vậy nếu cần sự qua lại giữa hai loại đối tượng này thì sẽ phải giải quyết như thế nào? Ví dụ cần lưu dữ liệu XML trong CSDL quan hệ hoặc ngược lại? Từ nhu cầu thực tế này

mà rất nhiều công ty và viện nghiên cứu đã và đang nghiên cứu xây dựng ra các sản phẩm phục vụ cho nhu cầu công việc của mình Các sản phẩm CSDL đều hướng đến hoàn thiện các mục tiêu sau:

- Việc kiểm soát sự dư thừa dữ liệu

- Khả năng trả lời các truy vấn

- Bảo vệ dữ liệu khỏi những lỗi hệ thống

Query3:

for $x in doc("books.xml")/bookstore/book

where $x/price>30

return $x/title

Trang 28

- Tính hiệu quả của việc chia sẻ cho nhiều người dùng

- Tính toàn vẹn và bảo mật của dữ liệu

- Sự tách biệt của các ứng dụng với dữ liệu

Các hệ thống quản lý dữ liệu bao gồm từ các tệp phẳng đến các hệ quản trị CSDL hướng đối tượng và hệ quản trị CSDL quan hệ, và trong tương lai sẽ bao gồm cả các hệ thống quản trị CSDL XML

2.3.1 Từ hệ thống tệp phẳng đến XML [9]

Hình dưới đây thể hiện sự phát triển của các hệ thống quản trị dữ liệu từ trước tới nay và các hệ thống trong tương lai

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

Các hệ thống tệp phẳng có từ giữa những năm 50 theo một thiết kế đơn giản, các tệp chứa các đoạn văn bản một cách liên tục, cấu trúc dữ liệu không quan trọng Các hệ thống như thế này thì tính dư thừa dữ liệu không thể kiểm soát được, dữ liệu không nhất quán, hiệu suất thấp và giá thành bảo trì cao, tuy nhiên các nhà nghiên cứu đã bắt đầu nghiên cứu để tìm ra các cách để khai thác cấu trúc của dữ liệu lưu trữ

Các CSDL phân cấp là cải tiến đầu tiên trên các tệp phẳng Bản thiết kế của chúng phụ thuộc vào cấu trúc dữ liệu, chúng không mềm dẻo: bất kỳ sự thay đổi nào trên dữ liệu cũng đòi hỏi thay đổi đối với các ứng dụng sử dụng dữ liệu

đó Để khắc phục những thiếu sót của hệ thống phân cấp, các nhà phát triển tạo

ra CSDL mạng bằng việc đưa ra các liên kết giữa các cấu trúc Tuy nhiên để sử

Trang 29

dụng một CSDL mạng hiệu quả, chúng ta phải biết được cấu trúc của CSDL đó như thế nào và làm thế nào để duyệt được cấu trúc đó

Trong đầu những năm 70, một nhà nghiên cứu của IBM Research tên là Edgar F.Codd đã đề xuất sự thay đổi dựa trên dữ liệu quan hệ Việc thể hiện trong các CSDL quan hệ là mềm dẻo, đơn giản và không phục thuộc vào ứng dụng Mô hình quan hệ có thể thể hiện một số lượng lớn dữ liệu; tuy nhiên nó không phù hợp với dữ liệu nửa cấu trúc và dữ liệu có sự lồng nhau phức tạp

Sự xuất hiện của XML như cách để trao đổi và thể hiện dữ liệu là gợi ý cho việc nó đứng ở giữa các đề xuất mô hình dữ liệu quan hệ Cấu trúc dữ liệu XML có thể phức tạp, để xử lý dữ liệu XML hiệu quả thì người dùng phải biết được cấu trúc của nó

2.3.2 Các hệ thống CSDL XML

Các hệ thống lưu dữ liệu XML có thể phân thành 2 loại chính như sau: Hệ CSDL khả XML( XML-enabled databases - XED) và hệ CSDL XML nguyên bản (native XML databases - NXD)

XED thường sử dụng để lưu dữ các tài liệu hướng dữ liệu [13]

Có 3 điểm khác nhau chính giữa XED và NXD:

- NXD bảo toàn được cấu trúc vật lý – các phần CDATA, chú thích và các chỉ thị lập trình, DTD Về mặt lý thuyết thì các XED cũng có thể làm được điều này nhưng trên thực tế lại chưa thực hiện được

- NXD có thể lưu trữ không giản đồ Chúng ta cũng có thể sử dụng các kỹ thuật để định danh cấu trúc trong các tài liệu được lưu trong XED Tuy nhiên các kỹ thuật này bị giới hạn

- Việc truy cập tới dữ liệu được lưu trong NXD thường được thông qua XPath, DOM hoặc các giao diện lập trình có liên quan đến XED thường truy cập dữ liệu qua một API chuẩn mở như ODBC hoặc JDBC

Hầu hết các hệ thống có hỗ trợ XML được xây dựng dựa trên các hệ thống CSDL quan hệ hoặc hệ thống CSDL quan hệ đối tượng Với các hệ thống như thế người dùng có thể xuất bản dữ liệu trong XML và chuyển các truy vấn XML sang các câu lệnh SQL ĐHTH quốc gia Singapo (National University of Singpore) thiết kế ra một hệ quản trị CSDL là Xena, cho phép XML sử dụng XPath, được thực thi bên trên hệ quản trị CSDL MySQL Nó tự động lưu dữ liệu

Trang 30

XML trong các bảng theo giản đồ XML, sau đó Xena lấy dữ liệu từ các bảng bằng việc chuyển một truy vấn XPath thành một số truy vấn SQL

Oracle9i là một hệ quản trị CSDL quan hệ/quan hệ đối tượng thương mại rất nổi tiếng, Oracle9i cũng hỗ trợ xử lý XML Công cụ tiện ích XML SQL Utility (XSU) được bao bởi Oracle9i, nó có thể chuyển dữ liệu lấy được từ các bảng quan hệ đối tượng hoặc từ các khung nhìn vào XML XSU cung cấp các công cụ để ánh xạ nội dung XML vào các bảng quan hệ Tuy nhiên với dữ liệu XML có cấu trúc phức tạp có thể phải cấu trúc lại trước khi ánh xạ

SQL Server 2000 của hãng Microsoft cũng cho phép XML, SQLXML[22] được bao bởi SQL Server 2000 cho phép các nhà phát triển ánh xạ các tệp XML vào các bảng quan hệ, tạo các khung nhìn XML của dữ liệu quan

hệ đã có, truy vấn dữ liệu quan hệ với XPath và sinh ra các kết quả XML cho các truy vấn SQL

2.4 Cơ sở dữ liệu XML nguyên bản - NXD[20]

2.4.1 NXD là gì?

Như chúng ta đã biết, XML đang trở hành một chuẩn để trao đổi và thể hiện

dữ liệu trên Internet Lưu trữ tài liệu XML hiệu quả đã và đang trở thành vấn đề cốt lõi trong việc quản lý dữ liệu 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 Các hệ thống như vậy bao gồm cả việc ánh xạ và chuyển đổi giữa XML sang cấu trúc dữ liệu cơ sở

Sự chấp nhận một cách rộng rãi của tài liệu XML trong cả công nghiệp và khoa học đã và đang bộc lộ một sự việc gây nhiều tranh cãi Một mặt nó dễ sử dụng và mở rộng, mặt khác thì nó tạo ra sự khó khăn khi tích hợp vào các hệ thống cũ (điển hình là các ứng dụng CSDL và các hệ quản trị CSDL) Kết quả của mâu thuẫn này chính là sự xuất hiện của các cách lưu trữ dữ liệu XML nguyên bản Vậy NXD là gì?

Theo định nghĩa của các thành viên phát triển đó là [20]:

- NXD định nghĩa một mô hình logic cho một tài liệu XML, lưu trữ, lấy các tài liệu theo mô hình đó Tối thiểu thì mô hình đó phải bao gồm các phần

tử, thuộc tính, PCData và thứ tự tài liệu Một ví dụ điển hình của mô hình như thế này là mô hình dữ liệu Xpath, XML Infoset và các mô hình bao hàm cả DOM và thậm chí là trong SAX1.0

Trang 31

- NXD xem một tài liệu XML như một đơn vị lưu trữ logic cơ sở Tương tự như với CSDL quan hệ, các bản ghi trong bảng là đơn vị lưu trữ cơ sở

- NXD không đòi hỏi phải có một mô hình lưu trữ vật lý đặc biệt nào ở dưới Ví dụ NXD có thể được xây dựng trên một CSDL quan hệ, CSDL phân cấp, CSDL hướng đối tượng hoăc sử dụng một định dạng lưu trữ riêng như chỉ số hoặc tệp nén Điều này có nghĩa là định dạng lưu trữ dữ liệu nền tảng không quan trọng

Một chuyên gia XML là Ronald Bourret đã liệt kê ra hầu hết các sản phẩm NXD trong đó có cả các sản phẩm mã nguồn mở và sản phẩm thương mại [23]

Ở đó ông cũng đã cung cấp cho chúng ta những mô tả sơ bộ về các đặc tính cũng như khả năng hỗ trợ của từng sản phẩm

2.4.2 Các đặc tính của NXD

Trong phần này, sẽ trình bày ngắn gọn về các đặc tính chung của các NXD Điều này giúp chúng ta có một ý tưởng về các đặc tính nào đã có và các đặc tính nào được mong đợi ở các NXD đang và sẽ được phát triển trong tương lai

- Sưu tập tài liệu

- Ngôn ngữ truy vấn

- Cập nhật và xóa

- Giao tác, khóa các giao tác tương tranh

- Giao diện lập trình ứng dụng

"Sưu tập tài liệu

Rất nhiều CSDL XML hỗ trợ khái niệm sưu tập (collection) Sưu tập trong NXD đóng vai trò tương tự như một bảng trong CSDL quan hệ hoặc một thư mục trong một hệ thống tệp Ví dụ, chúng ta sử dụng một NXD để lưu các phiếu mua hàng, trong trường hợp này chúng ta có thể định nghĩa một sưu tập các phiếu mua hàng Khi truy vấn trên các phiếu mua hàng có thể được giới hạn trong sưu tập này

Giả sử chúng ta lưu các tài liệu hướng dẫn sử dụng các sản phẩm của một công ty trong một NXD Trong trường hợp này chúng ta muốn định nghĩa một hệ thống phân cấp các sưu tập Chúng ta có thể có một sưu tập cho từng sản phẩm

và trong sưu tập đó chứa các chương trong mỗi tài liệu hướng dẫn

Trang 32

"Các ngôn ngữ truy vấn

Xử lý truy vấn được xây dựng dựa trên cả định dạng lưu trữ và các chỉ số Đây là một chủ đề lớn được nhiều nhà nghiên cứu cùng thảo luận Hiệu năng và việc thực thi của xử lý truy vấn không chỉ bị ảnh hưởng bởi định dạng lưu trữ và các chỉ số mà chúng còn bị ảnh hưởng bởi ngôn ngữ truy vấn

Hầu hết NXD hỗ trợ một hoặc nhiều ngôn ngữ truy vấn Ngôn ngữ truy vấn XML phổ biến nhất là XPath (phần mở rộng XPath hỗ trợ truy vấn trên nhiều tài liệu) và XQuery Khi quan tâm đến một NXD, chúng ta nên kiểm tra mức độ hỗ trợ đối với những yêu cầu mình đưa ra, từ việc tìm kiếm theo dạng text đến việc gộp nhiều đoạn của nhiều tài liệu khác nhau

Trong tương lai, hầu hết NXD sẽ có khả năng hỗ trợ XQuery của W3C

"Cập nhật và xóa

Các NXD sử dụng các phương thức khác nhau cho việc cập nhật và xóa tài liệu, từ việc thay thế hoặc xóa các tài liệu đang có tới việc sửa thông qua một cây DOM, đặc biệt là làm thế nào để xóa các đoạn của một tài liệu Hầu hết các phương thức này là riêng rẽ và tùy thuộc vào từng ngôn ngữ Dưới đây là hai ngôn ngữ trong số các ngôn ngữ chuẩn để cập nhật các tài liệu XML thường được được gắn trong NXD

- XUpdate của XML:DB Initiative, đây là một ngôn ngữ dựa vào XML

XUpdate sử dụng XPath để chỉ ra một tập các nút sau đó chỉ ra vị trí của nút để chèn thêm một nút mới trước nút này hoặc xóa các nút này khỏi tài liệu

- Mở rộng XQuery được nhóm phát triển XQuery cùng với Patrick Lehti đề

xuất, nó có cú pháp dựa vào cú pháp cơ bản của XQuery

"Giao tác, khóa các giao tác tương tranh

Hầu như toàn bộ các NXD đều hỗ trợ giao tác Tuy nhiên, vấn đề khóa thường được thực hiện ở mức khóa toàn bộ tài liệu nhiều hơn là khóa ở các nút độc lập, do đó số người dùng đồng thời có thể tương đối thấp Điều này phụ thuộc vào ứng dụng và những nội dung tạo nên tài liệu Ví dụ:

- Một tài liệu là một chương của một bản hướng dẫn sử dụng cho người

dùng và các tác giả sửa các chương Khóa ở mức tài liệu gần như không gây ra lỗi đồng thời bởi vì hai tác giả cùng cập nhật vào một chương tại cùng một thời điểm là không xảy ra

Trang 33

- Một tài liệu lưu dữ liệu về các hướng dẫn bán hàng của một công ty và

người bán nhập thông tin hướng dẫn mới Trong trường hợp này khóa mức tài liệu dường như gây ra lỗi, bởi vì cơ hội của 2 người bán hàng cập nhật thông tin hướng dẫn tại cùng một thời điểm là khá cao

- Một tài liệu chứa dữ liệu sử dụng trong một luồng công việc, giống như

một hợp đồng tài chính Mỗi bước của luồng đọc dữ liệu từ tài liệu và thêm dữ liệu của bước đó vào Ví dụ, một bước có thể thực hiện một lần kiểm tra thẻ và thêm vào điểm thẻ vào tài liệu Bước khác có thể kiểm tra

số dư trên các hợp đồng khác với cùng khách hàng và thêm vào tổng số

dư Nếu sử dụng khóa mức nút, một số bước có thể được thực hiện song song Tuy nhiên nếu khóa ở mức tài liệu thì bắt buộc các bước được thực hiện tuần tự để tránh xảy ra xung đột và như vậy có thể gây lên sự chậm trễ không thể chấp nhận được

Khóa một nút thông thường đòi khỏi khóa cha của nó, và cứ như vậy thì

sẽ quay trở lại khóa nút gốc, ảnh hưởng của việc khóa này lên toàn bộ tài liệu Để nhận ra tại sao điều này đúng như vậy thì chúng ta xem một giao tác đọc một nút

lá Nếu giao tác đó không đòi khóa trên các nút ông cha của nút lá, giao tác khác

có thể xóa đi một nút ông cha của nó và đương nhiên là xóa cả chính nút lá đó

Rõ ràng là các giao tác nên cập nhật từng phần của tài liệu mà phần này không nằm trên đường dẫn trực tiếp từ gốc tới nút lá này

Giải pháp cho vấn đề này được đưa ra bởi Stijn Dekeyser Trong khi họ không đòi hỏi phải tránh vấn đề khóa các nút ông cha của một nút đích một cách toàn bộ, họ làm cho việc khóa mềm dẻo hơn bằng việc chú thích chúng với truy vấn định nghĩa đường dẫn từ nút đã khóa tới nút đích Điều này cho phép các tiến trình khác xác định được xem chúng có trùng với các giao tác đang bị khóa hay không

Chú ý chỉ có số ít NXD hỗ trợ khóa mức nút

"Các giao diện lập trình ứng dụng

Hầu hết NXD cung cấp các giao diện lập trình ứng dụng (API) Thường là các mẫu của một giao diện giống như ODBC, với các phương thức kết nối tới CSDL, hiển thị dữ liệu trừu tượng, thực thi truy vấn, và lấy kết quả Các kết quả được trả

về thường là một xâu XML, một cây DOM, hoặc một SAX Parser hoặc XMLReader Nếu các truy vấn có thể trả lại nhiều tài liệu thì các phương thức cho tích hợp thông qua tập kết quả cũng sẵn sàng

Trang 34

- XML:DB API của XML:DB.org là ngôn ngữ lập trình tự nhiên, sử dụng

ngôn ngữ truy vấn XPath, và đang được mở rộng để hỗ trợ XQuery Nó được thực thi trên một số các NXD và có thể cũng được thực thi trên cả các CSDL không nguyên bản

- JSR 225: XQuery API for Java (XQJ) dựa trên JDBC và sử dụng ngôn

ngữ truy vấn XQuery Nó cũng được phát triển qua JCP (Java Community Process) của Sun và bản nháp đã sẵn sàng Bởi vì khởi nguồn của cái này đang được dẫn dắt bởi IBM và Oracle

Hầu hết các NXD cũng hỗ trợ khả năng thực thi truy vấn và trả lại kết quả qua giao thức HTTP

Khi nói đến NXD, ngoài các đặc tính đã liệt kê ở trên người ta thường quan tâm đến các đặc tính sau tiếp sau:

"Tính hoàn nguyên

Một đặc tính quan trọng của NXD là chúng có thể hoàn nguyên các tài liệu XML, nghĩa là chúng ta có thể lưu một tài liệu XML trong một NXD và lấy chính tài liệu đó từ trong NXD ra mà không bị bất kỳ một sự thay đổi nào Điều này rất quan trọng với các ứng dụng hướng văn bản, giữ nguyên vẹn đoạn CDATA, chú thích và chỉ thị xử lý Đặc biệt với các ứng dụng về luật pháp và y học tính chất này rất quan trọng vì các chúng đòi hỏi phải giữ được tính đúng đắn các bản copy của tài liệu

Tính hoàn nguyên không quan trọng đối với các ứng dụng hướng dữ liệu vì các ứng dụng này nhìn chung chỉ quan tâm chỉ đến các phần tử, thuộc tính, văn bản và thứ tự phân cấp Tất cả các phần mềm chuyển dữ liệu giữa các tài liệu và CSDL cũng có thể hoàn nguyên chúng

NXD có thể hoàn nguyên các tài liệu ở mức các phần tử, thuộc tính, PCDATA và thứ tự tài liệu Mức hoàn nguyên được hỗ trợ đến mức nào là tùy thuộc vào từng CSDL Nhìn chung, các NXD dựa trên văn bản (text-based NXD) hoàn nguyên các tài liệu một cách chính xác trong khi NXD dựa trên mô hình (model-based NXD) hoàn nguyên các tài liệu ở mức mô hình tài liệu

"Dữ liệu từ xa

Một số NXD có thể chứa dữ liệu từ xa trong các tài liệu trong CSDL Thông thường đây là dữ liệu lấy được từ một CSDL quan hệ qua ODBC, OLE DB hoặc JDBC và được mô hình hóa sử dụng ánh xạ dựa trên bảng hoặc ánh xạ dựa trên

Trang 35

đối tượng [19] Nếu dữ liệu đang tồn tại thì việc cập nhật tài liệu trong một NXD

có được phản ánh trong CSDL từ xa hay không là tùy thuộc vào NXD Hầu hết NXD có khả năng hỗ trợ dữ liệu thực từ xa

"Chỉ số

Vấn đề cốt lõi của một NXD hay của bất kỳ CSDL nào đều là làm thế nào để lưu trữ, đánh chỉ số và truy vấn thông tin Khi nhìn từ bên ngoài vào thì chi tiết của bản thiết kế có thể không rõ ràng nhưng chỉ số thực sự đóng một vai trò quan trọng đối với các hàm, hiệu năng và tính mềm dẻo của một hệ CSDL Một NXD thể hiện một mô hình logic của việc lưu trữ và lấy các tài liệu XML Tuy nhiên,

mô hình lưu trữ trong của NXD không cần phải tương ứng với tài liệu Đối với định dạng lưu trữ, từng CSDL có thể lưu bằng nhiều cách sao cho hỗ trợ được càng nhiều đặc tính của NXD càng tốt

Như đã trình bày ở trên, chỉ số là điểm cốt lõi của bất kỳ CSDL nào Nếu không có khả năng đánh chỉ số thông minh trên thông tin sẽ lưu trữ thì một hệ thống CSDL không tốt hơn nhiều so với một hệ thống tệp trong việc truy vấn thông tin

Tất cả NXD hỗ trợ các chỉ số để tăng tốc độ truy vấn Có 3 loại chỉ số: chỉ số giá trị; chỉ số cấu trúc; chỉ số full-text Với chỉ số giá trị, việc đánh chỉ số giá trị văn bản (phần nội dung của cặp thẻ mở và đóng của một phần tử) hoặc giá trị thuộc tính và được sử dụng để xử lí truy vấn như, “Tìm tất cả các phần tử hoặc

thuộc tính với giá trị của chúng là Santa Cruz” Chỉ số cấu trúc, cách đánh chỉ số

sử dụng vị trí của các phần tử và thuộc tính của phần tử, nó được sử dụng để xử lí

các truy vấn, như “Tìm tất cả các phần tử Address” Chỉ số giá trị và chỉ số cấu trúc được kết hợp để xử lí các truy vấn có dạng “Tìm tất cả các phần tử City với giá trị của chúng là Santa Cruz” Cuối cùng, chỉ số full-text đánh chỉ số thẻ độc

lập trong văn bản và giá trị thuộc tính, chỉ số full-text được sử dụng để xử lí các

truy vấn có dạng “Tìm tất cả các tài liệu chứa từ Santa Cruz” bên trong phần tử

Trang 36

của chúng được lưu ở phần còn lại của tài liệu XML hay là nên bỏ tham chiếu thực thể này đi? Thật không đơn giản để trả lời cho câu hỏi này! [20]

"Chuẩn hóa và toàn vẹn tham chiếu

- Chuẩn hóa

Chuẩn hóa có liên quan đến quá trình thiết kết một giản đồ CSDL mà với giản đồ này dữ liệu không bị dư thừa Chuẩn hóa có một số ưu điểm như là: giảm không gian lưu trữ trên đĩa, loại bỏ được tính không nhất quán của dữ liệu Đây

là một trong những điểm quan trọng của các hệ quản trị CSDL quan hệ và là một trong những chủ đề chính trong các cuộc thảo luận về việc lưu dữ liệu trong NXD

Trước khi trình bày chi tiết về việc chuẩn hóa, cần chú ý là việc chuẩn hóa không áp dụng cho các tài liệu hướng văn bản.Ví dụ, quan tâm một sưu tập các tài liệu miêu tả về các sản phẩm của một công ty Trong các sưu tập đó, chỉ một

số ít thông tin chung cho các tài liệu như – copyright, địa chỉ công ty, số điện thoại, logo của sản phẩm…- lượng thông tin này quá nhỏ so với tổng dữ liệu nên không ai quan tâm đến việc chuẩn hóa chúng

Cũng như các CSDL quan hệ, trong NXD không bắt buộc chúng ta phải chuẩn hóa các dữ liệu Việc thiết kế kho dữ liệu không tối ưu trong NXD tương đối đơn giản Tuy nhiên chúng ta cần quan tâm đến cấu trúc của các tài liệu trước khi lưu trong NXD

Chuẩn hóa dữ liệu đối với NXD lớn hơn so với cùng việc chuẩn hóa chúng đối với một CSDL quan hệ; chúng ta cần thiết kế lại các tài liệu do đó không có

dữ liệu trùng lặp Một điểm khác biệt giữa NXD và các CSDL quan hệ là XML

hỗ trợ các thuộc tính đa trị trong khi hầu hết các CSDL quan hệ không hỗ trợ Điều này làm nó có khả năng chuẩn hóa dữ liệu trong NXD bằng nhiều cách mà đối với CSDL quan hệ không thực hiện được

Ví dụ, xem xét một phiếu bán hàng Phiếu này bao gồm các thông tin tiêu đề như số phiếu, ngày, số khách, một hoặc nhiều mục hàng, cái này chứa một phần

số lượng, tổng giá Trong một CSDL quan hệ, thông tin phần tiêu đề của phiếu phải lưu trong một bảng tách biệt đối với các mục hàng (dòng đơn hàng), bởi vì

có nhiều dòng đơn hàng trên một tiêu đề Trong một NXD, thông tin này có thể được lưu trong một tài liệu đơn mà không có dư thừa bởi vì phân cấp tự nhiên của XML cho phép lưu một phần tử cha có nhiều phần tử con

Trang 37

Tuy nhiên, việc chuẩn hóa thực không phải chỉ đơn giản thế Ví dụ, cái gì sẽ xảy ra khi chúng ta muốn đơn hàng chứa thông tin khách hàng như tên liên hệ, địa chỉ thanh toán và địa chỉ chuyển hàng? Ở đây có 2 lựa chọn, đầu tiên chúng

ta có thể nhân đôi thông tin khách khàng trong mỗi đơn hàng cho khách hàng đó, dẫn tới việc dư thừa dữ liệu và các vấn đề từ việc dư thừa này gây ra Thứ hai, chúng ta có thể lưu thông tin khách hàng tách biệt và thậm trí cung cấp một Xlink trong tài liệu đơn hàng tới các tài liệu khách hàng hoặc liên kết các 2 tài liệu khi dữ liệu được truy vấn Giả sử Xlinks cũng được hồ trợ hoặc các ngôn ngữ truy vấn nối (cũng không luôn luôn đúng)

Thực tế không có câu trả lời rõ ràng Dữ liệu quan hệ trong thế giới thực thường là không chuẩn hóa vì lý do hiệu năng, do đó dữ liệu XML không chuẩn hóa có thể không phải vấn đề xấu như chúng ta thường nghĩ, nhưng đây là một quyết định mà chúng ta phải đưa ra Nếu chúng ta đang lưu các tài liệu hướng tư liệu và có thể chuẩn hóa chúng ở mức độ chấp nhận được- như việc lưu các chương hoặc thủ tục như các tài liệu tách rời và nối chúng để tạo ra tài liệu cho người dùng cuối- do đó một NXD có thể là một giải pháp tốt cho chúng ta, đặc biệt bởi vì nó sẽ cung cấp cho chúng ta các đặt tính như ngôn ngữ truy vấn XML không thấy trong các CSDL khác Nếu chúng ta lưu các tài liệu hướng dữ liệu và một NXD cải tiến hiệu năng ứng dụng hoặc cung cấp bộ lưu trữ dữ liệu nửa cấu trúc chúng ta không thể tìm thấy trong các CSDL khác thì chúng ta nên sử dụng

nó Nhưng nếu chúng ta tự tìm cách xây dựng một CSDL quan hệ trên trong NXD chúng ta có thể hỏi lại chính mình tại sao chúng ta không sử dụng CSDL quan hệ trước thay thế

- Toàn vẹn tham chiếu

Liên quan mật thiết với việc chuẩn hóa đó là tính toàn vẹn tham chiếu Toàn vẹn tham chiếu ám chỉ đến sự hợp lệ của con trỏ tới dữ liệu có liên quan và là một phần cần thiết để duy trì trạng thái CSDL bền vững Nó không thực hiện tốt nều như một đơn hàng chứa một số khách hàng hoặc không có khách hàng Phòng vận chuyển sẽ không biết gửi các mặt hàng đã mua tới đâu và phòng kế toán sẽ không biết gửi hóa đơn đến đâu

Trong một CSDL quan hệ, toàn vẹn tham chiếu có nghĩa là đảm bảo các khóa ngoại trỏ tới các khóa chính hợp lệ - đó là, kiểm tra sự tồn tại dòng khóa chính tương ứng với bất kỳ khóa ngoại nào Trong một NXD, toàn vẹn tham chiếu có

Trang 38

nghĩa đảm bảo con trỏ trong tài liệu XML trỏ tới các tài liệu hợp lệ hoặc tới các phần đoạn tài liệu hợp lệ

Có một số dạng con trỏ trong các tài liệu XML như sau: các thuộc tính ID/IDREF; các trường key/keyref (như định nghĩa trong các giản đồ XML); Xlink; cơ chế riêng khác

Toàn vẹn tham chiếu trong NXD có thể được phân làm 2 loai: toàn vẹn của các con trỏ trong (các con trỏ trong một tài liệu) và toàn vẹn của các con trỏ ngoài (các con trỏ giữa các tài liệu)

Nếu toàn vẹn tham chiếu của các con trỏ trong sử dụng cơ chế không theo chuẩn thì không bị bắt buộc buộc bởi vì NXD không có cách nào để xác định các con trỏ như thế Toàn vẹn tham chiếu của các con trỏ trong sử dụng cơ chế chuẩn như ID/IDREF hoặc key/keyref ít nhất được hỗ trợ một phần thông qua việc kiểm tra tính hợp lệ

Hầu hết các NXD thực hiện kiểm tra hợp lệ chỉ khi một tài liệu được chèn vào trong CSDL Do đó nếu thực hiện cập nhật ở mức tài liệu như xóa và sau đó thay thế bằng một tài liệu mới thì lúc này việc kiểm tra hợp lệ có khả năng đảm bảo tính toàn vẹn của các con trỏ trong Nhưng nếu cập nhật được thực hiện ở mức nút như chèn, sửa, và xóa các nút một cách độc lập thì CSDL cần thực hiện thêm các công việc (như kiểm tra tính hợp lệ của toàn bộ sự thay đổi đó) để đảm bảo toàn vẹn tham chiếu của các con trỏ trong Chỉ ít NXD làm được điều này Hầu như không có CSDL nào hỗ trợ toàn vẹn tham chiếu của các con trỏ ngoài hoặc nếu có thì rất ít CSDL hỗ trợ Nếu một con trỏ ngoài trỏ tới một tài nguyên được lưu ở một vị trí nào đó trong CSDL, không có lý do gì để không ép buộc toàn vẹn con trỏ Tuy nhiên, nếu con trỏ trỏ tới một tài nguyên bên ngoài CSDL thì sự không hỗ trợ cũng là hợp lý Ví dụ, một tài liệu chứa một Xlink trỏ tới một tài liệu trên một trang web bên ngoài CSDL, về sau không thể điều khiển được sự tồn tại của trang web đó

Trong tương lai, hầu hết NXD sẽ có thể hỗ trợ toàn vẹn tham chiếu của các con trỏ trong sử dụng các cơ chế chuẩn Rất nhiều NXD sẽ có khả năng hỗ trợ một số loại con trỏ ngoài cũng như toàn vẹn của con trỏ ngoài, các con trỏ ngoài này trỏ tới tài nguyên lưu trong CSDL

Trang 39

2.4.3 Hai kiểu NXD

Có hai kiểu NXD là: Persistent DOM (PDOM) và các hệ thống quản lý nội dung (CMS)

"Persistent DOM (PDOM)

Một PDOM là một kiểu riêng của NXD, nó thực hiện DOM trên một số loại kho lưu trữ cố định PDOM có thể trả lại các tài liệu như các cây DOM mới nhất

Sự thay đổi trên cây DOM bị ảnh hưởng trực tiếp lên CSDL Tùy vào CSDL mà

sự thay đổi có được thực hiện ngay hay phải chờ một lời gọi nào đó Trong hầu hết các NXD, cây DOM được trả lại trong ứng dụng là một bản sao, sự thay đổi được thực hiện trên một bản khác trong CSDL thông qua một ngôn ngữ cập nhật XML hoặc được thực hiện bằng việc thay thế toàn bộ tài liệu

Bởi vì các cây PDOM là sống (thực), CSDL thường là cục bộ CSDL ở trong cùng không gian xử lý với ứng dụng hoặc ít nhất cũng ở cùng một máy, mặc dù đây không phải là yêu cầu bắt buộc Điều này được thực hiện do yêu cầu về hiệu suất thực hiện, như một PDOM trên một CSDL từ xa sẽ đòi hỏi các lời gọi thường xuyên tới máy chủ từ xa và như vậy thì sẽ tốn nhiều thời gian xử lý hơn PDOM đáp ứng các nhiệm vụ giống như các ứng dụng DOM (như CSDL hướng đối tượng phục vụ các ứng dụng hướng đối tượng) PDOM cung cấp một khả năng lưu trữ dữ liệu lâu dài cho các ứng dụng cũng như việc phục vụ bộ nhớ

ảo cho ứng dụng Nhiệm vụ sau đây rất quan trọng đối với các ứng dụng DOM,

đó là việc điều khiển các tài liệu lớn vì các cây DOM có thể mở rộng các tài liệu XML một cách dễ dàng

"Hệ quản trị nội dung - CMS

CMS là một loại khác của NXD, chúng được thiết kế cho việc quản trị các tài liệu do con người viết ra như là các bản hướng dẫn người dùng, và được xây dựng bên trên NXD CSDL nhìn chung ẩn sau người dùng cuối Chúng cung cấp các đặc tính như:

- Điều khiển phiên bản và truy cập

- Máy tìm kiếm

- Các bộ soạn thảo XML/SGML (Standard Generalized Markup Language)

- Các máy xuất bản như báo, CD hoặc web

Trang 40

- Tách biệt nội dung với khuôn dạng

- Mở rộng thông qua kịch bản và lập trình

- Toàn vẹn của dữ liệu CSDL

Thuật ngữ hệ quản trị nội dung, khác với hệ quản trị tài liệu, hệ quản trị nội dung cho phép chúng ta tách tài liệu thành các phân đoạn nội dung riêng rẽ, như

là thủ tục, chương, hoặc như tên tác giả, ngày sửa lại, số tài liệu hơn là việc phải quản lý từng tài liệu… Điều phối hoạt động đồng thời của nhiều người trên cùng một tài liệu và cho phép chúng ta tập hợp các thành phần đang có tạo nên các tài liệu mới

2.4.4 Kiến trúc NXD

Các kiến trúc của NXD được chia thành hai loại: dựa trên văn bản và dựa trên

mô hình

"NXD dựa trên văn bản

Một NXD dựa trên văn bản (text-based NXD) là một CSDL lưu XML dưới dạng văn bản Nó có thể là một tệp trong một hệ thống, một BLOB trong CSDL quan hệ hoặc một định dạng văn bản riêng

Thông thường thì các NXD dựa trên văn bản là các chỉ số Nó cho phép các máy truy vấn có thể nhảy tới một vị trí bất kỳ trong tài liệu Đây là một ưu điểm của các NXD vì chúng lấy ra toàn bộ tài liệu hoặc một đoạn tài liệu một cách nhanh chóng Giả sử trong trường hợp các đoạn tài liệu cần lấy ra được lưu trong các byte liên tiếp nhau trên ổ đĩa thì NXD này có thể thực hiện tìm kiếm theo chỉ

số đơn hoặc theo vị trí trên đĩa

Trong trường hợp này, một NXD dựa trên văn bản tương tự một CSDL phân cấp, cả 2 loại CSDL đều có thể thực hiện tốt hơn CSDL quan hệ khi lấy và trả lại

dữ liệu theo một thứ bậc được định nghĩa trước

"NXD dựa trên mô hình

Khác với các NXD dựa trên văn bản, các NXD dựa trên mô hình xây dựng một mô hình đối tượng nội bộ và lưu trữ theo mô hình này Cách lưu trữ mô hình đối tượng nội bộ phụ thuộc vào từng CSDL Một số CSDL lưu mô hình trong một CSDL quan hệ hoặc trong CSDL hướng đối tượng Ví dụ, lưu trữ DOM trong một CSDL quan hệ có thể sẽ trả lại kết quả trong các bảng giống như là các

Ngày đăng: 25/03/2015, 09:38

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiế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 Sách, tạp chí
Tiêu đề: XML – nền tảng và ứng dụng
Tác giả: Nguyễn Phương Lan
Nhà XB: NXB Giáo dục
Năm: 2001
3. Alexander Nakhimovsky and Tom Myers, “Professional Java XML Programming”, WROX Press Ltd Sách, tạp chí
Tiêu đề: Professional Java XML Programming”
4. Athena Vakali • Aristotle University,Greece, Barbara Catania and Anna Maddalena • University of Genoa, “XML Data Stores: Emerging Practices” Sách, tạp chí
Tiêu đề: • " University of Genoa, “"XML Data Stores: Emerging Practices
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 Sách, tạp chí
Tiêu đề: On Supporting Containment Queries in Relational Database Management Systems
Tác giả: Chun Zhang, Jeffrey F. Naughton, David J. DeWitt, Qiong Luo, and Guy M. Lohmann
Năm: 2001
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 Sách, tạp chí
Tiêu đề: Structural Joins: A Primitive for Efficient XML Query Pattern Matching
Tác giả: Divesh Srivastava, Shurug Al-Khalifa, H.V. Jagadish, Nick Koudas, Jignesh M. Patel, and Yuqing Wu
Năm: 2002
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 Sách, tạp chí
Tiêu đề: An Authoring Tool for Adaptative Assessment Items
9. Khin-Myo Win Wee-Keong Ng Ee-Peng Lim Nanyang Technological University, “A Architectural Framework for Native XML Data Management” Sách, tạp chí
Tiêu đề: A Architectural Framework for Native XML Data Management
11. R. Hoque (2000), “. XML for real programmers”, Morgan Kaufmann 12. Shu-Yao Chien, Vassilis J. Tsotras, Carlo Zaniolo, and Donghui Zhang Sách, tạp chí
Tiêu đề: XML for real programmers”
Tác giả: R. Hoque
Năm: 2000
13. Ullas Nambiar and Zoé Lacroix Arizona State University Stéphane Bressan, Mong Li Lee, and Yingguang Li National University of Singapore (2002), “Current Approaches to XML Management” Sách, tạp chí
Tiêu đề: Current Approaches to XML Management
Tác giả: Ullas Nambiar and Zoé Lacroix Arizona State University Stéphane Bressan, Mong Li Lee, and Yingguang Li National University of Singapore
Năm: 2002
14. W.P. Lee and A.Goh (2004), “Setting and Sharing Web-Based Assessments”, Web Based Education Proceeding (416), pp.270-274 Sách, tạp chí
Tiêu đề: Setting and Sharing Web-Based Assessments”
Tác giả: W.P. Lee and A.Goh
Năm: 2004
15. Wolfgang Meier, Darmstadt University of Technology, “eXist: An Open Source Native XML Database ” Sách, tạp chí
Tiêu đề: eXist: An Open Source Native XML Database
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 Khác
10. Quanzhong Li and Bongki Moon (2001). “Indexing and Querying XML Khác

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w