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 đủ
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:
bai_giang_he_quantri_co_sodulieu_chuong_2_giao_tac_valich_gi.pdf

