BẢNG VIẾT TẮT CÁC THUẬT NGỮ CSDL PT Distributed Database Cơ sở dữ liệu phân tán CSDL HĐT Object Oriented Database Cơ sở dữ liệu hướng đối tượng CSDL HĐT PT Distributed Object Oriente
Trang 1…… ………
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
LUẬN ÁN TIẾN SĨ TOÁN HỌC
HÀ NỘI – 2017
Trang 2…… ….***…………
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
LUẬN ÁN TIẾN SĨ TOÁN HỌC Chuyên ngành: Cơ sở Toán học cho Tin học
Mã số: 62 46 01 10
Người hướng dẫn khoa học:
1 PGS TS Đoàn Văn Ban
2 TS Nguyễn Mạnh Hùng
HÀ NỘI – 2017
Trang 3Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi Các kết quả được viết chung với các đồng tác giả đã được sự chấp thuận của các tác giả trước khi đưa vào luận án Các kết quả nêu trong luận án là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Tác giả
Mai Thúy Nga
Trang 4Luận án đượ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 Tác giả xin được bày tỏ lòng biết ơn chân thành
và sự kính trọng sâu sắc đối với PGS.TS Đoàn Văn Ban Tác giả đã nhận được sự hướng dẫn tận tình và các kinh nghiệm nghiên cứu khoa học quý giá của Thầy trong suốt quá trình học nghiên cứu sinh Tác giả cũng chân thành cám ơn TS Nguyễn Mạnh Hùng với những định hướng nghiên cứu và góp ý để luận án được hoàn thiện Trong thời gian làm nghiên cứu sinh, tác giả đã nhận được những kiến thức quý giá và sự góp ý chân thành từ các Thầy, Cô giáo của Học viện Khoa học và Công nghệ Tác giả xin gửi tới các Thầy, Cô lời cảm ơn chân thành nhất
Tác giả xin chân thành cảm ơn Ban lãnh đạo Viện Công nghệ thông tin, Học viện Khoa học và Công nghệ, Bộ phận Quản lý Nghiên cứu sinh và các Phòng ban chức năng của Viện Công nghệ thông tin và Học viện Khoa học và Công nghệ đã tạo mọi điều kiện thuận lợi trong quá trình học tập, nghiên cứu của tác giả
Tác giả xin cảm ơn Ban Giám hiệu, Bộ môn Tin học trường Đại học Thăng Long đã quan tâm giúp đỡ mọi mặt để tác giả hoàn thành nhiệm vụ học tập Xin chân thành cảm ơn sự quan tâm, động viên và những đóng góp quý báu của các đồng nghiệp
Cuối cùng, tác giả xin dành những lời cám ơn tới mọi thành viên trong gia đình,
sự khuyến khích và động viên của gia đình là động lực để tác giả hoàn thành luận án này
Trang 5MỤC LỤC
MỤC LỤC i
DANH MỤC CÁC THUẬT NGỮ iv
BẢNG VIẾT TẮT CÁC THUẬT NGỮ v
DANH MỤC HÌNH MINH HỌA vi
DANH MỤC BẢNG vii
MỞ ĐẦU 1
CHƯƠNG 1 - CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG PHÂN TÁN 7
1.1 Cơ sở dữ liệu hướng đối tượng 7
1.1.1 Đối tượng 8
1.1.2 Kiểu và lớp 9
1.1.3 Hợp phần 11
1.1.4 Phân lớp con và tính kế thừa 12
1.2 Cơ sở dữ liệu hướng đối tượng phân tán 14
1.2.1 Mô hình cơ sở dữ liệu hướng đối tượng phân tán 14
1.2.2 Các ưu điểm của CSDL phân tán 15
1.2.3 Các vấn đề cần giải quyết trong CSDL phân tán 16
1.2.4 Kiến trúc CSDL hướng đối tượng phân tán 20
1.2.5 Quản lý đối tượng 22
1.2.6 Quản lý giao dịch 25
1.3 Đánh giá hiệu năng CSDL HĐT với thư viện OO7 25
1.3.1 Giới thiệu 25
1.3.2 Một số nghiên cứu khác về đánh giá hiệu năng CSDL HĐT 26
1.3.3 Thiết kế CSDL của OO7 27
1.3.4 Kịch bản đánh giá hiệu năng 30
1.3.5 Kết quả thực nghiệm 32
1.4 Kết luận chương 1 36
CHƯƠNG 2 - PHÂN MẢNH VÀ CẤP PHÁT LỚP CÁC ĐỐI TƯỢNG PHÂN TÁN 37
Trang 62.1 Phân mảnh và cấp phát lớp các đối tượng 38
2.1.1 Mục tiêu của phân mảnh và cấp phát 38
2.1.2 Phân mảnh lớp các đối tượng 38
2.1.3 Cấp phát lớp 41
2.2 Các thông tin đầu vào của bài toán phân mảnh dọc và cấp phát lớp 42
2.2.1 Thông tin về CSDL 42
2.2.2 Thông tin về ứng dụng 45
2.2.3 Thông tin về mạng 48
2.2.4 Bảng các kí hiệu sử dụng 48
2.3 Hàm mục tiêu của phân mảnh và cấp phát 49
2.4 Biến đổi các tham số đầu vào theo các quan hệ 50
2.5 Thuật toán AttrFrag phân mảnh dựa trên thuộc tính 54
2.5.1 Xây dựng ma trận truy vấn sử dụng thuộc tính 54
2.5.2 Xây dựng ma trận tương quan thuộc tính 55
2.5.3 Sử dụng thuật toán BEA để phân mảnh 55
2.5.4 Bổ sung các phương thức vào các mảnh 57
2.5.5 Thuật toán AttrFrag phân mảnh dựa trên tương quan thuộc tính 57
2.6 Thuật toán FragAlloS phân mảnh đồng thời cấp phát 58
2.6.1 Mô hình chi phí 59
2.6.2 Thuật toán FragAlloS 60
2.6.3 Ví dụ minh họa 62
2.6.4 Đánh giá thuật toán 63
2.6.5 Thực nghiệm thuật toán FragAlloS trên OO7 64
2.7 So sánh các thuật toán 68
2.8 Kết luận chương 2 70
CHƯƠNG 3 - TỐI ƯU HÓA BIỂU THỨC ĐƯỜNG DẪN TRONG CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG PHÂN TÁN 72
3.1 Xử lý truy vấn trong cơ sở dữ liệu quan hệ 72
3.1.1 Tổng quan về xử lý truy vấn phân tán 72
Trang 73.1.2 Các tầng xử lý truy vấn 77
3.2 Xử lý truy vấn đối tượng phân tán 83
3.2.1 Giới thiệu 83
3.2.2 Các kỹ thuật tối ưu hóa truy vấn đối tượng 85
3.3 Thuật toán BloomOpt tối ưu hóa truyền dữ liệu trong biểu thức đường dẫn 88
3.3.1 Giới thiệu 88
3.3.2 Truy vấn có biểu thức đường dẫn 89
3.3.3 Bộ lọc Bloom 90
3.3.4 Sử dụng bộ lọc Bloom để giảm chi phí giao tiếp 92
3.3.5 Thảo luận về các tham số 97
3.4 Tối ưu hóa biểu thức đường dẫn – Thuật toán PathExpOpt 97
3.4.1 Đồ thị biểu diễn truy vấn dạng các biểu thức đường dẫn 97
3.4.2 Mô hình tối ưu hoá truy vấn 100
3.4.3 Tách cây truy vấn thành các cây con cảm sinh 101
3.4.4 Nguyên lý tối ưu hóa 103
3.4.5 Thuật toán tối ưu hóa PathExpOpt 105
3.4.6 Đánh giá độ phức tạp và cài đặt thuật toán 109
3.4.7 Kết quả thực nghiệm 110
3.5 Kết luận chương 3 112
KẾT LUẬN 113
DANH MỤC CÁC CÔNG TRÌNH CỦA TÁC GIẢ 115
TÀI LIỆU THAM KHẢO 116
Trang 8DANH MỤC CÁC THUẬT NGỮ
Mối quan hệ kế thừa Inheritance relationship
Tối ưu hóa truy vấn Query optimization
Trang 9BẢNG VIẾT TẮT CÁC THUẬT NGỮ
CSDL PT (Distributed Database) Cơ sở dữ liệu phân tán
CSDL HĐT (Object Oriented Database) Cơ sở dữ liệu hướng đối tượng
CSDL HĐT PT (Distributed Object Oriented
Database)
Cơ sở dữ liệu hướng đối tượng phân tán
DDL (Data Difinition Language) Ngôn ngữ định nghĩa dữ liệu
ODL (Object Definition Language) Ngôn ngữ định nghĩa đối tượng
ODMG (Object Database Management Group) Nhóm quản trị CSDL đối tượng, tổ
chức đề xuất mô hình ODMG và ngôn ngữ OQL
OID (Object Identifier) Định danh đối tượng
OQL (Object Query Language) Ngôn ngữ truy vấn đối tượng
Trang 10DANH MỤC HÌNH MINH HỌA
Hình 1.1: Môi trường của hệ CSDL phân tán 14
Hình 1.2: Mối liên hệ giữa các vấn đề trong CSDL PT 19
Hình 1.3: Kiến trúc Server theo đối tượng 21
Hình 1.4: Kiến trúc Server theo trang 22
Hình 1.5: Đồ thị kết nối đối tượng của OO7 28
Hình 1.6: Mô hình hóa thiết kế CSDL của OO7 29
Hình 1.7: Biểu đồ thao tác duyệt dạng COLD 33
Hình 1.8: Biểu đồ thao tác duyệt dạng HOT 34
Hình 1.9: Biểu đồ truy vấn dạng COLD 35
Hình 1.10: Biểu đồ truy vấn dạng HOT 35
Hình 2.1: Lược đồ CSDL với các ma trận QMU và QSF 47
Hình 2.2: Phương án phân mảnh và cấp phát sinh ra bởi thuật toán FragAlloS 65
Hình 2.3: Phương án không phân mảnh và cấp phát tại cùng trạm s 1 (tương tự với s 2 /s 3 /s 4 ) 65
Hình 2.4: Phương án phân mảnh và cấp phát ngẫu nhiên 66
Hình 2.5: Biểu đồ so sánh chi phí các phương án 68
Hình 2.6: So sánh chi phí của các thuật toán Ezeife, AttrFrag và FragAlloS 70
Hình 3.1: Lược đồ phân tầng tổng quát để xử lý truy vấn phân tán 77
Hình 3.2: Rút gọn truy vấn 81
Hình 3.3: Minh hoạ các lớp có thuộc tính phức hợp 89
Hình 3.4: Các lớp truy vấn 98
Hình 3.5: Đồ thị truy vấn 99
Hình 3.6: Minh họa kết quả thử nghiệm 110
Hình 3.7: Biểu đồ so sánh chi phí PathExpOpt với các thuật toán khác 111
Trang 11DANH MỤC BẢNG
Bảng 1.1: Các tham số CSDL chính của OO7 27
Bảng 1.2: Các kịch bản duyệt đối tượng 30
Bảng 1.3: Kich bản truy vấn 31
Bảng 1.4: Môi trường thực nghiệm 32
Bảng 2.1: Ma trận MAU của lớp GiaoViên 44
Bảng 2.2: Matrận QMU của lớp Giáo viên 45
Bảng 2.3: Ma trận QSF của lớp Giáo viên 46
Bảng 2.4: Ma trận SSC 48
Bảng 2.5: Bảng các kí hiệu sử dụng 48
Bảng 2.6: Ma trận QMU sau biến đổi 53
Bảng 2.7: Ma trận SQF sau biến đổi (chuyển vị của ma trận QSF sau biến đổi) 54
Bảng 2.8: Ma trận tương quan thuộc tính đã phân nhóm (CA) 56
Bảng 2.9: Ma trận request 62
Bảng 2.10: Ma trận pay 62
Bảng 2.11: Bảng các dữ liệu thử nghiệm với OO7 64
Bảng 2.12: Kết quả chạy với phương án 1 66
Bảng 2.13: Kết quả chạy với phương án 2 67
Bảng 2.14: Kết quả chạy với phương án 3 67
Bảng 2.15: So sánh độ phức tạp các thuật toán 68
Bảng 2.16: Chi phí của các thuật toán Ezeife, AttrFrag và FragAlloS 70
Bảng 3.1: Độ phức tạp của phép tính đại số quan hệ 74
Bảng 3.2: Minh hoạ xây dựng bộ lọc Bloom 91
Bảng 3.3: Các cây con cảm sinh 102
Bảng 3.4: So sánh PathExpOpt với các thuật toán khác 111
Trang 12MỞ ĐẦU
Sự phát triển của các ứng dụng dữ liệu chuyên sâu đã vượt quá khả năng xử
lý của Hệ thống quản trị cơ sở dữ liệu quan hệ Có thể liệt kê 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 Các hạn chế của cơ sở dữ liệu quan hệ đã thúc đẩy sự phát triển của Hệ thống cơ sở dữ liệu hướng đối tượng (CSDL HĐT) CSDL HĐT
ra đời từ những năm 60 và đã được thương mại hóa, có rất nhiều ứng dụng loại CSDL này vào các bài toán thực tế 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 Các nghiên cứu cho thấy CSDL HĐT sẽ tiếp tục phát triển và cung cấp các khả năng nổi trội trong việc xử lý dữ liệu phức tạp Các hệ thống quản trị CSDL HĐT được phát triển, điển hình như Cache, DB4o, Versant, O2, Orion, ObjectStore, …
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 Tuy nhiên, không giống như mô hình quan
hệ, chưa có một mô hình đối tượng nào được thừa nhận rộng rãi và đặc tả được một cách hình thức và chính xác các đặc trưng khác nhau của hệ thống hướng đối tượng Một số mô hình đối tượng chuẩn đã được phát triển như mô hình ODMG [22] trong đó bao gồm ngôn ngữ định nghĩa dữ liệu ODL và ngôn ngữ truy vấn dữ liệu OQL, mô hình SQL3 [41] mở rộng từ mô hình quan hệ
Trong các hệ thống CSDL HĐT, ngoài vấn đề về chức năng và độ phù hợp của loại CSDL HĐT trong các bài toán ứng dụng thì vấn đề hiệu năng của chúng cũng luôn được cân nhắc nhằm đánh giá xem CSDL HĐT đã thực sự hiệu quả trong quá trình triển khai dự án hay chưa Trong các tiêu chuẩn đánh giá hiệu năng CSDL HĐT, OO7 [17] đượ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 theo nhiều góc độ khác nhau Thư viện OO7 với các đặc tả chi tiết về lược đồ dữ liệu cho phép đánh giá hiệu năng một số loại CSDL HĐT phổ biến như Db4o, Versant, …, trên nhiều khía cạnh khác nhau đặc biệt là cấu trúc CSDL và các thao tác xử lý đối tượng
Trang 13Để đáp ứng nhu cầu của doanh nghiệp lớn với dữ liệu phân tán ở nhiều 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) Với các lợi thế về mặt công nghệ của các giao thức và chuẩn về phần mềm, phần cứng và mạng truyền thông, việc phát triển các
hệ thống CSDL PT ngày càng cần thiết và dễ dàng hơn 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, … Phần lớn các nhà cung cấp hệ thống CSDL lớn đều đưa ra các sản phẩm hỗ trợ sự phân tán dữ liệu, ví dụ IBM, Oracle, Microsoft, Sybase,
Mô hình phân tán 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 Một số vấn đề
có thể giải quyết được bằng các giải pháp đã áp dụng cho CSDL quan hệ Tuy nhiên, với các đặc điểm riêng của CSDL HĐT có những vấn đề đòi hỏi những kỹ thuật chuyên biệt Trong các vấn đề đó, việc xử lý truy vấn đối tượng phân tán để nâng cao hiệu năng của hệ thống đặt ra nhiều thách thức cho các nhà nghiên cứu
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 được chia thành hai giai đoạn chính là 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 khác nhau mà khi kết hợp các phần lại chúng ta lại có được CSDL nguyên thủy ban đầu và đảm bảo không bị mất mát thông tin Sự phân mảnh hợp lí sẽ giảm các truy cập vào các dữ liệu không cần thiết trong các ứng dụng Kết quả của giai đoạn phân mảnh là tập các mảnh được định nghĩa theo một lược đồ phân mảnh Phân mảnh được thực hiện với hai kỹ thuật chính là phân mảnh dọc và phân mảnh ngang Có rất nhiều các nghiên cứu về phân mảnh dọc và ngang trong CSDL quan hệ đã được thực hiện, từ các đề xuất sử dụng các thuật toán kinh điển như thuật toán năng lượng nối [5], thuật toán đồ thị [43] đến các thuật toán heuristic, tiến hóa [19], [33], [27] Cấp phát là qui trình gán các mảnh đã phân chia vào các trạm trên mạng Mục đích của cấp phát là tối thiểu hóa chi phí truyền dữ liệu và tối thiểu hóa số các thông điệp cần xử lý để đáp ứng yêu cầu của các ứng dụng thực tế Cũng như phân mảnh,
Trang 14cấp phát trong CSDL quan hệ đã có rất nhiều nghiên cứu được công bố, có thể liệt
kê một số thuật toán trong các nghiên cứu gần đây [3], [7], [8], [10], [28] 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 Ezeife và Barker đề nghị thuật toán phân mảnh dựa trên thuật toán năng lượng nối cho cả trường hợp phân mảnh dọc [24] và ngang [25] Lee và Lim đưa ra thuật toán phân mảnh các thuộc tính [50] Baiao đưa ra thuật toán phân mảnh hỗn hợp [12] Darabant chứng minh thứ tự phân mảnh các lớp cũng ảnh hưởng đến hiệu quả phân mảnh, từ đó đề nghị thuật toán tìm thứ tự phân mảnh tốt nhất [21] Một
số thuật toán phân mảnh khác trong CSDL HĐT PT theo các hướng khác nhau như dựa trên tác tử thông minh [32], tiếp cập theo hướng heuristic [39], phân cụm dựa trên lý thuyết mờ [20] 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 Các nghiên cứu tập trung tìm ra các thuật toán cấp phát nhằm tối thiểu hóa chi phí Không nhiều nghiên cứu đề cập đến vấn đề cấp phát trong CSDL HĐT PT Trong [13], K Barker và S Bhar đã đưa ra các khái niệm cơ bản để thiết lập mô hình cho bài toán cấp phát lớp, trong đó các tác giả cũng đề nghị một hướng tiếp cận đồ thị để giải quyết bài toán Trong [6] và [37]
đề cập đến thuật toán di truyền để chọn ra phương án cấp phát gần tối ưu Các giải thuật heuristic cho bài toán cấp phát lớp trong CSDL HĐT PT được đề cập trong [14] và [29] Phân mảnh và cấp phát trong CSDL HĐT PT 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
Một hạn chế của các phương pháp phân mảnh dựa trên phương thức là khi phân mảnh một lớp con đã đưa các phương thức của lớp cha vào để phân mảnh cùng các phương thức của lớp con nhưng lại không đưa các thuộc tính của lớp cha vào lớp con, như vậy khi thực hiện phương thức rất có thể vẫn phải truy cập thuộc tính từ một trạm khác Một hạn chế khác của các phương pháp là hai giai đoạn phân mảnh và cấp phát tách biệt nhau, phân mảnh xong rồi mới đến cấp phát
Trang 15Trong quá trình phân mảnh không sử dụng thông tin về chi phí giữa các trạm trong mạng, tuy nhiên trong nghiên cứu của Ma H [38] cho CSDL quan hệ đã chỉ ra rằng thông tin chi phí này sẽ ảnh hưởng đến phương án phân mảnh
Tiếp theo là bài toán tối ưu hóa truy vấn, bài toán này rất khó phân tích trong môi trường phân tán bởi có nhiều yếu tố liên quan Trong phạm vi luận án chúng tôi tập trung vào vấn đề tối ưu hóa các biểu thức đường dẫn, một dạng truy vấn phổ biến trong CSDL HĐT 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 Tối ưu hóa việc tính toán biểu thức đường dẫn là một bài toán được nhiều nghiên cứu quan tâm Mục tiêu của tối ưu hóa truy vấn 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 môi trường phân tán hiện nay, chi phí đáng kể nhất là chi phí truyền
dữ liệu Chiến lược thực thi thường phân thành hai kiểu: duyệt từ trên xuống hoặc
từ dưới lên Đã có một số nghiên cứu về tối ưu hóa biểu thức đường dẫn trong môi trường tập trung như hướng tiếp cận heuristic của Ozkan trong [45], hay viết lại các biểu thức đường dẫn phức tạp về dạng đơn giản trong luận án tiến sĩ của Trương Ngọc Châu [2]
Tuy nhiên, có rất ít các nghiên cứu tập trung vào vấn đề xử lý truy vấn đối tượng trong môi trường phân tán Các thuật toán đưa ra trong [52], [34] đều là các thuật toán qui hoạch động Thuật toán của Sun W và các công sự trong [52] mới chỉ xét từng biểu thức đường dẫn, chưa kết hợp các biểu thức đường dẫn, như vậy nếu một truy vấn có hai hay nhiều biểu thức đường dẫn mà các biểu thức đường dẫn này có phần chung thì những phần chung này sẽ được thực hiện lặp lại Thuật toán của Kim H và Lee S trong [34] chưa đề cập đến việc lọc các thông tin không cần thiết cho các truy vấn từ các mảnh lớp, thuật toán sinh đồ thị con trong nghiên cứu này cũng chưa chính xác
Từ phân tích về các nghiên cứu hiện tại, 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 truy vấn
hướng đối tượng Với mục tiêu này, nội dung nghiên cứu của luận án bao gồm:
Trang 16 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 và phân tán
Nghiên cứu các thuật toán phân mảnh và cấp phát đối tượng, đề xuất thuật toán phân mảnh và cấp phát đối tượng phân tán mới, phục vụ xử
lý truy vấn hiệu quả hơn
Nghiên cứu các thuật toán tối ưu hóa truy vấn có chứa biểu thức đường dẫn trong CSDL HĐT và đề xuất thuật toán tối ưu hóa biểu thức đường dẫn mới trong CSDL HĐT PT
Đố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á kết quả
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ư Db4o,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í Thuật toán (2)
có độ phức tạp chỉ tương đương các thuật toán phân mảnh thông thường nhưng lại thực hiện được đồng thời cả hai giai đoạn phân mảnh
và cấp phát Kết quả của giai đoạn phân mảnh và cấp phát phục vụ cho việc tối ưu hóa truy vấn CSDL HĐT PT
Trang 17 Đề 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, từ các định nghĩa cơ bản đến kiến trúc tổng thể của một hệ quản trị 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 Phần cuối là
so sánh đánh giá các thuật toán dựa trên độ phức tạp và kết quả chạy thực nghiệm chương trình
Chương III nghiên cứu các vấn đề liên quan đến tối ưu hóa truy vấn Mô
hình tối ưu hóa truy vấn bao gồm việc liêt kê các kế hoạch thực thi truy vấn, xây dựng mô hình chi phí và chiến lược tìm kiếm để đạt chi phí tối thiểu Luận án đề xuất thuật toán tối ưu biểu thức đường dẫn trong CSDL HĐT PT, thuật toán 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 18CHƯƠNG 1 - CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG PHÂN TÁN
Chương này trình bày các khái niệm cơ bản trong cơ sở dữ liệu hướng đối tượng và cơ sở dữ liệu hướng đối tượng phân tán, các ưu điểm và các vấn đề cần
xử lý trong cơ sở dữ liệu hướng đối tượng phân tán Phần cuối chương tập trung phân tích thiết kế của thư viện OO7, cài đặt thực nghiệm thư viện này để đánh giá hiệu năng cơ sở dữ liệu hướng đối tượng phân tán trên các kịch bản duyệt đối tượng và truy vấn đối tượng
1.1 Cơ sở dữ liệu hướng đối tượng
Đến nay, mô hình Cơ sở dữ liệu (CSDL) quan hệ vẫn là mô hình tốt nhất và được áp dụng rộng rãi nhất hiện nay để giả quyết những bài toán có quy mô dữ liệu chưa thực sự quá lớn như Facebook hoặc Google Tuy nhiên, mô hình CSDL quan hệ có những hạn chế khi phải thiết kế và thực hiện các ứng dụng CSDL phức tạp hơn Ví dụ, CSDL dùng trong các 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, Các ứng dụng phức tạp này đòi hỏi cấu trúc dữ liệu phải mềm dẻo và linh hoạt hơn 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 [1], [51], [44], [49] CSDL HĐT có một số đặc điểm cơ bản như sau [4]:
- 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
Hiện nay đã tồn tại một số hệ quản trị CSDL hướng đối tượng thương mại như GEMSTONE, Versant, ObjectStore Ngoài ra các có các hệ thống CSDL hướng đối tượng khác như Orion, OpenOODB, IRIS,
Trang 191.1.1 Đối tượng
Khái niệm cơ bản nhất trong CSDL HĐT 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 Khác với đối tượng trong ngôn ngữ lập trình hướng đối tượng chỉ tồn tại trong thời gian chương trình hoạt động, các đối tượng trong CSDL HĐT tồn tại lâu dài và được chia sẻ với nhiều chương trình và ứng dụng [4]
Đơn giản nhất, 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
OID được hệ thống tự động sinh ra và được sử dụng bên trong hệ thống để xác định từng đối tượng, tạo ra và quản lý các tham chiếu lẫn nhau giữa các đối tượng Giá trị OID là bất biến trong suốt quá trình tồn tại của đối tượng trong hệ CSDL
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 giá trị được định nghĩa bởi hệ thống 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 và A là miền các tên thuộc tính Một giá trị của dữ liệu trong
hệ thống đượ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)
Trang 20Tập và bộ là các toán tử tạo lập dữ liệu, những toán tử này có vai trò chủ yếu trong các ứng dụng CSDL Những toán tử tạo lập khác như danh sách và mảng, cũng được đưa vào để làm tăng sức mạnh của mô hình
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 ])
Các đối tượng i1 và i2 là các đối tượng nguyên tử, còn i3 và i4 là các đối tượng được xây dựng i3 là OID của một đối tượng với trạng thái của nó là một tập hợp,
i4 cũng vậy Khác biệt giữa i3 và i4 ở chỗ trạng thái của i4 là một tập các giá trị còn
i3 gồm một tập các OID, vì thế i3 tham chiếu đến các đối tượng khác Đối tượng i5
có trạng thái nhận giá trị bộ gồm bốn thuộc tính, giá trị mỗi thuộc tính là một đối tượng khác
Các đối tượng được hỗ trợ một số thao tác để cập nhật chuẩn định, cho phép thay đổi trạng thái đối tượng mà không thay đổi định danh của đối tượng Điều này tương tự như khái niệm con trỏ trong ngôn ngữ lập trình, định danh còn tổng quát hơn con trỏ vì nó tồn tại trong hệ CSDL ngay cả khi chương trình đã kết thúc Định danh đối tượng còn cho phép dùng chung đối tượng mà không gây ra vấn đề
dư thừa dữ liệu
Các thuộc tính (attribute) thể hiện các đặc trưng của đối tượng và các phương thức (method) mô tả các hành động được phép thực hiện của những đối tượng này
Ví dụ, hành vi của một thang máy là “đi lên” hoặc “đi xuống”
1.1.2 Kiểu và lớp
Thuật ngữ kiểu (type) và lớp (class) trong CSDL HĐT có thể được sử dụng thay thế cho nhau, nhưng đôi khi chúng có nghĩa khác nhau Chúng ta sử dụng thuật ngữ “lớp” khi đề cập đến cấu trúc mô hình đối tượng cụ thể và thuật ngữ
“kiểu” được đề cập tới miền của các đối tượng
Trang 21Mộ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 đó Chúng ta không phân biệt giữa các đối tượng nguyên thủy (các giá trị), các đối tượng cấu trúc (bộ hoặc tập) và các đối tượng do người dùng định nghĩa 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 miền đó Khả năng trừu tượng hóa của các lớp, được thể hiện qua tính đóng gói nhằm che dấu các cài đặt chi tiết của các phương thức và tương tác với thế giới bên ngoài thông qua các 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, … Định nghĩa kiểu
của XeHoi như sau:
type XeHoi
attributes
dongCo: DongCo cacGiamSoc: {GiamSoc}
cacBanhXe: [traiTruoc: BanhXe, phaiTruoc: BanhXe,
traiSau: BanhXe, phaiSau: BanhXe]
hangSanXuat: HangSanXuat model: String
namSanXuat: Date so_Serie: String soCho: Integer methods
tinhTuoi(): Real thayBanh(diaDiem,banhXe)
Định nghĩa lớp XeHoi có 8 thuộc tính và 2 phương thức Bốn thuộc tính (model, namSanXuat, so_Serie, soCho) là những thuộc tính dựa trên giá trị, còn các thuộc tính còn lại dựa trên đối tượng Thuộc tính cacGiamSoc nhận giá trị tập, thuộc tính cacBanhXe nhận giá trị bộ Cũng chú ý ở đây thuộc tính dùng chữ thường và kiểu dùng chữ hoa, ví dụ dongCo là một thuộc tính còn DongCo là một kiểu của hệ thống Phương thức tinhTuoi() nhận ngày của hệ thống và giá trị thuộc
Trang 22tính namSanXuat rồi tính ra ngày tháng (hai thuộc tính này đều có tính chất nội tại đối với đối tượng) Phương thức thayBanh() yêu cầu người dùng cung cấp tham
số bên ngoài: diaDiem (nơi thực hiện thay thế bánh xe), và banhXe (bánh xe được
thay thế là bánh xe nào)
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 ý Ví dụ,
lớp XeHoi có thể bổ sung các thao tác phức tạp hơn như tính giá quảng cáo dựa
vào thời điểm của năm sản xuất 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 Các thao tác của lớp biểu thị các phần của chương trình ứng dụng có liên kết chặt chẽ với dữ liệu Như vậy, lớp cho phép mô hình hóa cả dữ liệu lẫn các thao tác, tuy nhiên các thao tác có thể không lưu cùng với các dữ liệu
Một khái niệm khác cần lưu ý, đó là sưu tập (collection) Một sưu tập nhóm các đối tượng lại, một chuỗi các lớp là một kiểu cụ thể của sưu tập Có thể phân biệt giữa sưu tập và lớp: Sưu tập không thể tạo ra đối tượng, nó là một lớp trừu tượng Một đối tượng có thể tồn tại trong nhiều sưu tập, nhưng chỉ là một phần tử
của một lớp duy nhất
1.1.3 Hợp phần
Trong ví dụ 1.2, một số thuộc tính dựa trên giá trị, như là model và namSanXuat, còn những thuộc tính khác dựa trên đối tượng, chẳng hạn thuộc tính hangSanXuat với miền của nó là tập các đối tượng có kiểu HangSanXuat Trong trường hợp này, kiểu XeHoi là một kiểu hợp phần (composite type) và các thể hiện
của nó được gọi là các đối tượng hợp phần (composite object) Hợp phần (composition, aggregation) là một trong những đặc trưng mạnh của mô hình đối tượng Nó cho phép chia sẻ các đối tượng, các đối tượng tham chiếu đến các đối tượng khác bằng OID giống như giá trị các thuộc tính dựa trên đối tượng
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
(i2, [ten: Hung, soHuuXe: x1])
(i3, [ten: Nam, soHuuXe: x1])
Trang 23Từ hạn chế của đối tượng hợp phần dẫn đến khái niệm đối tượng phức hợp (complex object) Đối tượng phức hợp khác đối tượng hợp phần ở chỗ là không
cho phép chia sẻ tham chiếu Ví dụ kiểu XeHoi có thể có một thuộc tính với miền kiểu của nó là BanhXe Với hai thể hiện của kiểu XeHoi như x1 và x2 thì sẽ không
hợp lý khi cho chúng tham chiếu đến cùng một tập thể hiện của BanhXe vì trong
thực tế người ta không cho rằng các bánh xe cùng lúc được dùng trên nhiều xe Mối liên hệ đối tượng hợp phần giữa các kiểu có thể được biểu diễn bởi đồ thị hợp phần (composite graph) hoặc phân cấp hợp phần (aggregation hiearachy) trong trường hợp các đối tượng phức
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) Một lớp có thể là chuyên biệt của một số lớp
Sinh lớp con và chuyên biệt hóa chỉ ra mối quan hệ is-a giữa các lớp
Ngoài việc cho phép khả năng mở rộng, sinh kiểu con cũng đưa đến một kiểu cấu tạo nên lược đồ CSDL Trong nhiều trường hợp, có một gốc duy nhất cho hệ thống, đó là kiểu đặc tả tổng quát nhất Nếu chỉ cho phép đơn sinh kiểu con, hệ thống kiểu là một cây Nếu đa sinh kiểu con được hỗ trợ, hệ thống sẽ tạo ra một
đồ thị
Các kiểu thiết lập một lược đồ CSDL trong các CSDL đối tượng tạo lập cấu trúc dàn Nó cho phép chúng ta mô hình hóa các tính chất chung và riêng giữa các kiểu bằng một cách thức chính xác
Ví dụ 1.4: Xét kiểu XeHoi đã được định nghĩa ở phần trước Một chiếc xe hơi có thể được mô hình hóa là một kiểu đặc biệt của Xe, như vậy có thể định nghĩa XeHoi là một kiểu con của Xe; các kiểu con khác có thể là XeMay, XeTai,
Trang 24XeBus Trong trường hợp này, Xe sẽ định nghĩa những tính chất chung của tất
cả các kiểu này
type Xe as Object
attributes
dongCo: DongCo hangSanXuat: HangSanXuat model: String
namSanXuat: Date so_Serie: String methods
tuoi(): Real;
Xe được định nghĩa là kiểu con của Object mà chúng ta giả thiết là gốc của dàn
của các kiểu Nó được định nghĩa với năm thuộc tính và một phương thức, phương thức này nhận ngày sản xuất và ngày hiện tại (đều thuộc kiểu Date) và trả về số thực
Xe là một kiểu tổng quát hóa của XeHoi, có thể định nghĩa XeHoi như sau.
XeHoi được định nghĩa thêm thuộc tính và giao diện của nó vẫn giống trong
ví dụ 1.2 vì đã được kế thừa các thuộc tính của Xe
Khai báo một kiểu là kiểu con của một kiểu khác tạo ra sự kế thừa (inheritance), kế thừa cho phép tái sử dụng ở mức cao nhất có thể Một kiểu con
có thể kế thừa hành vi của kiểu cha hoặc kế thừa cài đặt hoặc cả hai Dựa trên mối liên hệ kiểu con giữa các kiểu sẽ đề cập đến đơn kế thừa hoặc đa kế thừa 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
Trang 251.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 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 Một hệ quản trị CSDL phân tán là một hệ thống phần mềm cho phép quản lý các hệ CSDL phân tán và làm cho việc phân tán trở nên trong suốt đối với người sử dụng [4]
Có hai đặc trưng 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
Chúng ta cần phân biệt trường hợp Hệ thống mà trong đó có sự hiện diện của mạng máy tính nhưng CSDL lại chỉ nằm ở một nút của mạng, trường hợp này không được coi là một hệ CSDL phân tán
Việc tạo ra một hệ CSDL phân tán phải là sự kết hợp giữa mạng máy tính và
sự phân bố các tập tin trên các vị trí, biểu diễn như Hình 1.1
Hình 1.1: Môi trường của hệ CSDL phân tán
Trang 26Vớ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 đa quốc gia
Sự phân bố của CSDL HĐT theo mô hình CSDL PT gọi là cơ sở dữ liệu hướng đối tượng phân tán
1.2.2 Các ưu điểm của CSDL phân tán
1.2.2.1 Quản lý dữ liệu phân tán với các mức trong suốt khác nhau
Một hệ quản trị CSDL phân tán phải trong suốt phân tán, nghĩa là che dấu các chi tiết về việc lưu trữ vật lý trong hệ thống Các kiểu trong suốt có thể là [4]:
Trong suốt phân tán hay trong suốt mạng: Điều này đề cập tới việc người sử dụng không cần biết các chi tiết thao tác của mạng
Trong suốt bản sao: Các bản sao dữ liệu có thể được lưu trữ tại nhiều trạm Trong suốt bản sao làm cho người sử dụng không biết về sự tồn tại của các bản sao
Trong suốt phân mảnh: Dữ liệu được phân thành các mảnh, một truy vấn của người sử dụng có thể phải chuyển đổi thành nhiều truy vấn mảnh Trong suốt phân mảnh làm cho người sử dụng không biết về sự tồn tại của các mảnh
1.2.2.2 Tăng độ tin cậy của các giao dịch phân tán
Các hệ quản trị CSDL phân tán được dự định dùng để tăng độ tin cậy bởi vì chúng có các thành phần là các bản sao và vì thế giảm khó khăn trong tình huống
có sự cố tại các trạm Khi có sự cố tại một trạm riêng lẻ, hoặc sự cố đường mạng liên lạc với một số trạm, chỉ có một số dữ liệu trên các trạm này không truy cập được, và sẽ không làm toàn bộ hệ thống bị ngừng trệ Như vậy là cả tính tin cậy
và tính sẵn sàng đều được tăng lên
1.2.2.3 Cải thiện hiệu năng
Hiệu năng của hệ quản trị CSDL phân tán được cải thiện dựa vào hai đặc điểm:
CSDL phân tán có khả năng phân mảnh, cho phép lưu dữ liệu ở gần nơi sử dụng Mỗi trạm chỉ xử lý một phần CSDL, tranh chấp về xử lý
Trang 27và giao dịch nhập, xuất giảm đi so với CSDL tập trung Việc cục bộ hóa dữ liệu cũng làm giảm thiểu thời gian truy xuất
Tính chất song song của các hệ phân tán có thể được tận dụng để thực hiện song song xử lí truy vấn Các câu truy vấn có thể thực hiện song song với nhau hoặc một câu truy vấn có thể tách thành một số câu truy vấn con, mỗi câu truy vấn con được thực hiện tại một vị trí và truy xuất các phần khác nhau của CSDL phân tán
1.2.2.4 Tính dễ mở rộng
Trong môi trường phân tán, việc mở rộng kích thước CSDL được thực hiện
dễ dàng Các sửa đổi lớn đối với hệ thống hiếm khi cần thiết, sự mở rộng thường
là đưa thêm khả năng lưu trữ và xử lý vào hệ thống mạng
Tính mở của hệ thống phân tán còn thể hiện ở sự dễ dàng mở rộng phần cứng Một hệ thống được gọi là có tính mở thì phải có các điều kiện sau:
Hệ thống có thể tạo nên bởi nhiều loại phần cứng và phần mềm của nhiều nhà cung cấp khác nhau
Có thể bổ sung vào các dịch vụ dùng chung tài nguyên mà không phá hỏng hay nhân đôi các dịch vụ đang tồn tại
Tính mở được hoàn thiện bằng cách xác định hay phân định rõ các giao diện chính của một hệ và làm cho nó tương thích với các nhà phát triển phần mềm
Tính mở của hệ phân tán dựa trên việc cung cấp cơ chế truyền thông giữa các tiến trình và công khai các giao diện dùng để truy nhập các tài nguyên chung
1.2.3 Các vấn đề cần giải quyết trong CSDL phân tán
1.2.3.1 Thiết kế CSDL phân tán
Yêu cầu đặt ra là làm thế nào để CSDL và các ứng dụng chạy trên nó có thể được đặt ở nhiều vị trí Có hai chọn lựa chủ yếu là phân hoạch và nhân bản Trong lược đồ phân hoạch (không nhân bản), CSDL được chia làm các phân hoạch tách
Trang 28biệt, mỗi phân hoạch được đặt tại các vị trí khác nhau Còn thiết kế nhân bản có thể thuộc loại nhân bản hoàn toàn trong đó toàn bộ CSDL được lưu tại mỗi vị trí, hoặc nhân bản một phần trong đó mỗi phân hoạch được lưu tại nhiều vị trí nhưng không phải là tất cả mọi vị trí
Hai vấn đề quan trọng của thiết kế CSDL PT là phân mảnh (fragmentation), nghĩa là tách CSDL thành nhiều phần nhỏ hơn, được gọi là mảnh (fragment), và phân bố (distribution) các mảnh vào các trạm sao cho tối ưu Giải quyết các vấn
đề thiết kế này chính là quy hoạch toán học nhằm tối thiểu hóa các chi phí lưu trữ
dữ liệu, chi phí xử lý giao dịch và chi phí truyền thông Bài toán tổng quát giải quyết các vấn đề trên là bài toán NP-khó, vì vậy các giải pháp đề xuất đều dựa trên các thuật toán heuristic
1.2.3.2 Xử lý truy vấn phân tán
Xử lý truy vấn đề cập đến các thuật toán nhằm phân tích và biến đổi các câu truy vấn thành một chuỗi các thao tác dữ liệu Vấn đề là làm thế nào để chọn được một chiến lược thực hiện mỗi câu truy vấn trên mạng với chi phí hiệu quả nhất Các yếu tố cần được xem xét là sự phân tán dữ liệu, chi phí truyền và vấn đề không
có đủ thông tin cục bộ cần thiết Mục tiêu là nhằm tối ưu hóa các vị trí được thực hiện song song nhằm tăng hiệu năng hoạt động theo các ràng buộc Bản chất bài toán là NP-khó, cách tiếp cận thông thường là sử dụng các phương pháp heuristic
1.2.3.3 Quản lý thư mục phân tán
Một thư mục chứa thông tin của các mục dữ liệu trong CSDL Các vấn đề liên quan đến việc quản lý thư mục có bản chất tương tự như vấn đề chọn nơi đặt CSDL Một thư mục có thể mang tính toàn cục với toàn bộ hệ thống CSDL phân tán hoặc có tính chất cục bộ đối với mỗi vị trí; nó có thể được tập trung tại một vị trí hoặc phân tán trên nhiều vị trí; có thể chỉ có một bản duy nhất hoặc có thể có nhiều bản sao
1.2.3.4 Điều khiển tương tranh phân tán
Điều khiển tương tranh (concurrency control) bao gồm việc đồng bộ hóa các truy suất đến CSDL phân tán sao cho tính toàn vẹn của CSDL vẫn được duy trì
Trang 29Điều khiển tương tranh trong môi trường phân tán khác một chút so với môi trường tập trung Ngoài việc đảm bảo tính toàn vẹn của từng CSDL còn phải đảm bảo tính nhất quán của các bản sao CSDL Điều kiện đòi hỏi rằng tất cả các giá trị của nhiều bản sao của mỗi mục dữ liệu phải “hội tụ” về một giá trị gọi là nhất quán tương tranh
Các giải pháp chia thành hai loại, đó là các giải pháp đồng bộ hóa việc thực thi các yêu cầu người sử dụng trước khi việc thực thi bắt đầu, loại giải pháp thứ 2 thực thi các yêu cầu rồi kiểm tra xem việc này có đảm bảo tính nhất quán của CSDL hay không Hai cách tiếp cận đều dùng khái niệm khóa chốt (locking) và nhãn thời gian (time-stamp)
1.2.3.5 Quản lý khóa chết phân tán
Trong các hệ phân tán sử dụng khái niệm khóa chết (deadlock) tương tự như trong các hệ điều hành Việc tranh chấp truy xuất một tài nguyên có thể gây ra khóa chết nếu dùng cơ chế đồng bộ hóa dựa trên khóa chốt Các giải pháp như ngăn cản, tránh, phát hiện/khôi phục cũng áp dụng cho các hệ CSDL phân tán
1.2.3.6 Đảm bảo độ tin cậy của các hệ quản trị CSDL phân tán
Ưu điểm của các hệ phân tán là cải thiện độ tin cậy và tính sẵn sàng Tuy nhiên, điều này không phải tự nhiên mà có Điều quan trọng là các cơ chế được cung cấp phải đảm bảo được tính nhất quán của dữ liệu cũng như khả năng phát hiện sự cố và khôi phục lại được Kết quả là khi có xảy ra sự cố và nhiều vị trí không thể hiệp đồng được với nhau, CSDL tại những vị trí còn hoạt động vẫn phải nhất quán và ở tình trạng cập nhật Hơn nữa, khi hệ thống máy tính và mạng được khôi phục, hệ CSDL phân tán phải có khả năng khôi phục và đưa CSDL ở những
vị trí bị mất liên lạc trở lại trạng thái cập nhật Điều này đặc biệt khó trong những trường hợp mạng bị tách rời thành nhiều nhóm
Trang 301.2.3.8 Mối quan hệ giữa các vấn đề
Các vấn đề chính cần giải quyết trong CSDL phân tán liên quan chặt chẽ với nhau và được biểu diễn như Hình 1.2 [4] 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
Có mối liên hệ mật thiết giữa bài toán điều khiển tương tranh, bài toán khóa chết và những vấn đề liên quan đến độ tin cậy Các bài toán này đều gọi chung là vấn đề quản lý giao dịch Ví dụ thuật toán điều khiển tương tranh sẽ xác định xem
có cần phải có riêng một công cụ quản lý khóa chết hay không
Quản lý thư mục
Thiết kế CSDL phân tán
Điều khiển tương tranh
Đảm bảo độ tin cậy
Sao chép
Xử lý truy vấn
Quản lý khóa chết
Trang 311.2.4 Kiến trúc CSDL hướng đối tượng phân tán
Phần lớn các hệ quản trị cơ sở dữ liệu hướng đối tượng phân tán (CSDL HĐT PT) đều theo kiến trúc client/server Kiến trúc các hệ quản trị CSDL HĐT PT thường phức tạp hơn CSDL quan hệ phân tán do những đặc trưng của mô hình đối tượng [4]:
Dữ liệu và phương thức được đóng gói trong các đối tượng, đơn vị truyền giao giữa client và server là một vấn đề cần xác định Đơn vị này có thể là một trang, một đối tượng hoặc một nhóm các đối tượng
Vấn đề thiết kế liên quan đến các phương thức mà client và server cung cấp Điều này rất quan trọng vì đối tượng không phải dữ liệu thụ động, cần xét đến các vị trí, nơi các phương thức của đối tượng được thực thi
Trong các hệ quản trị CSDL client/server quan hệ, client chỉ đơn giản gửi các truy vấn đến các server và server thực hiện chúng rồi trả kết quả về cho client Trong các hệ client/server đối tượng, duyệt qua các cấu trúc đối tượng phức hoặc hợp phần của chương trình ứng dụng có thể đòi hỏi dữ liệu phải được chuyển qua bên client Vì dữ liệu được nhiều client dùng chung, quản lý vùng đệm bên client để đảm bảo nhất quán dữ liệu là một điều quan trọng
Đối tượng có thể thuộc loại hợp phần hoặc phức hợp, có khả năng phải gửi trước các đối tượng thành phần mỗi khi một đối tượng được yêu cầu
Ví dụ về kiến trúc server theo đối tượng như Hình 1.3 Trong kiến trúc server đối tượng, server lo phần lớn các dịch vụ của hệ quản trị, còn client về cơ bản chỉ cung cấp môi trường thực thi cho các ứng dụng và một mức độ nào đó về chức năng quản lý đối tượng Tầng quản lý đối tượng được nhân đôi cả bên client và bên server để cho phép cả hai có thể thực hiện các chức năng đối tượng Trong kiến trúc này, các server có thể gửi các nhóm đối tượng Nếu bên client không gợi
ý yêu cầu gửi trước thì các nhóm sẽ tương ứng với vùng không gian kế tiếp nhau trên một trang đĩa Ngược lại các nhóm có thể chứa các đối tượng từ các trang khác nhau
Trang 32Hình 1.3: Kiến trúc Server theo đối tượng
Một cách tổ chức khác là kiến trúc server theo trang, trong đó đơn vị chuyển tải giữa server và client là một đơn vị dữ liệu vật lý, chẳng hạn một trang hoặc một segment chứ không phải một đối tượng Kiến trúc này tách rời các dịch vụ xử lý đối tượng giữa client và server, được minh họa như Hình 1.4
Giao diện truy vấn
Bộ quản lý đối tượng
Trình duyệt đối tượng
Giao diện lập trình
Bộ quản lý đối tượng
Bộ tối ưu hóa truy vấn
Bộ quản lý khóa
Bộ quản lý lưu trữ
Bộ quản lý vùng đệm trang
CSDL đối tượng
Server
Mạng
Đối tượng
Trang 33Hình 1.4: Kiến trúc Server theo trang
1.2.5 Quản lý đối tượng
Quản lý đối tượng bao gồm việc quản lý định danh đối tượng, ánh xạ con trỏ (cơ chế chuyển đổi giữa địa chỉ logic và địa chỉ vật lý của đối tượng), di trú đối tượng, xóa đối tượng, thực thi phương thức và quản lý chỗ lưu trữ tại server
1.2.5.1 Quản lý định danh đối tượng
Như đã nói ở phần trên, định danh đối tượng OID được hệ thống sinh ra và được dùng để xác định duy nhất mỗi đối tượng trong hệ thống Các đối tượng có
Giao diện truy vấn
Bộ quản lý đối tượng
Trình duyệt đối tượng
Giao diện lập trình
CSDL đối tượng
Trang 34thể tạm thời trong một thời gian nhất định hoặc lâu dài được lưu trữ bền vững trong CSDL, do hệ thống hoặc do người dùng tạo ra
Cài đặt OID cho các đối tượng bền vững dựa trên định danh logic hoặc định danh vật lý Định danh vật lý POID (physical OID) cung cấp giá trị OID đồng nhất vớiđịa chỉ vật lý của đối tượng Ưu điểm là có thể nhận đối tượng trực tiếp qua OID của nó, nhược điểm là tất cả các đối tượng cha và các chỉ mục đều phải được cập nhật mỗi khi một đối tượng được di chuyển đến một trang khác Phương pháp dùng định danh logic LOID (logical OID) cấp phát một OID duy nhất cho mỗi đối tượng trên toàn bộ hệ thống LOID có thể được sinh ra bằng cách sử dụng một bộ đếm duy nhất trên toàn bộ hệ thống hoặc bằng cách gộp định danh của server với một bộ đếm ở mỗi server Vì OID là bất biến nên không phải trả chi phí nào khi
di chuyển đối tượng Điều này có được qua một bảng OID liên kết mỗi OID với địa chỉ đối tượng vật lý, bù lại phải tốn chi phí tìm kiếm trên bảng OID cho mỗi lần truy xuất đối tượng Để tăng tốc độ tìm kiếm, bảng OID thường được tổ chức dạng bảng băm hoặc cây B+
Cài đặt định danh cho đối tượng tạm thời thường sử dụng các kỹ thuật được dùng trong các ngôn ngữ lập trình, và cũng có thể thuộc loại logic hoặc vật lý Trong các hệ quản trị CSDL phân tán, dùng LOID có thể thích hợp hơn vì các thao tác như làm tái tụ dữ liệu, nhân bản và phân mảnh xảy ra thường xuyên
1.2.5.2 Ánh xạ con trỏ
Trong các hệ CSDL đối tượng, người ta có thể duyệt từ một đối tượng đến một đối tượng khác bằng cách dùng biểu thức đường dẫn (path expression) có chứa các thuộc tính với giá trị của chúng dựa trên đối tượng Về cơ bản biểu thức đường dẫn đều là con trỏ Thông thường trên đĩa, định danh đối tượng được dùng
để biểu diễn những con trỏ này Tuy nhiên trong bộ nhớ, người ta muốn dùng các con trỏ trên bộ nhớ trong để duyệt từ đối tượng này sang đối tượng khác Quá trình chuyển phiên bản từ con trỏ trên bộ nhớ ngoài thành phiên bản con trỏ trên bộ nhớ trong gọi là ánh xạ con trỏ (pointer swizzling) Các lược đồ dựa trên phần cứng và dựa trên phần mềm là hai loại ánh xạ con trỏ
Trang 351.2.5.3 Di trú đối tượng
Trong các hệ phân tán, theo thời gian, các đối tượng cần được di chuyển giữa các vị trí Điều này làm phát sinh một số vấn đề Trước hết là đơn vị di trú Ba khả năng có thể được xem xét khi di trú các lớp:
Mã nguồn phải được di chuyển và biên dịch lại tại vị trí đích
Phiên bản đã được biên dịch của một lớp được di trú giống như mọi đối tượng khác
Mã nguồn được di chuyển nhưng không di chuyển các thao tác của nó
đã được biên dịch, mà sẽ dùng đến chiến lược di chuyển muộn
Vấn đề tiếp theo là việc di chuyển đối tượng phải được theo vết để có thể tìm
ra vị trí mới của chúng Một cách thường dùng theo vết các đối tượng là để lại các đại diện hoặc các đối tượng ủy nhiệm Di trú đối tượng có thể được thực hiện dựa trên trạng thái hiện hành của chúng Đối tượng có thể ở một trong bốn trạng thái:
Sẵn sàng (ready): Không cần kích hoạt, sẵn sàng nhận thông báo
Hoạt động (Active): Hiện có mặt trong một hoạt động
Chờ (waiting): Đã kích hoạt một đối tượng khác và đang chờ trả lời
Treo (suspended): Hiện tạm thời không sẵn sàng đối với kích hoạt Các đối tượng đang trong trạng thái hoạt động hoặc chờ không được phép di trú
vì hoạt động mà chúng đang tham gia có thể bị phá vỡ Việc di trú gồm các bước:
Chuyển tải đối tượng từ nguồn đến đích, và
Tạo ra một ủy nhiệm tại nguồn để thay thế đối tượng ban đầu
Một vấn đề khác nảy sinh là khi di chuyển các đối tượng hợp phần, chuyển tải một đối tượng hợp phần có thể phải chuyển tải cả những đối tượng được đối tượng hợp phần tham chiếu đến Điều này được đề cập trong phần xử lý truy vấn
1.2.5.4 Lưu trữ đối tượng phân tán
Trong lưu trữ đối tượng phân tán cần quan tâm đến việc phân nhóm đối tượng (object clustering) và dọn rác phân tán (distributed garbage collection)
Trang 36Mô hình đối tượng về cơ bản mang tính khái niệm và ánh xạ mô hình khái niệm thành mô hình lưu trữ vật lý là bài toán kinh điển của CSDL Trong các hệ CSDL đối tượng chúng ta có hai mối quan hệ giữa các kiểu: sinh kiểu con và hợp phần Các mối quan hệ này có vai trò quan trọng trong quá trình phân nhóm đối tượng Phân nhóm đối tượng đề cập đến nhóm các đối tượng ở mức vật lý theo những tính chất chung nhằm tăng tốc độ truy xuất đối tượng
Một ưu điểm của các hệ đối tượng là các đối tượng có thể tham chiếu đến các đối tượng khác bằng định danh đối tượng Trong một hệ đếm tham chiếu, mỗi đối tượng có một bộ đếm ghi số lượng các tham chiếu đến nó Bộ nhớ dành cho một đối tượng được tái sử dụng khi giá trị bộ đếm bằng 0
1.2.6 Quản lý giao dịch
Các yêu cầu quan trọng trong quản lý giao dịch trong các hệ CSDL HĐT:
Ngoài việc đảm bảo đồng bộ hóa các thao tác Read và Write, bộ quản
lý giao dịch phải có khả năng giải quyết được các thao tác trừu tượng (abstract operation)
Đáp ứng được sự đồng bộ hóa việc truy xuất đến các đối tượng hợp phần và đối tượng phức hợp Đồng bộ hóa những đối tượng này đòi hỏi phải đồng bộ hóa truy xuất đến các đối tượng thành phần
Nhiều ứng dụng đòi hỏi phải hỗ trợ các hoạt động trong thời gian dài trải qua nhiều giờ, nhiều ngày hoặc thậm chí là nhiều tuần lễ Vì thế
cơ chế giao dịch phải hỗ trợ việc chia sẻ kết quả từng thành phần
Có khả năng theo dõi các biến cố và việc thực thi của các hoạt động
Trang 37dự án Một số tiêu chuẩn đánh giá hiệu năng CSDL HĐT đã được đưa ra, trong đó OO7 (The OO7 benchmark) [17] được coi là tiêu chuẩn và thư viện khá phổ biến
do nó cung cấp khá đầy đủ các kịch bản kiểm thử nhằm đánh giá các loại CSDL HĐT từ nhiều góc độ khác nhau Trong phần này sẽ trình bày về thư viện OO7 và kết quả đánh giá hiệu năng với CSDL HĐT Versant OO7 đánh giá CSDL HĐT các tiêu chí chính sau:
- Tốc độ xử lý trong việc duyệt (traversal) các đối tượng, kể cả sử dụng bộ nhớ đệm hay duyệt trực tiếp trên ổ đĩa
- Mức độ hiệu quả trong việc thay đổi đối tượng (tạo, xóa và cập nhật), kể
cả đối tượng sử dụng index và không sử dụng index, dữ liệu lặp và dữ liệu
dư thừa
- 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 Một số nghiên cứu khác về đánh giá hiệu năng CSDL HĐT
Tiêu chuẩn OO1 (Object Operations Benchmark) [18], còn được gọi là tiêu chuẩn Sun Benchmark, lần đầu tiên được đưa ra để đánh giá hiệu năng các hệ thống CSDL cho các ứng dụng thiết kế công nghệ Mặc dù phiên bản đầu tiên còn khá đơn giản nhưng được coi là tiền thân của tiêu chuẩn đánh giá CSDL HĐT sau này Một chuẩn nữa là HyperModel [11] được phát triển bởi Tektronix So với OO1 thì HyperModel có lược đồ dữ liệu đầy đủ hơn (bao gồm nhiều dạng quan hệ khác nhau và xử lý các tập dữ liệu nguyên thủy lớn hơn) và đưa ra nhiều thao tác đánh giá hơn (bao gồm đầy đủ các hàm như tìm kiếm, duyệt và cập nhật)
Mặc dù OO1 và HyperModel cũng đưa ra được những kết quả nhất định trong lĩnh vực đánh giá hiệu năng CSDL HĐT nhưng chưa đầy đủ, ví dụ như chúng chưa bao gồm mô phỏng các đối tượng phức hợp, đây là yêu cầu thực tế cho các dạng CSDL HĐT trong thực tế, ngoài ra hai bộ thư viện này không bao gồm đầy
đủ các bộ kiểm tra cho nhiều dạng duyệt hoặc cập nhất đối tượng như có index hoặc không có index Do đó các nhà nghiêu cứu tìm cách đưa ra một bộ tiêu chuẩn khác đầy đủ hơn nhằm đánh giá các vấn đề về hiệu năng và tính năng của các CSDL HĐT, và OO7 là một thư viện được sử dụng rộng rãi hơn trong việc đánh giá hiệu năng CSDL HĐT
Trang 381.3.3 Thiết kế CSDL của OO7
Mục tiêu của thiết kế OO7 là kiểm tra nhiều khía cạnh khác nhau của hiệu năng hệ thống đặc biệt là cấu trúc CSDL và các thao tác xử lý đối tượng Các đặc
tả kỹ thuật của OO7 bao gồm lược đồ dữ liệu được mô tả ở chi tiết cho các nhà phát triển nếu muốn tự cài đặt thư viện Những thông tin đặc tả cơ bản nhất của OO7 đưa ra ở phần này dựa trên bản cài đặt Java, bao gồm cả CSDL mẫu và kết quả chạy thử trên một số hệ thống CSDL HĐT như Db4o hay Versant Theo trang web xếp hạng các hệ thống CSDL HĐT 2016 [55] thì Cáche, Db4o và Versant là
ba hệ thống dẫn đầu trong các hệ thống CSDL HĐT
Chú ý là bản thiết kế CSDL chạy thử được đưa ra ở mức độ tổng quát, mục tiêu là nhằm tìm hiểu và đánh giá các hệ thống CSDL HĐT CSDL được thiết kế với ba cấp độ: nhỏ, trung bình và lớn Bảng 1.1 mô tả các tham số CSDL chính 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ố với các kết nối 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ế Tập các thành phần phức hợp này được gọi là thư viện thiết kế của OO7
Bảng 1.1: Các tham số CSDL chính của OO7
của một module
trong một đối tượng phức hợp
Trang 39ManualSize (bytes) 100K 1M 1M
trong một Assembly lớn hơn
đóng trong một gói Assembly
Để mô phỏng đối tượng gần với thực tế nhất, mỗi đối tượng phức hợp và đối
tượng nguyên tố bao gồm một số thuộc tính cơ bản như ID kiểu int, BuildDate,
một mảng dữ liệu, một vài thuộc tính cơ bản khác và kèm theo một văn bản Văn
bản cũng được mô tả bởi các tham số cơ bản như DocID, DocTitle, Text và độ lớn của văn bản được thiết lập bởi tham số DocumentSize Các kịch bản đánh giá hiệu
năng sẽ sử dụng các thuộc tính trên ví dụ như kiểm tra, duyệt hay cập nhật để đo thời gian xử lý trong quá trình thực thi
Các đối tượng nguyên tố kết nối với nhau để tạo thành thành phần phức hợp,
được biểu diễn bởi tham số NumAtomicPerComp, và sự liên kết giữa các đối tượng nguyên tố thông qua tham số NumConnPerAtomic hình thành nên một đồ thị kết
nối giữa các đối tượng nguyên tố trong một đối tượng phức hợp như Hình 1.5
Hình 1.5: Đồ thị kết nối đối tượng của OO7
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à
Trang 40nguyên tố với nhau và có thể đóng gói ngay cả các assembly Ở cấp độ cơ sở, được gọi là base assembly, gồm sự đóng gói các đối tượng phức hợp và cơ sở, các đối
tượng này có thể được thiết kế ở cấp độ dùng chung hoặc dùng riêng (shared và unshared), số lượng đối tượng trên một assembly được đặt bởi tham số
NumCompPerAssm 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 với một số
cấp độ nhất định được mô tả qua tham số NumAssmLevels Số lượng đối tượng phức hợp trong một module rải rác ở các assembly cũng được giới hạn bởi tham
số NumCompPerModule
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 rất lớn, đối tượng này được
thiết lập qua tham số ManualSize Với thiết kế như vậy, mô hình hóa bản thiết kế
CSDL của OO7 được minh họa như Hình 1.6
Hình 1.6: Mô hình hóa thiết kế CSDL của OO7
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