1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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.

26 27 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 26
Dung lượng 16,69 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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.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 TRA

Trang 1

Tổng quan giao

tác phân tán.

Cơ sở dữ liệu phân tán - nhóm 3

Trang 3

1.TỔNG QUAN

Trang 4

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

Trang 5

·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 toá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

Trang 6

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

Trang 7

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)

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.

- 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ó.

Trang 8

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)

- 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

Trang 9

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áinhấ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 toán duy trì đc CSDL ở trong tình trạng nhất quán ngay cả khi có nhiều truy xuất đồng thời và khi có sự cố

Trang 10

3 GIAO TÁC

Trang 11

- ĐƯỢ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 TOÁ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áitê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

Trang 12

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.

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

Trang 13

·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 hoàn tất các tác vụ là giao tác bị hủy bỏ (abort)

·Ngoà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

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

Trang 14

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.

Trang 15

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

EXEC SQL UPDATE FLIGHT

SET STSOLD = STSOLD + 1

WHERE FNO = flight_no

AND DATE = date;

Trang 16

··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

Trang 17

3.2 Đặc trưng hóa

các giao tác

Trang 18

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}

Trang 19

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.

Trang 20

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

Trang 21

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 toán được thực thi như một đơn vị không thể chia

Trang 23

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:

VD6 :

Trang 24

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)

Trang 25

·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.

Trang 26

Thanks for

listening

Ngày đăng: 16/02/2022, 16:03

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w