Một số mục tiêu của việc phát triển một hệ thống CSDL PT là tăng độ tin cậy và tính sẵn sàng, đáp ứng tính phân tán của tổ chức, có khả năng mở rộng, … Thiết kế phân tán CSDL ban đầu cũn
Trang 1HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ
…… ….***…………
MAI THÚY NGA
XỬ LÝ VÀ TỐI ƯU HÓA TRUY VẤN TRONG
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG PHÂN TÁN
Chuyên ngành: Cơ sở Toán học cho Tin học
Mã số: 62 46 01 10
TÓM TẮT LUẬN ÁN TIẾN SĨ TOÁN HỌC
HÀ NỘI – 2017
Trang 2Công trình được hoàn thành tại: Học viện Khoa học và công nghệ -
Viện Hàn lâm Khoa học và công nghệ Việt Nam
Người hướng dẫn khoa học 1: PGS TS Đoàn Văn Ban
Người hướng dẫn khoa học 2: TS Nguyễn Mạnh Hùng
Phản biện 1: TS Nguyễn Long Giang
Phản biện 2: PGS TS Bùi Thu Lâm
Phản biện 3: PGS TS Trần Đăng Hưng
Luận án sẽ được bảo vệ trước Hội đồng chấm luận án tiến sĩ, họp tại Học viện Khoa học và Công nghệ - Viện Hàn lâm Khoa học và công nghệ Việt Nam vào hồi … giờ …’, ngày … tháng … năm 2017
Có thể tìm hiểu luận án tại:
Trang 3MỞ ĐẦU
Đối với một số lĩnh vực chuyên sâu của Cơ sở dữ liệu như Multimedia, địa lí, CAD/CAM/CIM
và các hệ thống tài chính phức tạp, CSDL quan hệ bộc lộ những hạn chế Cơ sở dữ liệu hướng đối tượng (CSDL HĐT) ra đời để khắc phục các hạn chế này CSDL HĐT cũng được xây dựng với mục đích tích hợp với ngôn ngữ lập trình hướng đối tượng, loại ngôn ngữ lập trình phổ biến nhất trong các ứng dụng ngày nay
Trong CSDL HĐT, “đối tượng” là đơn vị trung tâm, mỗi đối tượng được lưu trữ không chỉ
dữ liệu mà còn thao tác trên chúng CSDL HĐT có các đặc trưng cơ bản là tính đóng gói, kế thừa,
đa hình Ngoài vấn đề về chức năng và độ phù hợp với bài toán, các hệ thống CSDL HĐT cần được đánh giá về hiệu năng Trong các tiêu chuẩn đánh giá hiệu năng CSDL HĐT, OO7 có thể được coi
là tiêu chuẩn và là thư viện phổ biến, cung cấp khá đầy đủ các kịch bản kiểm thử để đánh giá các loại CSDL HĐT từ nhiều góc độ khác nhau
Để đáp ứng nhu cầu của doanh nghiệp lớn với dữ liệu phân tán ở nhiều trạm ở các vị trí địa
lý khác nhau, CSDL được phát triển trong môi trường mạng tạo thành mô hình cơ sở dữ liệu phân tán (CSDL PT) Một số mục tiêu của việc phát triển một hệ thống CSDL PT là tăng độ tin cậy và tính sẵn sàng, đáp ứng tính phân tán của tổ chức, có khả năng mở rộng, … Thiết kế phân tán CSDL ban đầu cũng phát triển trong ngữ cảnh mô hình dữ liệu quan hệ, sau đó mở rộng trong mô hình dữ liệu hướng đối tương tạo thành mô hình cơ sở dữ liệu hướng đối tượng phân tán (CSDL HĐT PT) Trong CSDL HĐT PT rất nhiều vần đề cần được nghiên cứu, trong đó có việc xử lý truy vấn đối tượng phân tán Xử lý truy vấn liên quan đến vấn đề thiết kế phân tán và tối ưu hóa phân tán Bài toán thiết kế phân tán nhằm mục tiêu nâng cao hiệu quả của hệ thống, được chia thành hai giai đoạn chính là phân mảnh và cấp phát Cả hai bài toán phân mảnh và cấp phát đều là bài toán NP-khó với không gian tìm kiếm rất lớn Trong CSDL HĐT PT phân mảnh và cấp phát thực hiện trên các lớp đối tượng Phân mảnh dọc nhằm mục đích chia một lớp thành các phần nhỏ hơn, mỗi phần gồm một số thuộc tính và phương thức Phân mảnh ngang chia các đối tượng trong cùng một lớp thành các phần khác nhau, mỗi phần gồm một số đối tượng Các thuật toán phân mảnh lớp
đã được thực hiện trong các nghiên cứu khác theo các hướng khác nhau như dựa trên thuật toán năng lượng nối, phân mảnh dựa trên thuộc tính, dựa trên phương thức, dựa trên heuristic, dựa trên tác tử, dựa trên lý thuyết mờ, Cấp phát là định vị các mảnh đối tượng vào các trạm tương ứng của mạng liên kết Không nhiều nghiên cứu đề cập đến vấn đề cấp phát trong CSDL HĐT PT, trong
đó có thuật toán đồ thị, giải thuật di truyền, heuristic
Luận án cũng tập trung vào vấn đề tối ưu hóa truy vấn và thảo luận trên bài toán thực thi các biểu thức đường dẫn Biểu thức đường dẫn là một dãy tham chiếu để truy xuất đến các đối tượng theo các thuộc tính hoặc phương thức Mục tiêu của tối ưu hóa biểu thức đường dẫn là tìm một chiến lược thực thi biểu thức đường dẫn một cách hợp lý nhằm tối thiểu hóa chi phí Chi phí được tính toán ở đây là chi phí theo thao tác xuất nhập, chi phí tính toán và chi phí truyền dữ liệu, trong
đó chi phí đáng kể nhất là chi phí truyền dữ liệu
Mục tiêu nghiên cứu của luận án là nghiên cứu các vấn đề xử lý truy vấn để nâng cao hiệu
năng của hệ thống Với mục tiêu này, nội dung nghiên cứu của luận án là:
Trang 4- Nghiên cứu các hệ thống đánh giá hiệu năng của CSDL HĐT trong môi trường tập trung
Đối tượng nghiên cứu của luận án là CSDL HĐT PT, các thư viện đánh giá hiệu năng, các
thuật toán phân mảnh, cấp phát và tối ưu hóa truy vấn đã có
Phạm vi nghiên cứu của luận án là bài toán phân mảnh và cấp phát các lớp, tối ưu hóa biểu
thức đường dẫn
Phương pháp nghiên cứu là nghiên cứu lý thuyết, xây dựng các thuật toán và đánh giá độ
phức tạp các thuật toán, cài đặt thực nghiệm các thuật toán, kiểm tra trên các bộ dữ liệu để so sánh đánh giá
Các đóng góp chính của luận án bao gồm:
Đánh giá hiệu năng một số CSDL HĐT phổ biến như Versant thông qua thư viện OO7 trên các tiêu chí chính: Tốc độ xử lí trong việc duyệt đối tượng, mức độ hiệu quả trong việc thay đổi đối tượng (tạo, xóa và cập nhật), hiệu quả của việc xử lý các loại câu truy vấn đối tượng
Đề xuất hai thuật toán cho việc phân mảnh và cấp phát trong CSDL HĐT: (1) Thuật toán phân mảnh dọc các lớp đối tượng dựa trên tương quan thuộc tính (2) Thuật toán heuristic thực hiện phân mảnh dọc và cấp phát đồng thời các lớp đối tượng dựa trên chi phí
Đề xuất thuật toán truyền dữ liệu để thực hiện truy vấn biểu thức đường dẫn trong CSDL HĐT PT bằng bộ lọc Bloom Đề xuất thuật toán tối ưu hóa biểu thức đường dẫn trong CSDL HĐT PT bằng quy hoạch động sử dụng cơ chế sinh cây con cảm sinh và
cơ chế truyền dữ liệu bằng bộ lọc Bloom
Luận án được tổ chức thành phần mở đầu, ba chương nội dung và kết luận
Chương I giới thiệu các khái niệm cơ bản trong CSDL HĐT và CSDL HĐT PT Phần cuối
chương tập trung phân tích thư viện OO7, cài đặt thư viện này để đánh giá hiệu năng của các hệ quản trị CSDL HĐT PT
Chương II trình bày các thông tin đầu vào và cách biến đổi các tham số đầu vào của bài toán
phân mảnh và cấp phát theo các quan hệ trong CSDL HĐT PT Tiếp theo, đề xuất thuật toán phân mảnh dựa trên tương quan thuộc tính và thuật toán heuristic để phân mảnh dọc và cấp phát lớp một cách đồng thời
Chương III nghiên cứu các vấn đề liên quan đến tối ưu hóa truy vấn Luận án đề xuất thuật
toán tối ưu biểu thức đường dẫn trong CSDL HĐT PT sử dụng phương pháp liệt kê cây con cảm sinh trong một đồ thị và cơ chế của bộ lọc Bloom để giảm chi phí truyền dữ liệu giữa hai trạm Phần kết luận cuối cùng nêu những đóng góp của luận án, các hướng nghiên cứu tiếp theo được đặt ra từ kết quả của luận án
Trang 5CHƯƠNG 1 - CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG PHÂN TÁN
1.1 Cơ sở dữ liệu hướng đối tượng
Các ứng dụng phức tạp như thiết kế và sản xuất công nghiệp (CAD/CAM và CIM), các thí nghiệm khoa học, viễn thông, hệ bản đồ và CSDL đa phương tiện, đòi hỏi cấu trúc dữ liệu phải mềm dẻo và linh hoạt Mô hình CSDL hướng đối tượng (CSDL HĐT) được đề xuất để giải quyết các vấn đề này CSDL HĐT có một số đặc điểm cơ bản sau:
- Cung cấp khả năng lưu trữ và thao tác với các kiểu dữ liệu trừu tượng hơn (như hình ảnh, bản đồ) và khả năng cho phép người dùng định nghĩa các kiểu cho từng ứng dụng
- Cung cấp khả năng biểu diễn quan hệ giữa các đối tượng dữ liệu theo quan hệ tự nhiên của thế giới thực Ví dụ trong đối tượng tài liệu có chứa một đối tượng video và một đối tượng văn bản có đề mục
- Có khả năng tích hợp trực tiếp với các ngôn ngữ lập trình hướng đối tượng, ngôn ngữ mà ngày nay được sử dụng trong phần lớn các ứng dụng
1.1.1 Đối tượng
Khái niệm cơ bản nhất trong CSDL hướng đối tượng là đối tượng (object) Đối tượng biểu diễn một thực thể có thực trong hệ thống được mô hình hóa Mỗi đối tượng biểu diễn bằng một bộ (OID, trạng thái, giao diện), trong đó OID (Object Identifier) là một định danh của đối tượng và trạng thái (state) tương ứng là một biểu diễn trạng thái nào đó cho trạng thái hiện tại của đối tượng, giao diện (interface) định nghĩa các hành vi của đối tượng
Trạng thái của đối tượng là một giá trị nguyên tử hoặc một giá trị được xây dựng Gọi D là tập các miền do hệ thống định nghĩa và miền các kiểu dữ liệu trừu tượng do người dùng định nghĩa, gọi I là miền định danh được dùng để đặt tên đối tượng, A là miền các tên thuộc tính Một giá trị được định nghĩa như sau:
1 Một phần tử của D là một giá trị và được gọi là giá trị nguyên tử (atomic value)
2 [a1: v1,…, an: vn] được gọi là một giá trị bộ (tuple value), trong đó ai là một phần tử của
A và vi là một giá trị hoặc một phần tử của I [ ] được gọi là toán tử tạo lập bộ (tuple constructor)
3 {v1,…, vn} được gọi là giá trị tập hợp hoặc trị tập (set value), với vi là một giá trị hoặc là một phần tử của I { } được gọi là toán tử tạo lập tập (set constructor)
Ví dụ 1.1: Xem xét các đối tượng sau
(i 1 , 230) (i 2 ,”Sinh viên”) (i 3 , {i 6 , i 11 }) (i 4 , {1, 6, 9}) (i 5 , [LF: i 7 , RF: i 8 , LR: i 9 , RR: i 10 ])
1.1.2 Lớp
Một lớp là một mẫu cho một nhóm các đối tượng, định nghĩa một kiểu chung cho các đối tượng có thể được tạo nên từ mẫu này Một lớp mô tả kiểu của dữ liệu bằng cách cung cấp một miền của dữ liệu với cùng cấu trúc, cùng với các phương thức có thể áp dụng lên các phần tử của
Trang 6miền đó Khả năng trừu tượng hóa của các lớp, được đề cập bằng tính đóng gói, dấu các cài đặt chi tiết của các phương thức, tương tác với bên ngoài thông qua một giao diện
Ví dụ 1.2: Mô hình hóa một chiếc ô tô với nhiều bộ phận (động cơ, giảm sóc, bánh xe) và sẽ lưu các thông tin khác như hãng sản xuất, số seri, …
type XeHoi
attributes
dongCo: DongCo cacGiamSoc: {GiamSoc}
cacBanhXe: [traiTruoc: BanhXe, phaiTruoc: BanhXe, traiSau: BanhXe, phaiSau: BanhXe]
hangSanXuat: HangSanXuat methods
tuoi: Real() thayBanh(diaDiem,banhXe)
Cấu trúc dữ liệu giao diện của một lớp có thể phức tạp và lớn tùy ý Lớp cung cấp hai ưu điểm chính: Dễ dàng mở rộng từ kiểu nguyên thủy của hệ thống sang các kiểu do người dùng định nghĩa
Ví dụ 1.3: Giả sử x1 là một thể hiện của kiểu XeHoi Nếu những điều sau đúng thì chứng tỏ
Hung và Nam có chung một chiếc xe
(i 2 , [ten: Hung, soHuuXe: x 1 ])
(i 3 , [ten: Nam, soHuuXe: x 1 ])
1.1.4 Phân lớp con và tính kế thừa
Các hệ đối tượng cung cấp khả năng mở rộng các kiểu, lớp từ các kiểu, lớp đã có Điều này được thực hiện thông qua định nghĩa các lớp nhờ toán tử tạo lập kiểu hoặc bằng định nghĩa các lớp dựa vào các lớp đã có sẵn và bổ sung các thành phần để tạo ra các lớp con Sinh lớp con dựa vào mối liên hệ chuyên biệt hóa giữa các lớp Một lớp chuyên biệt (lớp con) được định nghĩa chi tiết hơn so với lớp mà từ đó nó được chuyên biệt (lớp cha)
Ví dụ 1.4: Xe sẽ định nghĩa những tính chất chung của tất cả các kiểu xe
type Xe as Object
attributes
dongCo: DongCo hangSanXuat: HangSanXuat methods
tuoi(): Real;
Trang 7Định nghĩa XeHoi kế thừa từ kiểu Xe và thêm một số thuộc tính
cho phép tái sử dụng Nếu một kiểu kế thừa từ một kiểu khác gọi là đơn kế thừa, nếu một kiểu kế
thừa từ nhiều kiểu khác gọi là đa kế thừa
1.2 Cơ sở dữ liệu hướng đối tượng phân tán
1.2.1 Mô hình cơ sở dữ liệu hướng đối tượng phân tán
Một Cơ sở dữ liệu (CSDL) phân tán là một tập hợp nhiều CSDL có liên quan logic và được
phân bố trên một mạng máy tính, biểu diễn như Hình 1.1 Có hai đặc điểm quan trọng trong định
nghĩa CSDL phân tán:
Liên quan logic: Dữ liệu trong hệ phân tán có một số thuộc tính ràng buộc chúng với nhau
Phân tán: Dữ liệu không cư trú trên một vị trí mà được phân bố rộng khắp trên nhiều
máy tính đặt tại nhiều vị trí khác nhau
Hình 1.1: Môi trường của hệ CSDL phân tán
Với lợi thế về công nghệ mạng truyền thông, mô hình CSDL phân tán phù hợp với sự phân
tán về mặt tổ chức của các công ty, đặc biệt là các công ty toàn cầu
Sự phân bố của cơ sở dữ liệu hướng đối tượng theo mô hình cơ sở dữ liệu phân tán gọi là cơ sở
dữ liệu hướng đối tượng phân tán (CSDL HĐT PT)
1.2.2 Các ưu điểm của CSDL phân tán
- Quản lý dữ liệu phân tán với các mức trong suốt khác nhau
- Tăng độ tin cậy của các giao dịch phân tán
Trang 8- Cải thiện hiệu năng
- Dễ mở rộng
1.2.3 Các vấn đề cần giải quyết trong CSDL phân tán
Các vấn đề cần giải quyết trong CSDL PT và mối quan hệ của chúng biểu diễn trong Hình 1.2 Thiết kế CSDL phân tán là trung tâm và ảnh hưởng đến các vấn đề khác Chẳng hạn thiết kế ảnh hưởng đến việc quản lý thư mục bởi vì định nghĩa các mảnh và vị trí chứa chúng sẽ xác định nội dung thư mục Những thông tin về mảnh và vị trí cũng được bộ xử lý truy vấn dùng để xác định chiến lược truy vấn Ngược lai, các thông tin truy vấn được sử dụng cho các thuật toán phân mảnh
Hình 1.2: Mối liên hệ giữa các vấn đề trong CSDL PT
1.2.4 Kiến trúc cơ sở dữ liệu hướng đối tượng phân tán
Kiến trúc các hệ CSDL HĐT PT theo kiến trúc client/server Trong các vấn đề cần nghiên cứu về CSDL HĐT PT luận án tập trung giải quyết ba vấn đề: Đánh giá hiệu năng, thiết kế phân tán (phân mảnh và cấp phát), tối ưu hóa truy vấn phân tán
Thiết kế trong CSDL HĐT PT phức tạp hơn, chẳng hạn:
- Do tính đóng gói, cấu trúc mỗi đối tượng bao gồm các phương thức và trạng thái Vấn đề cần đặt ra là có nên phân mảnh trên các thuộc tính và nhân các các phương thức cho mỗi mảnh hay phân mảnh luôn cả các phương thức
- Mỗi thuộc tính và phương thức lại có thể có kiểu đơn giản hoặc phức hợp Khi phân mảnh các thuộc tính và phương thức phức hợp chúng ta phải xét đến các lớp liên quan bởi các thuộc tính và phương thức này
Tối ưu hóa truy vấn phân tán có một số khó khăn nảy sinh như:
- Các hệ đối tượng có các hệ thống kiểu phong phú hơn Kết quả của các phép toán đại số đối tượng thường là các tập đối tượng thuộc những kiểu khác nhau
- Đóng gói các phương thức và dữ liệu trong đối tượng khả năng truy cập các thông tin và đánh giá chi phi khó hơn
Quản lý thư mục
Thiết kế CSDL phân tán
Điều khiển tương tranh
Trang 9- Các đối tượng thường có cấu trúc phức tạp và có phân cấp kế thừa, do đó việc tối ưu hóa phức tạp hơn.
1.3 Đánh giá hiệu năng CSDL HĐT với thư viện OO7
- Hiệu năng của việc xử lý các loại câu truy vấn đối tượng
1.3.2 Thiết kế CSDL của OO7
Hai thành phần chính của bản thiết kế dữ liệu OO7 tập “Đối tượng nguyên tố” (atomic object) và “Đối tượng phức hợp” (composite object) Tập hợp các đối tượng nguyên tố theo một số kết nối nào đó theo mô hình đồ thị sẽ cấu thành một đối tượng phức hợp, mỗi thành phần phức hợp tương ứng với một thiết kế cơ bản nào đó của ứng dụng thực tế Đồ thị kết nối giữa các đối tượng Atomic trong một đối tượng Comp như Hình 1.5
Mỗi thiết kế CSDL gồm nhiều module và mỗi module bao gồm nhiều assembly mà ở đó một assembly là sự đóng gói của nhiều đối tượng phức hợp và nguyên thủy với nhau và có thể đóng gói ngay cả các assembly Các assembly lại có thể được đóng gói để hình thành các assemply phức hợp và các assembly này được liên kết theo hình cây Mỗi module được thiết kế gồm một đối tượng
dữ liệu kích thước lớn để mô phỏng trong việc đánh giá hiệu năng với các đối tượng cực lớn Mô hình hóa bản thiết kế CSDL của OO7 được minh họa như Hình 1.6
Các tham số cho phép cấu hình CSDL ở các mức nhỏ, vừa và lớn Ví dụ về cấu hình các tham
số như trong Bảng 1.1
Mọi đối tượng và các thuộc tính của bản thiết kế OO7 đưa ra đều nhằm mục đích mô phỏng tốt nhất các bài toán hướng đối tượng trong thực tế Kể cả với dạng hướng đối tượng phân tán, thiết
Trang 10kế trên cũng có thể mô phỏng được các đối tượng tại các địa điểm cục bộ hoặc phân tán khác nhau
mà ở đó mỗi module được minh họa như một trạm xử lý của hệ phân tán
Bảng 1.1: Các tham số CSDL chính của OO7
NumCompPerModule Số lượng đối tượng phức hợp của
một module
NumAtomicPerComp Số lượng đối tượng nguyên thủy
trong một đối tượng phức hợp
1.3.3 Kịch bản đánh giá hiệu năng
Kịch bản đánh giá gồm mười kịch bản duyệt đối tượng và tám kịch bản truy vấn Kịch bản duyệt sẽ thực hiện ở hai dạng là Hot và Cold Dạng Cold sẽ hoàn toàn không sử dụng bộ nhớ cache, với dạng duyệt Hot thì bước chuẩn bị chạy giống như Cold nhưng sau đó chạy lại ba lần cùng thao tác duyệt như Cold và sử dụng lại cache đã có từ lần chạy đầu tiên
1.3.4 Kết quả thực nghiệm
Một số tham số của CSDL được thay đổi để kiểm tra dưới nhiều góc độ:
- Sử dụng cấu hình CSDL dạng nhỏ (small) với cấu hình client/server và dạng tệp trực tiếp trên
ổ đĩa (embedded file)
- Sử dụng index (index on) và không sử dụng index (index off)
- Tải dữ liệu dạng đầy đủ (eager load) và dạng không đầy đủ (lazy load)
- Chương trình bổ sung dạng CSDL vừa (medium) thiết lập sẵn index on và eager load
1.3.4.1 Kết quả duyệt dạng COLD
Hình 1.7: Biểu đồ thao tác duyệt dạng COLD
- Khi sử dụng index kết quả có tốt hơn khoảng 5% thời gian xử lý, kết quả này không thực sự phản ánh tốt tính năng index do phần lớn các thao tác duyệt có xử lý update dữ liệu (index phù hợp cho việc đọc hơn là update dữ liệu)
Trang 11- Với thao tác duyệt đầy đủ dữ liệu như Trav1/Trav2x/Trav3x thì kết quả tải dữ liệu không đầy
đủ không tốt hơn so với dạng tải dữ liệu đầy đủ Tuy nhiên với dạng duyệt không toàn bộ như Trav6 thì kết quả tải dữ liệu không đầy đủ tốt hơn nhiều so với dạng tải dữ liệu đầy đủ, đây chính là ưu điểm của việc sử dụng tính năng tải dữ liệu không đầy đủ khi duyệt dữ liệu rút gọn
- Với dạng CSDL dạng tệp dữ liệu trực tiếp trên ổ đĩa, kết quả tốt hơn nhiều Với CSDL dạng vừa, thời gian tăng đột biến từ 8-10 lần do phải xử lý số lượng dữ liệu rất lớn
1.3.4.2 Kết quả duyệt dạng HOT
Hình 1.8: Biểu đồ thao tác duyệt dạng HOT
- Duyệt dạng HOT cho kết quả tốt hơn rất nhiều so với dạng COLD do dữ liệu được tái sử dụng
và cache trong bộ nhớ Phần lớn các thao tác duyệt chỉ đọc không quá một giây và các thao tác duyệt có cập nhật dữ liệu cũng không quá một giây đối với CSDL dạng nhỏ
- Khác với dạng COLD, kết quả của tải dữ liệu không đầy đủ với các thao tác duyệt đầy đủ có cập nhật Trav1/Trav2x/Trav3x kém hơn nhiều so với dạng tải dữ liệu đầy đủ (thời gian cao gấp khoảng 3 lần) Với các thao tác duyệt không đầy đủ Trav6/Trav8/Trav9 thì kết quả là tương đương giữa tải đữ liệu không đầy đủ và tải dữ liệu đầy đủ
1.3.4.3 Kết quả truy vấn dạng COLD
Hình 1.9: Biểu đồ truy vấn dạng COLD
Trang 12- Kết quả nạp dữ liệu không đầy đủ thể hiện ưu điểm với các thao tác truy vấn dữ liệu, kết quả tốt hơn nhiều so với nạp dữ liệu đầy đủ Ví dụ với Query1, nạp dữ liệu không đầy đủ chỉ mất dưới một giây, còn nạp dữ liệu đầy đủ cần tới hơn 7 giây
- Với truy vấn liệt kê toàn bộ đối tượng Query7 và truy vấn tìm kiếm có quan hệ liên kết Query8, kết quả sử dụng tải dữ liệu không đầy đủ còn tốt hơn rất nhiều Với CSDL dạng vừa thì Query7 mất tới vài ngày và Query8 mất tới cả tháng
1.3.4.4 Kết quả truy vấn dạng HOT
- Truy vấn dạng HOT cho kết quả rất tốt so với dạng COLD với các dạng tìm kiếm theo giá trị như các truy vấn từ Query1 đến Query5
- Còn với dạng truy vấn liệt kê toàn bộ Query7 và truy vấn tìm kiếm quan hệ liên kết như Query8 thì kết quả không khác nhiều so với dạng HOT
Hình 1.10: Biểu đồ truy vấn dạng HOT
1.4 Kết luận chương 1
CSDL quan hệ có những hạn chế khi áp dụng với các hệ thống lớn, phức tạp Mô hình CSDL HĐT được đề xuất để giải quyết các vấn đề phức tạp trong các hệ thống ứng dụng Đặc trưng chính của CSDL HĐT là cung cấp khả năng đặc tả cấu trúc của các đối tượng phức và quản lý hoạt động của các đối tượng
CSDL HĐT phát triển trong môi trường mạng hình thành mô hình CSDL hướng đối tượng phân tán Kiến trúc của hệ CSDL HĐT PT chủ yếu là kiến trúc clien/server Trong các vấn đề của CSDL HĐT PT, xử lý truy vấn là một hướng nghiên cứu quan trọng Xử lý truy vấn phân tán liên quan đến việc đánh giá hiệu năng, phân mảnh và cấp phát lớp các đối tượng, tối ưu hóa truy vấn Chương một của luận án đã trình bày các khái niệm và các vấn đề trong CSDL HĐT và CSDL HĐT PT, đồng thời chương này cũng đã đề cập đến việc đánh giá hiệu năng các CSDL HĐT bằng thư viện OO7
Trong chương tiếp theo luận án sẽ trình bày những kiến thức và đề xuất các thuật toán để thực hiện việc phân mảnh và cấp phát lớp các đối tượng
Trang 13CHƯƠNG 2 - THIẾT KẾ TRONG CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG PHÂN TÁN
Bài toán thiết kế dữ liệu phân tán chia thành hai bài toán chính: phân mảnh và cấp phát Phân mảnh là chia nhỏ dữ liệu thành các phần nhỏ hơn Cấp phát là định vị các mảnh vào các trạm Với
mô hình đối tượng việc phân mảnh nảy sinh các vấn đề phức tạp mới do các đặc tính của hướng đối tượng, đó là tính đóng gói, kế thừa, phân cấp lớp Chương 2 của luận án sẽ trình bày các thuật toán phân mảnh và cấp phát cho CSDL HĐT PT Những kết quả đã được đăng ở các bài báo (1), (3), và (4)
2.1 Các thông tin đầu vào bài toán phân mảnh dọc và cấp phát lớp
2.1.1 Thông tin về CSDL
Dữ liệu trong CSDL HĐT bao gồm tập các đối tượng được đóng gói, mỗi đối tượng bao gồm các thuộc tính và phương thức
Định nghĩa 2.1 [24]: Một lớp thứ i trong CSDL HĐT được biểu diễn bởi Ci = (Ki, Ai, Mi,
Ii) trong đó: Ki là tập các định danh, Ai là tập các thuộc tính, Mi là tập các phương thức và Ii là tập các đối tượng được định nghĩa bởi Ai và Mi
Thuộc tính trong một lớp chia thành hai kiểu đơn giản và phức tạp: Thuộc tính đơn giản là thuộc tính có miền giá trị là các lớp nguyên thủy Thuộc tính phức tạp là thuộc tính có miền giá trị không phải là các lớp nguyên thủy, khi đó giá trị thuộc tính có thể là định danh của các đối tượng khác Phương thức trong một lớp cũng chia thành hai kiểu đơn giản và phức tạp: Phương thức đơn giản là phương thức khi thực hiện không gọi các phương thức khác Phương thức phức tạp là phương thức khi thực hiện gọi phức thức khác trong cùng lớp đó hoặc các phương thức của lớp khác
Định nghĩa 2.2: Một phương án phân mảnh dọc của một lớp Ci là một cách là chia Ci thành tập các mảnh {𝑓1𝑖, 𝑓2𝑖, , 𝑓𝑛𝑖}, mỗi mảnh 𝑓𝑣𝑖 = {Ki, 𝐴𝑣𝑖, 𝑀𝑣𝑖, Ii}, (v = 1, , n) , trong đó 𝐴𝑣𝑖 là tập con của Ai, 𝑀𝑣𝑖 là tập con của Mi
Cũng như CSDL quan hệ, phân mảnh dọc phải đảm bảo ba luật phân mảnh, cụ thể trong CSDL HĐT ba luật này thể hiện như sau:
- Tính đầy đủ (completeness): Mỗi thuộc tính hoặc phương thức trong lớp Ci phải được tìm thấy trong ít nhất một mảnh 𝑓𝑗𝑖
- Tính tái cấu trúc được (reconstruction): Có khả năng tái cấu trúc lại lớp Ci từ các mảnh tương ứng đã được phân chia
- Tính tách biệt (disjointness): Chỉ định danh và các phương thức truy cập định danh mới
được lặp lại trong các mảnh, các thuộc tính và phương thức khác của một lớp Ci chỉ thuộc duy nhất một mảnh 𝑓j𝑖
Định nghĩa 2.3: Một phương án cấp phát cho lớp Ci là định vị tập các mảnh {𝑓1𝑖, 𝑓2𝑖, , 𝑓𝑛𝑖} của lớp Ci vào một tập các trạm S = {s1, s2, …, sk} trong mạng liên kết sao cho tổng kích thước các