Giản đồ đánh số theo kiểu level-order

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) 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 Luận văn ThS. Công nghệ thông tin 1.01.10 (Trang 47 - 51)

Các định danh duy nhất được sinh bởi giản đồđánh số này có một số tính chất quan trọng: cho một định danh có thể dễ dàng xác định được id của nút cha, anh em hoặc các nút con nếu có. Ví dụ, đối với một cây tài liệu k-phân chúng ta có thể tính được định danh của nút cha của một nút có định danh là i nhờ hàm sau đây: ( ) ⎥⎦ ⎤ ⎢⎣ ⎡ − + = 2 1 k i parenti

Giản đồ đánh số thực thi trong eXist là mở rộng của giản đồ trên. Để khắc phục hạn chế về kích thước tài liệu người ta quyết định bỏ một phần ràng buộc về tính đầy đủ của cây và có một giản đồ sửa đổi. Tài liệu sẽ không được xem

như một cây k-phân đầy đủ nữa. Thay vào đó số con mà một nút có thể có được tính toán cho tất cả các nút trên cùng mức ở trong. Điều đó có nghĩa là size(x) =size(y) nếu level(x)=level(y), ở đây size(n) là số con của nút n và level(m) là độ

dài đường đi từ nút gốc của cây tới m. Thông tin về số con có thể có của nút ở

từng mức của cây được lưu kèm với tài liệu trong một mảng.

Hình 2 thể hiện các định danh duy nhất sinh bởi eXist đối với cùng tài liệu nhưở trên. 1 contact 3 phone 2 name 4 “John Cage” 5 6 office 7 home 8 9 10 “664455” 11 “445566” ID dự trữ Hình 3.2: Giản đồ đánh số theo kiểu level-order Cách tiếp cận như vậy là có tính đến thực tế. Các tài liệu thường có một số lớn các nút ở những mức sâu (gần lá) và ít nút hơn ở các mức cao (gần gốc) của cây phân cấp. Giới hạn về kích thước tài liệu được tăng lên đáng kể và có thể đánh chỉ số cho các tài liệu lớn hơn nhiều. So với giản đồ đánh chỉ số ban đầu, các định danh dự phòng được chèn thêm là ít hơn.

Việc chèn một nút ở mức sâu hơn của cây sẽ không có ảnh hưởng tới các

định danh duy nhất khởi tạo cho các nút ở mức cao hơn. Cũng có thểđể các định danh dự phòng giữa các nút đang có để tránh việc phải đánh chỉ số lại các nút khi cập nhật tài liệu sau này. Tuy nhiên, eXist không cung cấp một cơ chế cập nhật cải tiến như vậy.

Tài liệu có thể được cập nhật toàn bộ như một tổng thể. Các phiên bản hiện tại của eXist chưa cho phép xử lý từng nút riêng lẻ. Khả năng hỗ trợ cho việc cập nhật tài liệu động đã được lên kế hoạch cho các phiên bản trong tương lai, còn hiện tại eXist chỉ phù hợp nhất đối với các tài liệu tĩnh hoặc với các tài liệu mà ít khi được cập nhật.

Sử dụng giản đồđánh số trên không ảnh hưởng đến các thuộc tính chung cuả các định danh theo level-order đã gán. Cho một định danh, ta vẫn tiếp tục có

thể tính toán các định danh nút cha, anh em và con sử dụng thông tin bổ xung về

số con của từng nút có thể có ở mỗi mức của cây.

Ngược với cách tiếp cập của các nhà phát triển eXist, các giản đổđánh chỉ

số sửa đổi thảo luận ở trên tập trung vào một tập con giới hạn các truy vấn biểu thức đường dẫn và họ tập trung đến việc hỗ trợ một cách hiệu các phép định vị

trên các trục. Còn eXist cung cấp việc thực thi ngôn ngữ truy vấn XPath một cách đầy đủ, việc hỗ trợ toàn bộ trục XPath là điểm quan tâm chính trong khi phát triển. Ví dụ, xem xét một biểu thức mà chọn các phần tử cha của các phần tử

paragraph chứa đựng cụm “XML”: //para[contains(., ‘XML’)]/..

“..” là viết tắt của “parent::node()”. Nó sẽ chọn phần tử cha của từng nút trong tập nút ngữ cảnh hiện tại. Sử dụng giản đồ đánh chỉ số trong eXist, ta có thể dễ dàng tính toán định danh nút cha cho tất cả các nút đưa ra và ta cũng có thể tính toán các định danh của các nút anh em và con. Do toàn bộ các trục định vị có thểđược thực thi trên đỉnh của giản đồđánh chỉ số.

