1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng cơ sở dữ liệu chương 7 ths lương thị ngọc khánh

26 230 0

Đ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 303,34 KB

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

Nội dung

Trang 1

CH ƯƠ NG 7:

CHUY N TÁC VÀ KHÓA

(TRANSACTIONS AND LOCKS)

1

Trang 2

KHÁI NI M V CHUY N TÁC ệ ề ể

 chuy n tác dùng đ ch m t công vi cể ể ỉ ộ ệ

 G m nhi u b c ồ ề ướ

 Các b c đ c thi hành l n l t ướ ượ ầ ượ

 C công vi c s th t b i n u m t trong các b c ả ệ ẽ ấ ạ ế ộ ướ

Trang 3

KHÁI NI M V CHUY N TÁC (TT) ệ ề ể

 Tính ACID

Atomic: T t c các b c đ c gói trong chuy n ấ ả ướ ượ ể

tác nh m t hành đ ng duy nh t ư ộ ộ ấ

Consistency: D li u đ c đ m b o toàn v n cho ữ ệ ượ ả ả ẹ

dù transaction có thành công hay không

Isolation: Khi hai transaction th c hi n đ ng ự ệ ồ

th i, chúng đ c gi đ c l p đ các k t qu ờ ượ ữ ộ ậ ể ế ả

không nh h ng l n nhau ả ưở ẫ

Durability: Sau khi transaction th c hi n thành ự ệ

công, d li u đ c đ m b o k c khi h th ng ữ ệ ượ ả ả ể ả ệ ố

Trang 4

CHUY N TÁC KHÔNG T ể Ườ NG MINH

 SQL Server chia các câu l nh th c hi n làm ệ ự ệ

hai lo iạ

 chuy n tác t ng minh ể ườ

 chuy n tác không t ng minh ể ườ

 M c đ nh, SQL Server th c hi n các l nh ặ ị ự ệ ệ ở

ch đ chuy n tác không t ng minhế ộ ể ườ

 M i câu l nh coi nh m t transaction: INSERT, ỗ ệ ư ộ

Trang 5

CHUY N TÁC T ể Ườ NG MINH

 chuy n tác t ng minh là chuy n tác ph i khai ể ườ ể ả

báo tr c ướ

 S d ng t khoá ử ụ ừ Begin Tran

 Các l nh theo sau thu c vào chuy n tác đã khai báo ệ ộ ể

 Tác d ng thay đ i d li u đ c c p nh t ngay vào ụ ổ ữ ệ ượ ậ ậ

CSDL nh ng ư

 Các chuy n tác khác không th y đ c thay đ i này ể ấ ượ ổ

 S b h y b khi phiên làm vi c gi a client – server ch m ẽ ị ủ ỏ ệ ữ ấ

Trang 6

CHUY N TÁC BEGIN TRAN

Trang 7

CHUY N TÁC COMMIT TRAN

 Commit xác đ nh k t thúc hay hoàn thành ị ế

chuy n tác T i th i đi m commit đ c g i, ể ạ ờ ể ượ ọ

chuy n tác đ c xem nh là đã th c hi n ể ượ ư ự ệ

Trang 8

 Ví d :ụ

Begin tran

Update bang1 set cot1 = ‘AB’ where cot2 = ‘BB’

Insert bang2 values(‘gtri1’,’gtri2’)

Select * from bang2

Trang 9

CHUY N TÁC ROLLBACK TRAN

 Khi g p chuy n tác này t t c nh ng phát ặ ể ấ ả ữ

bi u đ c th c hi n t khi g p chuy n tác ể ượ ự ệ ừ ặ ể

