Tải bản đầy đủ (.pdf) (26 trang)

Bài tập lớn Cơ sở dữ liệu phân tán: Tổng quan giao tác 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 (16.69 MB, 26 trang )

Tổng quan giao
tác phân tán.
Cơ sở dữ liệu phân tán - nhóm 3


Thành viên nhóm
Nguyễn Thị Thanh

Nguyễn Văn Hiếu

Bùi Minh Cơng

Phạm Minh Đức

B18DCCN606

B18DCCN221

B18DCCN056

B18DCCN179

Nguyễn Tuấn Dũng

Đỗ Thanh Long

Trịnh Đình Nghĩa

Thạch Ngọc Minh

B18DCCN100



B18DCCN342

B18DCCN452

B18DCCN410

Phùng Ngọc Tuấn Anh

Nguyễn Thị Ngọc Huyền

B18DCCN035

B18DCCN276


1.TỔNG QUAN


Trong chương trước, chúng ta đã thảo luận về cách xử lý và tối
ưu hóa các truy vấn. Tuy nhiên, các tình huống xảy ra thì ta chưa
xét đến.
VD: 2 truy vấn cùng cập nhật một dữ liệu.
Hệ thống phải ngừng hoạt động vì sự cố trong khi thực hiện truy vấn


·TRONG CHƯƠNG TRƯỚC, CHÚNG TA ĐÃ
THẢO LUẬN VỀ CÁCH XỬ LÝ VÀ TỐI ƯU HÓA
CÁC TRUY VẤN. TUY NHIÊN, CÁC TÌNH
HUỐNG XẢY RA THÌ TA CHƯA XÉT ĐẾN.

=> Do đó , cần có sự tính tốn đánh tin cậy và thực thi nhất quán. Vì
thế, khái niệm giao tác (transaction) được sử dụng trong CSDL như đơn
vị cho 2 sự kiện trên


2. PHÂN BIỆT CÁC ĐỊNH NGHĨA


2.1 PHÂN BIỆT GIỮA NHẤT QUÁN CƠ SỞ DỮ LIỆU
(DATABASE CONSISTENCY) VÀ NHẤT QUÁN GIAO TÁC
( TRANSACTION CONSISTENCY)
- Nhất quán cơ sở dữ liệu: Là trạng thái của cơ sở dữ liệu nếu tuân theo
tất cả các ràng buộc toàn vẹn (nhất quán) được định nghĩa trên nó.

CSDL có thể tạm thời ko nhất quán trong
khi thực hiện giao tác, nhưng phải trở về
trạng thái nhất quán sau khi kết thúc
quan hệ giao tác.

C.


- Nhất quán giao tác: là hành động của các giao tác đồng thời

Khi xét đến CSDL có nhân bản sẽ
nảy sinh 1 tính chất phức tạp:
CSDL vẫn nhất quán ngay cả khi
có yêu cầu người dùng đồng thời
truy xuất đến CSDL


CSDL được nhân bản ở trong một
trạng thái nhất quán lẫn nhau
(mutually consistent state) nếu all
bản sao của mỗi mục dữ liệu ở
trong đó đều có giá trị giống nhau
( one copy equivalence)


2.2 Độ tin cậy hay khả tin ( reliability) và quản lý giao
tác (transaction management)
- Độ tin cậy là khả năng tự thích ứng (resiliency) của một hệ thống
đối với các loại sự cố và khả năng tự khôi phục từ sự cố này.
Hệ thống khả tín là: hệ thống tự thích ứng với các sự cố hệ thống
và có thể tiếp tục cung cấp các dịch vụ ngay cả khi có sự cố
Hệ quản trị CSDL khả hồi phục: là có thể chuyển sang trạng thái
nhất quán sau khi gặp một sự cố.

·Quản lý giao tác (transaction management) là giải quyết các bài
tốn duy trì đc CSDL ở trong tình trạng nhất qn ngay cả khi có
nhiều truy xuất đồng thời và khi có sự cố


3. GIAO TÁC


