Tải bản đầy đủ (.docx) (5 trang)

Phần 1 tổng qua về hệ cơ sở dữ liệu phân tán

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (77.83 KB, 5 trang )

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 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ệu có 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ân tá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ân tán có 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ân tán có 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ân tán có 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ợng dữ liệu khác.
Việc chia xẻ tài nguyên trên hệ phân tá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ân tá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ần có ý 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ân tá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ân tán có 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ân tá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ân tá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ân tá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ân tá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ân tán có khả năng hoạt động tốt và hiệu quả ở nhiền mức khác nhau. Một Hệ phân tá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ân tá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ân tá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ân tá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ân tá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ân tá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ân tá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ân tá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ân tán
vì vậy CSDL phân tá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ệu về chuyến bay của các hãng hàng không chính là một hệ
CSDL phân tá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ân tá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ân tá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ân tá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án dữ 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ân tá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ân tán có 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ệu có 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ân tá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ân tá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ân tá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.

×