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ó thể bạn quan tâm!
- 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 - 1
- 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 - 2
- Mô Hình Cơ Sở Dữ Liệu Hướng Đối Tượng Phân Tán
- Một Số Nghiên Cứu Khác Về Đánh Giá Hiệu Năng Csdl Hđt
- Phân Mảnh Và Cấp Phát Lớp Các Đối Tượng Phân Tán
- 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
Xem toàn bộ 136 trang tài liệu này.
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ý
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
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ì.
Đ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.
1.2.3.7. Nhân bản
Nếu CSDL phân tán được nhân bản (toàn bộ hoặc một phần), cần thiết phải cài đặt các giao thức để đảm bảo tính nhất quán của các bản sao, các bản sao của dữ liệu phải được cập nhật để đồng bộ với bản gốc.
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.
Quản lý thư mục
Thiết kế CSDL phân tán
Xử lý truy vấn
Đảm bảo độ tin cậy
Sao chép
Điều khiển tương tranh
Quản lý khóa chết
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.
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.
Client
Giao diện
truy vấn
Ứng dụng
Trình duyệt đối tượng
Giao diện
lập trình
Bộ quản lý đối tượng
Đối tượng
Mạng
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
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
Client
Ứng dụng
Giao diện truy vấn
Bộ tối ưu hóa truy
Trình duyệt
đối tượng
Giao diện
lập trình
Bộ quản lý chỉ mục và tập tin
Bộ quản lý vùng đệm và trang
Bộ quản lý đối tượng
Server
Trang
Mạng
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
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ó