- ĐƯỢC XEM NHƯ MỘT DÃY CÁC THAO TÁC ĐỌC VÀ
GHI TRÊN CSDL CÙNG VỚI CÁC BƯỚC TÍNH TỐN
CẦN THIẾT.
VD 1: Xét câu truy vấn SQL làm tang ngân sách CAD/CAM lên 10%
UPADATE PROJ

SET BUDGET = BUDGET * 1.1
WHERE PNAME = “CAD/CAM”
Câu truy vấn này có thể đặc tả như một giao tác bằng cách cho nó một cái
tên ( vd: BUDGET_ UPDATE) và khai báo:
Begin_transaction BUDGET UPDATE
begin
EXEC SQL UPDATE PROJ
SET BUDGET = BUDGET * 1.1
WHERE PNAME = “CAD/CAM”
end.
Các câu lệnh Begin_transaction và end được ấn định cho 1 giao tác


VD2: Chúng ta xét 1 hệ thống quản lý vé máy bay sử dụng các định nghĩa quan hệ sau.
FLIGHT(FNO,DATE,SRC,DEST,STSOLD,CAP)
CUST(CNAME, ADDR, BAL)
FC(FNO,DATE,CNAME,SPECIAL)
Định nghĩa: FLIGHT: mã số chuyến bay, ngày tháng, src, dest, số ghế bán được trong chuyến đó, số lượng khách có thể chở trong
chuyến đó
CUST: tên khách hang, địa chỉ, số dư
SPECIAL: yêu cầu đặc biệt của khách.
Ta đơn giản hóa ứng dụng trên, giao tác thực hiện có thể được cài đặt như sau.:
Begin_transaction Reservation
begin
input (flight_no, date, customer_name)
EXEC SQL UPDATE FLIGHT
SET STSOLD = STSOLD + 1
WHERE FNO = flight_no
AND DATE = date;
EXEC SQL INSERT

INTO FC(FNO,DATE,CNAME,SPECIAL)
VALUES (flight_no, date, customer_name, null);
Output (“reservation completed”)
end.


3.1 Kết thúc giao tác.

·Một giao thức phải kết thúc ngay khi xảy ra sự cố
·Giao tác hoàn tất các tác vụ gọi là giao tác có ủy
thác (commit). Giao tác khơng hồn tất các tác vụ là
giao tác bị hủy bỏ (abort)
·Ngồi ra, hệ quản trị CSDL có thể hủy bỏ một giao
tác, chẳng hạn do bị khóa chết ( deadlock)
·Quá trình rollback là quá trình khi một giác tác bị
hủy bỏ, quá trình thực hiện sẽ ngừng và mọi hành
động đã thực hiện phải được “undo”, đưa CSDL về trc
khi thực hiện giao tác
·Vai trò của ủy thác quan trọng ở 2 mặt


o Lệnh ủy thác báo cho hệ quản trị CSDL biết rằng tác
dụng của giao dịch đó cần đc phản ánh vào CSDL, làm
cho các giaot ác đang truy xuất các mục dữ liệu đó có
thể thấy được chúng

o Điểm mà giao tác ủy thác là điểm “không đường về”.
Kết quả của một giao tác đã ủy thác bây giờ được lưu
cố định vào cơ sở dữ liệu và không thể hồi phục lại được.



VD3: Ở ứng dụng dặt chỗ máy bay, điều ta chưa xét là khơng cịn chỗ trống trên chuyến bay. Giao
tác cần viết lại như sau.
Begin_transaction Reservation
begin
input(flight_no, date, customer_name)
EXEC SQL SELLECT STSOLD, CAP
INTO temp1, temp2
FROM FLIGHT
WHERE FNO = flight_no
AND DATE = date;
If temp1 = temp2 then
begin
Output (“no free seat”)
Abort
end
else begin
EXEC SQL UPDATE FLIGHT
SET STSOLD = STSOLD + 1
WHERE FNO = flight_no
AND DATE = date;
EXEC SQL INSERT
INTO FC(FNO,DATE,CNAME,SPECIAL)
VALUES (flight_no, date, customer_name, null);
Commit;
Output (“reservation completed”)
end
end-if
end.