[<transaction name | <save point name> |

<@transaction variable> | <@savepoint

Trang 11

CHUY N TÁC SAVE TRAN

Trang 14

KHÓA (LOCK)

 Khóa (Lock) đ c sinh ra đ gi i h n quy n ượ ể ớ ạ ề

truy nh p trên môi tr ng đa ng i dùng ậ ườ ườ

 Microsoft SQL Server s d ng lock đ đ m ử ụ ể ả

b o tính toàn v n c a transaction và tính ả ẹ ủ

th ng nh t c a databaseố ấ ủ

 N u lock không đ c s d ng, d li u bên ế ượ ử ụ ữ ệ

trong CSDL có th b sai v logíc, và các ể ị ề

Trang 15

CÁC V N Đ CÓ TH NGĂN NG A B NG ấ ề ể ừ ằ

LOCK

 Lock có th gi i quy t 4 v n đ sau:ể ả ế ấ ề

 Dirty reads (đ c d li u sai) ọ ữ ệ

 Unrepeatable reads (đ c hai l n b n ghi) ọ ầ ả

 Phantoms (đ c các b n ghi nháp, không có) ọ ả

Trang 16

Đ C D LI U SAI (DIRTY READS) ọ ữ ệ

 Đ c d li u sai x y ra khi chuy n tác đ c ọ ữ ệ ả ể ọ

Trang 17

Đ C B N GHI 2 L N ọ ả ầ

 Khi đ c m u tin 2 l n trong m t chuy n tác ọ ẫ ầ ộ ể

trong khi chuy n tác khác ch thông báo v ể ỉ ề

Trang 19

 X y ra khi 2 chuy n tác đang đ c m u tin ả ể ọ ẫ

d li u, sau đó chuy n tác 1 ghi d li u c a ữ ệ ể ữ ệ ủ

b n ghi, chuy n tác 2 cũng ghi k t qu ch ả ể ế ả ỉ

Trang 20

CH Đ LOCK ế ộ

 Khóa chia s (Share locks)ẻ

 Đây là lo i căn b n nh t, lock chia s tài nguyen ạ ả ấ ẻ

cho phép đ c d li u, không cho phép thay đ i ọ ữ ệ ổ

b t kỳ thu c tính nào c a tài nguyên ấ ộ ủ

 Khóa đ c quy n (exclusive locks)ộ ề

 Không t ng thích v i các lo i khóa khác, khóa ươ ớ ạ

này ngăn ng a 2 ng i s d ng cùng c p nh t, ừ ườ ử ụ ậ ậ

Trang 22

CH Đ LOCK (TT) ế ộ

 Khóa c p nh t (Update locks)ậ ậ

 K t h p gi a share lock và exclusive lock ế ợ ữ

 V i câu l nh update ch ra b n ghi b ng m nh ớ ệ ỉ ả ằ ệ

đ where, trong khi ch a c n c p nh t thì s là ề ư ầ ậ ậ ẽ

tr ng thái share lock Khi câu l nh update th c ạ ệ ự

hi n ch đ exclusive lock intent locks ệ ở ế ộ

 Dùng gi i quy t phân c p đ i t ng Trong sql ả ế ấ ố ượ

server, intent locks ch gi i quy t đ n b ng ch ỉ ả ế ế ả ứ

Trang 23

CH Đ LOCK (TT) ế ộ

 Schema locks xu t phát t 2 lo i sau:ấ ừ ạ

 Schema modification locks: gi n đ thay đ i ả ồ ổ

cách t o đ i t ng, không yêu c u các phát bi u ạ ổ ượ ầ ể

create, alter, drop

 Schema stability lock: t ng t share lock, lock ươ ự

này ngăn ng a các yêu c u c a các phát bi u ừ ầ ủ ể

create, alter, drop khi đã thi t l p schema ế ậ

Trang 24

VÍ D

 Thêm m t quy n sách m i vào b ng sách ộ ể ớ ả

và đi kèm v i nó là vi c thêm vào m t nhà ớ ệ ộ

Trang 26

Create proc sp_themdocgia18tuoi

ki m tra madg ể

If not exists(select * from docgia where madg = @madg)

Thêm đ c gi ộ ả

Insert into docgia values(@madg, @hoten, @ngaysinh, @diachi)

If (@@error <>0) begin

rollback tran End

Ngày đăng: 03/12/2015, 01:03

TỪ KHÓA LIÊN QUAN

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