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

Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 4 - Lê Thị Minh Nguyệ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 (1.48 MB, 7 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

Ch

ư

ơng 4.


Quản lý giao tác



GV: Lê Thị Minh Nguyện


Email:



Nội dung


1. Giới thiệu



2. Định nghĩa giao tác



3. Tính chất ACID của giao tác


4. Trạng thái của giao tác



5. Khai báo giao tác trong SQL Server


6. Lịch biểu



Hệ quản trị Cơsở dữ liệu 2


1. Giới thiệu



Ví dụ



•Hệ thống giao dịch ngân hàng


•Hệ thống đặt vé bay


DBMS là mơi trường đa người dùng



•Nhiều thao tác truy xuất lên cùng một đơn vị dữ liệu



•Nhiều thao tác thi hành đồng thời


Thời gian


<b>Khách hàng 1</b> <b>Khách hàng 2</b>


Tìm thấy 1 chỗ trống


Tìm thấy 1 chỗ trống
Đặt vé bay


<b>2 khách hàng đặt cùng 1 </b>
<b>chỗ trống ???</b>


1. Giới thiệu (tt)


Khi DBMS gặp sự cố



Các thao tác có thể làm cho trạng thái CSDL khơng chính xác



Đọc số dư của tài khoản A
Kiểm tra (số dư > số tiền cần rút)
Tăng số dư của tài khoản B
Giảm số dư của tài khoản A


<b>Tài khoản A</b> <b>Tài khoản B</b>


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

2. Định nghĩa giao tác



Hệ quản trị Cơsở dữ liệu 5



• Giao tác là 1 đơn vị xử lý nguyên tố gồm 1 chuỗi các hành động


tương tác lên CSDL. Khi thực hiện một giao tác hoặc phải thực


hiện tất cả các hành động của nó hoặc thì khơng thực hiện


hành

động nào hết.



CSDL nhất quán 1 <sub>Giao tác</sub> CSDL nhất quán 2


2. Định nghĩa giao tác (tt)



Hệ quản trị Cơsở dữ liệu 6


3. Tính chất ACID của giao tác



Hệ quản trị Cơsở dữ liệu 7


3.1. Tính Nguyên

tố (

<b>Atomicity)</b>



3.2. Tính

Nhất quán (

<b>C</b>

onsistency)


3.3. Tính Cơ

lập (

<b>I</b>

solation)



3.4. Tính

Bền vững (

<b>D</b>

urability)



3.1. Tính Ngun

tố (

<b>A</b>

<b>tomicity)</b>



Hệ quản trị Cơsở dữ liệu 8


• Tính Ngun tố (

<b>Atomicity)</b>



• Hoặc là tồn bộ hoạt động của giao dịch được phản ánh đúng đắn trong
CSDL hoặc khơng có hoạt động nào cả.



</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

3.1. Tính Nguyên

tố (

<b>A</b>

<b>tomicity) (tt)</b>



Hệ quản trị Cơsở dữ liệu 9


•A=100, B=200 (A+B=300)


•Tại thời điểm sau khi write(A,t)


• A=50, B=200 (A+B=250) - CSDL khơng nhất qn


•Tại thời điểm sau khi write(B,t)
• A=50, B=250 (A+B=300) - CSDL nhất qn


• Nếu T khơng bao giờ bắt đầu thực hiện hoặc T được đảm bảo phải hồn tất
thì trạng thái khơng nhất qn sẽ khơng xuất hiện


<b>T:Read(A,t);</b>
<b>t:=t-50;</b>
<b>Write(A,t);</b>
<b>Read(B,t);</b>
<b>t:=t+50;</b>
<b>Write(B,t);</b>


3.2. Tính

Nhất quán (

<b>C</b>

onsistency)



Hệ quản trị Cơsở dữ liệu 10


• Tính Nhất qn (

<b>C</b>

<b>onsistency)</b>




• Bất kỳ CSDL nào thì mọi ràng buộc tòan vẹn phải thỏa. Tại bất kỳ thời
điểm mà mọi RBTV được thỏa gọi là tính nhất quán.


• Một giao tác phải biến CSDL từ trạng thái nhất quán này sang trạng thái
nhất quán khác không được phá vở trạng thái nhất quán. E1 T E2
(E1nhất quán thì E2 phải nhất qn).


• Ví dụ: phái là nam hoặc nữ, nhưng gõ đến phái Enter đi qua


mà cho phép thì khơng cịn

trạng thái nhất qn.



3.2. Tính

Nhất qn (

<b>C</b>

onsistency)



• Consistency



• Tổng A+B là khơng đổi


<b>T: Read(A,t);</b>
<b>t:=t-50;</b>
<b>Write(A,t);</b>
<b>Read(B,t);</b>
<b>t:=t+50;</b>
<b>Write(B,t);</b>


3.3. Tính Cơ

lập (

<b>I</b>

solation)



• Tính Cơ lập (I

<b>solation)</b>



• Một giao tác khơng quan tâm đến các giao tác khác xử lý đồng thời với


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

3.3. Tính Cơ

lập (

<b>I</b>

solation)




Hệ quản trị Cơsở dữ liệu 13


• Giả sử có 1 giao tác T’ thực hiện phép toán A+B và chen vào giữa thời gian
thực hiện của T


• T’ kết thúc: A+B=50+200=250
• T kết thúc: A+B=50+250=300


• Hệ thống của các giao tác thực hiện đồng thời có trạng thái tương đương
với trạng thái hệ thống của các giao tác thực hiện tuần tự theo 1 thứ tự nào
đó.


<b>T:Read(A,t);</b>
<b>t:=t-50;</b>
<b>Write(A,t);</b>
<b>Read(B,t);</b>
<b>t:=t+50;</b>
<b>Write(B,t);</b>


T’


3.4. Tính

Bền vững (

<b>D</b>

urability)



Hệ quản trị Cơsở dữ liệu 14


• Tính Bền vững (

<b>Durability)</b>



• Mọi thay đổi mà giao tác thực hiện trên CSDL phải được ghi nhận


bền vững




• Khi T kết thúc thành cơng



• Dữ liệu sẽ khơng thể nào bị mất bất chấp có sự cố hệ thống xảy


ra



<b>T:Read(A,t);</b>
<b>t:=t-50;</b>
<b>Write(A,t);</b>
<b>Read(B,t);</b>
<b>t:=t+50;</b>
<b>Write(B,t);</b>


3.4. Tính

Bền vững (

<b>D</b>

urability) (tt)



• Tính bền vững đảm bảo rằng một khi giao dịch được


hoàn thành,

tất cả các cập nhật trên CSDL là bền vững


thậm chí nếu có lỗi hệ thống sau khi giao dịch hoàn


thành

thực hiện. Giả sử một lỗi hệ thống có thể dẫn đến


mất mát dữ liệu trong bộ nhớ chính, nhưng dữ liệu


được ghi vào đĩa khơng bao giờ bị mất.



Hệ quản trị Cơsở dữ liệu 15


4. Trạng thái của giao tác



</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

5. Khai báo giao tác trong SQL Server



Hệ quản trị Cơsở dữ liệu 17



• Giao tác SQL được định nghĩa dựa trên các câu lệnh xử lý giao tác


sau :



• BEGIN TRANSACTION:Bắt đầu một giao tác


• SAVE TRANSACTION:Đánh dấu một vị trí trong giao tác (gọi là điểm đánh


dấu).


• ROLLBACK TRANSACTION: Quay luitrở lại đầu giao tác hoặc một điểm


đánh dấu trước đó trong giao tác.


• COMMIT TRANSACTION:Đánh dấu điểm kết thúc một giao tác. Khi câu


lệnh này thực thi cũng có nghĩa là giao tác đã thực hiện thành cơng.


• ROLLBACK [WORK]:Quay luitrở lại đầu giao tác.


• COMMIT [WORK]:Đánh dấu kết thúc giao tác.


5. Khai báo giao tác trong SQL Server (tt)



Hệ quản trị Cơsở dữ liệu 18


•Cú Pháp:


BEGIN TRANSACTION
SQL Statements



COMMIT | ROLLBACK TRANSACTION
BEGIN TRANSACTION giaotac1


UPDATE monhoc SET sodvht=4 WHERE sodvht=3
UPDATE diemthi SET diemlan2=0 WHERE diemlan2 IS
NULL


ROLLBACK TRANSACTION giaotac1


BEGIN TRANSACTION giaotac2


UPDATE monhoc SET sodvht=4 WHERE sodvht=3
UPDATE diemthi SET diemlan2=0 WHERE diemlan2 IS NULL


COMMIT TRANSACTION giaotac2


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

5. Khai báo giao tác trong SQL Server (tt)



Hệ quản trị Cơsở dữ liệu 21


6. Lịch biểu


6.1. Giới thiệu


6.2. Khái niệm



6.3. Lịch thao tác (Schedule)


6.4. Lịch tuần tự



6.5. Lịch khả tuần tự



6.6. Kiểm tra tính khả tuần tự của một lịch




Hệ quản trị Cơsở dữ liệu 22


6.1. Giới thiệu



Hệ quản trị Cơsở dữ liệu 23


Thực hiện tuần tự



•Tại một thời điểm, một giao tác chỉ có thể bắt đầu khi giao tác trước nó hồn tất

Thực hiện đồng thời



•Cho phép nhiều giao tác cùng truy xuất dữ liệu


•Gây ra nhiều phức tạp về nhất qn dữ liệu


•Tuy nhiên


•Tận dụng tài ngun và thơng lượng (throughput)


•Trong khi 1 giao tác đang thực hiện đọc/ghi trên đĩa, 1 giao tác khác đang xử lý tính tốn
trên CPU


•Giảm thời gian chờ


•Các giao tác ngắn phải chờ đợi các giao tác dài


•Chia sẻ chu kỳ CPU và truy cập đĩa để làm giảm sự trì hỗn trong khi các giao tác thực thi


6.2. Khái niệm




Khi thực hiện các giao dịch đồng thời có thể gây ra tình


trạng khóa sống (live lock), khóa gài và vấn đề bất khả


tuần tự. Để loại bỏ vấn đề này, có 2 cơng cụ:



Bộ xếp lịch (schedule)



Nghi thức (protocol)



</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

6.2. Khái niệm (tt)



Bộ xếp lịch

(schedule) là thành

phần của hệ thống

CSDL, có vai trị


làm

trọng

tài phân

xử

các u

cầu đang

có xung

đột

.

Người thiết


kế hệ thống đã biết

cách

loại bỏ

khóa

sống của một bộ xếp lịch



FIFO.

Một bộ xếp lịch

thể xử

lý các khóa gài và tính

bất khả



tuần tự bằng

cách:



•Buộc1 giaodịch phải đợi,chẳng hạnchođếnkhi khóađang đượcucầu được
giảiphóng


•Buộc mộtgiaodịch ngừng lạivà táikhởi động


Hệ quản trị Cơsở dữ liệu 25


6.2. Khái niệm (tt)



Hệ quản trị Cơsở dữ liệu 26



Bộ xếp lịch


6.2. Khái niệm (tt)



<b>Nghi thức (protocal):</b>

là những quy định mà các giao dịch



phải tuân theo. Chẳng hạn, chiến lược tránh khoá gài bằng


cách yêu cầu khoá chốt trên các mục dữ liệu theo một thứ tự


cố định nào đó chính là một nghi thức

.



6.3. Lịch thao tác (Schedule)



Một lịch thao tác

<i>S</i>

được lập từ

<i>n</i>

giao tác

<i>T</i>

<i>1</i>

<i>, T</i>

<i>2</i>

<i>, …, T</i>

<i>n</i>

được xử lý đồng



thời là 1 thứ tự thực hiện các hành động

của

<i>n</i>

giao tác này



Thứ tự xuất hiện của các thao tác trong lịch phải giống với thứ tự


xuất hiện trong giao tác



</div>

<!--links-->

×