CHƯƠNG 1 TỔNG QUAN VỀ HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN VÀ BÀI TOÁN CẬP NHẬT NHIỀU BẢN SAO Khái niệm hệ cơ sở dữ liệu phân tán ở đây bao gồm khái niệm cơ sở dữ liệu phân tán và hệ quản trị cơ sở dữ liệu phân tán. Cơ sở dữ liệu phân tán Cơ sở dữ liệu phân tán là một tập hợp các cơ sở dữ liệu có quan hệ logic với nhau, được phân phối trên các máy tính khác nhau của một mạng máy tính (được gọi là các nút, trạm hay là site) nhưng vẫn đảm bảo tính nhất quán trên toàn bộ cơ sở dữ liệu và khai thác giống như trên cơ sở dữ liệu tập trung [1],[6] Đặc trưng của cơ sở dữ liệu phân tán là các cơ sở dữ liệu được phân bố trên mạng máy tính và có quan hệ với nhau về mặt logic. Cấu trúc chung của một cơ sở dữ liệu phân tán có dạng [2], [5] (Xem hình 1.1: Cấu trúc mẫu của một cơ sở dữ liệu phân tán download by : skknchat@gmail.com 4 Lược đồ toàn cục: Xác định toàn bộ dữ liệu được lưu trữ trong cơ sở dữ liệu phân tán. Được định nghĩa như trong cơ sở dữ liệu tập trung.
Trong mô hình quan hệ: lược đồ toàn cục là các quan hệ và mối liên kết giữa chúng. Lược đồ phân đoạn: Mỗi quan hệ tổng thể có thể được chia thành các phần không giao nhau gọi là phân đoạn (Fragment). Có nhiều cách khác nhau để phân đoạn: Phân đoạn dọc, phân đoạn ngang, phân đoạn hỗn hợp. Các đoạn được mô tả bằng tên của quan hệ tổng thể cùng với chỉ mục đoạn.
Ví dụ Ri là đoạn thứ i của quan hệ toàn cục R. Lược đồ định vị: Xác định đoạn dữ liệu nào được định vị tại trạm nào trên mạng. Rij:Cho biết đoạn thứ i của quan hệ tổng thể R được định vị trên trạm j. Lược đồ ánh xạ địa phương: Ánh xạ các ảnh vật lý và các đối tượng được lưu trữ tại một trạm.
Ưu điểm của cơ sở dữ liệu phân tán: Phù hợp với cấu trúc của tổ chức. Nâng cao khả năng chia sẻ và tính tự trị địa phương. Tính sẵn sàng của hệ thống cao Nâng cao tính tin cậy. Nâng cao hiệu năng Dễ mở rộng Nhược điểm của cơ sở dữ liệu phân tán: Thiết kế cơ sở dữ liệu phức tạp hơn Khó điều khiển tính nhất quán dữ liệu.
Xử lý: Truy vấn tập trung là đơn giản còn truy vấn phân tán phức tạp, khó phát hiện và khử lỗi. Giá thành cao. Vấn đề về bảo mật cơ sở dữ liệu được lưu trữ ở nhiều nơi nảy sinh vấn đề: đảm bảo an toàn dữ liệu khi truyền qua mạng. download by : skknchat@gmail.com 5 Thiếu chuẩn mực.
Thiếu kinh nghiệm. Hệ quản trị cơ sở dữ liệu phân tán Để quản lý cơ sở dữ liệu phân tán, người ta dùng hệ quản trị cơ sở dữ liệu phân tán (DDBMS – Distribute Database Management System). Hệ quản trị cơ sở dữ liệu phân tán là hệ thống phần mềm cho phép quản lý cơ sở dữ liệu phân tán, tạo nên sự phân tán rõ ràng cho người dùng và đảm bảo cho sự phân tán đó là trong suốt đối với người sử dụng [4],[7] Hệ quản trị cơ sở dữ liệu phân tán cung cấp công cụ như tạo lập và quản lý cơ sở dữ liệu phân tán. Hệ quản trị cơ sở dữ liệu phân tán có chức năng hỗ trợ việc tạo và bảo trì cơ sở dữ liệu phân tán, chúng có các thành phần tương tự như một hệ quản trị cơ sở dữ liệu tập trung và các thành phần hỗ trợ trong việc chuyển tải dữ liệu đến các trạm và ngược lại.
Hệ quản trị cơ sở dữ liệu thường có các thành phần : Cơ sở dữ liệu phân tán (distributed database): DDB Quản trị dữ liệu (database management): DM. Truyền thông dữ liệu (data communication): DC Từ điển dữ liệu (data dictionary): DD dùng để mô tả thông tin về sự phân tán của dữ liệu trên mạng. Các dịch vụ của hệ thống trên bao gồm: • Các ứng dụng truy nhập cơ sở dữ liệu từ xa. • Cung cấp các mức trong suốt phân tán.
• Hỗ trợ quản trị và điều khiển cơ sở dữ liệu, bao gồm các bộ công cụ, thu thập thông tin từ các trình tiện ích, cung cấp cách nhìn tổng quan về các file dữ liệu trên mạng. • Khả năng mở rộng với các hệ thống khác nhau. • Cung cấp khả năng điều khiển đồng thời và phục hồi các giao tác download by : skknchat@gmail. Các hệ quản trị cơ sở dữ liệu phân tán thường hỗ trợ về điều khiển tương tranh và khôi phục các tiến trình phân tán.
Hệ quản trị cơ sở dữ liệu phân tán bao gồm hai loại như sau Loại thứ nhất: Hệ quản trị cơ sở dữ liệu phân tán thuần nhất. Trong loại này, cơ sở dữ liệu phân tán được hình thành 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 cục bộ và được quản lý bởi cùng một hệ quản trị cơ sở dữ liệu, cơ sở dữ liệu phân tán có thuần nhất hay không được phụ thuộc bởi các yêu tố phần cứng, hệ điều hành và các hệ quản trị cơ sở dữ liệu cục bộ. Tuy nhiên, hạn chế quan trọng tại hệ quản trị cơ sở dữ liệu cục bộ, bởi vì nó phụ thuộc vào sự quản lý hệ điều hành mạng truyền thông Loại thứ hai: Hệ quản trị cơ sở dữ liệu phân tán không thuần nhất. Trong loại thứ hai, cơ sở dữ liệu phân tán không thuần nhất được tích hợp bởi một tập các cơ sở dữ liệu cục bộ được quản lý bởi các hệ quản trị cơ sở dữ liệu khác nhau.
Hệ quản trị cơ sở dữ liệu phân tán không thuần nhất thêm việc chuyển đổi các mô hình dữ liệu của các hệ quản trị cơ sở dữ liệu khác nhau để thống nhất việc quản lý. Nếu việc phát triển cơ sở dữ liệu phân tán theo mô hình Top-down, không phụ thuộc vào hệ thống trước đó (hệ thống các cơ sở dữ liệu cục bộ), thì việc phát triển một hệ thuần nhất là tốt nhất. Tuy nhiên, trong một số trường hợp cần xây dựng cơ sở dữ liệu phân tán từ các cơ sở dữ liệu đã có thì đòi hỏi phải phát triển một hệ không thuần nhất. Phương pháp tốt nhất là tiếp cận từ dưới lên (Bottum-up).
Vấn đề phân tán dữ liệu Trong nhiều trường hợp các nhà thiết kế ứng dụng không biết dữ liệu phải phân tán ở đâu. Trong phần này chúng ta sẽ phác họa một vài vấn đề liên quan đến việc phân tán dữ liệu. download by : skknchat@gmail. Sự phân mảnh dữ liệu (Fragmentation) Phần lớn các hệ cơ sở dữ liệu phân tán được thiết kế theo hướng từ trên xuống.
Thiết kế phân mảnh dữ liệu là công việc đầu tiên phải thực hiện. Mục đích của việc phân mảnh dữ liệu là tạo ra các đơn vị cấp phát logic, sao cho chi phí để thực hiện truy vấn thông tin là thấp nhất. Trước tiên việc phân tán dữ liệu được thực hiện trên cơ sở cấp phát các tập tin cho các nút trên một mạng máy tính. Các nút mạng thường nằm ở các vị trí địa lý khác nhau trải rộng trên một diện tích lớn.
Do vậy để tối ưu việc khai thác thông tin thì dữ liệu không thể để tập trung mà phải phân tán trên các nút của mạng. Hơn nữa một quan hệ không phải là một đơn vị truy xuất dữ liệu tốt nhất. Ví dụ như, nếu ứng dụng được thực hiện trên một bộ phận nhỏ các dữ liệu của quan hệ mà quan hệ đó nằm tại các vị trí khác nhau thì có thể gây ra những truy xuất thừa và hơn thế việc nhân bản các quan hệ làm tốn không gian bộ nhớ. Do vậy phân rã một quan hệ thành nhiều mảnh, mỗi mảnh được xử lý như một đơn vị sẽ cho phép thực hiện nhiều giao dịch đồng thời.
Một câu truy vấn ban đầu có thể được chia ra thành một tập các truy vấn con, các truy vấn này có thể được thực hiện song song trên các mảnh sẽ giúp cải thiện tốc độ hoạt động của hệ thống. Tuy nhiên chúng ta cũng sẽ gặp những rắc rối của việc phân mảnh, ví dụ nếu các ứng dụng có những xung đột sẽ ngăn cản hoặc gây khó khăn cho việc truy xuất dữ liệu. Phân rã các mảnh nói chung làm tăng chi phí trong việc truy xuất dữ liệu. Một vấn đề nữa liên quan đến việc kiểm soát ngữ nghĩa và tính toàn vẹn dữ liệu.
Thiết kế phân mảnh bằng cách nhóm một số bộ trong trường hợp phân mảnh ngang hay nhóm các thuộc tính trong trường hợp phân mảnh dọc có download by : skknchat@gmail.com 8 cùng đặc tính theo quan điểm cấp phát. Các mảnh hình thành bằng các phương pháp phân mảnh tạo ra các đơn vị cấp phát dữ liệu khác nhau. Việc phân tán các mảnh dữ liệu của bảng mang lại nhiều thuận lợi. Trong thiết kế cơ sở dữ liệu phân tán, cần thiết phải thực hiện phân mảnh dữ liệu vì những lý do sau đây: Trong các hệ quản trị cơ sở dữ liệu, các quan hệ được lưu trữ dưới dạng các bảng 2 chiều.
Các thao tác đối với cơ sở dữ liệu được thực hiện trên các bảng. Việc phân rã một quan hệ thành nhiều mảnh, mỗi mảnh được xử lý như một đơn vị dữ liệu, sẽ cho phép thực hiện nhiều giao dịch đồng thời. Hơn nữa kỹ thuật phân tán phải có khả năng cải thiện được thời gian và thực hiện được việc truy xuất dữ liệu từ xa. Thể hiện của các quan hệ chính là các bảng, vì thế vấn đề là tìm những cách khác nhau để chia một bảng thành nhiều bảng nhỏ hơn.
Có hai phương pháp khác nhau: Chia bảng theo chiều dọc và chia bảng theo chiều ngang. Chia dọc ta được các quan hệ con mà mỗi quan hệ chứa một tập con các thuộc tính của quan hệ gốc – gọi là phân mảnh dọc. Chia ngang một quan hệ ta được các quan hệ con mà mỗi quan hệ chứa một số bộ của quan hệ gốc – gọi là phân mảnh ngang. Ngoài ra còn có một khả năng hỗn hợp, đó là phân mảnh kết hợp cách phân mảnh ngang và dọc.
Một phương pháp thiết kế phân mảnh đúng đắn phải thỏa mãn ba ràng buộc sau [7]: - Tính đầy đủ: Toàn bộ dữ liệu của quan hệ tổng thể phải được ánh xạ vào các đoạn quan hệ và ngược lại. Điều này có nghĩa là, không tồn tại một mục dữ liệu nào thuộc vào quan hệ tổng thể mà không thuộc vào bất kỳ một đoạn nào.