Truy vấn hướng đối tượng dựa trên đồ thị chữ ký nhị phân
TÓM TẮT
Bài báo xây dựng một mô hình cấu trúc đồ thị để tổ chức lưu trữ chữ ký của các đối tượng
trong cơ sở dữ liệu hướng đối tượng, trong đó các đối tượng được mã hóa và xây dựng dưới dạng
một đồ thị chữ ký, từ đó xây dựng thuật toán để xử lý truy vấn trên đồ thị chữ ký và đề xuất mô
hình ứng dụng
h dấu và skip (root) ≠ 0) then Qua bước 3; Else{i ← Skip(v) đánh dấu v; If (Sigv[i] = 1) then v = v→Right; Else v = v→Left; Quay lại bước 2; } Bước 3. If (Sigj = Sigv)then { Lp(v) = Lp(v) ∪ Sigj; j ← j + 1; Quay lại bước 1; } Else{o ← v; s=; Qua bước 4;} Bước 4. Gọi k+1 là vị trí khác nhau đầu tiên giữa Sigj và Sigv; Thay thế nút v trở thành: ; If (Sigj[k+1] = 1) then {v → Right = s; v → Left = o;} Else {v → Right = o; v → Left = s;} j ← j + 1; Quay lại bước 1; End. Trong thuật toán tạo đồ thị chữ ký, vì mỗi lớp là hữu hạn có đối tượng, đặt: objs={oj| oj ∈ class, j = 1,, n} Do đó, sẽ tạo được tập hữu hạn có chữ ký đối tượng: Sig={sigj | sigj = Hashing (oj), j = 1,, n} Với mỗi giá trị j, thuật toán sẽ duyệt từ nút gốc của đồ thị Gs để đi tìm nút phù hợp, quá trình này là hữu hạn vì số nút tạo ra trong đồ thị Gs là hữu hạn. Nên thuật toán sẽ tìm được nút phù hợp để đưa chữ ký sigj vào hoặc tạo ra một nút mới. Vì vậy, sau hữu hạn bước ứng với giá trị của j = 1,, n thì thuật toán cho kết quả là một đồ thị chữ ký Gs với các nút trong u có dạng . Gọi n là số đối tượng trong một lớp, khi đó n=|objs|. Đồ thị chữ ký là dạng đồ thị chữ ký và mỗi lần duyệt đồ thị chữ ký sẽ duyệt theo nhánh con bên trái hoặc nhánh bên phải, nên sẽ có 2(k-1) lần duyệt, với k ≈ 0,1,, [log2 n]. Vì có n chữ ký lần lượt đưa vào đồ thị chữ ký Gs, nên số lần duyệt đồ thị tối đa sẽ là: ≈n. Tuy nhiên, trong đồ thị chữ ký Gs sẽ lần lượt kiểm tra số bít trên mỗi chữ ký trong quá trình duyệt đồ thị, gọi m là chiều dài của mỗi chữ ký, chi phí của thuật toán tạo ra đồ thị chữ ký Gs sẽ là n.(2.m). Do đó, độ phức tạp trong trường hợp này sẽ là O(n.m). Một ví dụ về tạo đồ thị chữ ký dựa trên tập tin chữ ký hình 2(a) được minh họa như sau: Hình 3: Tạo đồ thị chữ ký 63 Truy vấn hướng đối tượng . . . 3.3. Thuật toán truy vấn đối tượng trên đồ thị chữ ký Sau khi đã tạo ra đồ thị chữ ký Gs, quá trình truy vấn hướng đối tượng ứng với yêu cầu truy vấn sẽ được thực hiện. Dữ liệu cần truy vấn sẽ được bĕm thành dạng chữ ký theo cùng phương pháp bĕm chữ ký trên đồ thị Gs, sau đó sẽ tiến hành tìm kiếm trên đồ thị chữ ký Gs. Kết quả của quá trình tìm kiếm này là một danh sách các con trỏ liên kết đến vị trí chữ ký trong tập tin chữ ký của cơ sở dữ liệu hướng đối tượng tương ứng. Thuật toán truy vấn chữ ký sig trên đồ thị Gs được thực hiện như sau: Vào: Chữ ký sig và đồ thị Gs Ra: Tập các con trỏ Lp liên kết đến các chữ ký giống nhau nhưng có vị trí xuất hiện khác nhau trong tập tin chữ ký. Phương pháp 2. Search-In-Gs(Gs, sig) Begin Lp = ∅; v ← root; S = {v}; Bước 1. If (S = ∅ ) then return Lp; Else Chọn vj∈ S; S = S \ {vj}; If (vj được đánh dấu) then Qua bước 2; Else { i ← Skip(vj); If sig[i] = 0 then S = S ∪ { vj →right, vj→left}; Else S = S ∪ {vj→left}; Quay lại bước 1; } Bước 2. If sig được phủ bởi Sig(vj) then Lp = Lp ∪ Lp(vj); Quay lại bước 1; End. Đối với phương pháp 2, vì Gs đã tạo ra trong phương pháp 1 là hữu hạn nên tập S là một tập hữu hạn chứa các phần tử vj sẽ được duyệt ở các bước tiếp theo. Khi duyệt một nút vj ∈S, thì vj sẽ được loại ra khỏi tập S. Do đó việc duyệt đồ thị sẽ không quay lại một nút sẽ đi qua. Thuật toán sẽ đối sánh chữ ký truy vấn và chữ ký tại các nút. Quá trình đối sánh được thực hiện trên một hữu hạn các nút của đồ thị Gs. Nên sau hữu hạn bước thuật toán sẽ cho ra được kết quả là một danh sách LP gồm các con trỏ tham chiếu đến các vị trí của chữ ký truy vấn trong tập tin chữ ký. Trong phương pháp 2, gọi n là số nút đã được tạo ra trong Gs, mỗi lần duyệt đồ thị có thể đi theo hai nhánh của đồ thị Gs nên số lần duyệt đồ thị sẽ là 2k, với k≈0,1,2,,[log2n]. Khi đó, chi phí quá trình duyệt đồ thị để tìm kiếm tối đa sẽ là log2n. Trong mỗi lần duyệt đồ thị sẽ kiểm tra chữ ký tại các nút để thực hiện bước nhảy bít và thực hiện đối sánh chữ ký tại các nút, giả sử chiều dài của mỗi chữ ký là m, chi phí quá trình tìm kiếm trên đồ thị Gs sẽ là 2mlog2n. Do đó, độ lớn chi phí của thuật toán sẽ là O(m.logn). Một ví dụ về tìm kiếm trên đồ thị chữ ký dựa trên hình 2 được minh họa như sau: Hình 4: Tìm kiếm trên đồ thị chữ ký Xét tập tin chữ ký và đồ thị chữ ký trên, giả sử rằng sq = 1011011 là chữ ký truy vấn, lúc đó chỉ một phần của đồ thị được tìm kiếm. Để tìm ra nút v, v được đánh dấu hoặc skip(v) = 0 thì chữ ký của nút v sẽ được kiểm tra tương ứng với sq. Rõ ràng rằng cách tìm kiếm này hiệu quả hơn việc tìm kiếm tuần tự vì chỉ cần kiểm tra 2 chữ ký, trong khi đó phép duyệt tập tin chữ ký sẽ kiểm tra 8 chữ ký. 64 Tạp chí Kinh tế - Kỹ thuật 4. XÂY DỰNG MÔ HÌNH ỨNG DỤNG 4.1. Mô hình ứng dụng Cấu trúc đồ thị chữ ký được lưu trữ hoàn toàn bên trong bộ nhớ chính, trong trường hợp này, việc chèn và xóa một chữ ký trên đồ thị được thực hiện dễ dàng. Tuy nhiên, trong cơ sở dữ liệu các tập tin thường rất lớn, vì vậy đồ thị chữ ký sẽ không thể lưu trữ trên bộ nhớ chính mà phải được lưu trữ trên bộ nhớ ngoài. Đối với cơ sở dữ liệu hướng đối tượng, chúng sẽ được lưu trữ và thực thi trên bộ nhớ ngoài. Cơ sở dữ liệu hướng đối tượng có nhiều lớp, mỗi lớp có nhiều đối tượng. Ứng với mỗi lớp sẽ được xây dựng thành một cấu trúc đồ thị chữ ký tìm kiếm, đồng thời mỗi đối tượng này sẽ tạo ra một chữ ký đối tượng. Chữ ký của mỗi đối tượng được xây dựng trong mô hình này có chiều dài 128 bit, đó là sự tổ hợp các thuộc tính trong một đối tượng. Toàn bộ cơ sở dữ liệu hướng đối tượng sẽ được phân hoạch dưới dạng cấu trúc một bảng bĕm gồm các chữ ký của đối tượng để thực hiện quá trình truy vấn. Hình 5: Mô hình cấu trúc lưu trữ đồ thị chữ ký cho cơ sở dữ liệu hướng đối tượng 4.2. Một ví dụ về mô hình cơ sở dữ liệu hướng đối tượng Để thực nghiệm truy vấn hướng đối tượng trên cơ sở dữ liệu hướng đối tượng. Một ví dụ mô hình cơ sở dữ liệu hướng đối tượng được đưa ra ở hình 6 đồng thời cũng đưa ra những quan hệ trên các lớp đối tượng bảng 1. Dựa trên mô hình này để thực nghiệm cài đặt cơ sở dữ liệu hướng đối tượng ở mức vật lý. Bảng 1. Quan hệ các lớp S.No Class 1 Class 2 Relationship 1 University Dept Composition 2 University Student Aggregation 3 Student Programme Aggregation 4 Dept Instructor Aggregation 5 Student Male Generalization 6 Student Female Generalization 7 Programme Subject Aggregation 65 Truy vấn hướng đối tượng . . . 4.3. Xử lý truy vấn trên cơ sở dữ liệu hướng đối tượng Để thực hiện việc truy vấn một đối tượng trong cơ sở dữ liệu hướng đối tượng, đầu tiên phải chuyển đổi cơ sở dữ liệu hướng đối tượng thành cấu trúc dữ liệu như trên, ta thực hiện như sau: Bước 1. Thuộc tính của đối tượng được bĕm thành chữ ký nhị phân và các thuộc tính tạo thành chữ ký đối tượng. Bước 2. Các chữ ký đối tượng của cùng một lớp sẽ tạo thành đồ thị chữ ký. Bước 3. Tạo danh sách đồ thị chữ ký tương ứng với từng lớp. Sau khi có cấu trúc dữ liệu để truy vấn, ta thực hiện quá trình truy vấn đối tượng trong cơ sở dữ liệu hướng đối tượng như sau: Bước 1. Mã hoá từ khóa cần truy vấn thành chữ ký nhị phân. Bước 2. Đối sánh chữ ký từ khóa để xác định thuộc lớp cần truy vấn. Bước 3. Thực hiện truy vấn chữ ký từ khóa trên đồ thị chữ ký tương ứng với các lớp đã xác định. 5. KẾT LUẬN Trong bài báo này, chúng tôi đã đề xuất thuật toán tạo đồ thị chữ ký để lưu trữ các chữ ký đối tượng của cơ sở dữ liệu hướng đối tượng và thuật toán truy vấn chữ ký đối tượng trên đồ thị chữ ký. Dựa trên cấu trúc đồ thị chữ ký đã tạo, bài báo tiến hành đề xuất mô hình ứng dụng cho cơ sở dữ liệu hướng đối tượng. Việc truy vấn trên đồ thị chữ ký diễn ra tương đối nhanh, do đó có thể áp dụng phương pháp này trong trường hợp truy vấn các đối tượng dữ liệu lớn như đối tượng dữ liệu ảnh, các đối tượng multimedia, các đối tượng trong hệ thống thông tin địa lý, Hình 6: Một ví dụ mô hình cơ sở dữ liệu hướng đối tượng 66 Tạp chí Kinh tế - Kỹ thuật TÀI LIỆU THAM KHẢO 1. Yangjun Chen, Yibin Chen, 2006,On the Signature Tree Construction and Analysis, IEEE Trans. Knowl. Data Eng., 18(9), 1207-1224. 2. Yangjun Chen, 2004, Building Signature Trees into OODBs, Journal of Information Science and Engineering, 20(2), 275-304. 3. I.E. Shanthi, R. Nadarajan, 2009, Applying SD-Tree for Object-Oriented Query Processing, Informatica (Slovenia), 33(2), 169-179. 4. D. L. Lee, Y. M. Kim, G. Patel, 1995, Eficient Signature File Methods for Text Retrieval, IEEE Trans. Knowl. Data Eng., 7(3), 423-435. 5. Walter W.Chang, Hans J. Schek, 1989, A signature Access Method for the Starburst Database System, Proceedings of the Fifteenth International Conference on Very Large Database, Amsterdam, 145-153. 6. W. C. Lee, D. L. Lee, 1992, Signature File Methods for Indexing Object-Oriented Database systems, Proceedings of the 2nd International Computer Science Conference, Hong Kong, 616-622. 7. Yangjun Chen, 2006, On the cost of searching signature trees, Science Direct, Information Processing Letters, 99(1), 19-26. 8. Yangjun Chen, 2002, Signature iles and signature trees, Elsevier Science, Journal Information Processing Letters, 82(4), 213-221. 9. Yangjun Chen, Yibin Chen, 2004, Signature File Hierarchies and Signature Graphs: a New Index Method for Object-Oriented Databases, Proceedings of the 2004 ACM symposium on Applied computing, Nicosia, Cyprus, 724-728. 10. E.Tousidoua, P. Bozanis, Y. Manolopoulos, 2002, Signature-basedstructuresforobjectswithset- valued attributes, Elsevier Science, Information Systems, 27(2), 93-121. 11. Y.Chen, 2005, On the Signature Trees and Balanced Signature Trees, Proceedings of the 21st International Conference on Data Engineering, IEEE Computer Society, Tokyo, Japan, 742-753. 12. P.Mahatthanapiwat, 2010, Flexible Searching for Graph Aggregation Hierarchy, Proceedings of the World Congress on Engineering 2010, London, UK, 405-409.
File đính kèm:
- truy_van_huong_doi_tuong_dua_tren_do_thi_chu_ky_nhi_phan.pdf