Chương 1. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN VÀ PHÂN MẢNH 1. Những nét chung nhất về cơ sở dữ liệu phân tán Cơ sở dữ liệu (CSDL) phân tán là một tập hợp các dữ liệu phục thuộc logic lẫn nhau của cùng một hệ thống và được lưu trữ trên các trạm của một mạng máy tính. CSDL phân tán làm tăng khả năng truy nhập tới CSDL lớn trên mạng.
Trong hệ thống đó mỗi máy tính quản lý một CSDL thành phần được gọi là 1 node hoặc site. Hệ quản trị CSDL phân tán (DBMS) là phần mềm quản trị CSDL, đảm bảo trong suốt đối với người sử dụng và cho phép tính tự trị nghĩa là mỗi cơ sở dữ liệu thành phần vẫn được quản trị độc lập và riêng biệt [5]. Định nghĩa này nhấn mạnh 2 khía cạnh quan trọng của CSDL phân tán: 1- Tính phân tán: thực tế dữ liệu không cư trú ở cùng một trạm, vì vậy chúngta có thể phân biệt một CSDL phân tán với CSDL tập trung. 2- Sự tương quan logic: Các dữ liệu có một số tính chất ràng buộc lẫn nhauvà như vậy có thể phân biệt CSDL phân tán với tập các CSDL địa phương hoặc với các tệp ở các trạm khác nhau trên mạng.
3 - Các đặc trưng trong suốt của CSDL phân tán thể hiện ở chỗ: +Trong suốt phân tán: Cho phép xử lý dữ liệu trên hệ CSDL phân tán giống như đối với CSDL tập trung. Người sử dụng (NSD) không cần biết dữ liệu đã được phân mảnh như thế nào, các bản sao dữ liệu để ở đâu, vị trí vật lý lưu trữ dữ liệu ở đâu. Trong suốt phân tán thể hiện: + Trong suốt địa điểm: NSD không cần biết lưu trữ vật lý của dữ liệu ở đâu, mà có quyền truy cập đến CSDL tại bất cứ nút nào trên mạng. Trong truy vấn chỉ cần chỉ ra tên dữ liệu mà không cần chỉ ra vị trí.
Các thao tác để lấy hoặc cập nhật một dữ liệu từ xa được tự động thực hiện bởi hệ thống tại địa điểm đưa ra yêu cầu. Tính trong suốt về vị trí rất hữu ích, nó cho phép người LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4 dùng bỏ qua các bản sao dữ liệu đã tồn tại ở mỗi vị trí. Do đó có thể di chuyển một bản sao dữ liệu từ một nút này đến một nút khác và cho phép tạo các bản sao mới mà không ảnh hưởng tới các ứng dụng; + Trong suốt tên: Khi một đối tượng đã được đặt tên thì có thể truy nhập chính xác không cần đặc tả thêm; + Trong suốt bản sao: Sự nhân bản là quá trình sao chép và duy trì dữ liệu trong hệ CSDL phân tán. Cùng một dữ liệu (được lưu trữ vật lý tại một vị trí) có thể sử dụng được trên nhiều vị trí khác nhau.
Các bản sao có thể được lưu trữ trên nhiều nút làm tăng hiệu suất, độ tin cậy và tính sẵn sàng của hệ thống. Các ứng dụng có thể truy nhập dữ liệu tại các nút mà không cần phải truy cập từ xa giảm truyền tải trên mạng lớn. Hệ thống cho phép tiếp tục thực hiện nếu như các nút từ xa có sự cố. Trong suốt bản sao bảo đảm NSD không biết đó là các bản sao vì dữ liệu luôn được cập nhật và đồng bộ với dữ liệu gốc.
- Trong suốt phân mảnh: Một quan hệ trong CSDL phân tán có thể phân mảnh ngang hoặc phân mảnh dọc nghĩa là được tách thành các bộ dữ liệu hoặc các quan hệ con và lưu trữ trên nhiều nút khác nhau. Trong suốt phân mảnh cho phép NSD không cần biết có sự phân mảnh, các truy vấn dữ liệu vẫn được viết như CSDL tập trung. - Trong suốt giao dịch: CSDL phân tán cho phép một giao dịch có thể cập nhật, sửa đổi dữ liệu trên các nút khác nhau. - Trong suốt thất bại: Đảm bảo tại một nút của hệ thống bị hỏng thì hệ thống vẫn làm việc bình thường (do cơ chế tạo bản sao hoặc làm việc trên các nút không bị sự cố).
- Trong suốt thao tác: Cho phép các câu lệnh thao tác các dữ liệu đơn giản để truy nhập được các CSDL tại nút cục bộ hoặc nút từ xa. Các thao tác xử lý dữ liệu từ xa không phức tạp và đảm bảo vẫn giống như khi thao tác dữ liệu trên hệ CSDL không phân tán. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 5 - Trong suốt về tính không thuần nhất: Cho phép hỗn hợp nhiều hệ quản trị CSDL khác nhau với các khả năng trao đổi dữ liệu, xử lý cập nhật dữ liệu, xử lý giao tác phân tán trên toàn hệ thống. 4- Đối với CSDL tập trung, tính dư thừa hạn chế được càng nhiều càng tốt.
Trong khi đó, CSDL phân tán có tính dư thừa dữ liệu vì: - Tính cục bộ của chương trình ứng dụng sẽ tăng nếu dữ liệu đặt ở nhiều nơi mà chương trình ứng dụng cần. - Khả năng sẵn sàng của hệ thống cao bởi vì khi có lỗi ở một nơi nào đó trong hệ thống thì không ảnh hưởng đến hoạt động của chương trình ứng dụng. Trong CSDL phân tán, dữ liệu được chia ra thành nhiều phần nhỏ và chỉ có một bản sao logic tổng thể duy nhất để tiện cho việc truy xuất dữ liệu; cấu trúc truy xuất phức tạp không phải là công cụ chính để truy xuất hiệu quả (hiệu quả theo nghĩa là thời gian tìm kiếm và chuyển dữ liệu nhỏ nhất, chi phí truyền thông thấp nhất). Mỗi cách thức truy xuất CSDL phân tán được người lập trình viết hoặc tạo ra bởi một bộ tối ưu.
Cách viết và truy cập CSDL phân tán cũng giống như viết chương trình duyệt trong CSDL tập trung. Công việc mà chương trình duyệt này làm là xác định xem có thể truy cập đến được bao nhiêu CSDL con. Trong CSDL phân tán, vấn đề điều khiển giao tác tự trị có ý nghĩa quan trọng. Giao tác tự trị là phương tiện đạt được sự toàn vẹn trong CSDL; Mặt khác, vấn đề an toàn CSDL cũng phức tạp hơn vì còn liên quan đến mạng truyền thông.
CSDL phân tán có một số ưu và nhược điểm sau: LUAN VAN CHAT LUONG download : add luanvanchat@agmail. Ưu điểm: Tính hữu dụng cơ bản nhất của CSDL phân tán là dữ liệu của các CSDL vật lý riêng biệt được tích hợp logic với nhau giúp NSD trên mạng có thể truy nhập được. Nó có khả năng: - Cho phép quản lý dữ liệu với nhiều mức trong suốt. Hệ quản trị CSDL phân tán cung cấp khả năng trong suốt phân tán với ý nghĩa che giấu đặc tính phân tán với NSD.
- Tăng độ tin cậy và khả năng sẵn sàng. Đối với CSDL tập trung thì CSDL được đặt tại một nút nên khi có sự cố sẽ khó khôi phục và khó xử lý, bị ngừng khả năng làm việc khi gặp sự cố. Đối với CSDL phân tán thì độ tin cậy ở đây là hệ thống đang làm việc (không bị ngừng) tại thời điểm nào đó, tính sẵn sàng của hệ thống vẫn tiếp tục làm việc. Khi dữ liệu và CSDL phân tán trên một vài nút, một nút có thể gặp sự cố trong khi các nút khác vẫn có thể hoạt động hoặc sử dụng các thành phần khác của CSDL.
Chỉ trên các nút bị sự cố, dữ liệu và ứng dụng không thể truy cập được. Để nâng cao độ tin cậy và tính sẵn sàng, có thể áp dụng cơ chế tạo bản sao trên nhiều nút. - Cải thiện hiệu năng, do dữ liệu của CSDL phân tán được đặt gần nơi xử lý nên hiệu năng được cải thiện đáng kể. - Cho phép thêm CSDL mới, tăng kích cỡ CSDL, thêm bộ xử lý, thêm các CSDL thành phần trong CSDL phân tán.
Nhược điểm: - Độ phức tạp thiết kế và cài đặt hệ thống tăng: Hệ quản trị CSDL phân tán phải bổ sung thêm các chức năng như: + Theo dõi dấu vết dữ liệu; + Xử lý các truy vấn phân tán; + Quản lý giao dịch phân tán; + Phục hồi CSDL phân tán; LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 7 + Quản lý các bản sao; + Quản lý thư mục - catalog phân tán. - Khó điều khiển tính nhất quán về dữ liệu; - Các phần mềm hệ thống đảm bảo quản trị, duy trì kết nối, trao đổi dữ liệu trên mạng là rất khó khăn;. - Bảo mật khó khăn. Ở mức vật lý, những đặc trưng phân tán được thể hiện rõ: - Có nhiều máy tính được gọi là các nút/trạm; - Các nút này phải được kết nối bởi một kiểu mạng truyền thông để truyền dữ liệu và những câu lệnh giữa các nút với nhau.
Mỗi nút có thể truy nhập dữ liệu ở các nút khác. Khác với mô hình dữ liệu tập trung (tài nguyên tập trung tại một máy tính), CSDL trong hệ thống CSDL phân tán được chứa trong nhiều máy tính (nút), các máy tính này được nối với nhau qua các hệ thống truyền thông và chúng không chia sẻ bộ nhớ chung cũng như không dùng chung đồng hồ. Các bộ xử lý trong hệ thống phân tán có kích cỡ và chức năng khác nhau (chẳng hạn có thể bao gồm các bộ vi xử lý, trạm làm việc, máy tính mini, hay các máy lớn vạn năng). Workstation 1 Workstation 2 Workstation 5 Mạng M¹truyền số ng truyÒnliệu CSDL d÷ liÖu CSDL Workstation 4 Workstation 3 CSDL CSDL Hình 1.
Minh họa về một DDBS LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 8 Chú ý rằng, nếu CSDL nằm tại một nút mạng thì hệ thống đó không phải là DDBS: Workstation 1 Workstation 2 Workstation 5 Mạng truyền dữ liệu Workstation 4 Workstation 3 Hình 1. CSDL tập trung, không phải là DDBS 1. Vấn đề phân mảnh trong cơ sở dữ liệu phân tán Trong quá trình thiết kế, các quan hệ được phân mảnh thành các quan hệ nhỏ hơn. Các câu hỏi có tương hỗ lẫn nhau được quan tâm gồm: 1.
Tại sao lại cần phân mảnh? 2. Chúng ta nên phân mảnh như thế nào? 3. Chúng ta nên phân thành bao nhiêu mảnh? 4. Có cách nào để kiểm tra tính chính xác của sự phân mảnh? 5.
Chúng ta nên cấp phát các mảnh như thế nào cho các nút? 6. Thông tin cần thiết cho phân mảnh và cấp phát là gì? 1. Lý do phân mảnh Theo quan điểm phân tán dữ liệu, không phân mảnh giá trị dữ liệu. Trong các hệ thống tệp phân tán, việc phân tán được thực hiện trên cơ sở toàn bộ các tập tin.
Đối với phân mảnh, vấn đề quan trọng là đơn vị phân tán thích hợp. Một quan hệ không phải là một đơn vị phù hợp.