1. Trang chủ
  2. » Khoa Học Tự Nhiên

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

131 845 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 131
Dung lượng 2,81 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 3

Tô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 4

Luậ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 5

MỤ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 6

2.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 7

3.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 8

DANH 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 9

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 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 10

DANH 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 11

DANH 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 12

MỞ ĐẦ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 14

cấ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 15

Trong 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 18

CHƯƠ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 19

1.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 20

Tậ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 21

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 đó 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 22

tí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 23

Từ 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 24

XeBus 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 25

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 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 26

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 đ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 27

và 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 28

biệ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 30

1.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 31

1.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 32

Hì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 33

Hì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 34

thể 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 35

1.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 36

Mô 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 37

dự á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 38

1.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 39

ManualSize (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 40

nguyê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

Ngày đăng: 04/05/2017, 14:27

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Đoàn Văn Ban (2012), Giáo trình các mô hình Cơ sở dữ liệu hướng đối tượng, Viện Công nghệ thông tin Sách, tạp chí
Tiêu đề: Giáo trình các mô hình Cơ sở dữ liệu hướng đối tượng
Tác giả: Đoàn Văn Ban
Năm: 2012
2. Trương Ngọc Châu (2011), Tối ưu hóa truy vấn dữ liệu hướng đối tượng, Luận án Tiến sĩ Toán học, Viện công nghệ Thông tin.Tiếng Anh Sách, tạp chí
Tiêu đề: Tối ưu hóa truy vấn dữ liệu hướng đối tượng
Tác giả: Trương Ngọc Châu
Năm: 2011
3. Al-Sayyed R.M., Al Zaghoul F.A., Suleiman D. et al. (2014). A New Approach for Database Fragmentation and Allocation to Improve the Distributed Database Management System Performance. J Softw Eng Appl, 7(11), 891 Sách, tạp chí
Tiêu đề: J Softw Eng Appl
Tác giả: Al-Sayyed R.M., Al Zaghoul F.A., Suleiman D. et al
Năm: 2014
4. Ozsu, M. T. and Valduriez, P. (2011), Principles of Distributed Database Systems, Springer Sách, tạp chí
Tiêu đề: Principles of Distributed Database Systems
Tác giả: Ozsu, M. T. and Valduriez, P
Năm: 2011
5. Navathe S., Ceri S., Wiederhold G. et al. (1984). Vertical partitioning algorithms for database design. ACM Trans Database Syst, 9(4), 680–710 Sách, tạp chí
Tiêu đề: ACM Trans Database Syst
Tác giả: Navathe S., Ceri S., Wiederhold G. et al
Năm: 1984
6. Sarhan A. (2009). A new allocation technique for methods and attributes in distributed object-oriented databases using genetic algorithms. Int Arab J Inf Technol, 6(1), 17–26 Sách, tạp chí
Tiêu đề: Int Arab J Inf "Technol
Tác giả: Sarhan A
Năm: 2009
7. Singh A. and Kahlon K.S. (2009). Non-replicated dynamic data allocation in distributed database systems. IJCSNS Int J Comput Sci Netw Secur, 9(9), 176–180 Sách, tạp chí
Tiêu đề: IJCSNS Int J Comput Sci Netw Secur
Tác giả: Singh A. and Kahlon K.S
Năm: 2009
8. Ulus T. and Uysal M. (2003). Heuristic approach to dynamic data allocation in distributed database systems. Pak J Inf Technol, 2(3), 231–239 Sách, tạp chí
Tiêu đề: Pak J Inf Technol
Tác giả: Ulus T. and Uysal M
Năm: 2003
9. Wasa K., Arimura H., and Uno T. (2014). Efficient Enumeration of Induced Subtrees in a K-Degenerate Graph. Algorithms and Computation: 25th International Symposium, ISAAC 2014, Jeonju, Korea, December 15-17, 2014, Proceedings.Springer International Publishing, Cham, 94–102 Sách, tạp chí
Tiêu đề: Algorithms and Computation: 25th International "Symposium, ISAAC 2014, Jeonju, Korea, December 15-17, 2014, Proceedings
Tác giả: Wasa K., Arimura H., and Uno T
Năm: 2014
10. Abdalla H.I. (2012). A New Data Re-Allocation Model for Distributed Database Systems. Int J Database Theory Appl, 5(2), 45–60 Sách, tạp chí
Tiêu đề: Int J Database Theory Appl
Tác giả: Abdalla H.I
Năm: 2012
11. Anderson T.L., Berre A.J., Mallison M. et al. (1990). The hypermodel benchmark. Advances in Database Technology—EDBT’90. Springer, 317–331 Sách, tạp chí
Tiêu đề: Advances in Database Technology—EDBT’90
Tác giả: Anderson T.L., Berre A.J., Mallison M. et al
Năm: 1990
12. Baião F. and Mattoso M. (1998). A mixed fragmentation algorithm for distributed object oriented databases. Proc Int’l Conf Computing and Information (ICCI’98), Winnipeg, 141–148 Sách, tạp chí
Tiêu đề: Proc Int’l Conf Computing and Information (ICCI’98), "Winnipeg
Tác giả: Baião F. and Mattoso M
Năm: 1998
13. Barker K. and Bhar S. (2001). A graphical approach to allocating class fragments in distributed objectbase systems. Distrib Parallel Databases, 10(3), 207–239 Sách, tạp chí
Tiêu đề: Distrib Parallel Databases
Tác giả: Barker K. and Bhar S
Năm: 2001
14. Bellatreche L., Karlapalem K., and Li Q. (1998). Complex Methods and Class Allocation in Distributed OODBSs. OOIS’98. Springer, 239–256 Sách, tạp chí
Tiêu đề: OOIS’98
Tác giả: Bellatreche L., Karlapalem K., and Li Q
Năm: 1998
15. Bernstein P.A., Goodman N., Wong E. et al. (1981). Query processing in a system for distributed databases (SDD-1). ACM Trans Database Syst TODS, 6(4), 602–625 Sách, tạp chí
Tiêu đề: ACM Trans Database Syst TODS
Tác giả: Bernstein P.A., Goodman N., Wong E. et al
Năm: 1981
16. Bloom B.H. (1970). Space/time trade-offs in hash coding with allowable errors. Commun ACM, 13(7), 422–426 Sách, tạp chí
Tiêu đề: Commun ACM
Tác giả: Bloom B.H
Năm: 1970
17. Carey M.J., DeWitt D.J., and Naughton J.F. (1993), The 007 benchmark, ACM Sách, tạp chí
Tiêu đề: The 007 benchmark
Tác giả: Carey M.J., DeWitt D.J., and Naughton J.F
Năm: 1993
18. Cattell R.G. and Skeen J. (1992). Object operations benchmark. ACM Trans Database Syst TODS, 17(1), 1–31 Sách, tạp chí
Tiêu đề: ACM Trans "Database Syst TODS
Tác giả: Cattell R.G. and Skeen J
Năm: 1992
19. Cheng C.-H., Lee W.-K., and Wong K.-F. (2002). A genetic algorithm-based clustering approach for database partitioning. Syst Man Cybern Part C Appl Rev IEEE Trans On, 32(3), 215–230 Sách, tạp chí
Tiêu đề: Syst Man Cybern Part C Appl Rev "IEEE Trans On
Tác giả: Cheng C.-H., Lee W.-K., and Wong K.-F
Năm: 2002
20. Darabant A.S., Campan A., and Cret O. (2005). Using Fuzzy Clustering for Advanced OODB Horizontal Fragmentation with Fine-Grained Replication.Databases and Applications, 116–121 Sách, tạp chí
Tiêu đề: Databases and Applications
Tác giả: Darabant A.S., Campan A., and Cret O
Năm: 2005

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w