··Qua VD3, ta thấy nếu khơng cịn chỗ trống giao tác bị
hủy bỏ. Việc sắp xếp thứ tự các kết quả để trình bày ra
cho người dung tùy theo các lệnh abort và commit


3.2 Đặc trưng hóa
các giao tác




Các giao tác đều đọc và ghi một số dữ liệu và các tập
đọc và ghi của một giao tác không nhất thiết phải tách
biệt.
Tập đọc và tập ghi của một giao tác tạo ra tập cơ sở BS
(base set) nghĩa là BS = RS (read set) WS (write set)

VD5: Xétgiao tác đặt chỗ, định nghĩa các tập được nêu trên:
o RS [Reservation] = {FLITH.STSOLD, FLIGHT.CAP}
o WS [Reservation] = {FLIGHT.SOLD, FC.FNO, FC.DATE,
FC.CNAME, FC.SPECIAL}
o BS [Reservation] = {FLIGHT.STSOLD, FLIGHT.CAP,
FC.FNO, FC.DATE, FC.CNAME, FC.SPECIAL}


Các CSDL động phải giải quết bài toán ảnh ảo (phantom),
như ví dụ sau:
o Giao tác T1, tìm trong bảng FC tên khách hang yêu cầu bữa ăn.
Nó nhận được tập CNAME gồm tên khách hàng.

o Khi T1 thực hiện, T2 chèn các bộ mới vào FC có yêu cầu bữa ăn
rồi ủy thác.
o Nếu sau đó T1 đưa ra câu truy vấn tìm kiếm cũ, nó sẽ nhận được
tập CNAME khác với tập ban đầu mà nó đã nhận.
=> Các bộ “ảnh ảo” đã xuất hiện trong CSDL.


3.3 Hình thức hóa
khái niệm giao tác




Chúng ta biểu thị phép toán Oj của giao tác Tik hi
hoạt tác trên CSDL x là Oij(x),Oij thuộc {read, write}
Các phép toán được giả thiết là nguyên tử (mỗi phép
tốn được thực thi như một đơn vị khơng thể chia
nhỏ)
Chúng ta kí hiệu OSi là tập tất cả các phep tốn
trong Ti
Chúng ta có thể định nghĩa Ti là một thứ tự bộ phận
P trên các phép toán và tình huống kết thúc của nó.





VD6 :
Có 2 tình huống huống kết thúc trong ứng dụng đặt chỗ tùy
vào tình trạng cịn có chỗ trống hay khơng. Sẽ có mâu thuẫn vì

đn giao tác chỉ tồn tại 1 tình huống kết thúc. Tuy nhiên giao tác
là thực thi một chương trình. Rõ ràng chỉ một trong hai tình
huống kết thúc xảy ra đồng nghĩa với việc một giao tác hủy bỏ
và một giao tác được ủy thác. Ta đặc tả giao tác đầu như sau:
.


Và giao tác sau được đặc tả như sau:
= {R(STSOLD), R(CAP), W(STSOLD), W(FNO), W(DATE), W(CNAME),
W(SPECIAL), C}

< = {(O1,O3), (O2,O3), (O1,O4), (O1, O5), (O1, O6),
(O1, O7), (O2, O4), (O2, O5), (O2, O6), (O2, O7),
(O1, C), (O2, C), (O3, C) (O4, C), (O5, C), (O6, C), (O7, C)}

Trong đó O1 = R(STSOLD), O2 = R(CAP), O3 = W(STSOLD), O4 =
W(FNO), O5= W(DATE), O6 = W(CNAME), O7 = W(SPECIAL).


·Thông thường chúng ta bỏ ra khỏi định nghĩa giao tác và sử dụng tên của
thứ tự bộ phận để chỉ đến các miền lẫn tên của thứ tự bộ phận. Chúng cho
phép ta đặc tả thứ tự của các phép toán trong một giao tác nhờ một phương
thức khác đơn giản bằng các dùng thứ tự tương đối của định nghĩa giao tác.
VD: Chúng ta có thể định nghĩa giao tác của ví dụ trên như sau: T = {R(x), R(y),
W(x), C} thay vì đặc tả dài dịng như trước.


×