Trong thực tế, hệ tin học phân tánvới những nguyên lý, phương pháp của nó đã và đang được nhiều người quan tâm để có thể vận dụng trong quá trình tác nghiệp của mình Vấn đề truy cập, xử
Trang 1BỘ GIÁO DỤC & ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG
Giáo viên hướng dẫn : PGS.TS Lê Văn Sơn
ĐÀ NẴNG 5/2012
Trang 2LỜI NÓI ĐẦU
Ngày nay hầu hết các ứng dụng tin học đều được xây dựng để thực hiện trênmạng máy tính, các ứng dụng client-server đang ngày càng được sử dụng phổ biến.Nhưng khi quy mô và mức độ của các ứng dụng tăng lên và yêu cầu về chất lượng,tốc độ xử lý và độ phức tạp cũng tăng theo thì trên thực tế, một xu hướng kỹ thuậtmới ra đời – xu hướng phân tán các thành phần tạo nên hệ tin học theo hướng tiếpcận nơi sử dụng và sản xuất thông tin Song để khai thác có hiệu quả toàn hệ, vấn đềquan trọng hàng đầu cần phải tính đến là các tài nguyên nói chung, đặc biệt là tàinguyên thông tin nói riêng và chiến lược khai thác, sử dụng chúng một cách tối ưunhất
Chiến lược khai thác các tài nguyên dùng chung này là chức năng cũng nhưđối tượng nghiên cứu của các hệ tin học phân tán Trong thực tế, hệ tin học phân tánvới những nguyên lý, phương pháp của nó đã và đang được nhiều người quan tâm
để có thể vận dụng trong quá trình tác nghiệp của mình
Vấn đề truy cập, xử lý thông tin và đảm bảo sự gắn bó dữ liệu trên hệ phân tán
đã được nghiên cứu trong hàng loạt các công trình Trong phạm vi tiểu luận củamình, tôi thực hiện những vấn đề sau:
Phần I: Cơ sở lý thuyết, bao gồm 3 chương Mục đích tìm hiểu về Cơ sở dữ
liệu trên hệ phân tán, cấu trúc của CSDL phân tán và sự gắn bó dữ liệu trên hệ đaServer bằng phương pháp trật tự hóa
Phần II: Bài tập ứng dụng Trình bày về thuật toán Lamport và xây dựng
chương trình sắp xếp các thông điệp đến dự trên đồng hồ Lamport
Tôi xin chân thành Cám ơn TS Lê Văn Sơn đã giảng dạy, hướng dẫn, cungcấp tài liệu để cho tôi nắm vững được kiến thức môn học này
Trang 3PHẦN I: CƠ SỞ LÝ THUYẾT
CHƯƠNG I GIỚI THIỆU VÀI NÉT VỀ HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN
I Giới thiệu
Công nghệ về các hệ cơ sở dữ liệu phân tán (distributed database system,DDBS) là sự hợp nhất của hai hướng tiếp cận đối với quá trình xử lý dữ liệu: Côngnghệ cơ sở dữ liệu và công nghệ mạng máy tính Các hệ cơ sở dữ liệu chuyển từ môthức xử lý dữ liệu, trong đó mỗi ứng dụng định nghĩa và duy trì dữ liệu của riêngchúng sang mô thức quản lý và xử lý dữ liệu tập trung Hướng đi này dẫn đến tínhđộc lập dữ liệu, nghĩa là các ứng dụng được miễn nhiệm đối với những thay đổi về
tổ chức logic hoặc vật lý của dữ liệu và ngược lại
Một trong những động lực thúc đẩy việc sử dụng hệ cơ sở dữ liệu là nhu cầutích hợp các dữ liệu hoạt tác của một xí nghiệp và cho phép truy xuất tập trung, nhờvậy có thể điều khiển được các truy xuất đến dữ liệu, còn công nghệ mạng đi ngược
lại với mọi nổ lực tập trung hóa Nhìn thoáng qua chúng ta khó hình dung ra làmcách nào tiếp cận hai hướng trái ngược nhau để cho ra một công nghệ mạnh mẽ vànhiều hứa hẹn hơn so với từng công nghệ riêng lẻ Mấu chốt của vấn đề là cần phảihiểu rằng, mục tiêu quan trọng nhất của công nghệ cơ sở dữ liệu là sự tích hợpkhông phải sự tập trung hóa, cũng cần phải hiểu rằng hai thuật ngữ có được điềunày không dẫn đến điều kia Và vẫn có thể tích hợp mà không cần tập trung hóa.Đây chính là mục tiêu của công nghệ cơ sở dữ liệu phân tán
Trang 4II Định nghĩa cơ sở dữ liệu phân tán
Một cơ sở dữ liệu phân tán là một tập nhiều cơ sở dữ liệu có liên đới logic vàđược phân bố trên một mạng máy tính Vậy hệ quản trị cơ sở dữ liệu phân tán đượcđịnh nghĩa là một hệ thống phần mềm cho phép quản trị các hệ cơ sở dữ liệu phântán và làm cho việc phân tán trở nên “vô hình” đối với người sử dụng Hai thuật ngữquan trọng trong định nghĩa này là “liên đới logic’ và “phân bố trên một mạng máytính”
Một hệ cơ sở dữ liệu phân tán (distributed database system, viết tắt là DDBS)không phải là một “tập các tập tin” lưu riêng lẻ tại mỗi nút của một mạng máy tính
Để tạo ra một hệ cơ sở dữ liệu phân tán, các tập tin không những có liên đới logic
mà chúng còn phải có cấu trúc và được truy xuất qua một giao diện chung
Ngoài ra, một hệ cơ sở dữ liệu phân tán không phải là hệ thống trong đó dù có
sự hiện diện của một mạng máy tính, cơ sở dữ liệu chỉ nằm tại một nút của mạng
Cơ sở dữ liệu này được quản lý tập trung tại một hệ thống máy tính và tất cả mọiyêu cầu đều chuyển đến vị trí đó Điều cần xem xét là độ chậm trễ khi truyền dữliệu Tất nhiên sự tồn tại của một mạng máy tính hoặc một tập các tập tin không đủ
để tạo ra một hệ cơ sở dữ liệu phân tán Điều chúng ta quan tâm là một môi trườngtrong đó dữ liệu được phân tán trên một số vị trí
Trong hệ thống cơ sở dữ liệu phân tán, cơ sở dữ liệu chứa trong vài máy tính.Các máy tính liên lạc với nhau qua nhiều phương tiện truyền thông, như bus tốc độ
Trang 5cao hay đường điện thoại Chúng không chia sẻ bộ nhớ chính, cũng không dùngchung đồ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 có thể gồm các bộ vi xử lý, trạm làm việc, máy tính mini, hay các máy tínhlớn vạn năng Những bộ xử lý này được gọi tên là các trạm, nút, máy tính và cảnhững tên tùy theo ngữ cảnh riêng
Trong hệ thống cơ sở dữ liệu phân tán gồm nhiều trạm, mỗi trạm có thể khaithác các giao thức truy nhập dữ liệu trên nhiều trạm khác Sự khác nhau chính giữa
hệ thống cơ sở dữ liệu phân tán và tập trung là: trong hệ thống tập trung, dữ liệu lưutrữ tại chỗ, còn phân tán thì không
Trang 6CHƯƠNG II
CƠ SỞ DỮ LIỆU PHÂN TÁN VÀ THIẾT KẾ CƠ SỞ DỮ
LIỆU PHÂN TÁN
I Cơ sở dữ liệu phân tán:
Có nhiều lý do để xây dựng cơ sở dữ liệu phân tán, như chia sẻ thông tin, tăng
độ tin cậy, tăng tốc độ truy cập thông tin Tuy nhiên, sử dụng hệ thống phân tánphải trả giá phát triển phần mềm, khó khăn hơn khi sửa lỗi dữ liệu và lỗi hệ thống
Trước tiên hệ thống cơ sở dữ liệu phân tán có ưu điểm cho phép dùng chung
dữ liệu theo cách hiệu quả và tin cậy
I.1.1.Chia sẻ dữ liệu và điều khiển phân tán
Nếu một số trạm nối nhau, người dùng tại một trạm có thể khai thác dữ liệutrên trạm kia Thí dụ nếu không có hệ thống phân tán, việc chuyển tiền qua tàikhoản phải thực hiện qua cơ chế trung gian
Tiến bộ thứ nhất này cho phép chia sẻ dữ liệu theo nghĩa mỗi trạm vẫn có mức
độ ưu tiên về điều khiển dữ liệu cục bộ Trong hệ thống tập trung, người quản trị cơ
sở dữ liệu của trạm trung tâm điều khiển các hoạt động xử lý của cơ sở dữ liệu.Trong hệ thống phân tán, cũng có người quản trị bao quát chung toàn hệ thống Mộtphần của trách nhiệm này trao lại cho người quản trị địa phương tại trạm Phụ thuộcvào thiết kế của hệ thống mà người này có độ tự trị riêng Khả năng tự trị địaphương được xem là ưu điểm chính của cơ sở dữ liệu phân tán
I.1.2.Tin cậy và sẵn sàng
Nếu một trạm trong cơ sở dữ liệu phân tán bị hỏng, các trạm còn lại vẫn cókhả năng tiếp tục công việc Cụ thể, nếu dữ liệu sao chép trên nhiều trạm, mỗi giaotác cần dữ liệu cụ thể có thể tìm trên trạm khác Do vậy hư hỏng một trạm khônggây sụp đổ cả hệ thống
Sai sót của trạm cần được hệ thống phát hiện, cần có hành động thích hợp đểhồi phục dữ liệu Hệ thống không tiếp tục sử dụng trạm bị hư mà đợi sau khi sửaxong, trạm này được gắn tích hợp vào hệ thống
Dù việc khôi phục sai sót trong cơ sở dữ liệu phân tán là phức tạp hơn so với
cơ sở dữ liệu tập trung, khả năng hầu hết các hệ thống là tiếp tục làm việc khiến chotính sẵn sàng tăng lên Tính sẵn sàng là khó đạt được trong cơ sở dữ liệu thời gianthực
Trang 7Ví dụ : Trong hệ thống bán vé máy bay, việc không truy nhập được vào các dữliệu như việc không kịp đăng ký chỗ cho các chuyến bay sẽ gây tổn hại đến uy tín
và lượng khách hàng của hãng hàng không
I.1.3.Tăng tốc xử lý các truy vấn
Nếu một câu hỏi yêu cầu dữ liệu trên vài trạm, có thể tách câu hỏi này ra cáccâu hỏi nhỏ để có thể khai thác song song tại nhiều trạm Tính toán song song nhưthế cho phép trả lời câu hỏi nhanh hơn Trong trường hợp này, các trạm đều có mộtbản sao dữ liệu, câu hỏi được hệ thống trả lời tại trạm nào có chi phí rẻ hơn cả
Nhược điểm đầu tiên của hệ thống cơ sở dữ liệu phân tán là việc tăng thêm sựphức tạp khi xử lý phân tán Phức tạp tăng lên dưới các dạng sau:
- Giá phát triển phần mềm: Do các khó khăn khi cài đặt một hệ thống phân
tán, giá thành sẽ tăng lên
- Dễ mắc lỗi hơn: Vì các trạm trong hệ phân tán làm việc song song, khó có
thể đảm bảo thuật toán được thực hiện đúng trên tất cả các trạm Do vậy
mà số lỗi sẽ tăng lên Các thuật toán phù hợp với cơ sở dữ liệu phân táncòn đang được nghiên cứu
- Khối lượng các xử lý tăng: Hệ thống phân tán cần truyền nhiều thông báo,
nhiều tính toán phụ Do vậy khối lượng xử lý tăng lên so với hệ thống tậptrung Khi chọn thiết kế hệ thống cơ sở dữ liệu, người thiết kế cần phải cânđối các ưu điểm và nhược điểm của việc phân tán các dữ liệu Có dải rộngcác thiết kế rất phân tán đến các hệ thống tập trung
- Những vấn đề về cập nhập và quản lý bản sao dữ liệu
- Xử lý các truy vấn phức tạp hơn
- Thiết kế và quản trị Cơ sở dữ liệu phức tạp hơn
II Thiết kế các cơ sở dữ liệu phân tán
Phần này tập trung vào các thiết kế dùng cho cơ sở dữ liệu phân tán Giả sửquan hệ R được lưu trữ trong cơ sở dữ liệu Có vài lý do yêu cầu lưu quan hệ nàytrong hệ thống phân tán
- Các bản sao: Hệ thống bảo trì vài bản sao như nhau của quan hệ Mỗi
quan hệ được lưu tại một trạm
- Các phần nhỏ: Quan hệ tách thành các phần nhỏ Mỗi phần được lưu trên
một trạm
Trang 8- Bản sao và phần nhỏ: Đây là hình thức tổ hợp của hai dạng vừa nêu.
Quan hệ tách thành nhiều phần Hệ thống có nhiều bản sao của mỗi phần,trên các trạm khác nhau
Nếu quan hệ R được sao lại, một bản sao của R được lưu trong hai hay nhiềutrạm Trong trường hợp cực đoan, tại mỗi trạm đều có một bản sao Một vài ưuđiểm và nhược điểm của việc sao này
- Tính sẵn sàng: Nếu một trạm chứa quan hệ R bị hư, quan hệ R có thể
được tìm trên trạm khác Do vậy, hệ thống cần tiếp tục câu hỏi về quan hệ
R dù xảy ra hư hỏng trên một trạm
- Tính song song tăng lên: Trong trường hợp đa số truy nhập quan hệ R chỉ
là đọc dữ liệu, một vài trạm yêu cầu R có thể xử lý song song Càng nhiềubản sao càng tăng khả năng sẵn sàng của dữ liệu Hơn nữa, việc tăng cácbản sao làm giảm số lượng thông tin cần truyền giữa các trạm
- Phức tạp tăng lên khi tiến hành cập nhật: Hệ thống cần đảm bảo tất cả
các bản sao của quan hệ R là chặt chẽ, tức thỏa mãn các điều kiện toàn vẹn,trừ khi xảy ra sai sót Điều này có nghĩa khi một bản sao được cập nhật,phép xử lý này cần được thực hiện trên tất cả các trạm có chứa bản sao của
R Chẳng hạn trong hệ thống ngân hàng, khi tài khoản có trên các trạm, sốlượng tiền của tài khoản này trên các trạm phải như nhau
Nhìn chung, việc dùng các bản sao làm tăng hiệu quả của phép đọc, tăng tínhsẵn sàng trong giao tác đọc dữ liệu Vấn đề điều khiển các phép cập nhật tươngtranh của những giao thức trong trường hợp dữ liệu có các bản sao trong hệ thốngphân tán là phức tạp hơn việc điều khiển trong hệ thống tập trung Việc quản lý cóthể được đơn giản hóa bằng cách chọn ra một bản sao gọi là bản sao sơ cấp củaquan hệ R
Ví dụ: Trong hệ thống ngân hàng, một tài khoản gắn với trạm mà tài khoản đóyêu cầu mở Tại trạm này, tài khoản có dữ liệu như bản sao sơ cấp Trong hệ thốngđặt chỗ máy bay, dữ liệu gắn với chuyến bay tại trạm mà chuyến bay xuất phát sẽđược xem là bản sao sơ cấp
Trang 9Trạng thái của hệ thoả mãn một tập các ràng buộc toàn vẹn gọi là trạng thái
gắn bó.
Các nhà thiết kế và vận hành hệ mong muốn rằng việc thực hiện các tiến trìnhphải duy trì cho được hệ trong trạng thái gắn bó Để chính xác hoá đặc tính này, cầnphải lưu ý là trạng thái của hệ chỉ được xác định ở mức quan sát cho trước
Ta quan tâm đến hai mức quan sát:
Tiến trình là một dãy thực hiện các giao dịch
Giao dịch đó là chương trình duy nhất được thực hiện từmột trạng thái gắn bó dẫn hệ đến một trạng thái gắn bókhác
2 Hệ thống
Mỗi giao dịch được cấu tạo từ nột dãy các tác động đượcthể hiện như sau Nếu 2 tác động A và B thuộc hai giaodịch khác nhau được thực hiện bởi hai tiến trình thì hiệuứng tổng quát của chúng sẽ là hiệu ứng của dãy (A;B) hoặc
là (B;A)
Ở mức hệ thống, ta có thể nói rằng các tác động là phần tử nhỏ nhất không thểchia cắt được nữa
Cho một tập hợp giao dịch M={T1, T2…, Tn} lần lượt được thực hiện bởi cáctiến trình độc lập p1, p2,…,pn Việc thực hiện tuần tự có nghĩa là thực hiện tất cả cácgiao dịch của M theo kiểu nối đuôi nhau và tuân thủ một trật tự nào đó Sự gắn bócủa hệ được bảo toàn, theo định nghĩa, bằng việc thực hiện riêng biệt từng giaodịch Do vậy, nó cũng được bảo toàn trong chế độ thực hiện tuần tự của M
Trang 10Nếu, vì lý do hiệu quả, nhiều giao dịch được thực hiện song song, thì sự gắn
bó không còn đảm bảo được nữa
Một yêu cầu khác nữa rất quan trọng là trong quá trình thực hiện hệ phải đảmbảo cho các tác động không bị ngắt quãng
II Trật tự hóa các tác động
Trở lại với tập hợp giao dịch M = {T 1 , T 2 …, T n } cho ở phần trước Mỗi giao
dịch được cấu tạo từ một dãy các tác động Bằng các tác động không chia sẻ được
này, toàn bộ sự việc thực hiện của tập hợp các giao dịch M bởi một tập hợp các tiến trình tương tranh là tương đương với việc thực hiện một dãy S các tác động thuộc các giao dịch này, như S = (a 1 , a 2 , , a n ) chẳng hạn Trong trật tự tuân thủ trật tự
nội tại của từng giao dịch, dãy này bao gồm tất cả các tác động cấu tạo nên các giao
dịch M; mỗi tác động chỉ xuất hiện một và chỉ một lần Một dãy như vậy gọi là trật
tự hóa của tập các giao dịch M.
Ví dụ: Cho T1 = (a11, a12, a13, a14) và T2 = (a21, a22, a23) Một trật tự hóa (T1, T2)được thể hiện như sau:
S = a 21 , a 11 , a 12 , a 22 , a 13 , a 23 , a 14
Trong số các trật tự hóa của một tập hợp các giao dịch, điều rất quan trọng làphải tách ra cho được những cái phục vụ trạng thái gắn bó dữ liệu và chúng đượcgọi là trật tự hóa gắn bó
Như vậy, đặc tính quan trọng của trật tự hóa là: các trật tự hóa tương ứng với
việc thực hiện tuần tự của tập hợp các giao dịch hay còn gọi ngắn gọn là trật tự hóa tuần tự.
Điều kiện đủ cho sự gắn bó của một trật tự hóa có thể được phát biểu như sau:
Một trật tự hóa là gắn bó, nếu nó có cùng quan hệ phụ thuộc với một trật tự tuần hoàn.
III Triển khai giao dịch tôn trọng sự gắn bó
Cho một tập hợp giao dịch M={T 1 , T 2 …, T n } Một trật tự hóa của tập hợp các
tác động thành phần sẽ tương ứng với việc thực hiện hoàn toàn các giao dịch Việcthu được một trật tự hóa gắn bó chỉ có thể thành công khi áp dụng các ràng buộctrên trật tự thực hiện các tác động Nguyên lý của phương pháp là ở chỗ làm chậmmột tác động nào đó cho đến thời điểm mà sự thực hiện của nó không còn có nguy
cơ phá hủy sự gắn bó của trật tự hóa (bằng cách chặn tiến trình hiện hành)
Để đảm bảo các giao dịch trên tôn trọng sự gắn bó thông tin thì người ta đưa
ra các phương pháp, cơ chế để đảm bảo khi giao dịch vẫn có sự gắn bó thông tintoàn vẹn dữ liệu trên cơ sở dữ liệu phân tán là:
Trang 11 Cơ chế then cài: Cho phép một giao dịch có thể giải phóng đối tượng
mà nó đã cài then.
Loại trừ tương hỗ: Nếu ta biết trước các đối tượng được xử lý bởi một
giao dịch nào đó, thì ta có thể cài then công việc truy cập đến các đối tượng.
Then cài lựa chọn đối tượng: Một giao dịch thay đổi giá trị của đối
tượng phải loại trừ tất cả các đối tượng khác muốn truy cập, ngược lại thì việc truy cập được tiến hành theo kiểu tương tranh.
Giao dịch hai pha: 1 Toàn bộ đối tượng bị cài then vẫn ở trong tình
trạng cài then cho đến cuối giao dịch và 2 Không có then cài nào có thể diễn ra tiếp theo một then cài khác trong cùng một giao dịch.
Bây giờ ta tưởng tượng rằng các đối tượng được phân tán trên nhiều trạm khácnhau và được nối với nhau thông qua hệ thống viễn thông và rằng các tiến trình diễn
ra trên các trạm khác nhau Hệ thống viễn thông cho phép các tiến trình trên cáctrạm khác nhau có thể trao đổi các thông điệp với nhau Ta giả định rằng các tiếntrình và các phương tiện truyền thông là các đối tượng có thể rơi vào sự cố Một hệquản lý tập hợp thông tin phân tán bao gồm:
1
Cơ chế cho phép sắp xếp một cách tổng quát các tác động củacùng một giao dịch, ngay cả khi các tác động này diễn ra trên cáctrạm khác nhau
2
Cơ chế điều khiển các tranh chấp truy cập cục bộ vào các đốitượng đảm bảo tôn trọng tính toàn vẹn của các đối tượng truy cậpcục bộ này
3 Cơ chế có khả năng xử lý các bế tắc và thiếu thốn vô hạn, hậu quảcủa việc hủy bỏ các giao dịch
4 Cơ chế phục hồi các giao dịch đã hủy bỏ hay xử lý các sự cố