Xem mẫu

  1. BỘ NÔNG NGHIỆP VÀ PHÁT TRIỂN NÔNG THÔN HỌC VIỆN NÔNG NGHIỆP VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN PGS.TS. NGUYỄN VĂN ĐỊNH BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN HÀ NỘI 2015 Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 0
  2. Chương 1 TỔNG QUAN VỀ CSDL PHÂN TÁN Chương này, đề cập đến một số khái niệm và kết quả cơ bản liên quan đến việc thiết kế một CSDL phân tán. 1.1. CẤU TRÚC CỦA HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN Dữ liệu là một thành phần không thể thiếu trong các ứng dụng công nghệ thông tin. Quá trình phát triển của CNTT cũng kéo theo quá trình phát triển của công nghệ CSDL. 1.1.1. Sự phát triển của công nghệ CSDL Công nghệ lưu trữ và xử lý dữ liệu cho đến nay đã trải qua các giai đoạn phát triển chính như sau: - Xử lý tệp truyền thống: Trong mô hình này, dữ liệu lưu trữ thành các tệp riêng rẽ, được mô tả và gắn kết với từng chương trình ứng dụng. Hình 1.1. Sơ đồ xử lý tệp truyền thống Cách xử lý này sẽ phát sinh vấn đề dư thừa dữ liệu và các dị thường trong cập nhật. Chẳng hạn, có thể có 2 chương trình ứng dụng với 2 tệp dữ liệu riêng, nhưng mỗi tệp dữ liệu này lại có những thông tin giống nhau, vì vậy tạo nên sự dư thừa dữ liệu, gây lãng phí cho lưu trữ và quản lý. Nguy hại hơn là khi cập nhật thay đổi thông tin về một thực thể trong tệp dữ liệu này thì cũng phải thay đổi trong tệp kia với đối tượng đó. Điều này rất khó thực hiện triệt để khi có nhiều tệp dữ liệu có chứa các thông tin trùng lặp, và sẽ gây ra các dị thường trong cập nhật (thông tin không nhất quán, thông tin mâu thuẫn...). - Xử lý CSDL (Database-DB): Để khắc phục các nhược điểm của mô hình xử lý tệp, dữ liệu của các ứng dụng được lưu trữ tập trung, được mô tả và xử lý thống nhất cho mọi chương trình ứng dụng. Các dữ liệu tập trung lại thành một CSDL, được xử lý theo cách thống nhất cho tất cả các ứng dụng có liên quan. Như vậy vấn đề tập trung dữ liệu là mấu chốt của xử lý CSDL. Công nghệ CSDL là một bước tiến lớn của công nghệ xử lý dữ liệu. Rõ ràng là nhờ sự tập trung dữ liệu, CSDL đã khắc phục được sự dư thừa dữ liệu, hạn chế các dị thường trong cập nhật. Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 1
  3. Hình 1.2. Sơ đồ xử lý CSDL Các hệ CSDL đầu tiên đã xuất hiện từ những năm 1960, từ đó đến nay chúng ta đã chứng kiến nhiều hệ quản trị CSDL ra đời như FoxBase, FoxPro, MS Access, MySQL, SQL Server, Firebird, Oracle. Hình 1.3. Sơ đồ hình thành CSDL phân tán - Công nghệ CSDL phân tán (Distributed Database-DDB): Khi công nghệ mạng máy tính ra đời, người ta phân chia CSDL tập trung thành các CSDL cục bộ đặt trên các máy tính khác nhau (các trạm/ sites) và được kết nối bởi mạng truyền thông. Các CSDL cục bộ này tích hợp được với nhau qua mạng máy tính mà không cần có sự tập trung dữ liệu. Do đó có thể xây dựng được một hệ thống CSDL, trong đó dữ liệu phân tán trên một mạng máy tính. Đó là cách tiếp cận của CSDL phân tán. Có thể nhận thấy một điều thú vị là: Công nghệ mạng máy tính xúc tiến một kiểu làm việc đi ngược lại nỗ lực tập trung hóa của công nghệ CSDL, tuy vậy hai xu hướng trái ngược nhau Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 2
  4. này lại có thể được tổng hợp lại để cho ra đời một công nghệ mạnh mẽ hơn nhiều so với từng công nghệ riêng lẻ: đó là công nghệ CSDL phân tán. Do đó có thể thấy rằng mục tiêu quan trọng nhất của công nghệ CSDL là sự tích hợp dữ liệu chứ không phải là sự tập trung hóa, có nghĩa là có thể tích hợp dữ liệu để quản lý và sử dụng chung mà không cần tập trung hóa và đó là bản chất của CSDL phân tán. Một số ứng dụng của CSDL phân tán. Có rất nhiều lý do để cần phải có nhiều CSDL trong một hệ thống phân tán như: + Nhiều database có thể gắn với nhiều chức năng của một hệ thống như: Bộ phận sản xuất, bộ phận quản lý nhân sự, bộ phận bán hàng… và các chức năng này lại là những hệ thống độc lập có nhu cầu lấy thông tin lẫn nhau. + Đơn vị sử dụng hệ thống database có nhiều trụ sở đặt ở nhiều vị trí địa lý khác nhau và cách xa nhau, Thí dụ như hệ thống quản lý tài khoản của mạng điện thoại di động, các server game… + Những ứng dụng đòi hỏi dữ liệu có tốc độ truy xuất rất cao được đặt các bản copy ở nhiều server, việc truy xuất được phân tải cho các server này để đảm bảo hiệu năng, nhưng dữ liệu trên các phần copy này phải đảm bảo đồng bộ tuyệt đối với nhau. + Nhiều ứng dụng khác nhau có thể đòi hỏi phải truy xuất vào cùng một dữ liệu theo cách khác nhau, khi đó đòi hỏi phải có cơ chế truy xuất khác nhau. Hình. 1.4. Một ứng dụng của CSDL phân tán Hình 1.4 mô tả một ứng dụng điển hình của CSDL phân tán trong doanh nghiệp gồm có 3 bộ phận chính: Trụ sở chính là nơi điều hành mọi hoạt động của doanh nghiệp, cân đối dự báo tài chính…, Bộ phận sản xuất là nơi sản xuất, lập kế hoạch SX và kế hoạch nguyên liệu… và Bộ phận bán hàng nhận các đơn đặt hàng, phân phối hàng hóa, dịch vụ sau bán hàng… Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 3
  5. Các bộ phận này của doanh nghiệp đặt ở 3 vị trí địa lý khác nhau, CSDL của doanh nghiệp được kết nối theo mô hình CSDL phân tán. 1.1.2. Cấu trúc của hệ CSDL phân tán Có thể đưa ra định nghĩa cho CSDL phân tán theo cách mô tả như sau: Định nghĩa 1.1: CSDL phân tán là một tập hợp các CSDL cùng hợp tác hoạt động, được lưu trữ trên các máy tính khác nhau (gọi là các trạm/sites) được kết nối với nhau bởi một mạng truyền thông và được quản lý bởi một hệ quản trị CSDL phân tán. Một cách lý tưởng, người dùng tại một trạm bất kỳ có thể truy cập và thao tác dữ liệu trên bất cứ trạm nào, các CSDL đó được người dùng nhìn thấy và xử lý chỉ như là một CSDL tập trung, người dùng có thể không biết và không cần biết đến sự phân tán của dữ liệu. Tính chất này được phát biểu: “sự phân tán của dữ liệu là trong suốt đối với người dùng”. Các thành phần của CSDL phân tán: * Về mặt vật lý: Yếu tố chính để phân biệt một cơ sở dữ liệu phân tán với một cơ sở dữ liệu tập trung là: - Cơ sở dữ liệu phân tán phải có nhiều máy tính gọi là các trạm (sites/nodes). - Các trạm phải được kết nối bởi một kênh truyền thông nào đó để truyền dữ liệu (trao đổi dữ liệu) bao gồm các giao thức truyền thông. Hình 1.4. Các thành phần của CSDL phân tán * Về mặt logic: Phần mềm quản trị CSDL phân tán gồm 3 module chính sau: - Xử lý dữ liệu (DP-Database Processing): Quản lý dữ liệu cục bộ tại các trạm giống như với cơ sở dữ liệu tập trung. - Xử lý ứng dụng (AP-Application Processing): Module này sẽ xử lý các ứng dụng dữ liệu trên mỗi trạm, xử lý các giao dịch con trên các trạm và truy cập các thông tin phân tán trên các trạm. - Xử lý truyền thông (CP-Communication Processing): Module này có nhiệm vụ liên kết (kết nối) các trạm với kênh truyền thông. Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 4
  6. * Ngoài ra hệ quản trị cơ sở dữ liệu phân tán còn có thêm một số chức năng: - Quản lý từ điển dữ liệu tổng thể lưu trữ thông tin liên quan đến các dữ liệu phân tán (các thông tin này được xem như siêu dữ liệu - Super Data). - Định nghĩa các dữ liệu phân tán. - Kiểm tra các ngữ nghĩa của các dữ liệu. - Định giá (trả lời) các câu hỏi phân tán. - Quản lý các giao dịch phân tán. * Một số ưu điểm tiềm năng của hệ CSDL phân tán: - Thích hợp cho bản chất phân tán của nhiều ứng dụng cơ sở dữ liệu. - Cho phép dùng chung dữ liệu trong khi vẫn duy trì được các điều khiển cục bộ. - Nâng cao hiệu năng hệ thống: do CSDL phân tán bao gồm nhiều CSDL cục bộ tại nhiều trạm, nên cho phép tăng khả năng truy cập, thực hiện được nhiều xử lý song song, do đó tăng được hiệu suất, tốc độ xử lý dữ liệu và ứng dụng - Tăng độ tin cậy và an toàn dữ liệu: do dữ liệu được lưu trữ trên nhiều bản sao đồng bộ nên có khả năng khôi phục dữ liệu khi xảy ra sự cố ở một vài trạm. Kết luận: Như vậy, có thể xem CSDL phân tán là một bộ sưu tập các dữ liệu mà về mặt logic thuộc cùng một hệ thống CSDL nhưng về mặt vật lý được phân bố trên các trạm của một mạng máy tính. Hệ quản trị CSDL phân tán (để cho gọn ta cũng gọi chung là hệ quản trị CSDL hay DBMS, nếu không gây nhầm lẫn) là hệ thống phần mềm cho phép quản lý CSDL phân tán, làm cho việc phân tán trở nên trong suốt với người dùng (Hồ Thuần và Hồ Cẩm Hà, 2007). 1.2. CÁC MÔ HÌNH PHÂN TÁN DỮ LIỆU 1.2.1 Tính thuần nhất và không thuần nhất của một hệ CSDL phân tán Để xây dựng CSDL phân tán, người ta phải phân bố dữ liệu trên các trạm khác nhau. Mỗi cách tiếp cận cho việc phân bố dữ liệu sẽ nhận được một CSDL phân tán với những tính chất khác nhau. 1.2.1.1. CSDL phân tán thuần nhất (Homogeneous DDB) Tính thuần nhất của một CSDL phân tán thể hiện ở các tính chất cơ bản: (i) Các CSDL cục bộ đều có cùng mô hình CSDL và có cùng cấu trúc dữ liệu. (ii) Các CSDL cục bộ được quản trị bởi cùng một hệ quản trị CSDL. Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 5
  7. Hình 1.5. Thiết kế CSDL phân tán thuần nhất Nói chung điều kiện (ii) thường bao gồm cả điều kiện (i), bởi vì khi các CSDL cục bộ được quản trị bởi cùng một hệ QTCSDL thì các CSDL đó phải có cùng mô hình (chẳng hạn mô hình quan hệ). Một CSDL phân tán thuần nhất thường có được từ việc chia một CSDL tập trung thành một tập các CSDL cục bộ. Như vậy, CSDL phân tán thuần nhất thường là kết quả của một cách thiết kế “từ trên xuống”. Theo cách này, ta thiết kế một CSDL phân tán từ một CSDL tập trung, rồi tách thành các trạm, tạo thuận lợi cho cho sự tăng trưởng của một tổ chức (cơ quan, doanh nghiệp…). Mô hình này cũng cải thiện hiệu năng của việc quản lý và khai thác dữ liệu nhờ khả năng xử lý song song được cung cấp bởi sự có mặt của nhiều trạm. 1.2.1.2. CSDL phân tán không thuần nhất (Hetorogeneous DDB) Tính không thuần nhất của một CSDL phân tán thể hiện ở việc nó không thỏa một trong (hoặc cả hai) tính chất (i) và (ii) trên đây. Một CSDL phân tán không thuần thường được xây dựng bằng việc tích hợp các CSDL cục bộ đã có thành một hệ thống CSDL. Các CSDL cục bộ này có thể được thiết kế theo nhiều mô hình dữ liệu khác nhau, vì vậy có thể có cấu trúc dữ liệu khác nhau và được quản trị bởi các hệ quản trị dữ liệu khác nhau. Như vậy, CSDL phân tán không thuần nhất thường là kết quả của các thiết kế “từ dưới lên”, cho phép tích hợp các CSDL hiện có và độc lập với nhau, như vậy, không phải tạo ra một CSDL hoàn toàn mới. Như vậy, ngoài các chức năng chung, các hệ quản trị CSDL phân tán không thuần nhất phải cung cấp các giao diện để các hệ quản trị CSDL cục bộ có thể giao tiếp được với nhau, việc này thường được giải quyết bằng cách xây dựng một “mô hình trụ cột” chung cho tất cả các CSDL cục bộ, mọi thao tác của các CSDL cục bộ đều thông qua mô hình trụ cột này. Rõ ràng các tiếp cận không thuần nhất cho việc phân tán dữ liệu là phức tạp hơn nhiều so với cách tiếp cận thuần nhất. Oracle là một hệ quản trị CSDL hỗ trợ việc liên kết dữ liệu trong một CSDL phân tán không thuần nhất. Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 6
  8. Hình 1.6. Thiết kế CSDL phân tán thuần nhất không thuần nhất 1.2.2. Các mô hình phân tán dữ liệu 1.2.2.1. Cơ sở dữ liệu từ xa (Remote Database). - Khái niệm: Cơ sở dữ liệu từ xa (remote database) là một CSDL đặt trên một máy tính khác với máy tính của người dùng và được truy cập nhờ vào các lệnh truyền thông được xác định bởi người dùng. - Các đặc điểm của remote DB: + Máy tính của người dùng duy trì một CSDL riêng được nạp từ CSDL từ xa trên máy chủ. + Việc quản trị CSDL từ xa được thực hiện bởi một DBMS trên máy chủ. + Việc quản trị CSDL người dùng thực hiện trên máy trạm của người dùng, bởi phiên bản micro của DBMS trên máy chủ, người dùng phải đảm bảo sự nhất quán dự liệu riêng với dữ liệu máy chủ. + Nói chung việc truy cập CSDL từ xa thường được hạn chế trong việc tra cứu thông tin, các phép cập nhật được làm theo cách tập trung trên máy chủ. Cách tiếp cận CSDL từ xa cho một chức năng hạn chế, nhưng không vấp phải những vấn đề khó khăn nhất của CSDL phân tán (quản lý từ điển dữ liệu, xử lý các giao dịch phân tán…). Thí dụ 1.1. Phòng đào tạo có một CSDL đặt trên một máy chủ gồm danh sách SV mỗi khóa của mỗi môn học, điểm kiểm tra, điểm chuyên cần, điểm thi. Giáo viên và sinh viên có thể truy cập và tải về đề sử dụng. Đây là một mô hình CSDL từ xa. 1.2.2.2. Cơ sở dữ liệu liên hiệp (federated database) Cơ sở dữ liệu liên hiệp (federated database) là một mô hình phân tán dữ liệu bao gồm các CSDL cục bộ, nhưng các CSDL cục bộ này không tích hợp thành một CSDL duy nhất như với CSDL phân tán mà chúng tạo thành các liên tác, trong phạm vi chúng có thể trao đổi dữ liệu. Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 7
  9. Cách tiếp cận CSDL liên hiệp nhằm tránh gặp phải những khó khăn rất lớn của việc quản trị tập trung các CSDL phân tán, nhất là khi có một số lớn các CSDL cục bộ tham gia, đó là: - Việc quản trị tập trung của CSDL phân tán là rất phức tạp nhất là khi số trạm là rất lớn. - Mọi truy cập tới CSDL phân tán đều thông qua hệ quản trị CSDL. - Khi truy cập tới một đơn vị dữ liệu dù trên trạm cục bộ nhưng vẫn thông qua hệ quản trị CSDL phân tán làm cho tốc độ xử lý dữ liệu cục bộ chậm lại bởi các chi phí của việc quản lý các dữ liệu phân tán. Trong CSDL liên hiệp, người ta nới lỏng các ràng buộc chặt giừa các CSDL cục bộ và cung cấp cho người dùng một ngôn ngữ để định nghĩa các mối quan hệ giữa các CSDL khác nhau và thao tác trên nhiều CSDL cùng một lúc nhờ một ngôn ngữ đa cơ sở dữ liệu (multidatabase language) Thường là không có quá nhiều máy trạm trong một CSDL liên hiệp.. Một số đặc điểm của CSDL liên hiệp: - Nhằm ưu tiên người dùng thao tác CSDL cục bộ và xem việc truy cập tới một CSDL khác là không thường xuyên. - Sự phân tán là không trong suốt đối với người dùng. Sự khác nhau giữa hệ quản trị CSDL liên hiệp và hệ quản trị CSDL phân tán là: - Không quản lý từ điển dữ liệu tổng thể. - Hỗ trợ một ngôn ngữ để định nghĩa các phụ thuộc có thể có giữa các CSDL trong liên hiệp (multidatabase language). - Hỗ trợ một ngôn ngữ để định nghĩa và thao tác trên các CSDL thuộc liên hiệp (multidatabase language). 1.2.2.3. Cơ sở dữ liệu song song (parallel database) Một mô hình phân tán dữ liệu được khai thác nhiều trong thời gian gần đây là việc phân bố dữ liệu trên một tập các nút (nodes) của một máy tính song song (siêu máy tính với bộ đa xử lý) để tăng hiệu quả của việc quản lý dữ liệu. Mô hình này còn được gọi là cơ sở dữ liệu song song (parallel database) (Hình 1.7). CSDL song song có thể được mô tả như sau: - Phần cứng: Là một máy tính song song (siêu máy tính với nhiều bộ vi xử lý), mỗi một node của máy tính song song sẽ xử lý một CSDL cục bộ. Các liên hệ giữa các node sẽ thông qua bus dữ liệu của máy tính. - Phần mềm: Dùng chung một phần mềm quản trị CSDL duy nhất. Cơ sở dữ liệu song song được xem như một hộp đen xử lý dữ liệu và thường gọi là “máy Cơ sở dữ liệu” (database machine). Sự giống nhau và khác nhau giữa CSDL phân tán và CSDL song song: - Giống nhau: Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 8
  10. + Cùng có nhiều CSDL cục bộ. + Có chung một phần mềm quản lý CSDL. + Hoạt động như một CSDL phân tán thuần nhất. - Khác nhau: + Chỉ có một máy đặt tại một trạm. + Không dùng kênh truyền thông. Hình 1.7. Cơ sở dữ liệu song song (Máy cơ sở dữ liệu) 1.3. CÁC TÍNH CHẤT CƠ BẢN CỦA MỘT HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN Các hệ quản trị CSDL phân tán phải làm cho người sử dụng trong hệ thống không biết và không cần biết tới sự phân tán của dữ liệu và việc sử dụng CSDL phân tán phải không khó hơn CSDL tập trung. Như vậy các hệ quản trị CSDL phân tán phải cung cấp các mức độc lập khác nhau đối với dữ liệu và đối với người dùng, nói cách khac, các hệ quản trị CSDL phân tán phải tạo nên các tính chất cơ bản của một hệ CSDL phân tán, đó cũng là các mục tiêu của một hệ CSDL phân tán. 1.3.1. Tính độc lập đối với sự phân bố dữ liệu Nhờ tính chất này, người dùng sẽ không cần quan tâm tới sự phân tán của dữ liệu và có thể không biết là có sự phân tán. Thông tin về sự phân tán của dữ liệu (chẳng hạn một quan hệ được phân tán thành các quan hệ con và đặt trên các trạm khác nhau) được lưu trữ trong từ điển dữ liệu tổng thể và được hệ quản trị CSDL phân tán tham khảo để xác định vị trí của các thông tin Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 9
  11. được phân tán (các quan hệ con có liên quan đến một quan hệ nào đó). Lưu trữ từ điển dữ liệu tổng thể có 3 cách: - Tập trung tại một trạm xem như máy chủ: từ điển DL được tổ chức tập trung. - Mỗi một trạm được cung cấp một từ điển dữ liệu tổng thể: từ điển DL được tổ chức có nhân bản. - Từ điển dữ liệu được phân đoạn và lưu trữ trên các trạm: Từ điển được tổ chức phân tán. Tính độc lập với sự phân tán dữ liệu sẽ đảm bảo sự định vị dữ liệu sẽ độc lập với sự phân bố dữ liệu vật lý: Khi thay đổi dữ liệu về mặt vật lý thì chỉ có từ điển dữ liệu là thay đổi; không làm thay đổi phần mềm ứng dụng. 1.3.2. Tính độc lập đối với sự phân đoạn của các quan hệ Tính độc lập đối với sự phân đoạn sẽ che dấu người dùng về việc các dữ liệu đã bị phân đoạn (hoặc: sự phân đoạn là trong suốt đối với người dùng). Trong CSDL phân tán, các quan hệ được phân đoạn và có thể lưu trữ ở các trạm khác nhau, việc phân đoạn là nhằm tăng tính hiệu quả của một CSDL phân tán và nó cho phép đơn giản hóa các truy cập địa phương. Khi người dùng truy cập tới các quan hệ tổng thể, hệ quản trị CSDL phân tán sẽ tham chiếu tới các đoạn một cách phù hợp, thông tin về sự phân đoạn được lưu trữ trong từ điển, vì vậy sự phân đoạn là độc lập với người dùng. Tính độc lập đối với sự phân đoạn được đảm bảo bởi hệ quản trị CSDL phân tán. 1.3.3. Tính độc lập đối với sự nhân bản Sự nhân bản là một giải pháp cho an toàn dữ liệu. Sự nhân bản là việc tạo ra các bản sao dư thừa. Một đoạn được nhân bản khi tồn tại hai hay nhiều bản sao của nó. Mỗi bản sao được lưu trữ trên một hay nhiều trạm khác nhau. Ngoài ra, sự nhân bản còn làm tăng tính sẵn sàng truy cập và tăng khả năng xử lý cục bộ. Việc duy trì và đồng bộ các bản sao là khá phức tạp và tốn kém. Tuy nhiên, do vấn đề an toàn dữ liệu thì mọi CSDL phân tán đều phải thực hiện nhân bản. Tính độc lập đối với sự nhân bản là làm cho người dùng không biết là có sự nhân bản mà chỉ nhìn thấy các quan hệ không nhân bản. Như vậy, sự nhân bản là trong suốt đối với người dùng. 1.3.4. Tính độc lập đối với các hệ quản trị CSDL cục bộ - Tính độc lập này cho phép che dấu một sự kiện là các hệ quản trị CSDL địa phương có thể khác nhau. Mục tiêu này rất khó thực hiện hoàn toàn, nhất là đối với hệ CSDL phân tán không thuần nhất, người ta đưa ra một giải pháp gần đây nhất, là dùng một mô hình trụ cột (thường chọn là mô hình quan hệ) và xác định một bộ chương trình dịch giữa các mô hình cục bộ và mô hình trụ cột. Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 10
  12. - Người dùng ở các trạm không cần quan tâm đến các hệ quản trị CSDL ở các trạm khác, họ cứ việc dùng chương trình quen thuộc của mình. Việc dịch các lệnh, câu hỏi từ các mô hình cục bộ về mô hình trụ cột do hệ quản trị CSDL phân tán đảm nhận. - Tính độc lập này được đảm bảo bởi hệ quản trị CSDL phân tán. Hệ quản trị CSDL Oracle hỗ trợ tính độc lập của các mô hình phân tán, cho phép các user truy nhập tới CSDL phân tán như một khối thống nhất, vì vậy nó được đánh giá là ưu việt nhất hiện nay, đặc biệt là cho các CSDL phân tán. 1.3.5. Tính tự trị của các trạm - Đây là một tính chất cho phép các trạm điều khiển và thao tác dữ liệu cục bộ của mình độc lập với các trạm khác. Mỗi trạm có thể tự quản trị CSDL cục bộ, nhưng cũng có thể tham gia trong hệ thống CSDL phân tán với vai trò như là máy khách (client) hoặc với vai trò như máy chủ (server). Việc quản trị CSDL phân tán hoàn toàn phi tập trung. - Tính tự trị được đảm bảo bởi hệ quản trị CSDL phân tán. 1.3.6. Tính mở rộng Là một khả năng tăng trưởng hệ thống CSDL phân tán bằng việc đưa thêm vào các trạm mới với các tác động tối thiểu lên các CSDL cục bộ và các chương trình ứng dụng hiện có. 1.3.7. Tính ổn định Tính chất này đảm bảo rằng mọi sự cố trên một phần nhỏ của hệ thống rất ít hoặc hoàn toàn không ảnh hưởng đến hoạt động của toàn bộ hệ thống. 1.3.8. Cải thiện hiệu năng khai thác và xử lý dữ liệu - Đây là tính chất sống còn của cách tiếp cận CSDL phân tán. - Vấn đề cốt yếu là phân đoạn hợp lý và nhân bản dữ liệu để có thể khai thác và xử lý song song trên CSDL phân tán. 1.4. CÁC KIẾN TRÚC CỦA MỘT HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN 1.4.1. Kiến trúc lược đồ của CSDLPT Kiến trúc lược đồ nhằm đề xuất việc tổ chức lý tưởng nhất một CSDLPT hỗ trợ các mức độc lập đối với dữ liệu và người dùng. Kiến trúc lược đồ của CSDL phân tán là sự mở rộng kiến trúc 3 mức cho CSDL tập trung. 1.4.1.1. Nhắc lại kiến trúc 3 mức trong CSDL tập trung Kiến trúc 3 mức theo tiêu chuẩn ANSI/SPARC (American National Standards Institute: Viện Tiêu chuẩn quốc gia Mỹ/Planing and Requirement Committee: Ủy ban nhu cầu và kế hoạch Mỹ) được mô tả hình 1.8. Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 11
  13. Hình 1.8. Ba mức của kiến trúc lược đồ trong các CSDL cục bộ - Mức khung nhìn: Gồm các lược đồ ngoài, mỗi lược đồ ngoài mô tả chỉ một phần của CSDL, thích hợp với một nhóm người sử dụng nhất định. Mỗi người sử dụng có thể không quan tâm đến toàn bộ CSDL mà chỉ cần một phần thông tin nào đó. - Mức logic: Gồm các lược đồ khái niệm, các lược đồ này mô tả những dữ liệu nào được lưu trữ trong CSDL, mối quan hệ giữa chúng. Chẳng hạn lược đồ khái niệm chỉ quan tâm đến các quan hệ được lưu trữ trong CSDL và các mối liên hệ giữa chúng chứ không quan tâm đến cách thức lưu trữ các quan hệ này. - Mức vật lý: Gồm các lược đồ trong, các lược đồ này mô tả dữ liệu được lưu trữ như thế nào trong bộ nhớ thứ cấp. Mức này phản ánh cấu trúc dữ liệu, cách tổ chức tệp, các kỹ thuật nén dữ liệu, cấp phát vùng nhớ… Dưới đây chúng ta sẽ xem xét kiến trúc lược đồ của một CSDL phân tán. 1.4.1.2. Kiến trúc lược đồ của CSDL phân tán Kiến trúc lược đồ của CSDL phân tán là sự mở rộng kiến trúc 3 mức cho CSDL tập trung. Với kiến trúc lược đồ này, tính độc lập dữ liệu dễ dàng được đảm bảo. Mọi thông tin liên quan đến các lược đồ và các phép biến đổi giữa các lược đồ (các ánh xạ) được lưu giữ trong từ điển dữ liệu. Trước hết ta đưa ra một số khái niệm liên quan đến các lược đồ CSDL phân tán, trong đó các mức của lược đồ mô tả CSDLPT mà độc lập với mọi CSDL cục bộ thì được gọi là mức tổng thể, các mức lược đồ mô tả một CSDL cục bộ được là mức cục bộ. Định nghĩa 1.2: Lược đồ tổng thể (Global Scheme) là một mô tả tổng thể và thống nhất của tất cả các dữ liệu của CSDL phân tán và độc lập với môi trường phân tán. Định nghĩa 1.3: Câu hỏi phân tán (Distributed Query) là câu hỏi được diễn tả phù hợp với các dữ liệu được mô tả bởi lược đồ tổng thể của CSDL phân tán. Định nghĩa 1.4: Câu hỏi cục bộ (Local Query) là câu hỏi diễn tả phù hợp với các dữ liệu được mô tả bởi lược đồ của một CSDL cục bộ. Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 12
  14. Trong kiến trúc lược đồ của một CSDL phân tán (Hình 1.9) có phân biệt 3 mức của lược đồ tổng thể và 3 mức của các lược đồ cục bộ: Hình 1.9. Kiến trúc lược đồ của CSDL phân tán Ba mức của lược đồ tổng thể: - Lược đồ khái niệm tổng thể: Định nghĩa tất cả các quan hệ có trong CSDL phân tán và cung cấp tính độc lập dữ liệu đối với môi trường phân tán. - Các lược đồ ngoài tổng thể: Mỗi lược đồ ngoài tổng thể xác định một khung nhìn của một lớp người dùng nhất định. Các quy tắc định nghĩa khung nhìn được dùng để biến đổi dữ liệu ở mức lược đồ ngoài tổng thể thành dữ liệu ở mức lược đồ khái niệm tổng thể. Nhờ các quy tắc này mà tính độc lập logic của dữ liệu được đảm bảo. - Lược đồ sắp đặt: Xác định chính xác cách thức và vị trí các quan hệ được sắp đặt trên các trạm khác nhau trong mạng. Nó chứa tất cả các thông tin liên quan đến sự định vị, sự phân đoạn và nhân bản dữ liệu, cùng với các quy tắc biến đổi dữ liệu ở mức lược đồ khái niệm tổng thể thành dữ liệu cục bộ có phân đoạn và nhân bản. Ba mức của các lược đồ cục bộ: Cấu trúc lược đồ của một CSDL phân tán gồm 3 mức của lược đồ tổng thể và 3 mức của lược đồ cục bộ, được mô tả trong hình 1.9. - Các lược đồ trong cục bộ: Là mức vật lý của các lược đồ CSDL cục bộ, ý nghĩa và hoạt động giống như các lược đồ trong của CSDL tập trung. Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 13
  15. - Các lược đồ khái niệm cục bộ: Là mức logic của các lược đồ CSDL cục bộ, ý nghĩa và hoạt động giống như các lược đồ khái niệm của CSDL tập trung. - Các lược đồ ngoài cục bộ: Có vai trò biểu diễn các đoạn của quan hệ như đã mô tả trong lược đồ sắp đặt thành các đối tượng của lược đồ ngoài, được xem như các khung nhìn của CSDL cục bộ. Các lược đồ ngoài cục bộ có nhiệm vụ kết nối lược đồ sắt đặt của các lược đồ tổng thể với các CSDL cục bộ. Các lược đồ ngoài cục bộ còn đảm bảo tính độc lập của các hệ quản trị CSDL và phải có nếu môi trường là không thuần nhất. 1.4.2. Kiến trúc chức năng của CSDL phân tán Các chức năng trong một hệ thống CSDL được chia thành 2 nhóm chính trong quan hệ Khách/Chủ (Client/Server). Nhóm khách bao gồm các chức năng xử lý ứng dụng (trình quản lý ứng dụng) và nhóm chủ bao gồm các chức năng xử lý dữ liệu (trình quản lý dữ liệu) có mặt tại mỗi trạm, như vậy mỗi trạm sẽ vừa có vai trò là trạm khách và vừa có vai trò là trạm chủ. Kiến trúc chức năng của hệ CSDL phân tán bao gồm các nhóm chức năng sau: 1.4.2.1. Các chức năng xử lý ứng dụng Các chức năng này còn gọi là trình quản lý ứng dụng, được thực hiện ở các mức của lược đồ tổng thể, bao gồm: - Giao diện người dùng: Kiểm tra các dữ liệu trong câu hỏi người dùng có phù hợp với lược đồ ngoài tổng thể, sau khi thực thi câu hỏi thì trả về kết quả cho người dùng. - Kiểm tra ngữ nghĩa: Biến đổi câu hỏi được diễn đạt trên các khung nhìn trong lược đồ ngoài tổng thể thành câu hỏi diễn đạt trên các quan hệ trong lược đồ khái niệm tổng thể (còn gọi là câu hỏi chính tắc, được biểu diễn bởi các biểu thức đại số quan hệ). - Định giá câu hỏi phân tán: Biến đổi các câu hỏi chính tắc (là các biểu thức đại số quan hệ trên các quan hệ tổng thể trong các quan hệ ở lược đồ khái niệm tổng thể) thành một phương án thực thi phân tán trên các đoạn trong các CSDL cục bộ (nhờ các thông tin trong lược đồ sắp đặt). Chức năng này cũng cho phép tối ưu hóa các câu hỏi phân tán để làm cực tiểu một hàm chi phí (theo thời gian thực hiện hoặc dung lượng dữ liệu cần phải truyền tải giữa các trạm). - Quản lý các giao dịch phân tán: Chức năng này đảm bảo việc điều khiển tương tranh và tính nguyên tố của các giao dịch phân tán. 1.4.2.2. Các chức năng xử lý dữ liệu Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 14
  16. Hình 1.10. Kiến trúc chức năng của một hệ CSDL phân tán Các chức năng này còn gọi là trình quản lý dữ liệu, được thực hiện ở các mức của lược đồ cục bộ, bao gồm: - Định giá các câu hỏi cục bộ: Các câu hỏi cục bộ này nhận được từ các câu hỏi được diễn đạt theo lược đồ sắp đặt thành các câu hỏi diễn đạt theo lược đồ ngoài cục bộ của CSDL cục bộ. - Quản lý các giao dịch con trên mỗi CSDL cục bộ. - Truy cập các CSDL cục bộ Sơ đồ quan hệ Client/Server trong CSDL phân tán được mô tả trong hình 1.10. Nói chung, một câu hỏi của người dùng sẽ viện dẫn tới phần mềm quản lý ứng dụng của trạm khách và phần mềm quản lý dữ liệu của một hay nhiều trạm chủ. Các chức năng xử lý ứng dụng và chức năng xử lý dữ liệu đều được tích hợp trong phần mềm quản trị CSDL phân tán. Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 15
  17. BÀI TẬP CHƯƠNG 1 1. Hãy trình bày những thành phần chính của một hệ Cơ sở dữ liệu phân tán (DDB). Mục đích và yêu cầu của một hệ CSDL phân tán? 2. Thế nào là một CSDL phân tán thuần nhất và không thuần nhất? Nêu các đặc điểm chính của các mô hình phân tán dữ liệu: CSDL từ xa, CSDL song song, CSDL liên hiệp. So sánh mỗi mô hình này với CSDL phân tán. 3. Một CSDL phân tán phải đảm bảo các tính độc lập gì đối với dữ liệu và các hệ quản trị CSDL của các CSDL cục bộ? 4. Hãy phân biệt các khái niệm: Dữ liệu cục bộ, dữ liệu phân tán, câu hỏi cục bộ, câu hỏi phân tán. 5. Phân tích kiến trúc lược đồ và kiến trúc chức năng của một hệ CSDL phân tán. Đối với các lược đồ tổng thể, theo anh/chị thì lược đồ nào là quan trọng nhất đối với một hệ CSDL phân tán. Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 16
  18. Chương 2 TỐI ƯU HÓA CÂU HỔI VÀ QUẢN LÝ CÁC GIAO DỊCH PHÂN TÁN 2.1. ĐỊNH NGHĨA DỮ LIỆU TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN Việc định nghĩa dữ liệu trong CSDL phân tán bao gồm hai vấn đề quan trọng, đó là: - Sự mô tả dữ liệu tổng thể. - Sự phân đoạn và sắp đặt dữ liệu trong mạng máy tính của CSDL phân tán. 2.1.1. Mô tả dữ liệu Thao tác mô tả dữ liệu tổng thể, chẳng hạn thêm một quan hệ mới, hay sửa đổi mô tả đó phụ thuộc chủ yếu vào việc tổ chức từ điển dữ liệu. - Với 1 từ điển DL được tổ chức tập trung, thao tác mô tả dữ liệu rất đơn giản vì nó chỉ liên quan đến một trạm trung tâm lưu trữ từ điển DL. - Với 1 từ điển DL được lưu trữ có nhân bản, thao tác mô tả phải được làm đồng bộ với tất cả các trạm có lưu các bản sao của từ điển DL. - Với 1 từ điển được lưu trữ phân tán thì thao tác mô tả là phức tạp nhất, mô tả dữ liệu thoạt đầu được đưa vào trạm cục bộ mà tại đó dữ liệu được tạo ra, trạm này gọi là trạm “tạo sinh”, sau đó trạm “tạo sinh” và các trạm khác được phép truy cập dữ liệu mới sẽ hợp tác và trao đổi thông tin về mô tả dữ liệu. Trạm tạo sinh có thể biết danh sách các trạm được phép truy cập các dữ liệu riêng của nó, nhằm thông báo cho các trạm này mọi thay đổi về mô tả dữ liệu. 2.1.2. Các kiểu phân đoạn dữ liệu Sự sắp đặt dữ liệu bằng cách chia một quan hệ tổng thể thành các đơn vị logic trong lược đồ khái niệm tổng thể gọi là sự phân đoạn dữ liệu. Sự phân đoạn nhằm chia các quan hệ thành các đơn vị nhỏ hơn (gọi là các đoạn) để có thể sắp đặt tối ưu trong CSDL phân tán. Có ba kiểu phân đoạn: phân đoạn ngang, phân đoạn dọc và phân đoạn hỗn hợp nhằm chia các quan hệ R thành các quan hệ con, được khai báo trong lược đồ khái niệm tổng thể và được sắp đặt phù hợp trên các trạm (Hình 2.1). R1 R1 R2 R1 R2 R2 R3 (a) Phân đoạn ngang (b) Phân đoạn dọc (c) Phân đoạn hỗn hợp Hình 2.1. Các kiểu phân đoạn dữ liệu Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 17
  19. Sự phân đoạn một quan hệ được xác định bởi người quản trị CSDL, theo thiết kế của hệ thống thông tin nhằm tối ưu hóa việc cập nhật dữ liệu. Sự phân đoạn một quan hệ phải thỏa mãn các yêu cầu: - Mỗi phép phân đoạn l à một phân tách không mất thông tin: Tức là mỗi phần tử dữ liệu của quan hệ tổng thể phải thuộc một hay nhiều đoạn của phân tách, dữ liệu không mất đi nhưng cũng không thêm dữ liệu mới. - Khôi phục lại được quan hệ ban đầu từ các đoạn. - Các đoạn là không trùng lặp: Nhằm tránh dư thừa dữ liệu (đối với các phân đoạn ngang điều này là bắt buộc, đối với các phân đoạn dọc thì mỗi đoạn chỉ cho phép trùng lặp các thuộc tính khóa để khôi phục được quan hệ ban đầu). Thao tác phân đoạn và việc khôi phục lại các quan hệ được thực hiện dựa trên các phép toán của đại số quan hệ. Trước khi nghiên cứu các phương pháp phân đoạn dữ liệu, ta nhắc lại các phép toán của đại số quan hệ. 2.1.3. Các phép toán đại số quan hệ trong phân đoạn dữ liệu Việc phân đoạn một quan hệ tổng thể thành các đoạn (mảnh) và khôi phục các quan hệ tổng thể từ các đoạn được thực hiện bởi các phép toán đại số quan hệ. Đại số quan hệ là cơ sở quan trọng của một ngôn ngữ bậc cao được sử dụng để thao tác trên các quan hệ. Ngôn ngữ này bao gồm hai nhóm phép toán: các phép toán trên tập hợp (phép hợp, phép giao, phép trừ và tích Đề các) và các phép toán chỉ trên các quan hệ (phép chọn, phép chiếu, phép kết nối và phép nửa kết nối). Trước hết chúng ta đưa ra một số quy ước về ký pháp và nhắc lại các khái niệm liên quan đến các phép toán đại số quan hệ: - Một lược đồ quan hệ R xác định trên tập thuộc tính  = {A1, A2,…, An}, có thể ký hiệu R(A1, A2,…, An), hay R = {A1, A2,…, An}. Một thể hiện của lược đồ quan hệ R là một quan hệ, được ký hiệu bằng chữ r (in thường). Quan hệ r có thể biểu diễn bằng một bảng. - Tập các giá trị có thể của thuộc tính Aj, ký hiệu Dom(Aj) và gọi là miền trị của thứ j của quan hệ r trên lược đồ quan hệ R. - Hai quan hệ là cùng bậc nếu chúng có cùng số thuộc tính. - Hai quan hệ là khả hợp nếu chúng có cùng bậc và thuộc tính thứ j của quan hệ này có cùng miền trị với thuộc tính thứ j của quan hệ kia. - Rõ ràng, các quan hệ xác định trên cùng một lược đồ quan hệ là các quan hệ khả hợp. Sau đây, chúng ta nhắc lại một số định nghĩa về các phép toán đại số quan hệ và một số công thức thường được sử dụng trong đại số quan hệ. 2.1.3.1. Định nghĩa các phép toán đại số quan hệ (1) Phép hợp: Hợp (union) của hai quan hệ khả hợp r và s, là một quan hệ, được ký hiệu và xác định như sau: r  s = {t | t  r hoặc t  s} Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 18
  20. Như vậy, hợp của hai quan hệ r và s là một quan hệ chứa tất cả các bộ của r và s (những bộ chung chỉ xuất hiện 1 lần). (2) Phép giao: Giao (intersection) của hai quan hệ khả hợp r và s, là một quan hệ, được ký hiệu và xác định như sau: r  s = {t | t  r và t  s} Như vậy, giao của hai quan hệ r và s là một quan hệ chỉ chứa các bộ chung của r và s. (3) Phép trừ: Hiệu (set difference) của hai quan hệ khả hợp r và s, là một quan hệ, được ký hiệu và xác định như sau: r – s = {t | t  r và t  s} Như vậy, hiệu của hai quan hệ r và s là một quan hệ chỉ chứa các bộ thuộc r mà không thuộc s. (4) Tích Đề các (Descartes): Cho r là một quan hệ xác định trên tập thuộc tính {A1, A2,…, An} và s là quan hệ xác định trên {B1, B2,…, Bm}. Tích Đề các của hai quan hệ r và s là một quan hệ được ký hiệu và xác định như sau: r  s = {t | t = (a1,..., an, b1,..., bm), với (a1,..., an)  r ; (b1,..., bm)  s} Như vậy, Tích Đề các của hai quan hệ r và s là một quan hệ mà mỗi bộ là ghép nối của một bộ trong r với một bộ trong s. Rõ ràng nếu r có p bộ và s có q bộ thì r  s chứa p.q bộ. (5) Phép chiếu: Cho r là một quan hệ trên tập thuộc tính  = {A1, A2,…, An}, giả sử X  , chiếu (projection) của quan hệ r lên tập thuộc tính X cho kết quả là một quan hệ con của quan hệ r, được ký hiệu và xác định như sau: X(r) = { t[X] | t  r } Trong đó t  X  là hạn chế của bộ t của r trên tập thuộc tính X, với X = Ai1 ,..., Aik , thì    t  X  = t  A i1  ,..., t  A ik   Như vậy, chiếu của quan hệ r trên tập thuộc tính X, là quan hệ con nhận được từ r bằng cách bỏ đi những thuộc tính (các cột) trong r mà không có mặt trong X. Với quan hệ con nhận được, nếu xuất hiện nhiều bộ giống nhau thì chỉ giữ lại một bộ trong số các bộ giống nhau. (6) Phép chọn: Phép chọn (selection) là phép toán cho kết quả là một quan hệ con gồm một tập con các bộ của quan hệ r thỏa mãn điều kiện C nào đó, được ký hiệu và xác định như sau: C(r) = {t  r | C(t) = True (đúng)} Trong đó, điều kiện C là một biểu thức boolean của các toán hạng, mỗi toán hạng là một phép so sánh giữa hai biến là hai thuộc tính, hoặc giữa một biến là thuộc tính và một hằng, C cho giá trị đúng hoặc sai đối với mỗi bộ của r, nếu đúng, bộ đó được chọn vào quan hệ mới c(r). Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 19
nguon tai.lieu . vn