Bài tập : Thuật toán cập nhật thông tin vào cơ sở dữ liệu trong mô hình Client/Server... Thuật toán về quá trình cập nhật thông tin vào csdl trong mô hình client/server I
Trang 1Bài tập : Thuật toán cập nhật thông tin vào cơ sở dữ
liệu trong mô hình Client/Server
Giáo viên hướng dẫn : PGS.TS Lê Văn Sơn
Học viên thực hiện : Nguyễn Công Kha
TIỂU LUẬN MÔN HỌC
HỆ TIN HỌC PHÂN TÁN
ĐẠI HỌC ĐÀ NẴNG
Lý thuyết: Yêu cầu và đăng ký từ xa trong hệ phân tán
Đề tài
Trang 2Nội dung
Chương I Yêu cầu và đăng ký từ xa trong hệ phân tán
I Yêu cầu từ xa
II Đăng ký từ xa
Chương II Thuật toán về quá trình cập nhật thông tin vào csdl trong mô hình client/server
I Cơ sở dữ liệu phân tán trong mô hình client/server
II Giao tác
III Giới thiệu vấn đề
VI Giải thuật cập nhật dữ liệu
V Kết luận
Trang 3Yêu cầu và đăng ký từ xa trong hệ phân tán
Giả sử có một khách hàng ở thành phố A muốn biết thông tin về giá cả của một mặt hàng tại thành phố B ở
xa và thể hiện một yêu cầu nào đó qua một truy vấn.
Để đáp ứng được yêu cầu này, hệ thống phải có khả năng thực hiện hàng loạt các thao tác xác định.
1 Trước hết, hệ phải có khả năng nhận biết thông tin cần thiết.
I Yêu cầu từ xa
I.1 Khái quát vấn đề
Trang 4Yêu cầu và đăng ký từ xa trong hệ phân tán
2 Sau khi đã trỏ đúng vào địa chỉ chứa thông tin, hệ
phải có khả năng tiếp nhận và ghi lại các yêu cầu chỉ
Trang 5Yêu cầu và đăng ký từ xa trong hệ phân tán
I.2 Giải thuật tổng quát
Hệ thống A
phatyeucau(B,yc)
nhanlai(ketqua)
Hệ thống BLặp lại
Nhanyeucau(s,nh) Nếu (hợp thức) thì
Bắt đầu tracuucsdl
phatketqua(s,kq) Kết thúc
Nếu không guitbao(s,thong bao)Cho đến khi đúng
Trang 6Yêu cầu và đăng ký từ xa trong hệ phân tán
Giả sử có khách hàng từ A muốn hợp đồng mua hàng hoá H tại B và đăng ký phương tiện để chuyên chở đến
C theo yêu cầu càng sớm càng tốt và thực hiện trong
một khoảng thời gian xác định
II Đăng ký từ xa
II.1 Khái quát vấn đề
Trang 7Yêu cầu và đăng ký từ xa trong hệ phân tán
Hình I.1 Đăng ký từ xa
C
Chứa bảng phương tiện vận chuyển
CSDL
CSDL CSDL A
B
Trang 8Yêu cầu và đăng ký từ xa trong hệ phân tán
II.2 Giải thuật tổng quát
Dang_ky_hang_hoa(AB,t) {Đăng ký sơ bộ}
Nếu (thanh_cong) thì
Trang 9Yêu cầu và đăng ký từ xa trong hệ phân tán
Đoạn chương trình trên cho thấy rằng sau khi nhận được thông tin về trạng thái hàng hoá tại A và phương tiện vận tải tại C chương trình sẽ lần lượt thực hiện các lệnh sau:
1 Đăng ký sơ bộ mua hàng tại A trong ngày t.
2 Nếu việc đăng ký đó thành công thì đăng ký tiếp phương tiện vận tải tại C.
3 Lặp lại cho đến khi hết thời hạn cho phép.
II.2 Giải thuật tổng quát
Trang 10Yêu cầu và đăng ký từ xa trong hệ phân tán
II.2 Giải thuật cải tiến
de_nghi(B,DS(hh,t),danhsach(pt,t)) {B cung cấp hàng hoá và các
phương tiện cho phép}
tra_loi(bang(hh1,pt1,t)) t:=ngay_dau_tien
Ok:=False Chừng nào (t<=Ngay_cuoi_cung) và (Not Ok) thực hiện Bắt dầu
Dang_ky_hang_hoa(AB,hh1,t) Nếu (thanh_cong) thì
Bắt đầu Dang_ky_cho_hang(C,hh,t) {Đăng ký chuyên chở}
Ok:=True Kết thúc
Nếu không huy_dang_ky(AB,hh1,t) t:=sau(t)
Kết thúc
Trang 11Yêu cầu và đăng ký từ xa trong hệ phân tán
Cơ chế then cài
Trang 12Yêu cầu và đăng ký từ xa trong hệ phân tán
II.2 Giải thuật cải tiến
Tại A then_cai(hh, B) và mo_then_cai(hh, B) Tại B
then_cai(hd, A) Bắt đầu dang_ky_hang_hoa(AB, hh1, t) Nếu (Thanh_cong) thì
Bắt đầu dang_ky_cho_hang(C, hh, t) {Đăng ký chuyên chở}
Ok:=true Kết thúc
Nếu không t:=sau(t) Kết thúc
mo_then_cai(hd, A)
Trang 13Yêu cầu và đăng ký từ xa trong hệ phân tán
Điểm chung nhất của các giải pháp này là:
1 Phát hiện xung đột trong hệ.
2 Loại bỏ ra khỏi quá trình thực hiện các chương
trình phát sinh xung đột.
3 Cho phép tái lập lại việc thực hiện các chương
trình bị loại bỏ do xung đột.
4 Đề phòng trường hợp một yêu cầu nào đó phải chờ
vô thời hạn mà không được đáp ứng
II.3 Kết luận
Trang 14Thuật toán cập nhật thông tin vào
cơ sở dữ liệu
Cơ sở dữ liệu phân tán là một hệ thống gồm các trạm, mỗi trạm bảo trì một hệ thống cơ sở dữ liệu cục bộ
Mỗi trạm có thể xử lý các giao tác cục bộ, truy nhập
các dữ liệu trên trạm ấy.
Hơn nữa, trạm có thể khai thác các giao tác tổng thể,
truy nhập dữ liệu trên vài trạm
I.1 Cơ sở dữ liệu phân tán
Trang 15Thuật toán cập nhật thông tin vào
cơ sở dữ liệu
Cơ sở dữ liệu phân tán trong mô hình Client/Server là một hệ thống bao gồm các server và các client
Database Server là hệ quản trị cơ sở dữ liệu phân tán, lưu trữ dữ liệu và xử lý yêu cầu từ client
Client là những chương trình ứng dụng yêu cầu truy xuất thông tin từ server
I.2 Cơ sở dữ liệu trong mô hình Client/Server
Trang 16Thuật toán cập nhật thông tin vào
cơ sở dữ liệu
Giao tác là một đơn vị nguyên tử của sự truy xuất CSDL bao gồm một tập các thao tác đọc, ghi cùng với các bước tính toán trên CSDL, giao tác hoặc là thực
hiện đầy đủ tất cả thao tác của nó hoặc không thực hiện gì cả.
Giao tác luôn chuyển CSDL từ trạng thái tương
thích này đến trạng thái tương thích khác
II Giao tác
II.1 Khái niệm về giao tác
Trang 17Thuật toán cập nhật thông tin vào
cơ sở dữ liệu
Tính nguyên tử
Tính bền vững
Tính tuần tự
Tính tách biệt
II.2 Một số tính chất của giao tác
Trang 18VI.1 Sơ đồ giải thuật cập nhật dữ liệu
Hình II.2 Sơ đồ thuật toán cập nhật dữ liệu
S
S
Trang 19Thuật toán cập nhật thông tin vào
cơ sở dữ liệu
Mục tiêu của các phương pháp đánh nhãn thời gian là các giao tác được sắp xếp theo một thứ tự tổng thể
theo thời gian
Trong việc thiết lập thứ tự này, bộ quản lý các giao
tác gán cho mỗi giao tác Ti một nhãn thời gian TS(Ti)
duy nhất tại thời điểm nó khởi tạo
IV.2 Giải thuật cập nhật dữ liệu đánh dấu nhãn thời gian
Trang 20Thuật toán cập nhật thông tin vào
cơ sở dữ liệu
Một nhãn thời gian có các thuộc tính:
1 TS(Ti) là định danh duy nhất của Ti
2 Với 2 giao tác A và B bất kỳ, nếu A xảy ra trước B thì TS(A)<TS(B)
Một trong số các phương pháp đánh nhãn thời gian là sử dụng một bộ đếm đơn điệu tổng thể
IV.2 Giải thuật cập nhật dữ liệu đánh dấu nhãn thời gian
Trang 21Thuật toán cập nhật thông tin vào
cơ sở dữ liệu
Tại một trạm đơn Quan hệ xảy ra trước ký hiệu -> có thể được tổng quát hóa trong môi trường phân tán
với các luật như sau:
1 Nếu A và B là 2 giao tác ở cùng một trạm và A
xảy ra trước B thì A->B
2 Nếu giao tác A có gửi 1 thông điệp và giao tác B có nhận cùng thông điệp thì A ->B.
3 Nếu A ->B và B -> C thì A -> C
IV.2 Giải thuật cập nhật dữ liệu đánh dấu nhãn thời gian
Trang 22Thuật toán cập nhật thông tin vào
cơ sở dữ liệu
Cơ chế nhãn thời gian cơ bản:
1 Mỗi giao tác sẽ nhận được một nhãn thời gian khi nó được khởi động ở trạm ban đầu của nó
2 Mỗi thao tác đọc hoặc ghi của một giao tác yêu
cầu sẽ có nhãn thời gian của giao tác đó.
3 Với phần tử dữ liệu x, giá trị nhãn thời gian lớn
nhất của thao tác đọc và nhãn thời gian lớn nhất của
thao tác ghi sẽ được ghi lại Chúng được ký hiệu là
RTM(x) và WTM(x)
IV.2 Giải thuật cập nhật dữ liệu đánh dấu nhãn thời gian
Trang 23Thuật toán cập nhật thông tin vào
cơ sở dữ liệu
4 Gọi TS là nhãn thời gian của thao tác đọc trên
phần tử dữ liệu x, nếu TS<RTM(x), thao tác đọc sẽ hủy bỏ và giao tác tương ứng sẽ được khởi động lại với giá
trị nhãn thời gian mới, ngược lại thao tác đọc sẽ được
thực hiện và RTM(x) sẽ được gán max(RTM(x),TS).
5 Gọi TS là nhãn thời gian của thao tác ghi trên
phần tử dữ liệu x, nếu TS<WTM(x) hoặc TS<RTM(x)
thì thao tác ghi sẽ bị hủy bỏ và giao tác tương ứng sẽ
được khởi động lại, ngược lại thao tác ghi sẽ được thực hiện và WTM(x) sẽ được gán TS
IV.2 Giải thuật cập nhật dữ liệu đánh dấu nhãn thời gian
Trang 24Với cơ chế nhãn thời gian, thay vì dùng khóa loại
trừ nhau người ta dùng thao tác pre_write
IV.2 Giải thuật cập nhật dữ liệu đánh dấu nhãn thời gian
Thao tác pre_write
begin
Ti cố gắng pre_write lên khoản mục dữ liệu x
If x đã được đọc và ghi bởi giao tác mới hơn có nghĩa là
Trang 25IV.2 Giải thuật cập nhật dữ liệu đánh dấu nhãn thời gian
begin
Ti cố gắng cập nhật (ghi) lên khoản mục dữ liệu x
If có một cập nhật chưa được giải quyết trên x bởi giao tác cũ
hơn Ti có nghĩa là TS(Tj)<TS(Ti)
Then
Ti đợi cho đến khi Tj chuyển giao hay khởi động lại
else Ti chuyển giao cập nhật và thiết lập TS(write(x)) = TS(Ti)
end if
end
Thao tác ghi dựa trên cơ sở nhãn thời gian.
Trang 26IV.2 Giải thuật cập nhật dữ liệu đánh dấu nhãn thời gian
Thao tác đọc dựa trên cơ sở nhãn thời gian.
Begin
Ti cố gắng thực hiện đọc trên khoản mục dữ liệu x
If x đã được cập nhật bởi 1 giao tác mới hơn có nghĩa là
TS(Ti) < TS(write(x)) then
bỏ qua thao tác đọc hay khởi động lại Ti
else
If có 1 cập nhật chưa được giải quyết trên x bởi 1 giao tác
cũ hơn Ti có nghĩa là TS(Tj) < TS(Ti)
then Ti đợi cho đến khi Tj chuyển giao hay khởi động lại
else thừa nhận thao tác đọc và thiết lập
TS(read(x)) = max(TS(read(x)),TS(Ti))
end if
end if
end
Trang 27Kết luận
Có 2 cách cơ bản để tránh việc thực thi không tuần tự: WAITING (đợi) và hoặc RESTARTING (khởi động lại) các giao tác
Có thể xác định các tranh chấp của một giao tác
này với giao tác khác bằng 2 cách khác nhau: một – một hoặc là tổng thể khi đã biết tất cả các thao tác của một giao tác Phương pháp đánh nhãn thời gian phát hiện tranh chấp một – một.
Thứ tự nối tiếp của các giao tác được xác định
bằng 2 cách khác nhau: bằng thứ tự truy xuất phần tử dữ liệu hoặc bằng cách gán nhãn thời gian cho giao tác.
Trang 28Báo cáo kết thúc
Cảm ơn thầy và mọi người
đã lắng nghe!