Ngoại trừ trường hợp ứng dụng cho bài toán cụ thể được trình bày ở mục 2.5, các phương pháp khác, về mặt bản chất, đều áp dụng chữ ký điện tử hay ứng dụng tính chất không thểđảo trong khoảng thời gian tuyến tính của các hàm băm (secure hash) để chứng minh tính đúng cũng nhưtính đầy đủ của kết quả truy vấn.
Hướng tiếp cận của Maithili, G.Tsudik [10, 21] và Prem Devanbu [14] cho phép chứng minh được chính xác kết quả trả về là đúng và đầy đủ. Tuy nhiên, hiện tại, các giao thức này vẫn chỉ có thể giải quyết cho các câu truy vấn chỉ đọc đơn giản không có các hàm bao gộp (như SUM, AVERAGE,…). Một khuyết điểm của phương pháp này là phụ thuộc vào dạng thức của câu truy vấn. Đòi hỏi phải phân tích câu truy vấn thành từng phần riêng lẻđể có nhưng tác vụ thích hợp.
Hướng tiếp cận của Radu [8] có thể áp dụng cho tất cả các loại truy vấn, kể cả việc sử dụng các hàm gộp mà [10, 14, 21] chưa giải quyết được. Ưu điểm chính của phương pháp này không cần phân tích cú pháp của các câu truy vấn. Từđó, có thể triển khai dễ dàng hơn. Tuy nhiên, hướng tiếp cận này vẫn còn một số điều cần xem xét như sau.
- Chỉ áp dụng cho tập các câu truy vấn, chưa giải quyết cho trường hợp thực thi từng câu truy vấn riêng lẻ, vốn được sử dụng khá nhiều trong thực tế. Để giải quyết vấn đề này có thể sử dụng các hướng như sau: (1) sử dụng các fake- query kèm theo để biến câu truy vấn đơn thành tập các câu truy vấn. Tuy nhiên, cách này có thể làm quá tải server, giảm hiệu năng của toàn hệ thống do phải thực hiện các fake-query quá nhiều so với các truy vấn thực sự. (2) các câu query riêng lẻđược tập trung lại tại một trust-server và gửi đến server dưới dạng tập các câu truy vấn theo đúng tinh thần của giải pháp. Phương thức này hầu như không khả thi do thời gian trễ của câu query trong thời gian chờđợi là không thể chấp nhận được. (3) là kết hợp của (1) và (2).
- Chưa chứng minh triệt để kết quả trả về là đầy đủ. Xác suất để server không thực thi hoặc thực thi không hoàn chỉnh đối với câu query cuối cùng là 33%
[8]. Đây là một xác suất khá cao. Điều này phần nào làm giảm bớt tính tin cậy của giải pháp.
Các hướng tiếp cận trên đều được thực hiện cho các dữ liệu dạng quan hệ (relational database). Do đó, để có thể áp dụng được trong CSDL XML cần phải có một số thay đổi nhất định.
Chương 3
DỮ LIỆU XML
XML là một dạng dữ liệu bán cấu trúc (semistructured data), dạng cây (tree- structured). Đơn vị lưu trữ thông tin của XML là các node và attribute. Các node và
attribute phân biệt thông qua tên và tầm vực của chúng (chiều sâu của cây, node cha). Dữ liệu XML là dạng văn bản đọc được. Vì vậy, trước khi tiến hành outsource, ta cần phải xác định được cấu trúc lưu trữ phù hợp với cấu trúc dữ liệu của XML. Điều này đặc biệt quan trọng, nó ảnh hưởng rất lớn đến các phương pháp sẽđược áp dụng trong xử lý truy vấn và đảm bảo truy vấn.
3.1 Mô hình lưu trữ
Tương tự như RDB truyền thống, mỗi tài liệu XML đều được đặc trưng bởi một lược đồ (schema) định nghĩa mối quan hệ cha con giữa các node, số lượng thuộc tính của của mỗi node. Và dĩ nhiên, lược đồ này có dạng cây, gọi là schema tree.
Mỗi node trong tài liệu XML (xml element) tương ứng với một t-node trong cây luận lý, mỗi thuộc tính của xml element sẽ tương ứng với a-node trong cây luận lý. Hình 6 ví dụ về cây dữ liệu luận lý và cây cấu trúc rút ra từ một tài liệu XML.
Từ cây cấu trúc, có thể dễ dàng chuyển đổi tài liệu XML sang các dạng lưu trữ khác. Tài liệu này trình bày hai phương pháp thường dùng để lưu trữ tài liệu XML: dạng bảng (table-based) và dạng node (node-based).
Root
Customer Customer
Order Order
Code, “01” Amount, “5000” Code, “02” Amount, “10000”
Name, “Bob” Name, “Alice”
<customer name=”Bob”>
<order code=”01" amount=”5000" /> </customer>
<customer name=”Alice”>
<order code=”03" amount=”10000" /> </customer>
t-node t-node
t-node
t-node
t-node a-node a-node
a-node a-node a-node a-node (A) (B) Root Customer Order Cây cấu trúc của tài liệu XML Cây dữ liệu luận lý Name Code Amount a-node t-node Hình 3.6. Cấu trúc cây luận lý của một tài liệu XML.
Trong cây dữ liệu luận lý và cây cấu trúc, mỗi node hình chữ nhật góc tròn đại diện cho một node (element) trong tài liệu XML. Các node hình chữ vuông góc đại diện cho một thuộc tính (attribute) trong một element của tài liệu XML.
3.1.1 Dạng bảng: Table-based
Từ cây cấu trúc của tài liệu, có thể chuyển đổi sang dạng lược đồ quan hệ theo các bước sau.
- Gán nhãn (labeling) các t-node cấu trúc sao cho mỗi node có một giá trị nhãn duy nhất.
- Mỗi t-node cấu trúc được chuyển thành một bảng tương ứng có tên là tên của t- node kết hợp với giá trị nhãn. Các a-node con của t-node này được chuyển thành các cột của bảng. Mỗi bảng bổ sung thêm cột nodeid là định danh của node trong bảng dữ liệu. Nếu t-node có cha, thì bổ sung thêm cột pnodeid tham chiếu đến bảng phát sinh từt-node cha.
Hình 3.7. Cây cấu trúc sau khi được gán nhãn.
Sau đó, chuyển sang lược đồ quan hệ như sau.
Root_01(nodeid)
Customer_02(nodeid, name, pnodeid) Order_03(nodeid, code, amount, pnodeid)
Ngoài ra, mỗi table còn được bổ sung thêm một số cột nhưtimestamp, sign,… các giá trị này được dùng để giúp việc chứng minh kết quả truy vấn trả về sau này.
• Ưu điểm
Tài liệu XML sau khi đã được chuyển đổi sang dạng lược đồ quan hệ từ đó có thể áp dụng các kết quả trước đó dùng trong lược đồ quan hệ. Ta có thể áp dụng biện pháp DSAC [10, 21] hay EMB Tree [15] để có thểđảm bảo querry assurance trong việc truy vấn.
• Khuyết điểm
Về phía người dùng, CSDL được outsourced là tài liệu XML, vì vậy câu truy vấn được thực hiện thông thường là một dạng query trên tài liệu XML (XPath, XQuery,…). Do đó, cần phải có một bước chuyển đổi từ ngôn ngữ truy vấn này sang ngôn ngữ SQL bình thường.
Một vấn đề cần được quan tâm là: bản chất schema của CSDL có thểđược thay đổi động bất cứ lúc nào. Mặc khác, việc thay đổi schema của tài liệu XML là
khá linh động. Tuy nhiên điều này dẫn việc thay đổi cấu trúc bảng RDB tương ứng. Điều này có tác động không tốt đến dữ liệu đã được lưu trữ (việc thêm cột dữ liệu và một bảng có thể dẫn đến việc tính toán lại toàn bộ các chữ ký điện tử, nếu sử dụng phương pháp DSAC). Mã hóa lại toàn bộ dữ liệu. Điều này là không thể trong trường hợp dữ liệu đã được outsourced.
Tuy còn tồn tại một số khuyết điểm, nhưng trong trường CSDL XML không thay đổi về schema thì vẫn có thể áp dụng phương pháp này để có thể tận dụng được các kết quả đã được nghiên cứu tốt trên CSDL quan hệ. Trong tài liệu này, chúng tôi đề cập đến một hướng tiếp cận khác dựa trên phương pháp lưu trữ dữ liệu thứ hai: node- based.
3.1.2 Dạng node: Node-based
Một hướng tiếp cận khác trong việc lưu trữ CSDL XML là lưu các t-node và a-node
của cây dữ liệu luận lý.
Tương tự như phương pháp trên, đầu tiên, các node cấu trúc (bao gồm cảt-node và a- node) đều phải được gán nhãn. Phương pháp gán nhãn tương tự như trên (chỉ khác là việc gán nhãn bao gồm cả a-node). Khi đó, việc lưu xuống CSDL quan hệ sẽ tồn tại hai bảng dữ liệu để lưu t-node và a-node có nội dung như sau:
t-node(nodeid, xtype, datatype, nameid, pnodeid, lmaid, value)
a-node(nodeid, xtype, datatype, nameid, pnodeid, sibid, value)
Trong đó 2:
- NodeID : là định danh của node.
- XType : dùng để phân biệt các loại đối tượng. - Datatype : dùng để xác loại dữ liệu
2Ngoài các thành phần như trên, tùy theo các giải thuật chứng thực khác nhau mà cần bổ sung thêm một số các thông tin khác vào t-node và a-node.
- NameID : định danh của tên của node (t-node và a-node) . Tên của một node
được phân biệt dựa vào ngữ cảnh mà tên đó xuất hiện. Mỗi tên sẽ được định danh bởi một chỉ số duy nhất trong toàn CSDL.
- PNodeID: định danh của t-node cha của t-node hiện tại. Chú ý: đối với a-node,
pnodeid là định danh của t-node cha của t-node cha của a-node hiện tại. - LMAid: định danh của a-node trái nhất.
- SibID: định danh của a-node anh em bên phải.
Với dạng thức lưu trữ như vậy, việc thay đổi schema (bổ sung/bỏ bớt một thuộc tính) chỉ đơn thuần như một tác vụinsert/deleteđơn giản, và chỉ ảnh hưởng đến node hiện tại. Do đó, không đòi hỏi thêm bất kỳ một chi phí nào khác mà vẫn đảm bảo được các yêu cầu bảo mật đặt ra.
1. Ưu điểm
Phản ánh đúng bản chất dạng cây của tài liệu XML. Do đó, khắc phục được khuyết điểm của phương pháp table-based, việc thay đổi cấu trúc của tài liệu XML không ảnh hưởng nhiều đến nội dung lưu trữ hiện tại. Và chỉ ảnh hưởng đến node cần cập nhật.
Sử dụng được một số kết quả nghiên cứu trước đó [2, 16] trong việc bảo đảm các vấn đề của query assurance.
2. Khuyết điểm
Do tất cả các t-node, a-node được lưu thành những record riêng lẻ nên số lượng record có thể trở nên rất lớn so với table-based. Điều này làm tăng tính phức tạp của database.
Ngoài ra, các biện pháp chỉ mục (indexing) trên RDB áp dụng không mấy hiệu quả đối với dữ liệu dạng cây như XML. Trong khi, các phương pháp chỉ mục chuyên cho XML vẫn còn trong giai đoạn phát triển.
3.1.3 Nhận xét
Trong hai phương pháp lưu trữđã đề cập như trên, phương pháp table-based chuyển đổi tài liệu XML sang dạng table của RDB truyền thống. Từ đó có thể áp dụng lại được các biện pháp bảo đảm query assurance [10, 11, 14, 15, 21]. Nhưng phương pháp này có một khuyết điểm khá lớn là: khi cấu trúc của tài liệu XML thay đổi bằng cách bổ sung mới một node mới hoàn toàn (hay một attribute mới) thì cấu trúc của các bảng dữ liệu sẽ bị thay đổi theo. Điều này đòi hỏi một khối lượng tính toán khá lớn để bảm bảo các cấu trúc được dùng trong đảm bảo truy vấn (bao gồm việc ký lại các record, mã hóa dữ liệu, xây dựng lại các chuỗi chữ ký hoặc các cấu trúc index
phức tạp khác,…)
Trong phạm vi của tài liệu này, chúng tôi sẽ áp dụng phương pháp lưu trữ node- based, đồng thời đề nghị một cấu trúc chỉ mục (indexing structure) chuyên dùng cho tài liệu XML. Từđó, nhúng kèm một số thông tin để chứng minh tính đúng, tính đầy đủvà tính mới.
3.2 Chỉ mục cho tài liệu XML
Chỉ mục là một khái niệm hết sức quan trọng trong CSDL. Nó giúp tăng tốc đáng kể hiệu suất truy vấn dữ liệu so với phương pháp tìm kiếm tuần tự cổ điển, trong trường hợp lý tưởng, tìm kiếm sử dụng chỉ mục nhanh hơn tìm kiếm tuần tự là N/log2N lần. Đối với CSDL quan hệ (relational databases), chỉ mục được áp dụng hết sức có hiệu quả và phổ biến trong hầu hết các RDBMS. Các cấu trúc chỉ mục thường dùng là : bảng băm (hash table), bitmap và các cấu trúc chỉ mục dạng cây.
Đối với CSDL bán cấu trúc dạng cây như CSDL XML, hiện tại có nhiều nguyên cứu trong việc xây dựng chỉ mục phù hợp[17, 18]. Trong phạm vi của mình, tài liệu này không đi chi tiết vào các phương pháp chỉ mục cho tài liệu XML và cũng không có ý định so sánh chúng, mà chỉ đưa ra một cấu trúc chỉ mục cho tài liệu XML, mà qua đó có thể nhúng vào một số thông tin nhằm phục vụ cho mục tiêu đảm bảo query assurance.
Trong các phương pháp chỉ mục, phương pháp chỉ mục dạng cây được sử dụng khá phổ biến. Trong đó điển hình là B+Tree được áp dụng rất thành công trong việc tạo chỉ mục trên các RDBMS hiện tại. Với đặc tính của mình, B+Tree có thể tạo chỉ mục cho một số lượng lớn các record mà độ phức tạp không cao (nếu cây B+Tree có
fanout là 100, chiều cao là 4 thì có thể quản lý được 100x100x100 = 1.000.000
Chương 4
ĐẢM BẢO TRUY VẤN
4.1 Phương pháp
Đảm bảo truy vấn (Query assurance) nhằm mục tiêu chứng minh với người dùng kết quả truy vấn trả từ server là: đúng, đủ, mới. Tínhđúng có thể thực hiện khá dễ dàng thông qua chữ ký điện tử. Chứng minh tính đủ của kết quả truy vấn thường dựa vào tính chất của từng loại query.
Xét hai loại truy vấn: truy vấn theo vùng (khoảng giá trị thỏa mãn) và truy vấn theo điểm (bằng một giá trị cụ thể). Truy vấn điểm thực chất là dạng suy biến của truy vấn vùng với hai cận tiến đến bằng nhau. Như vậy chỉ cần xem xét đối với truy vấn vùng. Xét một truy vấn theo vùng đối với cận là LB và UB. Kết quả trả về là các record
thỏa mãn.
S = { R | R ≥ LB, R ≤ UB }
Nếu các record R được đảm bảo là sắp xếp tăng dần (hoặc giảm dần), để chứng minh kết quả trả về là đầy đủ, server chỉ cần trả về hai record nằm ở hai biên :
S’ = S ∪ {RL | RL = max(Ri), Ri < LB, ∀i} ∪ {RU | RU = min(Rj), Rj > UB, ∀j}
Nếu server có thể chứng minh được giữa RL và RU chỉ có các record trả về là có thể chứng minh được kết quả là hoàn toàn đầy đủ.
Như vậy, các record cần được sắp xếp theo thứ tự và thứ tự này có thể chứng minh được. Một cách đơn giản để đạt được điều này là sau khi sắp xếp R theo thứ tự, ta tính giá trị băm như sau:
S = h(h(R0) | h(R1) | h(R2) |….| h(RN))SK
Sau đó thực hiện ký lên giá trị băm vừa tính được bằng giải thuật mã hóa bất đối xứng (như RSA). Trong kết quả trả về, server trả về kèm theo các h(Ri) còn lại và giá trị S.
Client hoàn toàn có thể tính lại băm của các record theo quy tắc trên và thực hiện kiểm chứng với S bằng khóa công cộng của giải thuật ký.
4.2 Nested B+ Tree
Như đã trình bày ở phần trên, phương pháp áp dụng để chứng minh tính đầy đủ căn bản dựa trên dãy thứ tự các record và chữ ký lên dãy thứ tự này. Điều này có thểđạt được bằng một cấu trúc chỉ mục phù hợp với cách thức lưu trữ dữ liệu đã được trình bày ở mục 3.1 của tài liệu này.
Xét một tài liệu XML, các node được định vị bởi path, tức đường đi từ node gốc đến
node hiện tại. Các truy vấn trên XML thông thường được xác định path. Như vậy, chỉ mục XML, ngoài giá trị của node, cần phải chứa thêm thông tin vềpath của node. Quay lại phương pháp lưu trữ đã được đề cập ở phần trên, giá trị nameid là duy nhất đối với mỗi node cấu trúc, do đó có thểđược sử dụng tương đương với path. Như vậy, mỗi node cần được chỉ mục trên bộ hai thuộc tính (nameid, value).
Tuy nhiên, ngoài việc truy vấn theo giá trị, với bản chất cha/con của dữ liệu dạng cây XML thì yêu cầu truy vấn các node con khi đã biết được node cha là thường xuyên. Để chứng minh completeness cho các truy vấn này, cần bổ sung thêm chỉ mục của bộ ba giá trị (nameid, pnodeid, value) để các record được sắp xếp theo node cha.
Ta có thể xây dựng hai cây chỉ mục riêng lẻ cho hai bộ giá trị trên. Tuy nhiên, điều này có thể dẫn đến một số vấn đề phức tạp trong việc cập nhật dữ liệu, chứng minh truy vấn và lãng phí nơi lưu trữ (do có trùng thuộc tính đầu là nameid).
... ... NameTree ParentTree ValueTree (nam eid) (pno deid , val ue) (val ue) Hình 4.8. Cấu trúc NB+Tree.
Sự kết hợp của ba loại cây NameTree, ParentTree và ValueTree cho phép sắp thứ tự toàn bộ các attribute và các element của tài liệu XML theo hai thứ tự: (nameid, value) và (nameid, pnodeid, value), đảm bảo cho việc truy vấn nhanh chóng cũng