Bài giảng Hệ quản trị cơ sở dữ liệu - Chương 2: Giao tác và lịch giao tác - Nguyễn Trường Sơn

HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU  
Chương 2:  
GIAO TÁC VÀ LỊCH  
GIAO TÁC  
GVLT: Nguyễn Trường Sơn  
1
Nội dung trình bày  
§ꢀ Giới thiệu  
§ꢀ Giao tác  
–ꢀ Khái niệm  
–ꢀ Tính ACID của giao tác  
–ꢀ Các thao tác của giao tác  
–ꢀ Các trạng thái của giao tác  
§ꢀ Lịch thao tác  
–ꢀ Giới thiệu  
–ꢀ Khái niệm  
–ꢀ Lịch tuần tự  
–ꢀ Lịch khả tuần tự  
2
Giới thiệu  
§ꢀ Hai yêu cầu cơ bản của ứng dụng khai thác CSDL trong thực tế:  
–ꢀ Cho phép nhiều người dùng đồng thời khai thác CSDL nhưng phải giải  
quyết được các tranh chấp.  
–ꢀ Sự cố kỹ thuật có thể luôn luôn xảy ra nhưng phải giải quyết được vấn đề  
về nhất quán dữ liệu.  
§ꢀ Một số ví dụ về ứng dụng có sử dụng CSDL :  
–ꢀ Hệ thống giao dịch ở ngân hàng  
–ꢀ Hệ thống đặt vé máy bay  
–ꢀ Hệ thống quản lý học sinh  
–ꢀ …  
3
Giới thiệu – Một số tình huống  
GHẾ (Mã ghế, Mã CB, Trạng thái)  
CHUYẾN BAY(Mã CB, Ngày giờ, Số ghế còn)  
§ꢀ Hệ thống đặt vé máy bay:  
–ꢀ “Khi hành khách mua vé”  
–ꢀ “Khi hai hành khách cùng đặt một ghế trống”  
–ꢀ …  
TÀI KHOẢN(Mã TK, Số dư)  
GIAO DỊCH(Mã GD, Loại, Số tiền)  
§ꢀ Hệ thống ngân hàng:  
–ꢀ “Khi chuyển tiền từ tài khoản A sang tài khoản B”  
–ꢀ “Khi rút tiền của một tài khoản”  
–ꢀ “Nhiều người cùng rút tiền trên một tài khoản”  
–ꢀ …  
§ꢀ Hệ thống quản lý học sinh:  
Lớp học(Mã lớp, Tên, Sĩ số)  
Học sinh (Mã HS, Họ tên, Mã lớp)  
–ꢀ Thêm một học sinh mới  
–ꢀ Chuyển lớp  
–
ꢀ
…  
4
Giới thiệu – Một số tình huống  
§ꢀ “Hai (nhiều) hành khách cùng đặt một ghế trống”  
–ꢀ Lỗi: Có thể có nhiều hành khách đều đặt được dù chỉ còn 1 ghế  
1.ꢀ Tìm thấy một ghế trống  
GHẾ (Mã ghế, Mã CB, Trạng thái)  
2.ꢀ Đặt ghế  
Mã ghế  
1001  
1002  
1003  
…
Mã CB  
100  
100  
100  
…
Trạng thái  
No  
No  
1.ꢀ Tìm thấy một ghế trống  
2.ꢀ Đặt ghế  
Yes  
No  
àꢀPhải giải quyết được tranh chấp để đảm
1050  
100  
No  
5
Giới thiệu – Một số tình huống  
§ꢀ “Chuyển tiền từ tài khoản A sang tài khoản B”  
–ꢀ Lỗi: Có thể đã rút tiền từ A nhưng chưa cập nhật số dư của B  
TÀI KHOẢN(Mã TK, Số dư)  
Mã TK  
Số dư  
A
A
B
C
50  
100  
60  
…
1.ꢀ update TAIKHOAN set SoDu=SoDu-50  
where MATK=A  
…
N
Sự cố  
2.ꢀ update TAIKHOAN set SoDu=SoDu+50  
90  
where MATK=B  
àꢀPhải đảm bảo được nhất quán dữ liệu khi có sự cố.  
6
Giới thiệu – Một số tình huống  
§ꢀ “Nhiều người cùng rút tiền từ một tài khoản”  
–ꢀ Lỗi: Có thể rút nhiều hơn số tiền thực có  
TÀI KHOẢN(Mã TK, Số dư)  
Rút 70  
Rút 80  
Mã TK  
A
Số dư  
100  
Rút 90  
1.ꢀ Đọc số dư của tài khoản A vào X  
2.ꢀ Cập nhật số dư mới của tài khoản A bằng X – Số tiền  
àꢀPhải giải quyết được tranh chấp để đảm bảo được nhất quán dữ liệu.  
7
Giới thiệu – Một số tình huống  
§ꢀ “Thêm một học sinh mới”  
–ꢀ Lỗi: Có thể xảy ra trường hợp học sinh đã được thêm nhưng sĩ số không  
được cập nhật.  
Lớp học(Mã lớp, Tên, Sĩ số)  
Mã lớp Tên Sĩ số  
1
10A 3  
Học sinh (Mã HS, Họ tên, Mã lớp)  
1.ꢀ Thêm vào một học sinh của lớp  
2.ꢀ Cập nhật sĩ số lớp tăng lên 1  
Sự cố  
Mã HS Họ tên Mã lớp  
1
2
An  
1
1
Thảo  
àꢀPhải đảm bảo được nhất quán dữ liệu khi có
3
Bình  
1
8
Giới thiệu  
§ꢀ Nhận xét:  
–ꢀ Thường xuyên xảy ra vấn đề nhất quán dữ liệu nếu một xử lý gặp sự cố  
hoặc khi các xử lý được gọi truy xuất đồng thời.  
§ꢀ Cần 1 khái niệm biểu diễn một đơn vị xử lý với các tính chất:  
–ꢀ Nguyên tố  
–ꢀ Cô lập  
–ꢀ Nhất quán  
Giao tác  
Là một khái niệm nền tảng của điều  
–ꢀ Bền vững  
khiển truy xuất đồng thời và khôi  
phục khi có sự cố.  
9
Nội dung trình bày  
§ꢀ Giới thiệu  
§ꢀ Giao tác  
–ꢀ Khái niệm  
–ꢀ Tính ACID của giao tác  
–ꢀ Các thao tác của giao tác  
–ꢀ Các trạng thái của giao tác  
§ꢀ Lịch thao tác  
–ꢀ Giới thiệu  
–ꢀ Khái niệm  
–ꢀ Lịch tuần tự  
–ꢀ Lịch khả tuần tự  
10  
Giao tác là gì ?  
§ꢀ Giao tác (Transaction) là một đơn vị xử lý nguyên tố gồm một  
chuỗi các hành động đọc / ghi trên các đối tượng CSDL  
–ꢀ Nguyên tố: Không thể phân chia được nữa. Các hành động trong một giao  
tác hoặc là thực hiện được tất cả hoặc là không thực hiện được bất cứ  
hành động nào.  
-- statement 1  
-- statement 2  
-- statement 3  
--  
T
-- statement n  
§ꢀ Trong kiến trúc hệ quản trị CSDL:  
–ꢀ Bộ phận Điều khiển đồng thời đóng vai trò quản lý giao tác.  
11  
Tính chất ACID của giao tác  
§ꢀ Tính nguyên tố (Atomicity)  
–ꢀ Hoặc là toàn bộ hoạt động được phản ánh đúng đắn trong CSDL, hoặc  
không có hoạt động nào cả.  
§ꢀ Tính nhất quán (Consistency)  
–ꢀ Khi một giao tác kết thúc (thành công hay thất bại), CSDL phải ở trạng  
thái nhất quán (Đảm bảo mọi RBTV). Một giao tác đưa CSDL từ trạng thái  
nhất quán này sang trạng thái nhất quán khác.  
§ꢀ Cô lập (Isolation)  
–ꢀ Một giao tác khi thực hiện sẽ không bị ảnh hưởng bởi các giao tác khác thực  
hiện đồng thời với nó.  
§ꢀ Bền vững (Durability)  
–ꢀ Mọi thay đổi trên CSDL được ghi nhận bền vững vào thiết bị lưu trữ dù có  
sự cố có thể xảy ra.  
12  
Ví dụ về tính chất ACID  
Chuyển khoản tiền từ tài khoản A sang tài khoản B  
Mã TK  
Số dư  
Giao tác Chuyển khoản  
1.ꢀ update TAIKHOAN set SoDu=SoDu-50  
where MATK=A  
A
B
C
50  
100  
60  
…
Sự cố  
2.ꢀ update TAIKHOAN set  
SoDu=SoDu+50 where MATK=B  
Cuối giao tác  
…
N
90  
Consitency : Với giao tác chuyển  
tiền, tổng số dư của A và B luôn  
luôn không đổi.  
Atomicity: Hoặc cả 2 bước trên đều thực  
hiện hoặc không bước nào được thực hiện.  
Nếu có sự cố bước 2 thì HQT CSDL có cơ  
chế khôi phục lại dữ liệu như lúc ban đầu.  
13  
Ví dụ về tính chất ACID  
Lớp học(Mã lớp, Tên, Sĩ số)  
Mã lớp Tên Sĩ số  
Thêm học sinh mới vào một lớp  
1
10A 3  
Giao tác Thêm học sinh mới  
1.ꢀ Thêm một học sinh vào bảng học sinh  
Học sinh (Mã HS, Họ tên, Mã lớp)  
Mã HS Họ tên Mã lớp  
2.ꢀ Cập nhật sĩ số của lớp tăng lên 1  
Cuối giao tác  
Sự cố  
1
2
An  
1
1
Thảo  
Atomicity: Hoặc cả 2 bước trên đều thực  
hiện hoặc không bước nào được thực hiện.  
Nếu có sự cố bước 2 thì HQT CSDL có cơ  
chế khôi phục lại dữ liệu như lúc ban đầu.  
3
Bình  
1
Consistency: Sĩ số của lớp phải  
luôn bằng số học sinh thực sự và  
không quá 3.  
14  
Ví dụ về tính chất ACID  
Rút ꢀền (TK1, 80)  
Gửi ꢀền (TK1, 50)  
Tài khoản (Mã TK, Số dư )  
T1  
T2  
Thời gian  
Mã TK Số dư  
Đọc số dư: t  
1
2
3
100  
500  
200  
Đọc số dư: t  
Cập nhật số dư (=t-80)  
Cập nhật số dư (=t+50)  
Isolation: Tính chất cô lập đảm bảo mặc dù các giao tác  
có thể đan xen nhau nhưng kết quả của chúng tương tự  
với một kết quả tuần tự nào đó à Các giao tác không bị  
ảnh hưởng bởi các giao tác khác khi thực thi.  
15  
Đơn vị dữ liệu  
§ꢀ Đối tượng CSDL mà giao tác thực hiện các xử lý đọc /ghi còn được  
gọi là đơn vị dữ liệu.  
§ꢀ Một đơn vị dữ liệu (element) có thể là các thành phần :  
–ꢀ Quan hệ (Relations)  
–ꢀ Khối dữ liệu trên đĩa (Blocks)  
–ꢀ Bộ (Tuples)  
§ꢀ Một CSDL bao gồm nhiều đơn vị dữ liệu.  
16  
Các thao tác của giao tác  
Input(X)  
X
Read(X,t)  
Write(X,t)  
X
t
Output(X)  
Buffer  
Database  
Read (A, t) : Đọc đơn vị dữ liệu A vào t  
Write (A, t) : Ghi t vào đơn vị dữ liệu A  
17  
[5] Chapter 17, Database systems: the complete book  
Ví dụ về biểu diễn giao tác  
§ꢀ Giả sử có 2 đơn vị dữ liệu A và B với ràng buộc A = B (nếu có một  
trạng thái nào đó mà A ≠B thì sẽ mất tính nhất quán)  
§ꢀ Giao tác T thực hiện 2 bước:  
–ꢀ A = A * 2  
–ꢀ B = B * 2  
T
Read(A, t);  
t =t*2;  
Write(A, t)  
§ꢀ Biểu diễn T:  
Read(B, t);  
t =t*2;  
Write(B, t)  
§ꢀ Hoặc:  
T: Read(A, t); t =t*2; Write(A, t); Read(B, t); t =t*2; Write(B, t)  
18  
Giao tác: Ví dụ (tt)  
Hành động  
t
Mem A  
Mem B  
Disk A  
Disk B  
Input (A)  
Read (A, t)  
t := t * 2  
8
8
8
8
8
8
8
16  
16  
16  
8
8
8
8
Write (A, t)  
Input (B)  
Read (B, t)  
t := t * 2  
16  
16  
16  
16  
16  
16  
16  
8
8
8
8
8
8
8
8
16  
16  
16  
16  
8
8
8
Write (B, t)  
Output (A)  
Output (B)  
16  
16  
16  
8
8
16  
16  
8
16  
19  
Các trạng thái của giao tác  
Sau khi lệnh thi hành  
cuối cùng thực hiện  
Sau khi mọi hành động  
hoàn tất thành công  
PARTIALLY  
COMMITTED  
COMMITTED  
ACTIVE  
Ngay khi bắt đầu  
thực hiện thao tác  
FAILED  
ABORTED  
đọc/ghi  
Sau khi giao tác được quay lui  
và CSDL được phục hồi về  
trạng thái trước trạng thái  
bắt đầu giao tác  
Sau khi nhận ra không thể thực  
hiện các hành động được nữa  
20  
Tải về để xem bản đầy đủ
pdf 77 trang yennguyen 22360 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ quản trị cơ sở dữ liệu - Chương 2: Giao tác và lịch giao tác - Nguyễn Trường Sơn", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_he_quantri_co_sodulieu_chuong_2_giao_tac_valich_gi.pdf