Đề tài nghiên cứu phương pháp đánh chỉ số dựa trên phương pháp R-tree đế nhằm tăng hiệu quả các truy vấn Xpath trên dữ liệu XML, thông qua dữ liệu trung gian được chuyển đổi về dạng tọa độ số của các tags. Dữ liệu XML mục tiêu là từ một tài liệu XML tin sinh học, sử dụng phương pháp chuyển đổi dữ liệu văn bản có cấu trúc XML về dữ liệu dạng số mà biểu diễn được trên không gian 2 chiều (có thể mở rộng lên nhiều chiều).
BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN HÀN LÂM KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ - ĐINH ĐỨC LƢƠNG PHƢƠNG PHÁP ĐÁNH CHỈ SỐ CHO TÀI LIỆU XML TIN SINH HỌC DỰA TRÊN R-TREE Chuyên ngành: Cơ sở toán học cho tin học Mã số: 46 01 10 TĨM TẮT LUẬN ÁN TIẾN SĨ TỐN HỌC Hà Nội - 2019 Cơng trình đƣợc hồn thành tại: Học viện Khoa học Công nghệ - Viện Hàn lâm Khoa học Công nghệ Việt Nam Ngƣời hƣớng dẫn khoa học 1: TS Hoàng Đỗ Thanh Tùng Ngƣời hƣớng dẫn khoa học 2: PGS.TS Đặng Hữu Đạo Phản biện 1: Phản biện 2: Phản biện 3: Luận án bảo vệ trước Hội đồng chấm luận án tiến sĩ, họp Học viện Khoa học Công nghệ - Viện Hàn lâm Khoa học Công nghệ Việt Nam vào hồi giờ, ngày tháng năm Có thể tìm hiểu luận án tại: - Thư viện Học viện Khoa học Công nghệ - Thư viện Quốc gia Việt Nam Danh mục cơng trình tác giả liên quan đến Luận án Dinh Duc Luong, Hoang Do Thanh Tung, “A Survey on Indexing for Gene Database”, International Clustering Workshop: Teaching, Research, Business, December 27-29, 2014, pp 50-54 Hoang Do Thanh Tung, Dinh Duc Luong, “A proposed Indexing Method for Treefarm database”, International Conference on Information and Convergence Technology for Smart Society, Vol.2 No.1, Jan, 19-21,2016 in Ho Chi Minh, Vietnam, pp 79-81 Vương Quang Phương, Lê Thị Thùy Giang, Đinh Đức Lương, Ngơ Văn Bình, Hồng Đỗ Thanh Tùng, “Giải pháp cơng nghệ quản lý nguồn gốc giống heo”, Kỷ yếu Hội thảo Quốc gia lần thứ XXI:Một số vấn đề chọn lọc CNTT TT, Thanh Hóa, 27-28/7/2018, Tr 110-116 Hoang Do Thanh Tung, Dinh Duc Luong, “An Improved Indexing Method for Xpath Queries”, Indian Journal of Science and Technology, Vol 9(31), DOI:10.17485/ijst/2016/v9i31/92731, August 2016, pp 1-7 (SCOPUS) Dinh Duc Luong, Vuong Quang Phuong, Hoang Do Thanh Tung, “A new Indexing technique XR+tree for Bioinformatic XML data compression”, International Journal of Engineering and Advanced Technology (IJEAT), ISSN: 2249-8958 (Online), Volume-8, Issue-5, June 2019, pp 1-7 (SCOPUS) MỞ ĐẦU Tài liệu XML liệu văn có cấu trúc, hay gọi liệu bán cấu trúc, chúng phổ biến hàng thập kỷ khả lưu trữ liệu linh hoạt dễ dàng chia sẻ, sử dụng qua internet Trước đây, tài liệu XML thường có kích thước khơng lớn, năm gần bắt đầu xuất tài liệu XML tin sinh học có kích thước lớn lên tới Giga, Tera Byte phát triển vũ bảo công nghệ sinh học kỷ nguyên Dữ liệu tìm thấy từ nguồn liệu uy tín SRA (cơng khai trình tự giải mã), NCBI Genome (các lồi giải trình tự), ensembl.org (tổng hợp nhiều liệu thành BioMart)… Các tài liệu XML tin sinh học liệu gồm có phần, liệu sinh học (DNA, Protein, phân lồi,…) liệu mơ tả liệu sinh học Cấu trúc liệu định nghĩa theo thẻ (tag) cấu trúc liệu thường linh hoạt, khác biệt chúng tùy biến theo cá nhân, tổ chức sinh học thực Vì có kích thước lớn vậy, tài liệu phải lưu trữ khai thác đĩa cứng, hệ thống lưu trữ phân tán, trước truy xuất phần nhỏ để đưa lên nhớ (RAM) cần phân tích sâu Cơ chế truy xuất đĩa cứng thời gian tiêu tốn chậm nhiều lần so với truy xuất RAM Do vậy, phương pháp truy vấn cần truy xuất đĩa cứng ln tìm cách cho tối thiểu số lần cần truy xuất đĩa cứng tối đa tận dụng nhớ chính, Cache, Buffer Các truy xuất thực thi theo thuật toán truy vấn đặc thù, thiết kế để đạt kết mong muốn thời gian ngắn phù hợp với truy vấn Ví dụ: Truy vấn Xpath cho 01 tài liệu XML (tìm kiếm xác): trích xuất tất liệu có tags có quan hệ nguồn gốc/anh em với loại Chuột Bạch trích xuất tồn liệu hậu duệ heo giống Châu Phi Truy vấn tương đồng cho liệu đoạn DNA (tìm kiếm xấp xỉ): tìm kiếm tất Gen tương đồng với đoạn Gen mẫu loài Giải pháp truyền thống cho truy vấn lựa chọn cài đặt phương pháp đánh số (indexing) phù hợp số loại liệu truy vấn đặc thù Các phương pháp có gặp nhiều hạn chế với liệu văn kích thước lớn Với liệu văn bản, kích thước liệu số sinh thường lớn, chí lớn nhiều so với liệu gốc, gây nên vấn đề: (1) lưu trữ liệu số vấn đề nan giải, (2) Nén liệu khai thác liệu đồng thời hiệu Hơn nữa, số liệu văn vấn đề tốc độ truy vấn vấn đề khó giải Do vậy, nghiên cứu gần đánh số tài liệu XML có xu hướng: - Tách tài liệu XML thành phần liệu áp dụng phương pháp đánh số khác cho phù hợp với dạng liệu loại truy vấn đặc thù Cụ thể là: Phương pháp đánh số liệu cấu trúc (dữ liệu thẻ) hỗ trợ truy vấn đặc thù Xpath Phương pháp đánh số liệu sinh học (như đoạn DNA) hỗ trợ truy vấn đặc thù tìm kiếm chuỗi DNA tương đồng - Chuyển đổi liệu văn gốc dạng số nhằm mục đích: Giảm kích thước liệu gốc ban đầu Áp dụng phương pháp đánh số phù hợp Cải thiện tốc độ truy vấn Các vấn đề cần giải rộng gồm tin học sinh học, nghiên cứu luận án tập trung giải toán Phương pháp đánh số hỗ trợ cho truy vấn đặc thù tốc độ cách giảm số lần cần truy cập đĩa cứng mà đạt kết mong đợi Kết luận án giải toán Phương pháp đánh số liệu cấu trúc (dữ liệu thẻ) hỗ trợ truy vấn Xpath Ngồi ra, với tốn Phương pháp đánh số liệu sinh học (như đoạn DNA) hỗ trợ truy vấn đặc thù tìm kiếm chuỗi DNA tương đồng, luận án khảo sát phương pháp có định hướng cho nghiên cứu Cụ thể mục tiêu kết luận án sau Mục tiêu thực luận án: - Nghiên cứu phương pháp đánh số dựa phương pháp R-tree đế nhằm tăng hiệu truy vấn Xpath liệu XML, thông qua liệu trung gian chuyển đổi dạng tọa độ số tags Dữ liệu XML mục tiêu từ tài liệu XML tin sinh học - Sử dụng phương pháp chuyển đổi liệu văn có cấu trúc XML liệu dạng số mà biểu diễn khơng gian chiều (có thể mở rộng lên nhiều chiều) Mục tiêu nhằm giảm kích thước liệu gốc áp dụng phương pháp đánh số đề xuất Kết đạt luận án sau: - Bằng thực nghiệm phương pháp chuyển đổi liệu XML tin sinh học liệu khơng gian có hiệu giảm kích thước với tỷ lệ tốt nói chung Tuy nhiên, tỷ lệ nén khơng có có kểt tốt đồng thực nghiệm với dạng tài liệu XML tin sinh học DNA, Protein, phân loài… - Đề xuất phương pháp đánh số BioX-tree phương pháp mở rộng BioX+ tree Các phương pháp đề xuất (cải tiến phương pháp R-tree) chứng tỏ hiệu phương pháp R-tree áp dụng để đánh số liệu chuyển đồi từ liệu XML qua thực nghiệm Đặc biệt, truy vấn anh em, truy vấn có tận dụng truy vấn anh em thuật tốn, có kết tốt Lý thuyết thực nghiệm chứng rằng: truy vấn giảm bước duyệt dư thừa số (lưu trữ đĩa cứng), nhờ giảm số lần truy xuất đĩa cứng để lấy liệu lên nhớ chính, mà có kết mong muốn Chƣơng TỔNG QUAN 1.1 Tin sinh học nguồn liệu 1.1.1 Tin sinh học Tin sinh học (BioInformatics) lĩnh vực khoa học sử dụng cơng nghệ ngành tốn học ứng dụng, tin học, thống kê, khoa học máy tính, sinh học, hóa học, vật lý… tốn sinh học Tin sinh học thường gắn liền với sinh học tính tốn (computational biology) sinh học hệ thống (system biology) 1.1.2 Các nguồn liệu - Cơ sở liệu NCBI - Cơ sở liệu EMBL/EBI - Cơ sở liệu DDBJ 1.1.3 Vấn đề tin sinh học sở liệu sinh học Có thể thấy sở liệu sinh học chứa đựng lượng khổng lồ thông tin như: chuỗi DNA, protein, chức năng, phân loài, bổ sung liên tục làm cho kích thước chúng tăng lên cách nhanh chóng, đặc biệt với phát triển kỹ thuật sinh học Cơ sở liệu sinh học lưu trữ máy tính, nhiên, tốn tìm kiếm hay truy vấn liệu CSDL lớn thường khó thực yếu tố liên quan đến không gian thời gian truy xuất Hiện toán đánh số để tăng tốc độ xử lý liệu tin sinh học nhiều nhà nghiên cứu quan tâm, có ý nghĩa lớn thực tế 1.2 Các phƣơng pháp đánh số liệu sinh học tin sinh học 1.2.1 Chỉ số mô hình nhớ ngồi Cơ sở liệu hồn chỉnh thường khơng phù hợp với nhớ (RAM) hệ thống máy tính Do đó, sở liệu hoàn chỉnh thường lưu trữ ổ đĩa cứng Truy cập vào ổ đĩa chậm so với truy cập vào nhớ 100.000 lần, nút thắt cổ chai hệ quản trị sở liệu Đo lường hiệu thuật tốn tính tốn số lượng I/O để thực hành động Chỉ số (index) sở liệu cấu trúc tra cứu đặc biệt mà cơng cụ tìm kiếm sở liệu sử dụng để tăng nhanh thời gian hiệu suất truy xuất liệu thông qua việc giảm thiểu số lượng block mà cần phải truy cập để trả lời câu truy vấn, đồng thời giảm thiểu số lượng block sử dụng để lưu trữ sở liệu 1.2.2 Các phƣơng pháp đánh số cho liệu sinh học Có hai nhóm chính: - Nhóm 1: Các phương pháp thực so sánh trình tự cách so sánh phân đoạn chuỗi tối ưu hóa giống - Nhóm 2: Các phương pháp có sử dụng biến đổi đặc biệt để xây dựng số 1.2.3 Các phƣơng pháp đánh số cho liệu tin sinh học Có nhiều loại tài liệu tin sinh học lưu trữ nhiều định dạng khác nhau, luận án này, tác giả tập trung vào liệu dạng XML có kích thước lớn, chuẩn đầu cho người dùng tải từ nguồn liệu nêu phía Các phương pháp XGrind [78], Xpress [52], XQzip [15], XQueC [7], Arroyuelo et al [8], Qian et al [62], Dietz [21] Li and Moon in XISS [61] tác giả nghiên cứu trình bày phân tích kĩ ưu nhược điểm phần 1.3 Phƣơng pháp đánh số tài liệu XML 1.3.1 Tài liệu XML Xpath - Tài liệu XML: XML (eXtensible Markup Language) [77] mơ hình liệu phân cấp có nguồn gốc SGML, cho phép mơ hình hóa tài liệu cấu trúc - Xpath: Cấu trúc tài liệu XML hình dung với nhiều cành nhánh nhỏ khác Một trục cho biết node liên quan đến node bối cảnh, nên đưa vào tìm kiếm Đặc tả XPath [11] liệt kê họ gồm 13 trục Bảng 1.1: Bảng 1.1: Các trục Xpath Tên trục Self parent child ancestor ancestor-or-self descendant descendant-or-self following following-sibling preceding preceding-sibling attribute namespace Mô tả Bản thân node bối cảnh Cha mẹ node bối cảnh, tồn Con node bối cảnh, tồn Tổ tiên node bối cảnh, tồn Tổ tiên node bối cảnh Hậu duệ node bối cảnh Hậu duệ node bối cảnh Các node tài liệu XML sau node bối cảnh, không bao gồm cháu Các node anh em sau node bối cảnh Các node XML trước node bối cảnh, không bao gồm tổ tiên Các anh em trước node bối cảnh Thuộc tính node bối cảnh Khơng gian tên node bối cảnh trực thuộc Vị từ xác định bước đường dẫn để hạn chế tập hợp node xuất phát bước Nói cách khác, vị từ cho phép phân định xác liệu quan tâm, dẫn đến kết nhỏ sử dụng nhiều Một số phương pháp đánh số mô tả đây: 1.3.1.1 Đánh số lược đồ Tài liệu XML xây dựng lên dạng với quan hệ phân cấp cha con, sau tag name tương ứng đánh số theo quy tắc duyệt theo giá trị trước, duyệt theo giá trị sau (cặp giá trị tạo thành NodeID) đánh số thứ tự cho tag name tài liệu XML [22][63]: - Duyệt theo giá trị trước (pre order): thứ tự đọc từ xuống node, tức node đánh số tăng dần từ xuống hết Duyệt theo giá trị sau (post order): thứ tự đọc đánh số tăng dần từ trái qua phải 1.3.1.2 Phép nối có cấu trúc Cách đơn giản để cải tiến đánh giá truy vấn đường dẫn chia biểu thức lớn thành nhiều biểu thức nhỏ (gọi biểu thức con) thực tìm kiếm kết bước Hạn chế cần xác định mối quan hệ A-D cho cặp node, chúng phải tìm nhiều lần lặp lặp lại việc xem xét phần tử bước khác nhau, điều gây tốn chi phí tài nguyên thời gian không cần thiết - 1.3.1.3 Chuyển đổi lên không gian đa chiều Cách tiếp cận cố gắng chuyển đổi đường dẫn mối quan hệ A-D từ tài liệu XML đầu vào thành liệu đa chiều Ý tưởng để tránh phép nối có cấu trúc không tối ưu với nhiều trường hợp đa dạng gây chậm thực hiện, để tận dụng cấu trúc liệu đa chiều tỏ hiệu R-tree Các cơng trình [37] [51] đề xuất phương pháp lập số cho XML dựa liệu đa chiều gọi MDX (Multidimensional Approach to Indexing XML) 1.3.1.4 Ánh xạ sang sở liệu quan hệ Trong [36] trình bày phương pháp thiết kế đặc biệt cho truy vấn Xpath biểu thức đường dẫn, biểu diễn node file XML đầu vào với chiều: entry(E) = {pre(E); post(E); par(E); att(E); tag (E)} Với node E, pre post giá trị duyệt theo giá trị trước, duyệt theo giá trị sau; par giá trị duyệt theo giá trị trước node cha mẹ node E; att cờ trạng thái, tag chứa tag name node Việc truy vấn Xpath dựa sở truy vấn cửa sổ biểu diễn dạng truy vấn SQL (Structured Query Language) Vì node biểu diễn không gian chiều nên giải pháp đề xuất sử dụng R-tree để đánh số chúng nhiều nghiên cứu đánh giá có kết tốt truy vấn Xpath 1.4 Phƣơng pháp R-tree 1.4.1 Khái niệm R-tree Phương pháp R-tree xây dựng để truy xuất nhanh vùng không gian, cách chia nhỏ không gian thành vùng nhớ tạo số cho vùng khơng gian nhớ nhỏ này, sau áp dụng lý thuyết đồ thị để quản lý R-tree phương pháp phân chia không gian liệu thành khối hình chữ nhật biên tối thiểu chứa liệu (Minimum Bounding Rectangle – MBR) Chính MBR lưu trữ cấu trúc thân liệu (như metadata), việc tìm kiếm liệu thực node 1.4.2 Cấu trúc R-tree Một cách tổng quát, R-tree cấu trúc số cho đối tượng không gian n-chiều tương tự B-tree Các node chứa số chúng có khn dạng: (MBR, object_ptr) - object_ptr tham chiếu đến liệu sở liệu MBR hình chữ nhật n-chiều chứa đối tượng khơng gian thể Các node khơng có khn dạng: (MBR, chirld_ptr) - chirld_ptr địa node khác MBR bao gồm hình chữ nhật node thấp Một R-tree thỏa mãn thuộc tính sau: Mỗi node chứa số lượng node khoảng m M ngoại trừ node gốc Đối với đầu vào dạng (MBR, object_ptr) node lá, MBR hình chữ nhật nhỏ có chứa đối tượng liệu n-chiều biểu diễn object_ptr - Đối với đầu vào dạng (MBR, chirld_ptr) node khơng phải lá, MBR hình chữ nhật nhỏ có chứa hình chữ nhật chirld node - Node gốc có node ngoại trừ node - Đây loại cân 1.4.3 Một số thuật toán phƣơng pháp R-tree [30] - a) Tìm kiếm cấu trúc liệu tổ chức dạng R-tree b) Chèn (Insertion) c) … 1.4.4 Một số phƣơng pháp cải tiến XR-tree [32] AR*-tree [87] 1.5 Các vấn đề cịn tồn Mơ hình Hình 1.1, giúp liệu XML chuyển đổi không gian đa chiều, từ áp dụng phương pháp đánh số truy vấn không gian giúp tăng tốc độ xử lý giảm kích thước liệu đánh số Vì XML tin sinh học thực tế đa dạng nên R-tree phù hợp lựa chọn làm sở luận án Hình 1.1: Mơ hình tổng qt Hình 1.2: Mơ hình thể trình chuyển đổi liệu đánh số đĩa cứng Phương pháp R-tree số vấn đề áp dụng vào xử lý liệu XML tin sinh học sau: 1) Vấn đề chồng chéo truy vấn Đối với kỹ thuật số dựa khơng gian, khơng gian tìm kiếm lớn nhiều thời gian để nhận node trả Nhưng điểm yếu phương pháp dựa R-tree truy vấn đòi hỏi cửa sổ quét liệu lớn, ảnh hưởng đáng kể tới hiệu truy vấn 2) Vấn đề mối liên kết anh em tag sau chuyển đổi sang không gian, mà thể điểm không gian parent, preceding, sibling, descendant, child, following, v.v… theo trục Xpath Trong Hình 2.2 biểu diễn việc phân bố liệu hệ trục tọa độ, tác giả nhận tất liệu phân bố lệch hình thang/được chéo thẳng hàng (giống cánh máy bay) Trong đó, tất phương pháp trước khơng quan tâm đến điều đó, nên truy vấn chưa có cải thiện đáng kể truy vấn vùng liệu cánh máy bay 1.6 Kết luận Chương trình bày số khái niệm tảng tin sinh học liệu tin sinh học Dữ liệu tin sinh học ngày trở nên khổng lồ đóng góp chia sẻ thường xuyên cộng đồng nghiên cứu Do tốn phân tích liệu tin sinh học đa dạng, tài liệu lưu trữ thông tin cần cấu trúc dễ thay đổi, linh hoạt, đa dạng đặc biệt dễ chia sẻ/đóng góp Hiện nay, tài liệu XML chuẩn quan trọng để mô tả lưu trữ liệu sinh tin học khổng lồ Tuy nhiên, tài liệu XML có liệu dạng text bán cấu trúc nên việc khai thác không giống liệu thơng thường Chương trình bày nghiên cứu liên quan toán khai thác liệu XML, phương pháp đánh số, thuật toán đề xuất nghiên cứu trước nêu ra, R-tree thuật tốn tỏ hiệu với tài liệu XML truy vấn Xpath Trên sở đó, chương phân tích đưa vấn đề nghiên cứu luận án Chƣơng PHƢƠNG PHÁP ĐÁNH CHỈ SỐ BIOX-TREE 2.1 Mở đầu Các phương pháp đưa việc đánh số không gian dựa R-tree gặp vấn đề: Thứ nhất, vấn đề chồng chéo Đối với kỹ thuật số dựa khơng gian, khơng gian tìm kiếm lớn nhiều thời gian để nhận node trả Nhưng điểm yếu phương pháp dựa R-tree chúng tạo cửa sổ truy vấn chưa tối ưu Hình 2.1 minh họa thể tài liệu XML với số điểm nhỏ biểu thị liệu XML theo mặt phẳng Giả sử rằng, từ node bối cảnh E, muốn lấy tất node cháu cách sử dụng cửa sổ truy vấn {pre(E), ; 0, post(E)} [36] Cửa sổ thực cần thiết để tìm kiếm màu trắng xác định giá trị duyệt theo giá trị trước node cháu bên trái giá trị duyệt theo giá trị sau node cháu bên phải node E Kết là, phạm vi thừa đánh dấu màu xám cửa sổ truy vấn tương ứng với trục cháu gây ảnh hưởng đáng kể đến hiệu suất thực truy vấn, mà phạm vi lại lớn nhiều trường hợp Hình 2.1: Phạm vi quét thứ tự duyệt theo giá trị trước sau ban đầu (vùng xám) thu nhỏ (vùng trắng) cho truy vấn cháu thực theo truy vấn mẫu Chúng ta hiểu đơn giản node không chứa thông tin metadata node lá, cần biết thơng tin node tìm Các node (leaf node), nơi chứa phần tử sau chuyển đổi, chúng có trách nhiệm trì quỹ đạo liên kết liệu XML thực tế Để làm điều đó, tác giả áp dụng phương pháp liên kết đôi để giữ kết nối với anh em XML trước anh em XML theo sau Tác giả sử dụng trỏ để giữ kết nối với cha mẹ XML Tóm lại, tác giả sử dụng trỏ node để kết nối với anh em trước, anh em theo sau cha mẹ chúng, nên node dạng có tập trỏ có dạng tuple (previouspointer, nextpointer, parpointer) Mục đích tác giả cố gắng trì mối quan hệ phản ánh phân bố liệu hình cánh máy bay không gian để làm cho cửa sổ truy vấn sau thu nhỏ bắt buộc node chứa anh chị em giúp nhanh chóng tìm mối quan hệ anh em BioX-tree Hình 2.4: Hệ thống phân cấp theo tag tài liệu XML DNA gạo Ví dụ, Hình 2.2 mơ tả cấu trúc tài liệu liên quan đến DNA gạo mà tác giả thử nghiệm phần sau, liệu XML công bố ngân hàng Gene NCBI Chúng đánh số duyệt theo giá trị trước duyệt theo giá trị sau đầu dựa theo cách đánh thuật tốn tác giả trình bày Sau chuyển đổi liệu (để đơn giản hóa sử dụng giá trị duyệt theo giá trị trước để mô tả), node biểu diễn cấu trúc BioX-tree Hình 2.3, node liệu có cha mẹ lưu trữ node Trong trường hợp node nhiều entry bị tràn khỏi mảng, tách có trỏ kết nối với để đảm bảo kết nối với anh em Các mũi tên thẳng thể trỏ từ node đến node anh em trước chúng, mũi tên cong biểu diễn kết nối với cha mẹ chúng 10 Hình 2.5: Các node thể liên kết cấu trúc BioX-tree Ở ví dụ này, entry có giá trị duyệt theo giá trị trước 21, 22, 23 node anh em tài liệu XML chèn vào node trỏ sử dụng để kết nối đến node cha mẹ chúng, node chứa entry 24 Có nghĩa là, 21, 22, 23 24 anh em có cha mẹ 2.2.3 Các thuật tốn Vì thay đổi cấu trúc ảnh hưởng đến việc chèn, xóa truy vấn node, nên tác giả thiết kế lại số thuật toán cho phù hợp Mục trình bày thuật tốn sửa đổi, thuật tốn khơng trình bày nghĩa tác giả sử dụng lại phương pháp gốc 2.2.3.1 Thuật toán chèn Với mục tiêu giữ mối quan hệ anh em liệu XML, thuật toán chèn phức tạp Mã giả giải thích q trình chèn chiến lược phân tách trường hợp node có đầy đủ Thuật toán 2.2 Thuật toán Insert(N,E) Đầu vào: node bối cảnh N entry E chèn thêm Begin Gọi FindSiblingNode(N,E) để tìm node N’ chứa anh em entry E cần chèn if node N’ tìm thấy if (N’ cịn không gian để thêm) then chèn entry E vào N’ else Gọi CreateNewLeafNode(E) để tạo node entry E chèn vào endif else Gọi CreateNewLeafNode(E) để tạo node cây, entry E chèn vào 10 endif End Thuật toán 2.2: Thuật toán chèn Thuật toán FindsiblingNode(N, E) Đầu vào: node bối cảnh N, entry E cần tìm anh em 11 Đầu ra: node N chứa anh em entry E Begin if N là node Duyệt tìm entry E’ N có MBR giao với MBR entry E Gọi FindSiblingNode(N’, E) N’ node N E’ else if N chứa entry anh em E trả N endif End Thuật toán 2.3: Thuật toán FindSiblingNode Thuật toán CreateNewLeafNode(E) Đầu vào: entry E chèn thêm Begin Tìm node anh em entry E, N’ tìm thấy if (N’ cịn chỗ trống để thêm entry e) then Thêm entry E vào N’ else Tìm ngược từ lên đến thấy node cha Q Đi qua đường dẫn bên phải gần từ node cha Q để đến node P có level if node khơng P không đầy entry E thêm vào node P else 10 Tạo node không R level 1, tạo node chèn entry E vào 12 endif 13 endif End Thuật toán 2.4: Thuật toán CreateNewLeafNode Thuật toán 2.3: FindSiblingNode Thuật tốn 2.4: CreateNewLeafNode mơ tả thuật toán phụ 2.2.3.2 Thuật toán truy vấn BioX-tree khác với phương pháp áp dụng R-tree chỗ BioX-tree trả lời trực tiếp hầu hết truy vấn trục mà không cần bước tinh chỉnh phương pháp dựa R-tree thực tế có khả trả lời trực tiếp truy vấn trục (ancestor, preceding, following, descendant) trình bày phần mở đầu Trước vào chi tiết thuật toán, Thuật toán 2.5 Thuật toán 2.6 thể thuật toán dùng cho truy vấn điểm truy vấn phạm vi Đây truy vấn không gian coi thuật tốn phụ có sẵn phương pháp R-tree, tác giả khơng cải tiến thêm Với hỗ trợ truy vấn này, nhận kết trả tập hợp node xác node tùy theo mong muốn Thuật toán FindNode(N,E) // point query 12 Đầu vào: node bối cảnh N entry E cần tìm kiếm Đầu ra: node N chứa entry E Begin if (N node lá) Duyệt tìm entry E’ N có MBR giao với MBR entry E Gọi FindNode(N’, E) N’ node N E’ else if N chứa entry E return N endif End Thuật toán 2.5: Thuật toán truy vấn điểm Thuật toán RangeQuery(N, Q, RESULT) //window query Đầu vào: node bối cảnh N (khi bắt đầu, node bối cảnh node gốc) cửa sổ truy vấn Q Output: danh sách RESULT chứa tất entry có MBR giao với Q Begin if N không node Duyệt tìm entry E’ N có MBR giao với MBR Q Gọi RangeQuery(N’, Q, RESULT) N’ node N E’ else Duyệt tìm entry E’’ N có MBR giao với MBR Q Thêm E’’ to RESULT endif End Thuật toán 2.6: Thuật tốn truy vấn phạm vi Để tránh dài dịng việc liệt kê loại truy vấn khác có tương đồng với nhau, tác giả chia thuật toán xử lý truy vấn BioX-tree thành loại: loại bao gồm thuật toán cho truy vấn anh em loại cho truy vấn khác 2.2.4 Xử lý truy vấn 2.2.4.1 Thuật toán cho truy vấn anh em Thuật toán SiblingQuery(N, E, RESULT) Đầu vào: node bối cảnh N (khi bắt đầu, node bối cảnh node gốc) entry E cần tìm anh em Đầu ra: Danh sách RESULT chứa tất entry anh em entry E Begin Gọi FindNode(N, E) để tìm node N’ chứa entry E if (N’ tìm thấy) Duyệt entry E’ N’ Thêm E’ to RESULT if (anh em sau theo pointer F không null) Gọi FollowingSiblingQuery(NF, RESULT) NF node trỏ đến F if (anh em trước theo pointer P khơng null) Gọi PrecedingSiblingQuery(NP, RESULT) NP node trỏ đến P Else 10 Khơng tìm thấy node anh em 13 11 End Endif Thuật toán 2.7: Thuật toán truy vấn anh em Thuật toán FollowingSiblingQuery(NF, RESULT) Đầu vào: node bối cảnh NF Đầu ra: Danh sách RESULT chứa entry anh em sau NF Begin Duyệt entry E’ NF Thêm E’ vào RESULT if (anh em sau theo pointer F không null) Gọi FollowingSiblingQuery(NF’, RESULT) NF’ node trỏ đến F endif endfor End Thuật toán 2.8: Thuật toán truy vấn anh em sau Thuật toán PrecedingSiblingQuery(NP, RESULT) Đầu vào: node bối cảnh NP Đầu ra: Danh sách RESULT chứa entry anh em trước NP Begin Duyệt entry E’ NP Thêm E’ vào RESULT if (anh em trước theo pointer P không null) Gọi PrecedingSiblingQuery(NP’, RESULT) NP’ node trỏ tới P endif endfor End Thuật toán 2.9: Thuật toán truy vấn Anh em trước 2.2.4.2 Thuật toán cho truy vấn khác Thuật toán ChildrenQuery(N, Q, RESULT) Đầu vào: node bối cảnh N cửa sổ truy vấn Q Đầu ra: Danh sách RESULT chứa tất entry E Begin if (N node không lá) Duyệt entry E’ N có MBR giao với MBR Q Gọi ChildrenQuery(N’, Q, RESULT) N’ node N trỏ tới E’ else Duyệt entry E’’ E có MBR giao với MBR Q Gọi SiblingQuery(N, E’’, RESULT) endif End Thuật toán 2.10: Thuật toán truy vấn 14 Thuật toán AncestorQuery(N, E, RESULT) Đầu vào: node bối cảnh N entry E cần tìm tổ tiên Đầu ra: Danh sách RESULT chứa tất tổ tiên E Begin Gọi FindNode(N, E) để tìm node N chứa entry E if (N không null) if (con trỏ parent pointer F không null) Duyệt entry E’ NP, NP node trỏ tới P if E’ tổ tiên E, thêm E’ vào RESULT Nhảy tới bước 3, cho NP thay cho N else Node đầu vào gốc else 10 Node cần tìm khơng tồn 11 endif End Thuật toán 2.11: Thuật toán truy vấn tổ tiên Khác với thuật toán trên, truy vấn cháu (Descendant query), tác giả hướng đến thu nhỏ kích thước cửa sổ truy vấn sau nhúng cửa sổ vào truy vấn phạm vi bình thường Như phần chuyển đổi tác giả thêm tham số level l vào node, cách sử dụng tham số cắt giảm kích thước cửa sổ khơng gian tìm kiếm Kết thực nghiệm thuật tốn 2.2.5 Đánh giá độ phức tạp thuật toán Truy vấn anh em phương pháp đề xuất có độ phức tạp: - Trường hợp tốt O(k + logm N), n số node có cây, m số entry node Trong k số anh em tìm truy vấn Trường hợp xấu O(k + N) Trung bình O( k + m logmN) 2.3 Kết thực nghiệm phƣơng pháp BioX-tree 2.3.1 Mơ hình mơi trƣờng thử nghiệm Mơ hình thử nghiệm Hình 2.6: Mơ hình thử nghiệm phương pháp BioX-tree R-tree Dữ liệu thử nghiệm 15 Tác giả sử dụng tài liệu tin sinh học khác từ nguồn liệu uy tín Chúng mơ tả đa dạng sinh học khác nhau, DNA, Protein, mô tả phân loài: DNACorn, DNARice, Swissprot, Allhomologies Kịch Trong truy vấn Xpath truy vấn trục anh em, quan trọng hay sử dụng chúng trả tập kết nhỏ, đích danh có giá trị sử dụng tính tốn Ví dụ người sử dụng cần tìm liệu XML: cháu node tại, anh em node Những truy vấn trục phụ khác tổ tiên, hậu duệ, phía trước, theo sau thường tập chứa nhiều kết sử dụng thực tế Kịch thực nghiệm loại truy vấn Xpath trục anh em trục dạng truy vấn truy vấn điểm (point query) Các trục lại Xpath sử dụng truy vấn phạm vi (range query) Mỗi tài liệu XML nêu coi CSDL khác thực riêng Trên tài liệu XML, tác giả chọn ngẫu nhiên 200 tag name, sau thực truy vấn tìm tập tag name có mối quan hệ liên quan theo trục Xpath Các truy vấn thực tài liệu XML có kích thước tăng dần, thể độ phức tạp XML với số tag name/node 20.000 – 40.000 – 60.000 – 80.000 Với loại truy vấn, kết trung bình số lần truy cập ổ cứng 200 lựa chọn lấy để đánh giá hiệu phương pháp Số lần truy cập đĩa cứng có nghĩa hiệu truy vấn cao Công cụ môi trường thử nghiệm Cơng cụ thực lập trình thuật tốn ngơn ngữ lập trình C++ Visual Studio 2008 Mơi trường chạy thực nghiệm máy tính có cấu hình CPU: Intel Xeon E5520 - 2.7 GHz, RAM: 20 GB, OS: Windows Server 2008 R2 Enterprise 2.3.2 Xây dựng chƣơng trình Thiết kế file số Thiết kế chương trình Biểu đồ lớp 16 Hình 2.7: Biểu đồ lớp chương trình BioX-tree 2.3.3 Đánh giá hiệu giảm kích thƣớc liệu Để đánh giá hiệu thực tế phương pháp nén liệu từ tài liệu XML tài liệu chuyển đổi không gian số, tác giả làm thực nghiệm tài liệu thực tế Hình 2.8 Qua cho thấy tỷ lệ nén tốt, đặc biệt với tài liệu mô tả DNA Tuy nhiên, với tài liệu Allhomologies mơ tả thơng tin phân lồi bất ngờ có tỷ lệ nén thấp Để hiểu lý tỷ lệ nén khác tài liệu, tác giả phân tích file XML nhận vấn đề Tài liệu Allhomologies mô tả thơng tin phân lồi nên đa phần có tag dạng Attribute, tag mơ tả nhiều thuộc tính chuỗi ký tự Thuật toán chuyển đổi gặp tag dạng phải bóc tách Attribute chuỗi thành tag riêng rẽ làm tăng kích thước tài liệu chuyển đổi Như vậy, thấy rằng, thực tế phương pháp chuyển đổi khơng phải lúc có tỷ lệ nén tốt cịn tùy thuộc vào cấu trúc tài liệu XML Hình 2.8: So sánh kích thước tài liệu XML tài liệu chuyển dổi không gian số 2.3.4 So sánh kết phƣơng pháp BioX-tree R-tree Trong phương pháp đánh số không gian, đơn vị để đo hiệu số node truy cập trung bình, thực chất thời gian xử lý nhanh hay chậm phụ thuộc vào việc truy vấn cần phải truy cập (I/O) nhiều hay vào ổ cứng để đọc block Nghĩa truy xuất đọc node (block) tương ứng với việc thời gian xử lý tối ưu a Truy vấn node Hình 2.9, 2.10 cho thấy hiệu suất BioX-tree tốt nhiều so với R-tree Lý để đạt kết quả, R-tree phải sử dụng truy vấn phạm vi để quét tất node anh em cháu, sau lọc node dự kiến Nhưng BioX-tree xử lý truy vấn cách trước tiên tiếp cận node có chứa đối tượng sau tìm kiếm tất anh em, node thông qua trỏ Điều giúp tránh vấn đề chồng chéo R-tree Kích thước liệu XML lớn, R-tree chồng chéo nhiều Đó lý hiệu suất Rtree giảm nhanh chóng kích cỡ liệu tăng Hình 2.9: Truy vấn anh em Hình 2.10: Truy vấn b Truy vấn phạm vi 17 Hình 2.11 cho thấy hiệu suất BioX-tree chút so với R-tree ngoại trừ liệu kích thước lớn Lý tác giả ép buộc node anh em đối tượng liệu XML vào số node R-tree Chắc chắn, điều làm cho cấu trúc lập số tối ưu hơn, dẫn đến vấn đề chồng chéo Mặc dù vậy, nhờ có trỏ (đến cha mẹ) BioX-tree, hiệu suất BioX-tree không tệ nhiều so với R-tree Hình 2.12 cho thấy hiệu suất BioXtree tốt chút so với R-tree Thay qt tồn bốn vùng rời rạc mặt phẳng, BioX-tree tìm node cháu sau sử dụng trỏ (đến node anh em) để đạt phần cịn lại Tương tự Hình 2.12, Hình 2.13, 2.14 cho thấy hiệu suất BioX-tree chút so với R-tree Lý truy vấn phạm vi buộc phải quét bốn vùng rời rạc dẫn đến vấn đề chồng chéo nghiêm trọng Hình 2.11: Truy vấn tổ tiên Hình 2.12: Truy vấn cháu Hình 2.13: Truy vấn node theo sau Hình 2.14: Truy vấn node phía trước Tóm lại, phương pháp lập số đề xuất tác giả có hiệu suất tốt nhiều với truy vấn node hiệu suất gần tương tự với truy vấn phạm vi Trong thực tiễn, truy vấn node sử dụng nhiều truy vấn phạm vi người dùng cần tất liệu tổ tiên liệu cháu đối tượng Thực tế, truy vấn anh em trước, anh em sau, mang lại nhiều lợi ích cho sở liệu DNA việc tìm kiếm 2.4 Kết luận chƣơng Trong chương này, tác giả nghiên cứu trình bày đề xuất phương pháp cải tiến giúp xử lý hiệu truy vấn XPath, coi tảng cho xây dựng truy vấn phức tạp Phương pháp BioX-tree đề xuất với số cải tiến quan trọng thêm trỏ để mối quan hệ: tổ tiên - cháu, cha mẹ - cái, anh em, bước chuyển đổi từ tài liệu XML lên không gian bổ sung số tham số, thiết kế lại thuật toán truy vấn trục Xpath để tăng tốc độ thực Phần thực nghiệm thực loại liệu tin sinh học XML từ nguồn uy tín phổ biến cộng đồng sinh học Trong cấu trúc này, kết thực nghiệm cho thấy hiệu hẳn phương pháp lập 18 số dựa R-tree truy vấn điểm, thuật toán hay sử dụng thực tế, thuật toán dựa theo dõi quỹ đạo liên kết cách sử dụng trỏ tối ưu hóa cao cho đọc ghi I/O đĩa cứng Nhưng bên cạnh cịn số nhược điểm mà tác giả tiếp tục nghiên cứu trình bày cách giải chương Các kết nghiên cứu Chương cơng bố cơng trình 2, 3, phần “Danh mục cơng trình tác giả” Chƣơng PHƢƠNG PHÁP ĐÁNH CHỈ SỐ MỞ RỘNG BIOX+-TREE 3.1 Mở đầu Trong chương 2, tác giả đưa ý tưởng tăng hiệu truy vấn trục XPath cho anh em trước, sau tổ tiên cách thêm trỏ, biến tham số cho node R-tree Nhờ trỏ truy vấn trục Xpath khác (descendant) kể trục hưởng lợi để có hiệu tốt Tuy nhiên, nhược điểm phương pháp tạo số R-tree khơng tối ưu Vì vậy, nội dung tiếp theo, tác giả phân tích khơng gian liệu chuyển đổi tài liệu XML đề xuất thuật toán mà khắc phục phần khuyết điểm Trong chương này, luận án trình bày đề xuất chuyển đổi số tag name tọa độ không gian dạng số để giảm kích thước tài liệu đề xuất phương pháp đánh số để tăng hiệu truy vấn tài liệu XML, kết số vấn đề thực tế đa dạng tài liệu XML tin sinh học Các thành phần đề xuất cải tiến là: module đánh số, module xử lý truy vấn Hình 3.1: Các thành phần cải tiến phương pháp mở rộng BioX+-tree Kết nghiên cứu chương công bố cơng trình số 5, phần “Danh mục cơng trình tác giả” 3.2 Phƣơng pháp BioX+-tree 3.2.1 Phân tích không gian liệu chuyển đổi tài liệu XML Ở nghiên cứu chương 2, tác giả nhận thấy phân bố liệu XML không gian có xu hướng tập trung vào trục Xpath anh em trước sau 19 Hình 3.2: Cây tài liệu XML đánh số thứ tự Hình 3.2 (báo cáo luận án) mô tả node BioX-tree khơng gian chiều qua hình chữ nhật MBR Trong đó, R MBR tag tag gốc (1-31) Hình 3.1, tương tự R1, 2, Hình 3.2 MBR tag tag 2-10, 12-10, 2230 Hình 3.1, tương tự cho MBR nhỏ Từ mơ tả trực quan khơng gian Hình 3.2, tác giả đưa định lý MBR tag X thể không gian BioX-tree Định lý 1: Giả sử tài liệu XML, tag T cha tag t1,t2, , tn (sibling) Các MBR mà bao tag (cây con) t1, t2,…, tn không gian BioX-tree tách rời (không giao nhau) VD: R1, R2, R3 hình chữ nhật bao tách rời trải từ trái qua phải khơng gian Hình 3.2 Để chứng minh cho định lý này, dễ dàng nhận rằng, phần tử MBR bao anh em trái cha có giá trị nhỏ phần tử MBR bao phải với giá trị duyệt theo giá trị trước Ngược lại, lớn với giá trị duyệt theo giá trị sau Do vậy, MBR cho node cha tài liệu X không gian BioX-tree tách rời Như vậy, Định lý cho thấy rằng, việc gượng ép tag XML anh em cha vào node BioX-tree không ảnh hưởng nhiều đến tối ưu cấu trúc BioX-tree cho truy vấn Kết thực nghiệm chương BioX-tree thể điều Định lý 2: Giả sử tài liệu XML, tag T cha tag t1, t2, , tn (sibling) Ngoại trừ MBR bao t1 tn (anh em sau cùng), MBR mà bao t1, t2, , tn bao tất MBR của t2, , tn-1 VD: R bao toàn R2 R21, R22, R23 Để chứng minh cho định lý này, dễ dàng nhận giá trị duyệt theo giá trị trước-duyệt theo giá trị sau t1 tn liền trước sau giá trị duyệt theo giá trị trước-duyệt theo giá trị sau T Do vậy, giá trị duyệt theo giá trị trước-duyệt theo giá trị sau t2, , tn hiển nhiên phải phạm vi MBR bao t1 tn Từ định lý 2, tác giả rút hệ 2.1 cho truy vấn tìm kiếm tag XML BioXtree sau Hệ 2.1: Giả sử tìm tag t tài liệu XML tìm kiếm BioX-tree, phát giá trị duyệt theo giá trị trước-duyệt theo giá trị sau t nằm hình chữ nhật R1 R2 Nếu R1 nằm R2, thuật tốn tìm kiếm khơng cần tiếp tục duyệt khác R2 để tìm t chắn t thuộc R1 Từ định lý hệ có được, tác giả thiết kế lại thuật toán phương pháp BioX-tree để tối ưu lại truy vấn, khắc phục nhược điểm cấu trúc 3.2.2 Các thuật toán đề xuất Từ kết luận thu mục 3.1, tác giả đề xuất thuật toán Chèn Truy vấn tác giả gọi phương pháp mở rộng BioX-tree BioX+-tree Mục tiêu thuật toán giảm bớt bước duyệt dư thừa để tối ưu tốc độ truy vấn, đồng thời giảm bớt 20 nhược điểm cầu trúc BioX-tree BioX+-tree bỏ trỏ Par (trỏ tới parent node) chưa thực mang lại hiệu mong đợi làm tốn nhiều nhớ lưu trữ Thuật toán Insert(N,E) Đầu ra: node bối cảnh N entry E cần tìm kiếm Đầu vào: node N chứa entry E Begin Gọi FindNode(N,E) để tìm node N’ chứa anh em entry E cần chèn if (N’ không null), if (N’ node node cuối cùng) fullnode =m //m số lượng entry nhỏ node else fullnode =M //M số lượng entry lớn node if |N’|