Chương 1. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN 1. Khái niệm cơ sở dữ liệu phân tán Những năm gần đây việc phát triển các mô hình lý thuyết cho hệ cơ sở dữ liệu và phát triển hệ thống ứng dụng có nhiều kinh nghiệm hình thành dựa trên cơ sở kết nối các máy tính khác nhau, hệ cơ sở dữ liệu phân tán cũng đã phát triển dựa trên cơ sở dữ liệu và mạng máy tính. Cơ sở dữ liệu phân tán bao gồm nhiều cơ sở dữ liệu tích hợp lại với nhau thông qua mạng máy tính để trao đổi thông tin dữ liệu.
Cơ sở dữ liệu được tổ chức và lưu trữ ở những vị trí khác nhau trong mạng máy tính và chương trình ứng dụng làm việc dựa trên cơ sở truy cập dữ liệu ở những điểm khác nhau đó. Hiện nay khái niệm xử lý phân tán (Distributed processing), tính toán phân tán (Distributed computing) hoặc các thuật ngữ có từ “phân tán” hay được dùng để chỉ các hệ thống rải rác như các hệ thống máy tính có đa bộ xử lý (multiprocessor system) hay là các x ử lý trên mạng máy tính. Cơ sở dữ liệu phân tán là một khái niệm không bao gồm các trường hợp xử lý dữ liệu trong các hệ thống sử dụng bộ nhớ chung, kể cả bộ nhớ trong hay bộ nhớ thứ cấp (đĩa từ), nhất thiết phải là một hệ có sử dụng giao tiếp mạng với các trạm làm việc độc lập. Định nghĩa cơ sở dữ liệu phân tán Theo các tác giả trong [6],[17]: cơ sở dữ liệu phân tán là tập nhiều cơ sở dữ liệu nhỏ có quan hệ logic với nhau và được phân tán tại nhiều nơi của một mạng máy tính.
Tại mỗi trạm của mạng có khả năng xử lý tự quản và có thể thực hiện các ứng dụng cục bộ, mỗi một trạm cũng có thể tham gia vào ít nh ất một ứng dụng toàn cục, có yêu cầu truy xuất dữ liệu tại nhiều trạm. Định nghĩa này nhấn mạnh ba khía cạnh quan trọng của cơ sở dữ liệu phân tán là: Trang 9 Sự phân tán: dữ liệu không cư trú trên một vị trí mà được phân tán ở nhiều nơi Ứng dụng cục bộ: mỗi nơi phải thực hiện ít nhất một ứng dụng cục bộ Ứng dụng toàn cục: mỗi nơi phải tham gia vào sự thực hiện của ít nhất một ứng dụng toàn cục Nếu dữ liệu chỉ tập trung tại một trạm (như hình 1.1 dưới đây) thì không được coi là hệ thống cơ sở dữ liệu phân tán Trạm 1 Trạm 2 Trạm 5 Môi trường mạng Trạm 4 Trạm 3 Hình 1. Hệ cơ sở dữ liệu tập trung trong môi trường mạng Trạm 1 Trạm 2 Trạm 5 Môi trường mạng Trạm 3 Hình 1. Môi trường hệ cơ sở dữ liệu phân tán Xét ví dụ sau: Trang 10 Tổng Công ty Bảo minh (Bảo hiểm TPHCM) có các công ty thành viên (chi nhánh) đặt tại các vị trí khác nhau trên toàn quốc.
Tại mỗi công ty thành viên có một máy tính điều khiển một số máy kế toán cuối cùng (teller terminal) và cơ sở dữ liệu thống kê của công ty thành viên đó. Mỗi máy tính với cơ sở dữ liệu thống kê địa phương của nó tại mỗi chi nhánh được đặt ở một vị trí của cơ sở dữ liệu phân tán. Các máy tính được nối với nhau bởi một mạng truyền thông. Các nút trong một mạng phân tán một mặt xử lý thông tin tại vị trí mà nó quản lý, mặt khác nó cũng tham gia vào việc xử lý các yêu cầu về thông tin cần truy cập qua nhiều địa điểm.
Ví dụ như việc lên danh sách tất cả nhân viên của tổng công ty hoặc cập nhật các chứng từ kế toán thu chi. Yêu cầu này đòi hỏi tất cả các máy tính ở các công ty thành viên của tổng công ty đều phải hoạt động để cung cấp thông tin. Hệ quản trị cơ sở dữ liệu phân tán (Distribute DBMS) Hệ Quản trị cơ sở dữ liệu phân tán (Distributed DBMS) là hệ thống phần mềm cho phép quản lý các hệ cơ sở dữ liệu phân tán và làm cho sự phán tán trở nên “trong suốt” đối với người sử dụng. Hệ quản trị cơ sở dữ liệu phân tán (DDBMS – Distributed DBMS) hổ trợ tạo lập và bảo trì các CSDL phân tán.
Nhiều hệ thống CSDL phân tán được thương mại hóa đã được phát triển bởi các nhà cung cấp các quản trị cơ sở dữ liệu tập trung. Các hệ thống này bao gồm các thành phần mới để mở rộng các khả năng của các DBMS tập trung bằng cách hổ trợ sự truyền thông và sự hợp tác giữa các hệ quản trị CSDL được cài đặt tại các nơi khác nhau của một mạng máy tính. Các thành phần phần mềm cần thiết để xây dựng một CSDL phân tán là: Thành phần quản trị CSDL (DB – Database management component) Thành phần truyền thông dữ liệu (DC – Data Communication component) Trang 11 Từ điển dữ liệu (DD – Data Dictionary) được mở rộng để biễu diễn thông tin về sự phân tán dữ liệu trong mạng. Thành phần CSDL phân tán (DDB – Distribute Database) Chúng ta dùng thuật ngữ “hệ quản trị CSDL phân tán” để nói đến tập hợp bốn thành phần trên, dùng thuật ngữ “hệ quản trị CSDL” để nói đến tập hợp các thành phần phục vụ cho việc quản lý một CSDL không phân tán, tức là các thành phần DB, DC và DD.
DB DC CSDL 1 DD DDB DB DC CSDL 2 DD DDB Hình 1. Các thành phần của DDBMS Một đặc tính quan trọng khác của các DDBMS là sự thuần nhất (homogeneous) hoặc không thuần nhất (heterogeneous). Tính thuần nhất và tính không thuần nhất có thể được xem xét ở các mức khác nhau trong CSDL phân tán: phần cứng, hệ điều hành, và các DBMS cục bộ. Thuật ngữ “DDBMS thuần nhất” nói đến một DDBMS có các DBMS tại mỗi nơi giống nhau, ngay cả khi các máy tính và hệ điều hành khác nhau.
Một DDBMS không thuần nhất phải sử dụng ít nhất hai DBMS khác nhau. Các DDBMS khác nhau còn có thêm vấn đề chuyển đổi giữa các mô hình dữ liệu khác nhau của các DBMS cục bộ khác nhau, phức tạp hơn so với các DDBMS thuần nhất. Do đó việc phát triển một cơ sở dữ liệu phân tán từ trên xuống mà không có một hệ thống đã tồn tại trước thì sẽ thuận lợi cho việc phát triển một hệ thống thuần nhất. Tuy nhiên động cơ thúc đẩy cho việc tạo lập một cơ sở dữ liệu phân tán là sự cần thiết của việc tích hợp các cơ sở dữ Trang 12 liệu đã có trước, trong trường hợp n ày cần phải phát triển một DDBMS không thuần nhất, có khả năng xây dựng cái nhìn toàn cục về CSDL.
Như vậy ta có định nghĩa lại cơ sở dữ liệu phân tán thuần nhất và không thuần nhất như sau: Cơ sở dữ liệu phân tán thuần nhất: Cơ sở dữ liệu phân tán có được bằng cách chia một cơ sở dữ liệu thành một tập các cơ sở dữ liệu địa phương (cục bộ), mỗi cơ sở dữ liệu này được quản lý bởi cùng hệ quản trị cơ sở dữ liệu Cơ sở dữ liệu phân tán không thuần nhất: Cơ sở dữ liệu phân tán có được bằng cách tích hợp vào một cơ sở dữ liệu duy nhất một tập các cơ sở dữ liệu địa phương được quản lý bởi các hệ quản trị cơ sở dữ liệu khác nhau Nếu xây dựng cơ sở dữ liệu phân tán từ cơ sở dữ liệu đã tồn tại thì được xây dựng quản lý bởi các hệ quản trị CSDL khác nhau Nếu xây dựng từ đầu thì nên xây dựng hệ CSDL phân tán thuần nhất 1. Mô hình kiến trúc của hệ quản trị cơ sở dữ liệu phân tán 1. Hệ thống Client/Server Đặc trưng của hệ này là chức năng của hệ thống được chia làm hai lớp: Chức năng đại lý – server function Chức năng khách hàng – client function. Trong hệ thống khách/đại lý các thao tác xử lý dữ liệu đáp ứng yêu cầu của khách hàng đều được thực hiện bởi các chức năng đại lý, chỉ có kết quả được gửi trả cho khách hàng như mô hình 1.
Hệ client/server có ưu điểm là xử lý dữ liệu tập trung, trên đường truyền chỉ có các gói tin yêu cầu (câu hỏi) và các kết quả đáp ứng câu hỏi, giảm tải được khối lượng truyền tin trên mạng kết hợp với thiết bị tại đại lý rất mạnh sẽ tăng tốc độ xử lý dữ liệu của cả hệ thống. Trang 13 Giao Chương. diện trình ứng Hệ điều hành người dụng dùng Client DBMS Phần mềm dùng chung SQL Result Query relation Phần mềm mạng dùng chung Kiểm soát ngữ nghĩa dữ liệu Tối ưu truy vấn Điều khiển các giao dịch Điều khiển phục hồi Hổ trợ xử lý thực thi Hệ điều hành Cơ sở dữ liệu Hình 1. Kiến trúc Client/Server 2.
Hệ thống phân tán Peer to Peer Đặc điểm nổi bật của hệ thống này là dữ liệu được tổ chức ở các nút có chức năng như nhau, đồng thời sự tổ chức dữ liệu ở các nút này lại có thể rất khác nhau, từ đó cần phải có: Định nghĩa dữ liệu tại mỗi vị trí: tại mỗi nút phải xây dựng lược đồ dữ liệu cục bộ LIS (Local Internal Schema) Trang 14 Mô tả cấu trúc logic toàn cục: Lược đồ khái niệm toàn cục GCS (Global Conceptual Schema). Mô tả cấu trúc logic tại mỗi vị trí, điều nảy xảy ra do nhân bản và phân đoạn, gọi là lược đồ khái niệm cục bộ LCS (Local Conceptual Schema).5 Kiến trúc Peer to Peer Mô tả cấu trúc dữ liệu của các ứng dụng gọi là lược đồ ngoại giới ES (External Schema). Trang 15 Cấu trúc của hệ thống bao gồm hai thành phần chính: Bộ phận tiếp nhận người dùng (User Processor) và bộ phận xử lý dữ liệu (Data Processor). Hai modul này được đặt chung trên mỗi máy chứ không tách biệt như hệ thống khách/đại lý.
Các chức năng cơ bản của từng modul như sau: User Interface Handler – Giao tiếp người sử dụng: Diễn dịch yêu cầu, định dạng kết quả. Semantic Data Controler – Kiểm soát dữ liệu ngữ nghĩa: Dựa vào lược đồ khái niệm toàn cục để kiểm tra câu vấn tin có thực hiện được hay không. Global Query Optimizer – Tối ưu hóa câu hỏi toàn cục: Định ra chiến lược thực thi tốt nhất trên các nút. Global Execution Monitor – Điều khiển thực thi câu vấn tin toàn cục.
Local Query Processor – Xử lý câu hỏi cục bộ Local Recovery Manager – Quản lý khôi phục cục bộ: Quản lý sự nhất quán khi có sự cố.