phầnItổng quan về hệ cơsởdữliệuphântán I. Giới thiệu chung. Định nghĩa: Hệ CSDL phântán là một tập hợp dữliệu mà về mặt logic tập dữliệu này thuộc về một hệ thống, nhng đợc trải trên các vị trí khác nhau và chúng có thể kết nối với nhau thông qua một mạng thông tin dữ liệu. Có hai điểm quan trọng đợc nêu ra trong định nghĩa là: - Phân tán: Dữliệu không c trú trên một vị trí, mà đợc phân bố rộng khắp trên nhiều máy tính đặt tại nhiều vị trí khác nhau. - Tơng quan logic: Dữliệucó một số các thuộc tính ràng buộc chúng với nhau, điều này giúp chúng ta có thể phân biệt một CSDL phântán với một tập hợp CSDL cục bộ, các tệp c trú tại các vị trí khác nhau, hay hệ thống CSDL phân quyền trong một mạng máy tính. Hệ thống mạng thông tin cho phép ngời dùng chia sẻ dữ liệu, vì vậy ngời sử dụng hoặc ứng dụng ở vị trí A đều có thể truy cập hay cập nhật dữliệu tại vị trí B. Các vị trí của một hệ thống phântáncó thể trải rộng trên một khu vực lớn (toàn thế giới) hoặc một phạm vi hẹp (toà nhà). Cũng nh vậy máy tính ở các vị trí phântáncó thể là bất cứ loại nào, từ micro-computer cho đến supercomputer. II. Các đặc điểm chính của hệphân tán. Hệphântáncó các đặc điểm: 1. Chia xẻ tài nguyên. Thuật ngữ tài nguyên dùng để chỉ tất cả mọi thứ có thể chia xẻ bởi Hệphân tán, bao gồm các thiết bị phần cứng: Đĩa, máy in . tới các đối tợng nh file, các cửa sổ, CSDL và các đối tợngdữliệu khác. Việc chia xẻ tài nguyên trên hệphântán - nơi mà các tài nguyên bị lệ thuộc về mặt vật lý với một máy tính nào đó - đợc thực hiện thông qua truyền thông. Để chia xẻ tài nguyên một cách hiệu quả mỗi tài nguyên cần phải đ ợc quản lý bởi một chơng trình có giao diện truyền thông, các tài nguyên có thể đợc truy nhập, cập nhật một cách tin cậy và nhất quán. Quản lý tài nguyên ở đây là lập kế hoạch dự phòng, đặt tên cho các lớp tài nguyên, cho phép tài nguyên đợc truy nhập từ nơi khác, ánh xạ tên tài nguyên vào địa chỉ truyền thông . Mô hình mạng máy tính thờng đợc sử dụng là: Mô hình xử lý Client-Server. Mô hình xử lý Client-Server: Là một mô hình trong đó có việc xử lý hợp tác đối với các yêu cầu của Client nêu ra với máy Server. Máy Server tiến hành xử lý và gửi trả kết quảvề cho Client. Việc xử lý hợp tác Client-Server thực tế là một dạng riêng của xử lý phântán với tài nguyên (và nhiệm vụ ảnh h - ởng tới tài nguyên) đợc trải qua hai hay nhiều hệ thống tính toán rời rạc. Mô hình xử lý Client-Server đã nổi lên nh một mức cao hơn của việc xử lý dùng chung thiết bị đã có trong mang cục bộ (LAN). Trong môi trờng xử lý dùng chung thiết bị, các máy tính cá nhân (PC) đợc gắn với thiết bị hệ thống để cho phép các PC này dùng chung tài nguyên tệp trên đĩa cứng và máy in là các thí dụ tiêu biểu. Theo thuật ngữ LAN, các thiết bị dùng chung nh vậy đợc gọi là các Server (phục vụ). Tên phục vụ là thích hợp hơn cả vì các thiết bị dùng chung này dùng để nhận các yêu cầu cần phục vụ từ các PC. Trong xử lý dùng chung thiết bị trên LAN, các yêu cầu của PC này thờng bị giới hạn về các dịch vụ liên quan tới tệp dùng chung hay tệp xử lý in. Nhợc điểm hiển nhiên của cách tiếp cận nh vậy là ở chỗ mọi xử lý ứng dụng đều đợc thực hiện trên các PC riêng lẻ, và chỉ một chức năng nào đó (in, vào ra tệp) mới là phân tán. Do đó, toàn bộ tệp phải đợc gửi cho một PC đã ban ra yêu cầu READ tệp đó. Nếu tệp đợc cập nhật thì toàn bộ tệp đó bị khoá bởi PC đã tạo ra yêu cầu cập nhật tệp đó. Chính vì các lý do trên mà mô hình xử lý Client-Server là việc mở rộng tự nhiên của việc dùng chung thiết bị và vai trò của các trạm làm việc trở thành khách của máy chủ. Phầncó ý nghĩa nhất của mô hình này là xử lý ứng dụng đợc phân chia (không nhất thiết phải chia đều) giữa Client và Server. Xử lý thực tế đợc khởi đầu và kiểm soát một phần bởi nơi yêu cầu dịch vụ là Client nhng không phải theo kiểu chủ-khách. Thay vì điều đó, cả Client và Server đều hợp tác để thực hiện thành công ứng dụng. Chẳng hạn nếu PC chạy chơng trình cần một bản ghi đặc biệt nào đó từ một tệp dùng chung thì nó sẽ chuyển yêu cầu cho Server CSDL tiến hàng xử lý cục bộ rồi nhận lại đúng bản ghi đã yêu cầu. Nh vậy về mặt kiến trúc xử lý Client-Server cho thấy: - Đờng liên lạc tin cậy, chắc chắn giữa Client và Server. - Các trờng hợp tơng tác Client-Server do Client khởi xớng. - Phântán xử lý ứng dụng giữa Client và Server. - Server kiểm soát các dịch vụ mà Client yêu cầu. - Server làm trọng tài cho các yêu cầu tranh chấp. Với Hệ CSDL phân tán, mô hình Client-Server có các u điểm: - Các công ty lợi dụng đợc công nghệ tính toán của PC. PC ngày nay cung cấp một năng lực tính toán đáng kể (mà trớc đây chỉ các máy tính lớn mới có đợc) nhng lại với một giá thành nhỏ. - Cho phép xử lý đợc thực hiện tại gần nguồn dữliệu cần xử lý (các CSDL trên Server). Do đó lu lợng và thời gian đáp ứng của mạng giảm đi rất nhiều, hiệu năng và khả năng chuyển tải của mạng đợc tăng lên. - Tạo điều kiện cho việc dùng giao diện đồ hoạ (GUI) có sẵn trên các trạm làm việc hiện có. - Cho phép và hỗ trợ hệ thống mở: Client và Server có thể chạy trên các nền phần cứng và phần mềm khác nhau. Tuy nhiên không phải là mô hình Client-Server đã hoàn chỉnh, nó vẫn còn các nhợc điểm sau đây: - Nếu có khá nhiều thành phần logic của ứng dụng đợc chuyển về Server thì Server sẽ trở thành cổ chai y nh máy tính lớn (main frame) mô hình thiết bị đầu cuối. Các tài nguyên hạn chế của Server sẽ ở trạng thái bị đòi hỏi làm việc ở mức cao hơn do việc tăng số ngời tiêu thụ tài nguyên (End User). - Các ứng dụng phân tán, đặc biệt là những ứng dụng đợc thiết kế cho xử lý hợp tác thờng phức tạp hơn các ứng dụng không phân tán. Tuy nhiên có thể giảm bớt độ phức tạp bằng cách thu nhỏ vấn đề lớn thành một tập hợp vấn đề nhỏ hơn, có thể đợc tính độc lập nhau, tơng tự nh trong hệ thiết kế đơn thể. 2. Tính mở. Tính mở của một hệ thống máy tính là tính dễ dàng mở rộng phần cứng (thêm các thiết bị ngoại vi, bộ nhớ, các giao diện truyền thông . ) và phần mềm (Các mô hình hệ điều hành, các giao thức truyên thông, các dịch vụ dùng chung tài nguyên .) của nó. Một Hệphântáncó tính mở là hệcó thể đợc tạo nên từ nhiều loại phần cứng và phần mềm của nhiều nhà cung cấp khác nhau với điều kiện là các thành phần này phải theo một tiêu chuẩn chung. Tính mở của Hệphântán đợc xem xét theo mức độ 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 (hay các giao diện chính là phổ dụng). Tính mở của Hệphântá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. 3. Khả năng song song. Hệphântán hoạt động trên một mạng truyền thông có nhiều máy tính, mỗi máy tính có thể có một hay nhiều CPU. Trong cùng một thời điểm nếu có N tiến trình cùng tồn tại, ta nói chúng đợc thực hiện đồng thời. Việc thực hiện các tiến trình theo cơ chế phân chia thời gian (một CPU) hay song song (nhiều CPU). Khả năng làm việc song song trong Hệphântán đợc thực hiện do hai tình huống sau: - Nhiều ngời sử dụng đồng thời đa ra các lệnh hay tơng tác với các chơng trình ứng dụng. - Nhiều tiến trình Server chạy đồng thời, mỗi tiến trình đáp ứng yêu cầu từ các tiến trình Client. 4. Khả năng mở rộng. Hệphântáncó khả năng hoạt động tốt và hiệu quả ở nhiền mức khác nhau. Một Hệphântán nhỏ nhất có thể hoạt động chỉ cần hai trạm làm việc và một File Server. Các hệ lớn hơn thì gồm có hàng nghìn máy, nhiều File Server, Printer Server. Khả năng mở rộng của một hệphântán đặc trng bởi tính không thay đổi phần mềm hệ thống và phần mềm ứng dụng khi hệ đợc mở rộng. Điều này chỉ đạt ở mức độ nào đó đối với các Hệphântán hiện tại. Yêu cầu cho việc mở rộng không chỉ là sự mở rộng vềphần cứng hay về mạng mà nó trải rộng trên tất cả các khía cạnh khi thiết kế hệphân tán. Một ví dụ đơn giản là tần suất sử dụng một file lớn tơng đơng với việc tăng thêm số ngời sử dụng trên mạng. Để tránh tình trạng tắc nghẽn xảy ra khi chỉ có một Server đáp ứng các yêu cầu truy nhập file đó, ngời ta nhân bản file đó trên một vài Server và hệ thống đợc thiết kế sao cho việc thêm Server dễ dàng. Một số giải pháp khác là sử dụng Cache và các bản sao dữ liệu. 5. Khả năng chịu lỗi. Việc thiết kế khả năng chịu lỗi của các hệ thống máy tính dựa trên hai giải pháp sau: - Dùng khả năng thay thế để đảm bảo sự hoạt động liên tục và hiệu quả. - Dùng các chơng trình phục hồi dữ liệu, thông tin khi xảy ra sự cố. Để xây dựng một hệ thống có thể khắc phục sự cố theo cách thứ nhất thì ngời ta nối hai máy tính với nhau để thực hiện một chơng trình, một trong hai máy chạy ở chế độ Standby (không tải hay chờ). Giải pháp này khá tốn kém vì phải nhân đôi phân cứng của hệ thống. Một giải pháp để giảm phí tổn là các Server riêng lẻ đ ợc cung cấp các ứng dụng quan trọng để có thể thay thế nhau khi có sự cố xuất hiện. Khi không có sự cố các Server hoạt động bình th ờng (nghĩa là vẫn phục vụ các yêu cầu từ Client). Khi có sự cố trên một Server nào đó, các ứng dụng Client tự chuyển h- ớng sang các Server còn lại. Với cách thứ hai thì các phần mềm phục hồi đợc thiết kế sao cho trạng thái dữliệu hiện thời (trạng thái trớc khi xảy ra sự cố) có thể đợc khôi phục khi lỗi đợc phát hiện. Các hệphântán cung cấp khả năng sẵn sàng cao để đối phó với các sai hỏng phần cứng. Khả năng sẵn sàng của hệ thống đợc đo bằng tỷ lệ thời gian mà hệ thống sẵn sàng làm việc so với thời gian có sự cố. Khi một máy trên mạng bị sai hỏng thì chỉ có công việc liên quan đến các thành phần sai hỏng bị ảnh h ởng. Ngời sử dụng có thể chuyển đến một trạm khác nếu máy họ đang sử dụng bị hỏng, một tiến trình Server có thể đợc khởi động lại trên một máy khác. 6. Tính trong suốt. Tính trong suốt của hệphântán đợc hiểu nh là sự che khuất đi các thành phần riêng biệt của hệ đối với ngời sử dụng và những ngời lập trình ứng dụng. Ngời sử dụng có quyền truy cập đến dữliệu nằm tại bất cứ vị trí nào. Các thao tác để lấy hoặc cập nhật dữliệu tại một điểm dữliệu ở xa đợc tự động thực hiện bởi hệ thống tại điểm đa ra yêu cầu. Ngời sử dụng không cần biết đến sự phântán của tất cả dữliệu trên mạng dờng nh nằm ở máy tính cục bộ của ngời sử dụng. III. Các lí do sử dụng CSDL phân tán. Tuy việc quản trị một hệ thống CSDL phântán gặp nhiều khó khăn hơn so với hệ CSDL tập trung nh ng xu hớng xây dựng các hệ CSDL phântán ngày càng phát triển và có nhiều ứng dụng trong thực tế vì các nguyên nhân sau: 1. Xuất phát từ chính yêu cầu thực tế về tổ chức và kinh tế. Trên thực tế nhiều tổ chức là không tập trung, dữliệu ngày càng lớn và phục vụ cho đa ngời dùng nằm phântán vì vậy CSDL phântán là con đờng thích hợp với cấu trúc tự nhiên của các tổ chức đó. Đây là một trong các yếu tố quan trọng thúc đẩy việc phát triển CSDL phân tán. Một ví dụ minh hoạ cho vấn đề này là hệ thống bán vé máy bay thống nhất trên toàn thế giới. Mỗi hãng hàng không có một hệ CSDL riêng, có sự quản lý riêng và không thể có lý do nào để CSDL này tập trung ở một chỗ đợc. Tuy vậy các hãng hàng không lại có quan hệ với nhau trong việc bán vé hành khách cho những tuyến đờng thuộc phạm vi quản lý của nhiều hãng. Do vậy hệ thống dữliệuvề chuyến bay của các hãng hàng không chính là một hệ CSDL phântán đợc quản lý thống nhất tại trung tâm điều khiển bay đặt tại một địa điểm nào đó. 2. Sự liên kết các CSDL đang tồn tại. CSDL phântán là giải pháp tự nhiên khi có các CSDL đang tồn tại và sự cần thiết thực hiện xây dựng một ứng dụng toàn cục. Trong trờng hợp này CSDL phântán đợc tạo từ dới lên (bottom-up) từ các CSDL đã tồn tại trớc đó. Tiến trình này có thể đòi hỏi cấu trúc lại cục bộ ở một mức độ nhất định. Dù sao, những sửa đổi này là nhỏ hơn rất nhiều so với việc tạo lập một CSDL tập trung hoàn toàn mới. 3. Sự phát triển mở rộng. Các tổ chức có thể mở rộng bằng cách thêm các đơn vị mới, vừa có tính tự trị vừa có quan hệ t ơng đối với các tổ chức khác. Khi đó CSDL phântán hỗ trợ một sự mở rộng uyển chuyển với một mức độ ảnh hởng tối thiểu tới các đơn vị đang tồn tại. Với CSDL tập trung, cũng có thể khởi tạo kích thớc lớn cho việc mở rộng trong tơng lai. Điều đó rất khó tiên định và chịu một phí tổn lớn, mặt khác sự mở rộng này có ảnh hởng lớn không chỉ trên các ứng dụng mới mà còn trên các ứng dụng đang tồn tại. 4. Làm giảm tổng chi phí tìm kiếm. Việc phân tándữliệu cho phép các nhóm làm việc cục bộ có thể kiểm soát toàn bộ dữliệu của họ. Tuy vậy tại cùng thời điểm, ngời sử dụng có thể truy cập đến dữliệu ở xa nếu cần thiết. Tại các vị trí cục bộ, thiết bị phần cứng có thể đợc chọn sao cho phù hợp với công việc xử lý dữliệu cục bộ tại điểm đó. 5. Trả lời truy vấn nhanh. Dựa trên cách thức dữliệu đợc phân tán, hầu hết các yêu cầu truy vấn dữliệu từ ngời dùng tại bất kỳ vị trí cục bộ nào đều đợc thoả mãn bởi dữliệu ngay tại thời điểm đó. Điều này làm tăng đáng kể tiến trình xử lý các yêu cầu truy vấn dữliệu của ngời dùng. Hệ thống CSDL phântán còn cho phép các bảng truy vấn phức tạp có thể chia thành nhiều bảng nhỏ để có thể thực hiện tiến trình xử lý song song cùng lúc trên nhiều vị trí cục bộ khác nhau. Kỹ thuật này cũng nâng cao tốc độ xử lý dữliệu trên hệ thống. 6. Độ tin cậy và khả năng sử dụng đợc nâng cao. Khi hệ thống CSDL tập trung bị hỏng, toàn bộ CSDL trở nên vô dụng với tất cả ngời sử dụng. Còn đối với hệ thống CSDL phân tán, nếu có một thành phần nào đó của hệ thống bị hỏng, hệ thống vẫn có thể duy trì hoạt động tuy nhiên cũng không thể hiệu quả nh khi nó còn hoàn hảo. Dù sao, việc thu đợc mục đích này không phải không rắc rối và đòi hỏi sử dụng các kỹ thuật vẫn cha đợc hiểu biết hoàn chỉnh. Khả năng xử lý tự trị của các vị trí khác nhau tự nó không đảm bảo một tính tin cậy toàn bộ cao của hệ thống, nhng nó đảm bảo một thuộc tính graceful degration. Nói một cách khác, sự cố trong CSDL phântáncó thể thờng xuyên hơn một CSDL tập trung vì cósố lợng thành phần lớn hơn, nhng hậu quả của sự cố đợc hạn chế chỉ tới các ứng dụng sử dụng dữliệu của vị trí có sự cố, đổ vỡ hoàn toàn của hệ thống là điều hiếm xảy ra. 7. Giá thành truyền thông thấp hơn. Với CSDL phân tán, dữliệucó thể đặt gần nơi nó đợc sử dụng nhiều nhất. Đặc điểm này đã làm giảm chi phí chuyền tải dữliệu rất lớn so với hệ CSDL tập trung. IV. Hạn chế của CSDL phân tán. Hệ thống CSDL phântán bên cạnh những u điểm nh trên cũng có những mặt hạn chế nh sau: - Giá thành và sự phức tạp của phần mềm: Các phần mềm sử dụng trong môi trờng CSDL phântán rất phức tạp, đặc biệt là phần mềm sử dụng cho việc quản trị môi trờng CSDL phân tán. - Khó khăn trong tiến trình kết nối các vị trí dữliệu cục bộ: Các vị trí cục bộ phải trao đổi thông điệp với nhau và thực hiện thêm các tính toán phức tạp để đảm bảo sự kết nối đúng đắn giữa các vị trí đó. - Sự toàn vẹn dữ liệu: Một sản phẩm mang nhiều tính phức tạp sẽ làm gia tăng khả năng xáo trộn trong việc bảo đảm tính toàn vẹn dữ liệu. - Tốc độ truy cập sẽ trở nên rất chậm: Nếu dữliệu không đợc phântán theo đúng yêu cầu sử dụng hoặc các bảng truy vấn đợc thiết lập không đúng đắn thì việc tìm kiếm và xử lý dữliệu sẽ rất chậm. . phần I tổng quan về hệ cơ sở dữ liệu phân tán I. Gi i thiệu chung. Định nghĩa: Hệ CSDL phân tán là một tập hợp dữ liệu mà về mặt logic tập dữ liệu. nhật dữ liệu t i một i m dữ liệu ở xa đợc tự động thực hiện b i hệ thống t i i m đa ra yêu cầu. Ng i sử dụng không cần biết đến sự phân tán của tất cả dữ