Điều này có dấu hiệu giảm kích thước lưu trữ của một nút đơn trong kho XML: để lưu một nút không đòi hỏi phải lưu các liên kết cứng hoặc mềm tới nút cha, anh em, con và các thuộc tính cùng với nút này. Để truy cập tới cha của một nút, chúng ta tính toán định danh duy nhất của nó một cách đơn giản và tìm kiếm trong chỉ số. Bởi vì không đòi hỏi phải lưu cả các liên kết giữa các nút, một nút phần tử sẽ chiếm giữ không quá 4 đến 8 byte trong kho XML của eXist.

Thêm vào đó với giản đồ chỉ số, với bất kỳ nút nào trong tài liệu XML có thể

cung cấp như một điểm bắt đầu cho một biểu thức XPath. Ví dụ, các nút được chọn bởi biểu thức XPath đầu tiên có thể được xử lý bởi một biểu thức thứ hai.

Đây là một đặc tính quan trọng vì nó cho phép nhiều truy vấn biểu thức đường dẫn được gắn với một biểu thức XQuery.

3.2.3. Tổ chức dữ liệu và chỉ số

Phần này trình bày chi tiết việc thực thi tập trung vào tổ chức dữ liệu và chỉ

số. Chúng ta sẽ giải thích giản đồ đánh số và cấu trúc chỉ số tạo ra trong xử lý truy vấn như thế nào.

Hiện nay, eXist sử dụng bốn tệp chỉ sốở trong nhân của NXD: - collections.dbx quản lý hệ thống phân cấp các sưu tập

- dom.dbx tập hợp các nút trong một tệp có phân trang và kết hợp định danh duy nhất cho mỗi nút

- elements.dbx đánh chỉ số các phần tử và thuộc tính

- words.dbx Lưu giữ các vết của sự xuất hiện các từ và được sử dụng trong tìm kiếm fulltext mở rộng

Toàn bộ các chỉ số dựa trên các B+-Tree. Một điều quan trọng cần chú ý là các chỉ số cho các phần tử, thuộc tính và các từ khóa được tổ chức theo sưu tập chứ không phải theo tài liệu.

Ví dụ, tất cả các lần xuất hiện của một phần tử “section” trong một sưu tập sẽ được lưu như một chỉ sốđơn trong chỉ số của phần tử.

Người dùng sẽ thường truy vấn toàn bộ sưu tập hoặc thâm chí truy vấn trên nhiều sưu tập trong một lần. Trong trường hợp này, chỉ cần một phép tìm kiếm chỉ số để lấy tất cả các chỉ số liên quan cho toàn bộ sưu tập. Điều này mang lại hiệu năng tốt đáng kểđối với các truy vấn nối nhiều sưu tập. Dưới đây giải thích chi tiết đối với từng tệp chỉ số:

Tệp chỉ số “collections.dbx” quản lý hệ thống phân cấp các sưu tập và ánh xạ các tên sưu tập sang các đối tượng sưu tập.Vì lý do hiệu năng, các miêu tả tài liệu luôn được lưu cùng với đối tượng sưu tập chứa nó. Một chỉ số id duy nhất

được gán cho từng sưu tập và tài liệu khi đánh chỉ số.

Lưu trữ dữ liệu XML (dom.dbx) là thành phần trung tâm của kiến trúc eXist. Nó chỉ gồm có một tệp có phân trang trong đó toàn bộ nút của tài liệu được lưu theo mô hình đối tượng tài liệu DOM của W3C.

B+- Tree chỉ đánh chỉ số cho nút gốc, các thuộc tính, các nút văn bản và các phần tửở mức thấp hơn của cây phân cấp các nút của tài liệu được ghi vào các trang dữ liệu. Có thể truy cập vào các nút đó thông qua việc duyệt tìm cháu chắt gần nhất trong cây. Tuy nhiên, các trường hợp truy cập trực tiếp là rất hiếm. Máy truy vấn sẽ xử lý hầu hết các kiểu biểu thức XPath mà không phải truy cập vào dom.dbx

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) 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 Luận văn ThS. Công nghệ thông tin 1.01.10 (Trang 47 - 51)

Tải bản đầy đủ (PDF)

(82 trang)