Beruflich Dokumente
Kultur Dokumente
Gii thieu
Thi lng:
So tiet LT: 45 (3TC)
So tiet TH: 30 (1TC)
So tn ch: 4 TC
Thc hanh tren SQL Server.
Giao tiep qua he thong phuc vu TTX
cua trng.
1
Muc ch mon hoc
Cung cap kien thc ve nguyen ly lam
viec cua mot HQT CSDL e:
Hieu va can thiep (neu c) vao qua trnh
quan ly d lieu cua HQT CSDL nham lam
cho HQT CSDL ap ng yeu cau cong viec
mot cach hieu qua hn.
2
Kien thc nen tang
Mon hoc hoc trc: c s d lieu.
Yeu cau ve kien thc: cau truc d lieu,
he ieu hanh, toan ri rac.
Noi dung
Chng I: Tong quan ve mot HQT CSDL
3
Quy nh
Cach tnh iem:
7 iem ly thuyet + 3 iem thc hanh.
Hnh thc thi:
Thi trac nghiem, c s dung tai lieu.
4
Het chng gii thieu.
5
Chng 1
Tong quan ve mot he quan tr
c s d lieu
1
Muc tieu
zGii thieu kien thc tong quan lien quan en mot HQT
CSDL.
Noi dung
2
Nhac lai
z Mot so ac tnh cua CSDL
Nhac lai
z ac tnh cua d lieu trong mot CSDL
De truy xuat.
3
nh ngha
Ngi dung
z Cac ngi dung lien quan en 1 CSDL
Ngi quan tr CSDL (dba).
Ngi thiet ke CSDL (Database
designer).
Ngi dung.
Phan tch vien he thong va Lap trnh
vien ng dung.
4
Dung HQT CSDL
z Co khi khong nen dung HQT CSDL do:
Chi ph cao cho phan cng, phan mem,
huan luyen.
He thong cham do tnh tong quat cua HQT
khi nh ngha, x ly d lieu, quan ly bao
mat, ieu khien ong thi, quan ly khoi
phuc d lieu,
z Dung file e lu thong tin khi:
CSDL n gian, khong thay oi thng
Khong can nhieu ngi dung truy cap vao
d lieu.
5
Cac thanh phan cua HQT CSDL
Chng trnh ng dung
Giao tiep chng trnh
Quan ly an toan
Quan lyphuc hoi d lieu
Quan lygiao tac
Quan lytruy xuat ong thi
Quan ly lu tr
6
Quan ly an toan
7
Quan ly giao tac
DB DBMS
Server
Scheduler
8
Quan ly x ly ong thi
Quan ly lu tr
9
Meta data (Data Dictionary)
SQL Commands
5
DBMS Query
Plan Executor Parser
Concurrency Evaluation
Control Engine
Operator Evaluator Optimizer
DDL
Files/ Access Methods Compiler
Transaction
4
Recovery
Manager
2 Manager
Buffer Management
Lock
Manager 3
Disk Management
System
Index files Data files
Catalog
10
Phan loai HQT CSDL
z Theo mo hnh d lieu
Mang
Phan cap
Quan he
Hng oi tng
XML
z Theo kien truc DB
n ngi dung
Khach / Chu (Client/ Server)
Phan tan
z Theo loai d lieu
D lieu Multimedia
D lieu thi gian thc
z ...
Het chng 1.
11
Chng 2
2
Muc tieu
Biet x ly cong viec tren CSDL theo giao tac.
Hieu va/ hoac van dung cac ky thuat ieu
khien ong thi.
Noi dung
1. Dan nhap
2. Giao tac
3. Giao tac truy xuat ong thi
4. Lch thao tac
5. ieu khien ong thi dung ky thuat khoa
6. Mc co lap cua giao tac
7. Deadlock
8. Cach s dung cac phng thc khoa
9. ieu khien ong thi dung ky thuat nhan thi
gian
10. ieu khien ong thi dung phng phap kiem tra
hp le
4
1. DAN NHAP
z V sao phai thc hien giao tac?
z V sao phai ieu khien ong thi?
Dan nhap
Y tng giao tac e mo ta mot n v x ly
trong qua trnh x ly d lieu trong CSDL.
Nhieu ngi cung thao tac tren CSDL co
the gay ra tnh trang CSDL sai ieu
khien ong thi.
6
2. GIAO TAC
z nh ngha
z Tnh chat
z Viet giao tac
8
GIAO TAC
Cho 2 quan he
LOP (MALOP, TENLOP, SISO)
SV (MASV, TENSV, MALOP)
RBTV: SISO cua 1 lp phai bang so sinh vien thuoc
lp o.
Hay viet giao tac them 1 SV vao 1 lp
Giao tac Them_SV (v_masv, v_tensv, v_malop)
Bat au GT
Neu v_malop khong ton tai
Rollback tran
Insert into SV (v_masv,v_tensv,v_malop)
Update LOP Set SoSV= SoSV + 1
Where Malop = v_malop
Cuoi giao tac Them_SV
9
10
T-SQL ac trng cua giao tac
BEGIN TRANSACTION Bat au giao tac.
11
Mot so lu y
Kiem tra loi
khong co quyen, vi pham rang buoc, deadlock
Bien toan cuc @@ERROR
=0 : khong loi, 0 : co loi
GT Khong t rollback khi gap loi trong qua trnh thc
hien
Can kiem tra gia tr bien @@ERROR sau moi cau lenh
thanh phan va x ly loi neu co
Bien @@ROWCOUNT.
Long 32 tang, lenh rollback tang bat ky lam
rollback toan bo giao tac.
12
3. GIAO TAC TRUY XUAT ONG THI
z Gii thieu
z Cac van e cua x ly ong thi
13
Transaction
manager
Bo lap lch nhan yeu cau
Yeu cau Read/Write Read/Write t cac giao tac
va ieu khien: cho thc thi
Scheduler hoac ch hoac huy giao tac
tuy vao ky thuat ieu khien
ong thi c cai at
Reads & Writes
Buffers
14
Cac van e cua x ly ong thi
1. Mat d lieu cap nhat (Lost update)
TH1:
T1 T2
Begin Tran
Read A
Begin Tran
Read A
A:=A+10
Write A
A:=A*100
Write A
Commit Tran
Commit Tran
15
T1 T2
Begin Tran
Begin Tran
Write A
Write A
Commit Tran
Commit Tran
16
Cac van e cua x ly ong thi
2. oc d lieu cha commit (Uncommit data, Dirty read)
T1 T2
Begin Tran
Read A
A:=A+10
Write A
Begin Tran
Read A
Print A
Commit Tran
Rollback Tran
17
18
Cac van e cua x ly ong thi
4. Phantom
T1 T2
Begin Tran
Select * From SV
Begin Tran
Insert into SV values
(...)
Commit Tran
Select * From SV
Commit Tran
19
20
Mot so khai niem
1. Hoat ong cua cac giao dch ong thi c coi la ung
an neu va ch neu tac dung cua no giong nh tac dung co
c khi cho thc hien chung mot cach tuan t.
2. Lch bieu (schedule)
n1: Lch bieu cua mot tap cac giao tac la th t trong o
cac thao tac trong giao tac c thc hien. Th t cua cac
thao tac trong lch bieu phai tuan theo ung th t cua
chung trong giao tac cho trc.
n2: Mot lch bieu la mot chuoi sap theo thi gian cac
hanh ong c thc hien bi mot hoac nhieu giao tac.
21
T1 T2 T1 T2 T1 T2
Read (A,t) Read (A,s) Read (A,t)
Read (A,t)
t:=t+100 s:=s*1
t:=t+100
Write(A,t) Write(A,s) t:=t+100
Write(A,t)
Read(B,t) Read(B,s) Write(A,t)
Read(A,s)
t:=t+100 s:=s*1 Read(A,s)
Write(B,t) Write(B,s) s:=s*1
s:=s*1
Write(A,s)
nh ngha GT Write(A,s)
Read (B,s)
Read(B,t)
s:=s*1
t:=t+100
Write(B,s)
Write(B,t)
Read(B,t)
Read (B,s)
t:=t+100
s:=s*1
Write(B,t)
Write(B,s)
Lch bieu 1
22 Lch bieu 2
Mot so khai niem
Lch bieu c goi la tuan t (serial) neu th t thc hien cac
thao tac trong lch bieu la tat ca cac thao tac cua giao tac nay
roi en tat ca cac thao tac cua giao tac khac va c nh vay.
Moi lch bieu tuan t eu am bao tnh nhat quan cho c s d
lieu.
Lch bieu c goi la kha tuan t (serializable) neu tac dung cua
no giong nh tac dung cua mot lch bieu tuan t nao o. Tc la
chung sinh ra cung mot gia tr cho moi n v d lieu.
23
Read (A,t)
t:=t+100
Write(A,t)
Read(B,t)
t:=t+100
Write(B,t)
Read(A,s)
s:=s*1
Write(A,s)
Read (B,s)
s:=s*1
Write(B,s)
Read(A,s)
24
Lch kha tuan t
T1 T2 A B T1 T2 A B
25 25 25 25
Read (A,t) Read (A,t)
t:=t+100 t:=t+100
Write(A,t) 125 Write(A,t) 125
Read(A,s) Read(A,s)
s:=s*2 s:=s*1
Write(A,s) 250 Write(A,s) 125
Read (B,s) Read (B,s)
s:=s*2 s:=s*1
Write(B,s) 50 Write(B,s) 25
Read(B,t) Read(B,t)
t:=t+100 t:=t+100
Write(B,t) 150 Write(B,t) 125
Lch bieu khong kha tuan t Lch bieu kha tuan t nhng khong
25 phai la lch tuan t
26
Ky hieu
ri(X) : giao tac Ti oc n v d lieu X
wi (X) : giao tac Ti ghi tren n v d lieu X
Giao tac Ti gom mot chuoi cac thao tac oi
27
T1 T2 T1 T2
Read A Read A
Write A Write A
Read A Read A
Commit Read B
Read B Commit
Commit Commit
29
30
Mot so khai niem
Lch bieu khong rollback day chuyen (Uncascading
rollback Schedule)
nh ngha: Lch bieu khong rollback day chuyen la
lch bieu ma trong o moi cap giao tac Ti, Tj, neu Tj
oc n v d lieu c viet trc o bi Ti, thao tac
commit cua Ti phai xuat hien trc thao tac oc cua
Tj.
31
nh ngha: Hai thao tac Oi, Oj la tng thch neu ket qua cua viec
thc hien ong thi Oi, Oj, giong nh ket qua cua viec thc hien
tuan t Oi, Oj hoac Oj, Oi
Hai thao tac tng thch th khong xung ot nhau.
T1 T2 T1 T2 T1 T2
Read (A) Read (A) Read (A)
Read(A) Read(B) Write(B)
T1 T2 T1 T2 T1 T2
Read (A) Write(A) Write(A)
Write(A) Read(A) Write(A)
32
Mot so khai niem
Tnh kha hoan v cua 2 thao tac
33
Read A Write A
Read A 1 0
Write A 0 0
34
Mot so khai niem
Vi mot lch bieu S1 cho trc, ta co the lap lai viec
hoan oi v tr cua hai thao tac khong xung ot lien
ke, cho en khi at c 1 lch bieu tuan t S2, neu
co the. Khi o, lch bieu S1 ban au la lch bieu kha
tuan t.
35
36
Xet tnh kha tuan t cua S
S S
T1 T2 T3 T4 T1 T2 T3 T4
1.Read A 1.Read A
2.Read A 3.Write B
3.Write B 2.Read A
4.Write A 4.Write A
5.Read B 5.Read B
6.Read B 7.Read A
7.Read A 8.Write C
8.Write C 6.Read B
9.Write A 9.Write A
38
Mot so khai niem
Kha tuan t xung ot khong la ieu kien can cho tnh kha tuan
t.
S1:w1(Y);w1(X);w2(Y);w2(X);w3(X)
S2:w1(Y);w2(Y);w2(X);w1(X);w3(X)
S1: T3 ghi X, T2 ghi Y
S2: T1, T2 ghi tren X nhng T3 ghi e, T2 ghi Y.
Hai lch bieu tren cho gia tr tren X va Y giong nhau.
S1 tuan t
S2 kha tuan t
nhng khong kha tuan t xung ot do khong the chuyen S2 ve 1
lch bieu tuan t bang cach hoan oi.
Kha tuan t
Kha tuan t
xung ot
39
1 2 3
V du
S:r2(A);r1(B);w2(A);r2(B);r3(A);w1(B);w3(A);w2(B)
T1 T2 T3
r(A)
r(B)
w(A)
r(B)
r(A)
w(B)
1 2 3 w(A)
w(B)
43
44
Mot so khai niem
Nghi thc (Protocol): la mot han che tren
chuoi cac bc nguyen t ma mot giao dch co
the thc hien.
V du: Nghi thc giai quyet van e deadlock (yeu
cau cac giao tac lock cac n v d lieu theo 1 th
t co nh nao o), nghi thc am bao tnh kha
tuan t (chien lc lock 2 pha).
45
46
Ky thuat khoa n gian
Bo lap lch dung ky thuat khoa yeu cau:
Phai khoa va nha khoa ngoai viec oc/Ghi d lieu.
Viec dung khoa phai tuan theo 2 ieu kien sau:
1. Tnh nhat quan cua giao tac:
a) Giao tac ch co the oc hoac ghi tren n v
d lieu neu trc o co yeu cau lock tren n
v d lieu va cha nha lock.
b) Neu giao tac a lock tren vdl th sau o phai
unlock.
2. Tnh hp le cua lch bieu:
Khong the co 2 giao tac ong thi khoa tren
1 vdl.
47
Ky hieu
Ky hieu:
48
T1 T2 A B
25 25
l1(A);r1(A);
A:=A+100;
w1(A);u1(A); 125
l2(A);r2(A);
A:=A*2;
w2(A);u2(A); 250
l2(B);r2(B);
B:=B*2;
w2(B);u2(B); 50
l1(B);r1(B);
B:=B+100;
w1(B);u1(B); 150
n v
d lieu
gi lock
BOT EOT
50
Nghi thc khoa 2 giai oan (tt)
T1 T2 T3 T4
L(A) L(B) L(B) L(A)
Read(A) Read(B) Read(B) Read(A)
L(B) L(A) B=B-50 UL(A)
Read(B) Read(A) Write(B) L(B)
B:=B+A UL(B) UL(B) Read(B)
Write(B) A:=A+B L(A) UL(B)
UL(A) Write(A) Read(A) Print(A+B)
UL(B) UL(A) A=A+50
Write(A)
UL(A)
2PL
Ta co the chuyen 1 lch bieu S hp le gom cac giao
tac nhat quan va thoa 2PL sang 1 lch bieu tuan t
tng ng xung ot vi S.
Chng minh bang phng phap quy nap. Ch quan tam en
thao tac Read va Write.
S: T1, T2,..., Tn. at Ti la giao tac unlock au tien, ui(X).
Ta hoan toan co the chuyen tat ca cac thao tac Read va
Write cua Ti ra au lch bieu ma khong gap phai 1 thao tac
xung ot nao.That vay:
z Xet wi(Y) nao o cua Ti. Gia s co thao tac wj(Y) cua S i
trc wi(Y):
S: ..., wj(Y)..., uj(Y), ..., li(Y), ..., wi(Y), ...
z V Ti unlock au tien, ui(X) phai ng trc uj(Y):
S: ..., wj(Y),..., ui(X),..., uj(Y), ..., li(Y), ..., wi(Y), ...hoac
S: ..., ui(X)..., wj(Y), ..., uj(Y), ..., li(Y), ..., wi(Y), ...
Ti khong thoa 2PL.
S c viet lai:
(cac thao tac cua Ti) (cac thao tac cua n-1 giao tac con lai)
Phan con lai la lch bieu hp le gom cac GT nhat quan va thoa
2PL bang quy nap ta ket luan S la kha tuan t xung ot.
52
Han che cua PP KT dung khoa
Livelock: tnh trang 1 giao tac ch hoai e
c lam viec tren 1 vdl.
Deadlock: tnh trang hai giao tac c ch
nhau mai e c lam viec tren 1 n v d
lieu ma khong co giao tac nao co the thc
hien trc.
53
T1 T2 A B
25 25
l1(A);r1(A);
l2(B);r2(B);
A:=A+100;
B:=B*2;
w1(A); 125
w2(B); 50
l1(B); Denied l2(A); Denied
Tnh trang rollback day chuyen co the xay ra vi lch bieu thoa nghi thc
khoa 2 giai oan.
54
Nghi thc khoa nghiem ngat
(Strict locking)
Khoa nghiem ngat: Tat ca cac khoa oc
quyen cua 1 giao tac bat ky phai gi cho en
khi giao tac commit hoac abort, va lenh
commit/ abort phai c ghi nhat ky tren a.
Lch bieu trong o cac giao tac tuan thu cach
khoa nghiem ngat la lch bieu nghiem ngat
(strict schedule).
Moi lch bieu nghiem ngat la lch bieu khong
rollback day chuyen.
Moi lch bieu nghiem ngat la kha tuan t.
z V lch bieu nghiem ngat tng ng vi lch bieu tuan t
theo th t ma GT commit.
55
57
58
Nguyen tac khoa
1. Tnh nhat quan cua giao tac
Thao tac oc ri(X) phai i sau sli(X) hoac xli(X) ma khong
co thao tac ui(X) xen vao gia.
Thao tac ghi wi(X) phai i sau xli(X) ma khong co thao
tac ui(X) xen vao gia.
Tat ca cac lock phai c unlock tren cung vdl.
2. Giao tac thoa 2PL
Khong co thao tac ui(Y) nao i trc sli(X) hoac xli(X)
3. Lch bieu hp le
Neu co thao tac xli(X) trong lch bieu th khong the co
xlj(X) hoac slj(X) theo sau, j i ma khong co lenh ui(X)
nao gia.
Neu co thao tac sli(X) trong lch bieu th khong the co xlj
(X) theo sau, j i ma khong co lenh ui(X) gia.
59
sl1(A);r1(A);
sl2(A);r2(A);
sl2(B);r2(B);
xl1(B) denied
u2(A);u2(B);
u1(A);u1(B);
61
62
Khoa tang cap & Deadlock
T1 T2
sl1(A);
sl2(A);
xl1(A) denied
xl2(A); denied
63
64
Ma tran tng thch
S X U
65
V du
T1 T2
ul1(A), r1(A);
ul2(A), Denied
xl1(A), w1(A), u1(A);
ul2(A), r2(A);
xl2(A), w2(A), u2(A);
66
Khoa tang/giam
Increment lock ili(X) inci(X)
Y tng:
z Hanh ong tang gia tr / giam gia tr neu
dung khoa oc/ ghi th phai ch nhau.
z That ra chung co the hoan v hoac thc hien
67
S X I
S Yes No No
X No No No
I No No Yes
68
V du
T1 T2
sl1(A), r1(A);
sl2(A), r2(A);
il2(B), inc2(B);
il1(B), inc1(B);
u2(A), u2(B);
u1(A), u1(B);
69
71
row row
row row
row row
72
Cac phng thc khoa
Intent Locks
Khong phai la 1 che o khoa rieng biet ma c s dung ket hp
vi cac che o khoa khac:
z Shared Lock => Intent Shared Lock (IS)
z Update Lock => Intent Update Lock (IU)
z Exclusive Lock => Intent Exclusive Lock (IX)
Intent lock rat co ch khi d lieu c to chc theo cau truc long
nhau hoac cau truc cay.
Intent Lock c SQL Server t ong thiet lap, khong the c
yeu cau thiet lap Intent Lock mot cach tng minh.
Khi 1 n v d lieu thanh phan b khoa, cac n v d lieu cap
cao hn cung se b khoa bang Intent Lock tng ng.
Muc ch:
z Khong cho GT khac lock vdl cap cao hn khi khong the lock
vdl cap thap hn.
z Tang toc o cua he thong v khong can kiem tra lock tat ca
cac vdl cap con khi muon khoa vdl cap cao hn.
73
Nguyen tac
1. e at khoa S hoac X tren 1 vdl, phai bat
au tai goc.
2. Neu v tr hien tai la v tr muon khoa,
khong can i tiep. Yeu cau khoa S hoac X
tai vdl hien tai.
3. Neu vdl muon khoa con cap di, th:
1. at khoa canh bao tai node hien tai.
1. Neu yeu cau Slock th at IS tai node hien tai.
2. Neu yeu cau Xlock th at IX tai node hien tai.
2. i tiep theo hng en c vdl can tm (theo
cay con cha vdl can khoa).
4. Lap lai bc 2 va 3.
74
Cac phng thc khoa
Intent Locks
CSDL
XLock
75
IS IX S X
IS Yes Yes Yes No
IX Yes Yes No No
S Yes No Yes No
X No No No No
76
Khoa tren vdl co kch thc khac nhau
77
WL(A) B2 T1 T2 G
Read(A)
A:=A+B
Write(A)
B3 G co chu trnh => S khong
UL(A)
kha tuan t
WL(B)
Read(B)
B:=B+A
Write(B)
UL(B)
79
80
Nghi thc khoa phan cap
1. GT co the bat au khoa tai node bat ky cua cay.
2. Muc X ch co the b khoa bi Ti neu Ti a khoa
node cha cua X trc o.
3. Co the nha khoa tren 1 node bat c luc nao.
4. GT khong the nha lock tren 1 node roi lock tr lai
node o, ngay ca khi van con khoa node cha.
81
T1 T2 T3
V du l1(A), r1(A);
l1(B), r1(B);
l1(C), r1(C)
w1(A), u1(A);
l1(D), r1(D)
w1(B), u1(B)
l2(B), r2(B);
A l3(E), r3(E);
w1(D), u1(D);
B C w1(C), u1(C);
l2(E),
D E l3(F), r3(F)
w3(F), u3(F);
l3(G), r3(G)
w3(E), u3(E);
F G
l2(E), r2(E)
w3(G), u3(G);
w2(B), u2(B);
w2(E), u2(E);
82
Kien truc bo lap lch
dung phng thc khoa
Ban than giao tac khong t yeu cau khoa.
Viec chen thao tac khoa vao trc cac thao
tac oc/ Ghi la cong viec cua Bo lap lch.
Bo lap lch nhan yeu cau read, write, commit hay
abort t giao tac.
Bo lap lch lu thong tin ve viec quan ly khoa
trong lock table.
Giao tac khong t nha khoa. Bo lap lch nha
khoa khi bo quan ly giao tac (Transaction
Manager - TM) bao cho Bo lap lch biet giao
tac a commit hay abort.
83
Read (A);
Write (B);
Commit(T); ...
Scheduler, Phan I
Lock
Lock (A); Read (A);
table
Scheduler, Phan II
84
Nguyen tac cap khoa
1. Phan I Chon phng thc lock phu hp e chen vao trc
cac thao tac Read, Write, Increment, update. Co nhng
phng thc khoa nao la tuy thuoc vao HQT CSDL.
2. Phan II Nhan output cua Phan I va thi hanh:
T delayed: v cha c ap ng yeu cau lock, se chen cac
thao tac cua giao tac o vao hang ch.
T not delayed: yeu cau lock c ap ng:
Neu la thao tac truy cap CSDL th c HQT thc hien.
Neu la thao tac lock, Bo lap lch kiem tra lock table xem co the
cap lock khong.
z Neu c, cho phep lock va cap nhat lock table vi lock va cap.
z Neu khong, them 1 muc vao lock table, T delayed, cho en khi lock
c cap.
3. Khi T commit hoac abort, TM bao cho Phan I biet va nha tat
ca cac lock gi bi T. Neu co GT nao ang ch nhng lock
nay, Phan I se bao cho Phan II biet.
4. Khi nhan thong bao ve cac khoa tren X a nha t Phan I,
Phan 2 cap khoa cho T ang ch tren X, T thi hanh tiep cho
en khi thi hanh xong hoac tiep tuc ch v khoa cha the
c ap ng.
85
Waiting: Yes
A
List
T1 S No
T2 U no
T3 X yes
86
Bang quan ly khoa
N: la mot quan he lu thong tin ve 1 n v d lieu
va thong tin cac khoa ang yeu cau tren vdl o.
Group mode: cha khoa nghiem ngat nhat trong cac
khoa ang yeu cau tren A. Can c vao khoa nay e
grant/ deny yeu cau khoa tren A. Vi mo hnh
Shared-Exclusive-Update th group mode se la:
S neu ch co mot/ mot so shared lock ang c gi.
U neu co 1 update lock va co the co shared lock.
X neu co 1 exclusive lock va khong co lock nao khac.
Waiting bit: cho biet co t nhat 1 GT ang ch lock
tren A.
List: cac GT ang gi lock tren A hoac ch lock tren
A:
Ten GT ang gi lock hoac ang ch.
Mode cua lock.
Tnh trang la ang gi lock hay ang ch lock.
87
89
Cac mc o co lap
(Isolation levels)
Mc o co lap cua 1 giao tac quy nh mc o nhay
cam cua 1 giao tac oi vi nhng s thay oi tren
CSDL do cac giao tac khac tao ra.
Mc o co lap cua giao tac quy nh cach thc lock
va thi gian gi lock tren n v d lieu ma giao tac
co truy cap.
Cac mc o co lap c SQL Server ho tr:
Read Uncommitted.
Read Committed (default).
Repeatable Read.
Serializable.
90
Cac mc co lap
91
Read Uncommitted
Khong thiet lap Shared Lock tren nhng n v d lieu can oc,
thiet lap Exclusive lock khi ghi.
Khong b anh hng bi nhng lock cua cac giao tac khac tren
nhng n v d lieu can oc.
Khong phai ch khi oc d lieu (ke ca khi d lieu ang b lock bi
giao tac khac).
u iem:
Toc o x ly rat nhanh.
Khong can tr nhng giao tac khac thc hien ddoc d lieu.
Khuyet iem:
Cac van e gap phai khi x ly ong thi: Dirty Reads, Unrepeatable
Read, Phantoms.
Nhan xet:
Ch nen dung e oc d lieu trong trng hp can d lieu tong
quan ve CSDL, v du nh tao nhng bao cao ve tnh hnh chung.
Khong dung khi can oc nhng so lieu chnh xac.
92
Read Committed
La MCL mac nh cua SQL Server
Tao Shared Lock tren vdl c oc, Shared Lock c giai phong
ngay sau khi oc xong d lieu => Giai quyet van e Dirty Reads
Tao Exclusive Lock tren vdl c ghi, va gi cho en het giao tac
u iem:
Giai quyet van e Lost update, Dirty Reads
Shared Lock c giai phong ngay, khong can phai gi cho en het
giao tac nen khong ngan can thao tac cap nhat cua cac giao tac
khac.
Khuyet iem:
Cha giai quyet c van e Unrepeatable Reads, Phantoms
Phai ch khi cha the c ap ng yeu cau lock tren n v d
lieu ang b gi lock bi giao tac khac.
93
Repeatable Read
Repeatable Read = Read Committed+ Giai quyet Unrepeatable
Reads
Tao Shared Lock tren vdl c oc, Shared Lock c gi cho
en het giao tac => Khong cho phep cac giao tac khac cap nhat
tren vdl nay.
Tao Exclusive Lock tren vdl c ghi, Exclusive Lock c gi
cho en het giao tac.
u iem:
Giai quyet van e lost update, dirty Read va Unrepeatable Read
Khuyet iem:
Cha giai quyet c van e Phantom.
Phai ch khi cha the c ap ng yeu cau lock tren n v d
lieu ang b gi lock bi giao tac khac.
Cac giao tac khac khong c phep cap nhat tren nhng n v
d lieu ang b gi Shared Lock.
Van cho phep Insert nhng dong d lieu thoa man ieu kien thiet
lap nhng Shared Lock => Phantoms
94
Serializable
Serializable = Repeatable Read + Giai quyet Phantom
95
MASV TEN
1 Nam
2 Toan
3 Tam
96
TH1: a. Read UnCommitted & Read Committed
T1 T2
UPDATE SINHVIEN
SET TEN = Minh
WAITFOR DELAY00:00:20
BEGIN TRAN
SET TRANSACTION ISOLATION
LEVEL READ UNCOMMITTED
SELECT * FROM SINHVIEN WHERE
TEN = Minh
COMMIT TRAN
ROLLBACK TRAN
T1 T2
UPDATE SINHVIEN
SET TEN = Minh
WAITFOR DELAY00:00:20
BEGIN TRAN
SET TRANSACTION ISOLATION
LEVEL READ COMMITTED
SELECT * FROM SINHVIEN WHERE
TEN = Minh
ROLLBACK TRAN COMMIT TRAN
T1 T2
BEGIN TRAN
BEGIN TRAN
SET TRANSACTION ISOLATION
LEVEL READ COMMITTED
SELECT TEN FROM SINHVIEN
WAITFOR DELAY 00:00:20
UPDATE SINHVIEN
SET TEN= Minh
COMMIT TRAN
SELECT TEN FROM SINHVIEN
COMMIT TRAN
BEGIN TRAN
BEGIN TRAN
SET TRANSACTION ISOLATION
LEVEL REPEATABLE READ
SELECT TEN FROM SINHVIEN
WAITFOR DELAY 00:00:20
INSERT INTO SINHVIEN
VALUES (4,Tuyet)
COMMIT TRAN
BEGIN TRAN
BEGIN TRAN
SET TRANSACTION ISOLATION
LEVEL SERIALIZABLE
SELECT TEN FROM SINHVIEN
WAITFOR DELAY 00:00:20
INSERT INTO SINHVIEN
VALUES (4,Tuyet)
COMMIT TRAN
3.2 Dirty read 6.2 Dirty read 9.2 Dirty read 12.2 Dirty read
3.3 Repeatable read 6.3 Repeatable read 9.3 Repeatable read 12.3 Repeatable
read
102
7. DEADLOCK
z Khai niem
z Phat hien deadlock
z Ngan nga deadlock
103
Deadlock
Deadlock la tnh trang trong o nhng giao tac co lien
quan khong the thc hien tiep cac thao tac cua no ma
phai ch nhau mai.
104
Cycle deadlock
T1 gi X-lock tren TAB1, T2 gi X-lock tren TAB2
T1 yeu cau X-Lock tren TAB2 => T1 ch T2
T2 yeu cau X-Lock tren TAB1 => T2 ch T1
Gi X-lock Gi X-lock
tren bang tren bang
TAB1 TAB2
Deadlock
Yeu cau X- Yeu cau X-
lock tren lock tren
bang TAB2 bang TAB1
105
Conversion Deadlock
Giao tac T1 va T2 cung gi S-Lock tren 1 tai nguyen R
Giao tac T1 yeu cau X-Lock tren R => T1 ch T2
Giao tac T2 yeu cau X-Lock tren R => T2 ch T1
Giao tac T1 Giao tac T2
Gi SLock Gi SLock
Deadlock
106
Giai phap cho Deadlock
Giai quyet Deadlock
Huy tat ca=> khong phai la cach giai quyet tot.
Huy giao tac gay ra deadlock. Giao tac nao gay ra?
z Dung thi gian qua han (timeout), gii han thi gian giao tac
trang thai kch hoat, thi gian timeout nho qua hoac ln qua eu
khong co li.
z Dung o th ch.
107
o th ch
Khi co tnh trang Deadlock xay ra, he thong huy tnh trang
Deadlock, thc hien luc runtime.
Dung o th ch e phat hien deadlock
Cho S la lch thao tac cua cac giao tac T1, T2, ..., Tn.
o th co nh la cac giao tac
Cung co hng Ti Tj neu Tj phai ch Ti
o th co chu trnh Deadlock
108
V du
T1 T2 T3
Rlock(A)
Rlock(C)
Wlock(E)
Wlock (B)
Rlock(B)
Rlock(B)
Wlock(C)
Wlock(E)
Rlock(D)
Wlock(C)
... ... ...
110
Thuat toan WAIT - DIE
Ti, Tj co timestamp tTi,tTj. Ti yeu cau lock tren 1 vdl ang b gi lock
bi Tj
If tTi < tTj then
Ti ch
Else
Rollback Ti, Ti bat au lai
EndIf
T1 T2 T1 T2
T1 ch T2
rollback
111
112
Thuat toan WOUND - WAIT
Ti, Tj co timestamp tTi,tTj. Ti yeu cau lock tren 1 vdl ang b gi lock
bi Tj
T1 T2 T1 T2
T2
rollback 113 T2 ch
114
Cac pp quan ly deadlock
PP dung nhan thi gian T ch
Wait - Die Wound-Wait
GT rollback thi Neu GT yeu cau lock gan o th co the rat ln,
iem xay yeu cau thi iem GT bat au, t phan tch va tm chu
lock, la giai oan khi xay ra tnh trang GT trnh se ton nhieu thi
sm, nen co the co gia khong yeu cau c gian.
nhieu GT b rollback lock gi bi GT tre hn, v
hn, va GT rollback vay rollback t xay ra.
thng thc hien t GT b rollback a thc
cong viec hn. hien nhieu viec trc khi
b rollback.
Co khi khong co deadlock xay ra van yeu cau GT Ch yeu cau 1 GT
rollback. rollback khi thc s GT
gay ra deadlock
u tien GT gia, GT gia hn se kill giao tac
tre hn. am bao moi GT eu hoan tat, khong
co tnh trang starvation.
116
Chien lc s dung lock
Cac phng thc lock:
FASTFIRSTROW
HOLDLOCK
NOLOCK
PAGLOCK
READCOMMITTED
READPAST
READUNCOMMITTED
REPEATABLEREAD
ROWLOCK
SERIALIZABLE
TABLOCK
TABLOCKX
UPDLOCK
XLOCK
117
V du
SELECT COUNT(*) FROM SINHVIEN WITH (TABLOCK,
HOLDLOCK)
118
V du Gia s STT
GP (STT, NGAY CAP, SOXE, LYDOCAP) ln nhat hien tai =10
119
Giai phap KT
GP (STT, NGAY CAP, SOXE, LYDOCAP)
S3 11
S4
S3 Insert into GP values (M+1,...)
S2 11
S4 Commit tran S3
3 12
S4
120
Bai tap
Moi khi chuyen e
co ma la MAC
Cho CSDL sau: c m, so sv
SV (MASV,TENSV,MANGANH) ang ky khong vt
qua SOSVT
NGANH (MANGANH, TENNGANH)
C (MAC, TENC, SOSVT)
NG_C (MANGANH, MAC)
C_MO (MAC, NAM, HOCKY) Cho biet sinh vien
theo hoc nganh
K (MASV, MAC, NAM, HOCKY) co ma la
MANGANH phai
hoc nhng chuyen
e g
1 bo cua C_MO
Sinh vien ch c
cho biet chuyen e
ang ky cac chuyen
co ma la MAC
e co m
c m trong nam
SV khong c k
NAM, hoc ky
qua 3 chuyen e
HOCKY
trong 1 hoc ky.
121
a ra giai phap sao cho he thong lam viec ong thi hieu qua.
(Gt thong ke, cap nhat, them mi, ang ky ong thi)
122
Thao luan
v cac gt n gian: them, cap nhat, xoa
v cac giao tac thong ke.
v giao tac ang ky.
Khoa oc quyen tren cac bang lq?
Ap dung mc co lap Serializable?
123
124
Y tng
Gan nhan thi gian cho giao tac, ghi lai
nhan thi gian cua giao tac cuoi cung
oc/ghi tren vdl.
Quan ly ong thi theo nguyen tac: am
bao viec thc hien lch bieu a cho tng
ng vi lch tuan t theo th t nhan thi
gian cua giao tac.
125
126
Nhan thi gian cua n v d lieu
127
Nguyen tac
Truy xuat theo th t nhan thi gian
Khi T oc X th WT(X) phai < TS(T).
Khi T ghi X th WT(X) va RT(X) phai < TS(T).
Abort T neu khong tuan theo th t, T khi tao lai
vi nhan thi gian mi.
128
Van e 1: oc qua tre
T muon oc X
Nhng TS(T) < WT(X)=TS(U) : X a c ghi
sau khi T a c khi tao.
U writes X
T reads X
U bat au
T bat au
129
T writes X
U bat au
T bat au
130
Van e 3: Dirty read
T oc X, X c ghi lan cuoi bi U.
Nhng T va oc X xong, U abort
Tr hoan viec oc cua T cho ti khi U
commit/abort.
Da vao commit bit e nhan biet.
U writes X
T reads X
T bat au
U bat au U abort
131
Van e 4
U bat au sau nhng lai ghi trc
Khi T muon ghi th khong can lam g ca (Qui tac ghi Thomas)
Neu U abort va T commit
Gia tr cuoi cua X le ra la gia tr do T ghi nhng a b bo
qua.
Khi U abort, at C(X) = false, chep lai gia tr cu cua X va
WT(X)
U writes X
T writes X
U bat au
132
Nguyen tac
Khi T yeu cau Read/Write, bo lap lch phan
hoi:
ap ng yeu cau.
Abort T va khi tao T vi nhan thi gian mi
(Rollback).
Tr hoan T va sau o quyet nh Abort T hay ap
ng yeu cau
133
134
Thuat toan ieu khien
2. Giao dch T yeu cau Write X
Neu TS(T) >= RT(X) and TS(T) >= WT(X)
z Ghi gia tr mi tren X
z at WT(X) := TS(T).
z at C(X) := FALSE.
Neu TS(T) >= RT(X) and TS(T) < WT(X)
z Neu C(X) = TRUE, bo qua viec ghi cua T.
z Neu C(X) = FALSE, tr hoan T cho en khi C(X) = TRUE hoac
cac giao tac ghi tren X a abort.
Neu TS(T) < RT(X)
z Rollback T (Ghi qua tre)
3. Neu T commit, bo lap lch at tat ca cac vdl X ma
T ghi gia tr C(X):=TRUE. Cac GT ang ch tren X
co the tiep tuc.
4. Trng hp T rollback, cac GT khac ang ch tren
X yeu cau oc/ ghi lai.
135
V du
T1 T2 T3 T4 A B C
ReadA tr=415
ReadA tr =420
WriteB tw=415
WriteA tw=420
ReadB T2
rollback
ReadB tr=425
ReadA
WriteC
WriteA tw=425
136
V du
T1 T2 T3 T4 A B C
ReadA tr=500
ReadA tr =510
WriteB tw=500
WriteA tw=510
ReadB tr=550
ReadB tr=575
ReadA tr=550
WriteC Tw=550
WriteA tw=575
137
138
PP nhan thi gian a phien ban
Moi vdl X co nhieu phien ban X1, X2, ..., Xk.
oi vi moi phien ban, lu lai:
Gia tr cua phien ban Xi,
Nhan thi gian oc cua Xi :rT (Xi), la nhan thi
gian ln nhat trong cac GT a oc Xi.
Nhan thi gian ghi cua Xi wT(Xi), la nhan thi
gian cua giao tac a tao ra phien ban Xi.
Khi T c phep ghi tren X, mot phien ban
mi Xk+1 c tao, va:
rT (Xk+1) = wT(Xk+1) = TS(T).
Khi T c phep oc tren Xi, th:
rT (Xi) = max(rT (Xi), TS(T))
139
141
Read(A) WTS=0
RTS=100
Write(A) RTS=0
WTS=100
Read(A) RTS=200
WTS=100
Write(A) RTS=0
WTS=200
Read(B) RTS=200
WTS=0
RTS=200
Read(B) WTS=0
Write(A) RTS=0
WTS=200
Read(A) RTS=200
WTS=100
142
10. ieu khien ong thi dung phng phap
kiem tra hp le (Validation Technique)
143
144
Phng phap kiem tra hp le
C cho GT thc hien.
Cap nhat cua GT ch tren bien cuc bo, khong cap
nhat trc tiep tren CSDL cho en khi GT ket
thuc.
Khi GT thi hanh xong, ky xac nhan kiem tra cac
cap nhat cua GT co vi pham tnh kha tuan t
khong.
z Neu khong, GT commit va CSDL c cap nhat that s
t bien cuc bo.
z Neu vi pham, GT abort va khi ong lai.
145
146
Phng phap kiem tra hp le
Ghi nhan cac nhan thi gian:
START(Ti) thi iem Ti start
VAL(Ti) thi iem Ti thc hien xong phase
validate
Finish(Ti) thi iem T thc hien xong phase
finish.
147
Validate
U Finish
T
149
Kiem tra hp le
Gia s co GT U:
U VAL, ngha la a validate xong
FIN(U) > VAL (T), ngha la U khong finish trc khi T bat
au giai oan validate.
WS(T) WS(U) = {X} : co the T se ghi X trc khi U ghi
X. Ta khong chac ieu nay co xay ra hay khong, tot hn
het la rollback T e khong vi pham tnh tuan t.
Start
Validate
U
Finish
T
150
V du
U: RS(U)={B} W: RS(W)={A,D}
WS(U)={D} WS(W)={A,C}
T: RS(T)={A,B} V: RS(V)={B}
WS(T)={A,C} WS(V)={D,E}
Hay ieu khien ong thi dung phng phap kiem tra hp le cho 4 GT tren.
151
V du (tt)
U co hp le?
V tai thi iem U kiem tra hp le th cha co
giao tac nao hp le nen khong can kiem tra. U
kiem tra hp le thanh cong.
152
V du(tt)
T co hp le?
Khi T kiem tra hp le, U a hp le nhng cha ket thuc. V
vay ta kiem tra tap cac n v d lieu oc va ghi cua T co
giao vi tap vdl ghi cua U hay khong. That vay:
z RS(T) WS(U) = {A, B} {D} =
zWS(T) WS(U) = {A, C} {D} =
Vay T hp le.
153
V du (tt)
V co hp le?
Khi V kiem tra hp le, U a hp le va ket thuc, T a hp le
nhng cha ket thuc. V V bat au trc khi U ket thuc nen
ta phai kiem tra:
z RS(V) WS(U) = {B} {D} =
z RS(V) WS(T) = {B} {A, C} =
z WS(V) WS(T) = {D, E} {A, C} =
Vay V hp le.
154
V du (tt)
W co hp le?
Khi W kiem tra hp le th U, T, V a kiem tra
hp le, W bat au sau khi U ket thuc. Khi o T va
V van cha ket thuc. Ta phai kiem tra:
z RS(W) WS(T) = {A, D} {A, C} = {A}
z RS(W) WS(V) = {A, D} {D, E} = {D]
z WS(W) WS (V) = {A, C} {D, E} = W khong hp le.
155
157
Phu luc
Lch bieu dung ky thuat nay la khong rollback
day chuyen v thao tac ghi c thc hien sau
khi giao tac khac commit.
158
TT NHAN THI GIAN
160
Het chng 2.
161
KHOI PHUC D LIEU &
AN TOAN D LIEU
Noi dung
Phan 1: Khoi phuc d lieu
1. Muc ch.
2. Cac loai s co.
3. Cac khai niem lien quan khoi phuc d lieu
Tap tin nhat ky GT (transaction log).
iem lu tr (checkpoint).
4. Cac ky thuat khoi phuc d lieu.
1
V du
2 tai khoan A = 1000 , B = 2000
T chuyen 50 t A sang B.
He thong tnh trang:
Ghi A:= A-50
Cha ghi B:= B+50
Khi o mat ien!
Khi co ien tr lai
Neu cho T thc hien lai th A = 900
Neu khong cho T thc hien lai th A = 950 va B =2000.
Vay phai thc hien khoi phuc he thong nh the nao?
3
2
Mc tieu khoi phuc DL
Giao tac la n v c ban khi khoi phuc CSDL.
Trong 4 tnh chat cua GT(ACID), RM bao am
2 tnh chat, o la tnh nguyen to (Atomic) va
tnh ben b (Durability).
Cac loai s co
S co cua giao tac
Giao tac b rollback do deadlock hay do bo lap lch yeu
cau (thc hien lai).
Khi xay ra s co giao tac, he thong van bnh thng.
Tan suat: vai lan/phut.
S co he thong
He thong khong the tiep tuc thc hien c na.
Nguyen nhan co the do loi trong bo x ly, b mat ien
hay do loi cua phan mem.
Khi xay ra s co he thong, ch mat nhng thong tin tren
bo nh chnh.
Tan suat: vai lan/thang. 6
3
Cac loai s co
S co thiet b lu tr (media failure)
V du: a b h, au oc b h,
Khi xay ra s co thiet b lu tr, co the b mat 1 phan
hay toan bo d lieu
Tan suat: vai lan/nam
Loi phan mem ng dung
Loi logic cua chng trnh truy cap CSDL, lam cho
viec thc hien giao tac khong thanh cong.
Nhan xet
Du bat c nguyen nhan g, ta can xem xet 2
kha nang khi phuc hoi s co:
1. Mat d lieu tren bo nh chnh (database
buffer).
2. Mat d lieu tren bo nh phu.
4
Sao chep d lieu
DBMS cung cap c che cho phep sao chep c
s d lieu phong khi CSDL b s co.
Sao chep toan bo hoac ch sao chep nhng thay
oi ke t lan sao chep cuoi.
Giai quyet c trng hp mat d lieu tren bo
nh phu.
Nhc li
D lieu tren buffer c ghi (flush) ben b xuong a
moi khi:
Mot cau lenh cu the c thc hien (v du commit).
Hoac ghi t ong moi khi buffer ay.
Viec ghi tng minh t buffer xuong a goi la force-
writing.
Trong khoang thi gian t khi thao tac ghi tren buffer
xay ra en khi thao tac flush t buffer xuong bo nh
phu, neu s co xay ra th RM phai xac nh trang thai
cua GT thc hien thao tac ghi tai thi iem xay ra s
co.
Neu GT a commit, RM phai redo nhng cap nhat cua GT
(rollforward) e am bao tnh ben b.
Neu GT cha commit, RM phai undo (rollback) nhng thay
oi cua GT tren CSDL nham am bao tnh nguyen to. 10
5
V du
S c
T1
T2
T3
T4
T5
Khi s co xay ra, T2 , T3, T4 a commit nen RM phai ghi nhan nhng thay oi cua
chung len CSDL khi ht khi ong lai.
T1 va T5 phai c undo
11
Input(A)
A
B
Output(B) B
Disk 12
Main memory
6
Viec truy xuat d lieu
Read (X): gan X cho bien cuc bo xi
Neu khoi DL co cha X cha co trong buffer, thc
hien Input (X)
Gan gia tr X (cha tren buffer block) cho bien cuc
bo xi
Write (X): gan xi cho X
Neu khoi DL co cha X cha co trong buffer, thc
hien Input(X)
Gan gia tr xi cho X (tren buffer block co cha X)
Viec oc/ Ghi tren d lieu c thc hien
gian tiep qua buffer. 13
Quan ly buffer
Buffer:
D lieu mat khi co s co he thong.
Khong gian han che.
Chien lc thay the e nh ra vung trong tren
buffer dung e nap d lieu mi.
FIFO.
LRU.
14
7
Steal & No-force
RM dung hai giai phap sau e ghi d lieu t buffer xuong a:
Steal policy: buffer manager ghi t buffer xuong a trc khi GT
commit. Ngc lai la no-steal, ngha la khong ghi g ca trc khi GT
commit.
Force policy: d lieu t buffer do 1 GT cap nhat lap tc c ghi xuong
a khi GT commit. Ngc lai la no-force.
Vi no-steal, khong phai undo nhng thay oi do giao tac b huy
thc hien v nhng thay oi cha c ghi xuong a.
Vi force, khong phai redo nhng thay oi thc hien bi cac GT
a commit.
Steal policy tranh tnh trang con qua nhieu d lieu tren buffer le
ra nen ghi xuong a.
No force co li khi 2 GT cung lam viec tren 1 block, GT sau
khong phai nap lai block t a len buffer.
Hau het cac DBMS dung chnh sach steal, no-force.
15
16
8
Log file
Log file cha cac thong tin ve moi s thay oi tren
CSDL.
Log file c dung cho x ly phuc hoi d lieu. Log file
cha cac thong tin:
Transaction record:
1. ID cua giao tac.
2. Kieu mau tin nhat ky (GT bat au, insert, update, delete, abort,
commit)
3. ID cua n v d lieu b cap nhat.
4. Gia tr cu cua n v d lieu Before Image
5. Gia tr mi cua n v d lieu After Image
6. Con tro e quan ly cac mau tin trong tap tin log.
Checkpoint record.
V lof file la rat quan trong, thng co 2 hoac 3 tap tin
log c tao ra.
17
Nhan xet
Database gom co 2 phan:
DB
Database Vat ly va DB
Buffer
Recovery
Buffer cho Database Manager
Log
Log gom co 2 phan: Log Buffer
Log Val ly va
Buffer cho Log
Khi co s co mat thong tin tren buffer cho database
phai co the da vao log file e phuc hoi d lieu.
Khi co s co mat thong tin tren buffer cho log, ngha
la thong tin ve nhng thao tac cap nhat len CSDL (cha
c thc hien that s len CSDL Vat ly) se b mat va
can phai thc hien lai cac thao tac nay. 18
9
Checkpoint
Han che cua pp khoi phuc dung log
Quet toan bo log thi gian tm kiem tang.
Khong can thc hien lai nhng giao tac a ghi chac chan
len CSDL.
Checkpoint dung e cai thien qua trnh phuc hoi.
Cac checkpoint nh ky xay ra:
Ghi tat ca log record t bo nh chnh xuong bo nh phu.
Ghi xuong CSDL tat ca nhng g thay oi tren buffer
CSDL.
Ghi checkpoint record vao log file.
RM quyet nh thi gian nh ky thc hien
checkpoint, sau m phut hoac sau t giao tac commit
ke t lan checkpoint trc.
19
V du dung checkpoint
Checkpoint
S c
T1
T2
T3
T4
T5
20
10
Cac ky thuat phuc hoi
Ky thuat phuc hoi dung cach cap nhat tr hoan
(Recovery techniques using deferred update)
Ky thuat phuc hoi dung cach cap nhat tc th
(Recovery techniques using immediate
update)
21
11
Ky thuat phuc hoi dung cach cap nhat
tc th
Cap nhat tren CSDL moi khi co GT thc hien thay
oi CSDL, khong i en khi GT ket thuc.
Khi s co xay ra:
Va redo cac thao tac cap nhat cua GT commit.
Va undo cac thao tac cap nhat cua GT cha commit.
Dung log file nh sau:
GT bat au, ghi nhan lai.
Ghi nhan lai cac thao tac ghi cua GT vao log file.
Ghi nhan lai thao tac ghi tren database buffer.
Database buffer c ghi xuong a khi en luc phai ghi.
Ghi nhan commit, neu GT commit.
23
24
12
Nghi thc UNDO
Thc hien cho nhng giao tac cha ket thuc nhng
xay ra s co hay nhng giao tac b rollback
DB log
Before Image
25
DB log
After Image
26
13
Phuc hoi bnh thng
Sau 1 cai dng bnh thng cua he thong, 1 iem
checkpoint c ghi vao log file nh la mau tin
cuoi cung cua log file
Khi he thong c khi ong lai, neu mau tin cuoi
cung trong log file la checkpoint th thu tuc phuc
hoi bnh thng c goi (noi chung la khong phai
thc hien thao tac undo hay redo nao ca)
27
28
14
Mot so quy c
Undo cac thao tac co dau
Can undo that s tren CSDL vat ly da
vao before image
[] Khong can undo tren CSDL vat ly v
thao tac nay sau checkpoint cuoi cung,
nhng thay oi ch mi tren log file
Redo cac thao tac co dau
29
V du BOTi
U1(i)
Bat au giao tac Ti
Cap nhat lan 1 cua Ti
BOTi+1 Bat au giao tac Ti+1
U1(i+1) Thao tac cap nhat th 1 cua giao tac Ti+1
Checkpoint
BOTi+2 Bat au giao tac Ti+2
U1(i+2) Thao tac cap nhat th 1 cua giao tac Ti+2
U2(i) Thao tac cap nhat th 2 cua giao tac Ti
Commit Ti Commit Ti
U2(i+1) [] Thao tac cap nhat th 2 cua giao tac Ti+1
BOTi+3 Bat au giao tac Ti+3
U1(i+3) [] Thao tac cap nhat th 1 cua giao tac Ti+3
U2(i+3) [] Thao tac cap nhat th 2 cua giao tac Ti+3
U2(i+2) Thao tac cap nhat th 2 cua giao tac Ti+2
Commit Ti+2 Commit Ti+2
U3(i+1) [] Thao tac cap nhat th 3 cua giao tac Ti+1
30
S co he thong xay ra
15
Shadow paging
Mot phng phap phuc hoi khac (pp log) la
dung trang bong.
Suot mot qua trnh song cua 1 giao tac, co 2
bang c duy tr:
Bang trang hien hanh (current page table): se b
thay oi khi T thc hien ghi.
Bang trang bong (shadow page table): bang sao
cua table trc khi T thc hien.
Khi giao tac khi ong, 2 page table nay giong
nhau.
31
Shadow paging
page on disk
32
16
Het chng 3 phan 1.
33
17
Chng 3
Phc hi d liu v An ton d liu
PHN 2 AN TON D LIU
Ni dung
1
C 3 kiu iu khin truy cp
DAC (Discretionary Access Control)
Cho bit ch th no c th truy cp kiu g n cc i
tng CSDL.
C nhng nguyn tc 1 ch th c th ty cp quyn
hay ly li quyn cho/ t 1 ch th khc.
MAC (Mandatory Access Control)
nh trc cc nguyn tc ch th (thuc 1 lp) truy cp
trc tip hoc gin tip n cc lp d liu.
RBAC (Role-based Access Control
Vai tr l 1 tp cc quyn. Khng thc hin cp quyn cho
tng ch th m gn cho ch th 1 vai tr, khi ch th s
c tt c cc quyn thuc vai tr .
DAC
2
DAC
3
System R
System R
S y quyn c th hin thng qua GRANT
OPTION, nu cp quyn cho 1 user bng cu
lnh c GRANT OPTION th user ngoi
vic c th thc hin quyn c cp, cn c
th cp quyn cho cc user khc.
1 user ch c th cp quyn trn 1 quan h cho
trc nu user l ngi s hu quan h hoc
user c ngi khc cp quyn vi cu
lnh c tu chn l GRANT OPTION.
4
Cu lnh GRANT
GRANT PrivilegeList| ALL[PRIVILEGES]
ON Relation | View
TO UserList | PUBLIC
[WITH GRANT OPTION]
Cu lnh GRANT V d
A: GRANT select, insert ON NHANVIEN TO B
WITH GRANT OPTION;
A: GRANT select ON NHANVIEN TO C
WITH GRANT OPTION;
B: GRANT select, insert ON NHANVIEN TO C;
10
5
Cu lnh GRANT
Vi tng user, h thng ghi nhn li:
A: tp hp cc quyn m user s hu.
B: tp hp cc quyn m user c th y quyn cho ngi
khc.
11
Cu lnh GRANT V d
6
Cu lnh GRANT V d
13
Cu lnh Revoke
REVOKE PrivilegeList|
ALL[PRIVILEGES]
ON Relation | View
FROM UserList | PUBLIC
Cu lnh ny dng thu hi quyn cp.
User ch c th thu hi quyn m user cp.
User khng th ch thu hi grant option.
Mt ngi ch c th b thu hi quyn truy xut p khi
tt c nhng ngi cp quyn p cho h u thu hi
quyn p li.
14
7
Cu lnh Revoke V d
A: GRANT select ON NHANVIEN TO C WITH
GRANT OPTION;
A: GRANT select ON NHANVIEN TO B WITH
GRANT OPTION;
C: GRANT insert ON NHANVIEN TO D;
B: GRANT select ON NHANVIEN TO D;
C: REVOKE select ON NHANVIEN FROM D;
15
Cu lnh Revoke
16
8
Thu hi quyn quy
B F 70 H
10 30 40
A C
20 50 60 G
E
B
10
A 60
C G
20 50
E
17
18
9
Thu hi quyn quy
Thu hi quyn quy trong System R da vo
nhn thi gian mi ln cp quyn truy xut cho
ngi dng.
Mt bin th ca cch tip cn ny l khng da
vo nhn thi gian, mc ch l trnh thu hi
quyn dy chuyn.
Khi , nu C b B thu hi quyn v C li c quyn
tng ng do ngi khc cp (mc d sau )
th quyn m C cp cho ngi khc vn c gi.
19
B F 70 H
10 30 40
A C
20 50 60 G
E
70
F H
B 40
10
A 60
C G
20 50
E
20
10
Thu hi quyn khng dy chuyn
(Noncascading revoke)
Khi A thu hi quyn truy xut trn B th tt c
quyn truy xut m B cp cho ch th khc
c thay bng A cp cho nhng ch th
ny.
21
22
11
Thu hi quyn khng dy chuyn
80
L M
A 40 50
20
B H
30 I 60 70
N
50 80
L M
A
20
B 70
H
30 I 60 70
N
23
80
L M
A 40 50
20
B H
30 70
I
70 N
24
12
Thu hi quyn khng dy chuyn
25
26
13
View v s phn quyn da trn ni dung
27
28
14
Cc bc x l truy vn
Parsing
Catalog lookup
Authorization checking
View Composition
Truy vn trn view s c chuyn thnh truy vn trn bng c s thng
qua bc ny.
Kt qu s da trn v t ca cu truy vn v v t nh ngha nn view.
B: SELECT * FROM V_NHANVIEN
WHERE CONGVIEC = Lap trinh vien;
Query optimization
29
Nhn xt
V vic kim tra quyn c thc hin trc bc view
composition nn quyn c kim tra s da trn view ch
khng da trn cc bng c s dng nh ngha view.
View hu ch khi cp quyn trn cc ct ch cn to view gm
cc ct m ta mun cp quyn.
View cn hu ch trong vic cp quyn trn d liu thng k
(d liu sinh ra t cc hm AVG, SUM, )
Ch th truy cp c th cp quyn truy xut hay thu hi trn
view tng t nh trn bng d liu.
Ngi dng mun to View th phi c quyn Select trn bng
d liu.
Nu ngi to View b thu hi quyn (hay cp quyn) trn bng
th cng b thu hi quyn(hay cp quyn ) trn View, v thu hi
nhng ngi dng khc c ngi ny cp quyn.
30
15
View v cp quyn da trn ni dung
Ngi to view: view definer.
Quyn m view definer c trn view ph thuc vo:
Ng ngha ca view hay cc quan h c s dng to nn view.
Quyn m view definer c trn cc bng c s.
Quyn alter v index khng th p dng cho view, nn view
definer khng bao gi c quyn ny trn view.
A: CREATE VIEW V1 (MANV, TONGTIEN)
AS SELECT MANV, LUONG+THUONG
FROM NHANVIEN WHERE CONGVIEC = Lap trinh vien
31
32
16
Quyn trn view v d
34
17
Quyn trn view v d
Xt cc cu lnh sau:
A: GRANT Select ON NHANVIEN TO D WITH GRANT
OPTION;
A: GRANT Update, Insert ON NHANVIEN TO D;
D: CREATE VIEW V4 AS SELECT MANV, LUONG FROM
NHANVIEN;
Quyn ca D trn V4 s l:
- Select with Grant Option;
- Update, Insert without Grant Option;
35
36
18
DAC Quyn khng nh & Ph nh
38
19
Cu lnh DENY
20
REVOKE
VD:
REVOKE CREATE TABLE, CREATE
DEFAULT FROM Mary, John
41
21
DAC - Rng buc ng cnh
Thi gian hiu lc:
Mi quyn truy xut u c khong thi gian hiu lc.
Khi ht thi gian hiu lc th quyn truy xut t ng b thu hi m khng
cn ngi qun tr thu hi.
Chu k s dng quyn truy xut:
Quyn truy xut theo chu k c th l quyn khng nh hay quyn ph
nh. Nu trong cng mt khong thi gian m ngi dng va c quyn
khng nh va c quyn ph nh trn cng mt i tng v cng phng
thc truy cp th u tin cho quyn ph nh.
C ch suy din da vo quy tc suy din
Quy tc suy din biu th rng buc ca cc quyn truy xut theo thi gian.
Quy tc cho php suy ra quyn truy xut mi da s tn ti hay khng tn
ti ca quyn truy xut khc trong khong thi gian xc nh.
Bng cch s dng quy tc suy din p ng c yu cu bo v d
liu mt cch ngn gn v r rng.
V d: Nu hai ngi dng lm chung mt d n th phi cng quyn truy
xut trn cc i tng.
43
22
DAC - Rng buc ng cnh
45
23
DAC - Rng buc ng cnh
Quy tc suy din c nh ngha l b ba ([begin, end], P, A <OP> A )
Trong :
begin l ngy bt u.
end l ngy kt thc v ln hn ngy bt u hay c th l .
P l biu thc chu k,
A l quyn truy xut.
A l biu thc Bool ca cc quyn truy xut.
OP l mt trong cc ton t WHENEVER, ASLONGAS, UPON.
Ng ngha ca tng ton t trong quy tc suy din:
([begin, end], P, A WHENEVER A ) : quyn truy xut A c hiu lc vo thi
im t chu k P v t [ tb, te] khi A c hiu lc.
V d:
A1 = ([1/1/95,1/1/96], Working-days, (M, o1, read, B))
R1= ([1/1/95,], Summer-time, (S, o1, read, +, Bob) WHENEVER (M, o1, read, +, B)).
S ch c read trn i tng o1 vo thi im ma h, t ngy 1/1/95 khi
M c read trn i tng ny.
47
DAC - Nhn xt
u im:
DAC linh ng trong chnh sch nn c hu ht cc
HQT CSDL ng dng.
Khuyt im:
Khng th iu khin c dng thng tin (information
flow control) c th chng li tn cng dng Trojan
Horse.
48
24
RBAC (Role based Access Control)
Hu ht cc HQT CSDL u h tr RBAC.
RBAC c th dng kt hp vi DAC hoc MAC
hoc c dng c lp.
a s cc HQT CSDL ch h tr RBAC n gin
(flat RBAC).
49
Vai tr v nhm
Mc c bn, vai tr c th c xem tng ng nh
nhm.
Mt c quyn c th c gn cho mt hay nhiu nhm
hoc mt hay nhiu vai tr, v mt nhm hay vai tr th
c kt hp vi mt hay nhiu c quyn.
Vic gn mt ngi dng cho mt nhm hay mt vai tr cho
php ngi dng thc thi nhng c quyn ca nhm hay
vai tr .
im khc nhau chnh gia nhm v vai tr l nhm th
coi nh c trng mt tp hp ngi dng v khng l tp
hp quyn hn. Mt vai tr th mt mt l tp hp ngi
dng v mt mt l tp hp quyn hn. Vai tr l i tng
trung gian mang hai tp hp ny li vi nhau.
50
25
RBAC
c p dng vo u nhng nm 1970s.
Khi nim chnh ca RBAC l nhng quyn hn c lin kt vi nhng vai
tr.
Khi s lng ch th v i tng ln s lng quyn hn c th tr nn v
cng ln.
Nu ngi dng c nhu cu cao, s lng cp v thu hi quyn din ra thng
xuyn.
Vi RBAC th c th gii hn trc cc mi quan h vai tr quyn hn, lm
cho vic phn cng ngi dng n cc vai tr c xc nh trc d dng
hn.
Khng c RBAC s kh khn cho vic xc nh quyn hn no c quy nh
n ngi dng no.
Nhng ngi dng c ch nh nhng vai tr thch hp. iu ny lm n
gin cho vic qun l quyn hn.
Trong mt t chc, nhng chc nng cng vic khc nhau c phn thnh
nhng vai tr v ngi dng c ch nh vai tr da vo trch nhim v nng
lc ca h.
51
RBAC Cc m hnh
M hnh RBAC gm 4 m hnh: RBAC0 , RBAC1 , RBAC2 ,
RBAC3.
RBAC0 l nn tng.
RBAC1 thm vo khi nim k tha ca h thng phn cp vai tr. Vai tr c th
k tha quyn hn t vai tr khc.
RBAC2 thm vo cc rng buc.
RBAC3 l tng hp ca 3 m hnh.
52
26
RBAC Cc m hnh
M hnh nn tng RBAC0 th di cng, n l yu
cu ti thiu cho bt k h thng no c h tr RBAC.
M hnh RBAC1 , RBAC2 c pht trin t m hnh
RBAC0 nhng c thm cc im c trng cho tng
m hnh.
RBAC1 thm vo khi nim ca h thng phn cp vai tr
(cc trng thi trong vai tr c th tha k quyn hn t
vai tr khc).
RBAC2 thm vo cc rng buc (p dng rng buc c
th tha nhn cu hnh ca cc thnh phn khc nhau ca
RBAC). RBAC1 , RBAC2 khng lin quan nhau.
RBAC3 l m hnh tng hp ca ba m hnh RBAC0 ,
RBAC1 v RBAC2.
53
V d
54
27
V d
55
V d
56
28
MAC
57
MAC
58
29
MAC
i tng d liu (Object): tables, views, tuples.
Ch th truy cp (Subject): users, user programs.
Security class (or level, or labels)
Top Secret (TS), Secret (S), Confidential (C), Unclassified
(U), where TS > S > C > U
Mi ch th v mi i tng c xp vo mt class.
No read up: Ch th S c th c i tng O nu Class(S)
>= Class(O).
No write down: Ch th S c th Ghi i tng O nu
class(S) <= Class (O).
Tuy nhin, thc t cc h thng khng cho php write up, m ch cho
php write cng mc. Hy kim tra iu ny trn Oracle?
59
MAC
Subjects Objects
writes
writes
TS
writes
writes
TS
S
Information flow
C
reads
reads
C
reads
U
reads
60
30
MAC Nhn xt
Nguyn l v n v d liu ca i tng bo mt.
L ton b CSDL, hay tp tin, cc thuc tnh hay tng
item.
Khng c k thut t ng cho vic gn nhn bo
mt.
Nhiu ngi cng truy cp ti mt thi im.
V p dng chnh sch dng thng tin nn nhng ngi c
mc bo mt cao hn b hn ch ghi xung cc hng mc
d liu c s phn loi thp hn. V d c ch th s1 v s2
c nhn(s1)>nhn(s2), mc d liu d vi nhn(d) =
nhn(s2), v lut thng mi cho rng ghi d liu ln d
ca s2 cn s chp thun ca s1. iu ny th khng thch
hp cho cc ng dng thng mi ca cng ngh CSDL
MLS.
61
MAC
62
31
MLR
Trong m hnh d liu a cp, nhng mc d liu
v ch th c lp truy cp ring ca chng (hay
cc mc), v d TS(Top Secret), S(Secret),
U(Unclassified) v.v gm s phn loi v s
cho php s dng thng tin b mt(clearance).
Ch th khi truy cp b gii hn bi nhng iu
khin truy cp bt buc, l no read up, no write
down, theo m hnh ca Bell v LaPadula.
63
MLR
Mt quan h a cp c m t bi hai thnh phn:
R(A1,C1,., An,Cn, TC) trong :
Ai l mt thuc tnh trong min Di.
Ci l mt thuc tnh phn loi cho Ai; min ca n l mt tp hp ca
lp truy cp m c th c kt hp vi gi tr ca Ai.
TC l thuc tnh phn loi ca b. (TC=TUPLE-CLASS), l lp truy
cp ln nht trong cc ci.
Thuc tnh phn loi khng chp nhn gi tr rng.
64
32
MLR
Th hin quan h ti lp c cha tt c d liu m ch th ti lp c thy c. Do , n cha tt
c d liu m cc lp truy cp c.
Tt c cc phn t vi lp truy cp cao hn c, hoc khng th so snh c th c che giu bi
gi tr rng.
Low instance
Name CName Dept# CDept# Salary CDept# TC
Bob Low Dept1 Low 100K Low Low
Ann High Dept2 High 200K High High
Sam Low Dept1 Low 150K High High
High instance
65
MLR
Cc iu kin bt buc:
Quan h a cp phi tha mn cc iu kin sau:
Vi mi b trong mt quan h a cp, cc thuc tnh ca kha chnh
phi c cng lp truy cp.
Vi mi b trong mt quan h a cp, lp truy cp kt hp vi mt
thuc tnh khng phi l kha phi ln hn hoc bng lp truy cp
ca kha chnh.
Cc kha v a th hin:
Trong m hnh quan h chun, mi b c xc nh duy nht bi
kha ca n.
Khi kt hp vi lp truy cp, c th c ng thi cc b vi gi tr
nh nhau ti cc thuc tnh kha nhng vi s phn loi khc nhau,
hin tng ny c gi l a th hin.
66
33
MLR
a th hin:
a th hin xy ra theo hai trng thi sau:
a th hin v hnh: Khi mt ngi s dng mc thp chn d
liu vo mt field m cha d liu ti mc cao hn hay mc
khng th so snh c.
a th hin hu hnh: Khi mt ngi s dng mc cao chn
d liu vo mt field m cha d liu ti mc thp hn.
Name CName Dept# CDept# Salary CDept# TC
A Low Dept1 Low 100K Low Low
B High Dept2 High 200K High High
S Low Dept1 Low 150K High High
B Low Dept1 Low 100K Low Low
Cc b kha l B l a th hin
67
MLR
a th hin v hnh:
Gi s mt ngi s dng mc thp yu cu chn mt b vi
kha chnh ging nhau ti mt b tn ti mc cao hn; DBMS
c ba la chn:
1. Thng bo cho ngi dng rng mt b vi kha chnh ging nhau tn ti
mc bo mt cao v t chi chn vo.
2. Thay th b tn ti mc cao hn vi b mi c chn mc thp hn.
3. Chn b mi mc thp hn m khng thay i b tn ti mc cao hn (tc l
thc th a th hin).
Chn 2) cho php ngi s dng mc thp ghi d liu m anh ta khng nhn
thy v v vy lm mt i tnh ton vn.
Chn 3) l mt la chn hp l; v tm quan trng ca n l gii thiu mt thc
th a th hin.
68
34
MLR
a th hin hu hnh:
Gi s mt ngi s dng mc cao yu cu chn mt b
vi kha chnh ging nhau ti mt b tn ti mc thp
hn; DBMS c ba la chn:
1. Thng bo cho ngi s dng rng mt b vi kha chnh tn ti
ging nhau v t chi chn vo.
2. Thay th b tn ti mc thp hn vi b mi c chn mc
cao hn.
3. Chn b mi mc cao hn m khng thay i b tn ti mc
thp hn (tc l thc th a th hin).
Chn 3) l mt la chn hp l; v tm quan trng
ca n l gii thiu mt thc th a th hin.
69
MLR
Gm 5 rng buc:
Entity integrity (tnh ton vn thc th)
Polyintantiation integrity (tnh ton vn a th hin),
Data-borrow integrity (tnh ton vn d liu-mn),
Foreign key integrity (tnh ton vn kha ngoi)
Referential integrity (tnh ton vn quan h)
V 5 cu lnh (insert, delete, select, update,
UPLEVEL) thao tc trn quan h a cp.
Tham kho: Ravi Sandhu, Fang Chen, The multilevel Relational (MLR) data Model, ACM, 1998.
70
35
Ht chng 3.
71
36
Chng 4
Lu tr d liu vt l &
Ni dung
1. Mt s khi nim
2. Cch t chc file v phng php truy
xut
3. Index
1
Cc phng tin lu tr DL
CPU s dng thi hnh CT nhanh
Volatile storage: Cache (RAM)
mt thng tin khi Primary storage
mt ngun
Main memoryy (DRAM)
( ) CPU dng DRAM lm ni load
CT
C + DL, thi hnh
C CT
Secondary storage/
Nonvolatile
storage Magnetic disk On-line storage
Storage Capacity
nearline offline
1015 tape &
tape
optical
typiccal capacity (bytes))
1013 magnetic
disks
optical
electronic
1011
disks
online
electronic secondary
109 tape
main
107
f
from G
Gray & Reuter
R t
105
cache
103
10-9 10-6 10-3 10-0 103
access time (sec)
4
2
Storage Cost
104 cache
from Gray & Reuter
electronic
online
li
102 main
electronic tape
dollars/MB
magnetic
secondary optical nearline
100 tape &
disks optical
disks
10-2 offline
tape
10-4
10-9 10-6 10-3 10-0 103
access time (sec)
a t (Magnetic disk)
3
V cch qun l a
1 mt a chia thnh nhiu track, 1 track chia
thnh nhiu block (page). 1 cluster = n block.
Dng a t (magnetic disk) lu c s d liu
v:
Khi llng lu
l tr
t ln
l (khng
(kh th lu
l b nh
h chnh)
h h)
Lu mt cch bn b, lu di, phc v cho truy cp v
x l lp li (b nh chnh khng p ng c)
Chi ph cho vic lu tr r.
D liu trn a phi c chp vo b nh chnh
khi cn x l. Nu d liu ny c thay i th s
c ghi tr li vo a.
B iu khin a (disk controller - DC): giao tip
gia a v my tnh, nhn 1 lnh I/O, nh v
u c v lm cho hnh ng R/W din ra.
Block cng l n v lu tr v chuyn d liu.
7
Chuyn d liu
Thi gian trung bnh tm v chuyn 1 block
= s + rd + btt
Seek time (s): DS nh v u c/ ghi ng
track trung bnh khang 7
track, 7-10
10 msec (destop)
(destop), 3
3-8
8
msec (server).
Rotational delay/latency (rd): u c v tr
block cn c, ph thuc rpm, trung bnh khang 2
msec.
Block transfer time (btt): chuyn d liu, ph
th vo
thuc bl
blockk size,
i ttrack
k size,
i v
rpm.
Khi truy xut n cc block lin tip th tit
kim c thi gian.
Mt s k thut tm kim khai thc iu ny.
8
4
Mt s nguyn tc
Lu tp tin trn a
CSDL c t chc trn a thnh mt/nhiu
tp tin, mi tp tin gm nhiu mu tin, mi mu
tin gm nhiu trng.
Mu
M tinti phi
hi c llu ttr
ttrn
a sao cho
h khi
cn th c th truy cp c v truy cp mt
cch hiu qu.
Cch t chc file chnh (Primary file organization):
cho bit cc mu tin nh v mt cch vt l nh th
no trn a,, t bit cch truyy xut chng.
g
5
Mc ch
K thut lu tr d liu c ch cho ngi thit k
CSDL, DBA, ngi ci t HQTCSDL
Ngi thit k CSDL, DBA: bit u khuyt im ca
tng k thut lu tr thit k,
k hin thc v thao tc
CSDL trn 1 HQTCSDL c th.
c im ca a t + cch t chc file d liu trn a t
a ra cch thit k CSDL c th lu tr v khai thc
hiu qu.
HQTCSDL thng c nhiu chn la t chc DL, vic
thit k vt l cn chn k thut t chc d liu ph hp cho
yu
cu ng ddng.
Ngi ci t CSDL cn bit k thut t chc DL v
ci t ng, hiu qu cung cp cho DBA v
ngi dng y cc chn la.
11
Ni dung
1. Mt s khi nim
2. Cch t chc file v phng php truy
xut
Mu
tin, kiu
mu tin, tp tin, mu
tin c kch
thc c nh, mu tin c kch thc thay i
nh v file block trn a
File header
Thao tc trn file
Heap file, Sorted file, Hashing technique
3. Index
12
6
Mu tin (Record)
Data records data values/ items
thc th/mi quan h v cc thuc tnh ca
chng
Kiu mu tin: Record type/ Record format = tp cc tn thuc
tnh v kiu d liu
ca tng g thuc
tnh.
VD: struct NHANVIEN {char TENNV[30];
char MANV[9];
int LUONG,
char PHONG[20]}
13
Tp tin
T chc tp tin:
Lu nhiu mu tin, c cng kiu hoc khc kiu mu tin.
Gm cc mu tin c cng chiu di (byte) tp tin c kch
((fixed-length
thc cc mu tin c nh g record)) hoc
Gm cc mu tin c chiu di khc nhau tp tin c kch
thc cc mu tin thay i (variable-length record)
TH1: Cng kiu mu tin, c field c chiu di thay i. VD: field kiu
chui
TH2: Do khc kiu mu tin, l trng hp cc mu tin c lin quan
c gom nhm li (clustered) v lu trn cng block truy xut
nhanh.
h h
TH3: Cng kiu mu tin, c thuc tnh c th c nhiu gi tr khc
nhau.
TH4: Cng kiu mu tin, c thuc tnh c/ khng c gi tr.
Ghi ch: TH3 v TH4 khng xy ra khi lu tr d liu trn CSDL
quan h.
14
7
Tp tin
Mu tin c kch thc c nh: d truy xut
Tp tin
16
8
Lu mu tin vo block
Unspanned
Spanned
block i record 1 record 2 record 3 record 4 P
17
18
9
File Header
19
20
10
Mu tin c chiu di c nh
Gi s
1 char : 1 byte
Real : 8 bytes
1 mu tin account : 40 bytes
40 bytes u tin l mu tin th 1
40 bytes tip theo l mu tin th 2 21
11
Mu tin c chiu di c nh (tt)
Hy mu tin
nh du xa vo bit thng tin
a mu tin b nh du xa vo free list
FH
23
Tm kim
Qut tun t trn tp tin
24
12
Mu tin c chiu di ng
Trong DBMS, mu tin c chiu di ng
dng
Lu tr nhiu loi mu tin trong 1 tp tin
Cc loi mu tin cha cc trng c chiu di
ng
Xt tp tin gm cc mu tin account
25
Byte-String Representation
Cui mi mu tin c 1 byte k t c bit cho
bit kt thc mu tin
26
13
Mu tin c chiu di ng (tt)
Byte-String Representation
S dng li khng gian trng sau khi xa 1
mu
ti
tin khng
kh hihiu qu
Dn n tnh trng phn mnh
27
Byte-String Representation
Tn nhiu chi ph khi chiu di mu tin thay i
28
14
Mu tin c chiu di ng (tt)
Fixed-Length Representation
S dng 1 hay nhiu mu tin c chiu di c nh
biu din cho nhng
g mu tin c chiu di ng
g
C 2 k thut
Reserved space
S dng di ln nht ca 1 mu tin no ci t cho tt c
cc mu tin cn li
di ny phi m bo khng bao gi di thm c na
Perryridge A-102 400 A-201 900 A-218 700
Round Hill A-305 350
Mianus A-215 700
Downtown A-101 500 A-110 600
Redwood A-222 700
Brighton A-217 750
29
tin
Anchor block Cha A-201 900
15
Cch t chc mu tin trn file
31
Heap file
L hnh thc lu tr d liu trong cc
record c lu khng theo th t logic
no c (m l th t thm d liu)
Thng th d liu ca mi quan h c
lu trong 1 file.
Tm kim: duyt.
Thm: nhanh.
Cch thc lu tr v thao tc d liu
d,,
ch thch hp cho tp tin c kch thc
nh, s rt chm khi tp tin c kch thc
ln.
32
16
Sequential file
L hnh thc lu tr d liu trong cc mu tin
c lu tr theo th t ca trng l search key.
Link cc mu tin quan h th t bng pointer
Thch hp cho nhng ng dng c trng lm vic
trn d liu c sp xp (theo search key)
Tm kim: duyt hoc tm tun t.
Nn lu tr vt l theo th t ca search key
gim thiu s block cn phi truy cp. Nhng:
Khi d liu ln, thao tc Insert, Delete phc tp
Insert: nh v -> insert vo overflow block ( anchor block)-> ph
v th t vt l, phi t chc li
1
1
Anchor 2
block 2
4
4 Overflow
block
3 33
Hashing file
Mt hm bm (hash function) c thit lp
trn 1 thuc tnh l search key ca quan h.
Nguyn l: lu u, tm
Chia tp tin thnh cc l (bucket) ty gi tr
ca search key. Mi l c mt s block, link
nhau bi pointer. D liu trong block c t
chc nh heap.
g cc l. Gi tr hm bm ti
B l s lng gi
g
tr tm kim l s nguyn [0,B-1] cho bit l
cha mu tin.Nu kha l chui k t, ta nh
ra nguyn tc chuyn chui k t thnh s.
34
17
Hashing file
Tm kim mu tin kha v
Tnh h(v) bit l, v thc hin tm kim trong l
ny.
Chn
Tnh h(v) bit l. Tm kim khi cui cng ca l,
nu cn ch th chn, cn khng th cp pht 1 khi
khc chn vo cui danh sch ca l h(v).
Xa/ Sa
Tm kim v sa hoc xa (nh du)
Sau khi xa, c th phi thc hin bc hiu chnh
(dn d liu trong khi) gim s lng khi trong
l ny.
35
Clustering file
10 TENPB
MANV TENNV MAPB
KT HCM
N1 A 20
MANV TENNV N2 B 10
N2 B N3 C 20
N5 E N4 D 20
N6 G N5 E 10
N6 G 10
20 TENPB
MAPB TENPB
KT HCM
10 KT HCM
MANV TENNV 20 KD HN
N1 A
N3 C
N4 D
DL lin
quan tch
DL lin quan c
bit, tn
lu cng nhau, tit
khng gian
Clustered tables kim khng gian Unclustered tables
36
18
Clustering file
1 cluster c hnh thnh t vic lu d liu ca mt vi
table chung trn mt vi block.
Cluster key l 1 hoc nhiu field chung ca cc table
tham gia vic gom nhm.
nhm Cluster key c ch nh khi
ngi dng to cluster.
Cc table ny thng c dng chung hoc kt (join
operator ZY) phc v cho nhu cu truy xut d liu.
Vic lu tr ny c ch:
Gim thi gian truy xut a v s block phi c gim
Gi tr ti field l cluster key ch c lu 1 ln
ln, bt k c bao
nhiu record table khc tham chiu n dng ny tit kim
khng gian lu tr (v to mi quan h trn d liu)
T chc dl theo kiu cluster khng nh hng g n
vic to index trn cc table tham gia to cluster.
37
38
19
Index (1)
Dng ch mc cho file ging nh vic dng bn
lit k danh mc (catalog) trong mt th vin.
Thng tin trn catalog c sp xp tm kim
nhanh m khng phi duyt tt c.
V k thut
thut, c 2 lai index c bn:
Index sp th t (ordered indices) da trn cc gi tr
lm index.
Dng PP tm nh phn trn file index.
Index l 1 file c th t gm cc mu tin c chiu di c nh gm 2 field.
Field 1: kha tm kim.
Field 2: con tr tr n cc block.
Index dng k thut bm (hash indices)
nh
h gi
i cc
k th
thut
t dng
d iindex
d
Lai truy xut
Thi gian truy xut (access time)
Thi gian Insert / delete
Khng gian a dng cho index.
39
Index (2)
Dense / Sparse index
Dense index
File d liu c bao nhiu gi tr trn search key th trn
file index c by nhiu record
Mi record ca file index cha 1 gi tr l search key v 1
con tr tr n record u tin trn file d liu c cng
gi tr trn trng search key.
Sparse index
Cc record trn tp tin index ch ng vi mt s gi tr
trn file d liu trn trng search key (ch khng phi
tt c cc gi tr ca search key nh dense index)
tm 1 gi tr, ta tm trong tp tin index 1 mu tin sao
cho gi tr search key ln nht <= gi tr cn tm, v duyt
record xut pht t v tr u tin m pointer ch n.
40
20
V d
Dense index 1
1 5
5 5
7 7
10 7
10
10
Sparse index
1
2
1
3
5
5
7
6
10
7
9
10
41
Index (3)
File c cch t chc ring v c cch thao tc trn file
tng ng.
Bn cnh , ta cn b sung thm cu trc truy cp h tr
truy cp nhanh trn file.
Index l c ch gip HQT CSDL truy xut d liu nhanh
nhanh.
Index key dng ch 1 hoc nhiu trng (field) dng
lm index.
Simple Index: index key ch c 1 field duy nht.
Composite index: index key c nhiu 1 field, nhng <=16
V d:
NOIGD ((,TENNGD,
, , SONHA,, DUONG,, QH,TP)
Q , )
Nhu cu tm nhanh 1 a ch giao dch.
Nu index key l DUONG (simple index) th khng hiu qu
M phi dng SONHA, DUONG, QH, TP (composite index),
v trn cc field ny, gi tr l duy nht
42
21
Index(4)
Mi cu trc index kt hp vi 1 index key c th.
Truy cp n CSDL dng index, ta phi s dng 1 hoc mt
s field l index key trong mnh WHERE ca cu SQL.
Nu l composite index th nn dng nhiu hn 1 field trong
WHERE, khi truy
mnh y xut s hiu
qqu hn.
C bn, bt c field no cng c th l index v c th c
nhiu index trn cng 1 file. Vn l index c mang li hiu
qu hay khng.
Index c hiu qu hay khng cn c vo:
Lai d liu m trn thit lp index.
Gi tr trn index key c phn bit hay khng.
Lai cu SQL c dng.
Khi thi hnh 1 cu SQL nu nhiu hn 20% cc dng d liu trong
1 bng c truy cp n th vic dng index mi c li hn l
khng dng index (table scan).
Cc truy cp khc trn bng, nu cp nht nhiu trn field lm
index s lm chm h thng.
C qu nhiu index s lm chm h thng.
43
Index (5)
Cc thut ng:
Primary index
Single-level
Clustered index
index
Multi-level
index
44
22
Primary index
c to trn field lm kha sp xp cho file d liu. Th t vt l ca cc record trn
a cng da trn field ny, v trn cc record c gi tr duy nht.
Nu c nhiu record c cng gi tr trn field dng sp xp, ta s to clustering index trn
field ny.
C 1 mu tin index trong file index ng vi 1 block trong file d liu
File primary index c kch thc nh hn rt nhiu so vi file d liu.
Record u tin trong mi block ca file d liu gi l anchor record hay block anchor.
Ch c
th c 1 primary
i iindex,
d h
hoc
1 clustering
l t i iindex
d ttrn
1 fil
file d li
liu, kh
khng th c
c hai loi index ny trn cng 1 file.
File d liu
An
nh
An
Bng
ng
.
.
Bng
.
Bin
Vinh
...
Bnh
Vinh
Vnh
Xun
45
Clustering index
Nu d liu trn data file c sp vt l theo field khng phi l kha (khng
duy nht i vi tng mu tin) th field l clustering field.
Clustering index c to trn clustering field tng tc tm kim cc
mu tin c cng gi tr trn clutering field.
C 1 record trn file index cha 1 gi tr ca clustering field, con tr tr n
block u tin cha g gi tr p
phn bit.
PHG HOTEN MANV PHAI
1 File d liu
2
2
File ch mc
2
1 3
2 3
3 3
4
3
5
3
5
46
23
Secondary Index
Mt secondary index cung cp thm phng tin truy cp file,
ngoi primary index ra.
c to trn field l candidate key v c gi tr duy nht trn mi record,
d liu ca data file khng c sp th t trn field ny.
Cng c th to trn field khng phi l kha v c gi tr trng nhau.
Field 1 l field d liu khng c sp th t ca data file, v cn tm
kim trn .
Field 2 l con tr tr n block u tin cha gi tr, hoc tr n record
cha gi tr.
C th to nhiu secondary index cho 1 file d liu.
TH1: to trn field c gi tr duy nht, field ny cn c gi l secondary
key. HOTEN SOGP SOXE NGAYCAP
60P1-3445
66X7-1234
52X1-1234
52X1-2345 File d liu
52X1-2345
File ch mc 53X2-0123
63P4-5678
53X2-0123
60P1-3445
63X5-0908
61P2-3121
61P2-3121
63P4-5678
52X1-1234
63X5-0908
66X7-1234 47
Secondary index 3
5
1
6
File ch mc 2
3
4 File d liu
1
1
2
6
3
8
4
4
5
8
6
6
8
5
2
5
5
1
6
3
6
3
8
3 48
24
Nhn xt
Index field khng l kha Clustering index Secondary index (non key)
49
D
Data
block 1
Index
block 1
50
25
Dng index
Nn to index trn cc field c gi tr phn bit,
c truy xut n vi tn sut cao, v kt qu
cu truyy vn l nhiu dng
g d liu.
Truy vn trn mt min gi tr dng cc tan t
BETWEEN, >, >=, <, <=.
Index key l cc trng s dng cho php kt,
hoc trong mnh GROUP BY, ORDER BY.
Khng nn to clustered index trn cc trng
s thng xuyn cp nht.
51
Ht chng 4.
52
26
Chng 5
TI U HA CU TRUY VN
Mc ch
Ti u ha vn tin l tin trnh la chn k
hach thc thi cu vn tin mt cch hiu qu
nht.
Tn t ti nguyn nht.
Hi p nhanh nht.
2
Ni dung
1. Tng quan v x l truy vn
2. Ti u ha truy vn dng Heuristics
3. Ti u ha truy vn dng phng php
c lng chi ph
Cc bc x l vn tin
Query in high-level language (SQL)
Scanning, 1
parsing and
validating
Intermediate form of query
(Relational algebra expression)
Query 2
optimizer
execution plan
Query code
3
generator
Generated code
Runtime
database 4
processor
Result 4
Cc bc x l vn tin
Bc 1
Scan
Xc nh cc t kha ca ngn ng SQL, tn thuc
tnh, tn quan h.
Parse
Kim tra c php cu truy vn.
Validate
Kim tra tn thuc tnh, tn quan h c trong lc
khai bo hay khng.
Khng nhp nhng khi dng cc thuc tnh.
Kiu d liu dng so snh u hp l.
Th hin li cu truy vn: i s quan h, query
tree, query graph. 5
starName <SFW>
Bt SQH 2 Bt SQH 1
8
Bc 2
DBMS ra k hoch thc hin cu truy vn
ph hp nht trong cc chin lc thc thi.
Tin trnh ny gi l ti u ha cu truy vn.
Bc 3
B pht sinh m s cho ra m thc thi cu
truy vn theo chin lc va chn.
Bc 4
Thi hnh m pht sinh.
10
Php chn
C nhiu chn la khi thc hin php chn n.
S1: Tm tuyn tnh: c tng mu tin v kim tra gi tr thuc tnh c tha
iu kin chn hay khng.
S2: tm nh phn: nu iu kin chn l php so snh bng trn thuc tnh
kha dng sp xp file, th tm nh phn s c p dng.
S3: Dng primary index hoc hash key c 1 mu tin nu php chn l
so snh bng trn thuc tnh kha khai bo l primary index hoc l
kha bm.
S4: Dng primary index tm nhiu mu tin: nu iu kin so snh l >,
>=, <, <=, trn trng kha c khai bo l primary index th dng index
tm kim trn iu kin =, sau tm thm cc mu tin tha iu kin
khng bng.
S5: Dng clustering index tm nhiu mu tin: nu iu kin chn l so snh
bng trn trng khng l kha v c khai bo clustering index.
S6: Dng secondary index trn iu kin so snh bng tm 1 mu tin
nu index field l kha hoc tm nhiu mu tin nu indexing field khng l
kha. Cch ny cng c th dng tm kim vi iu kin chn khng
phi l so snh bng.
11
Php chn
iu kin chn phc ni nhau bi AND
Nu thuc tnh trong iu kin chn phc c lin
quan n cc kiu chn n nh cp th
vn dng chng, sau kim tra kt qu tr v
c tha iu kin chn cn li trong mnh
chn phc hay khng.
Nu iu kin chn phc c lin quan n
composite index th vn dng chng trc tip.
Dng pp giao cc record pointer ca tng loi
index lin quan n iu kin chn phc nu
index ang dng gm c record pointer.
12
Php kt R A=B S
J1: Nested-loop join: i vi tng mu tin t trong R, tm tng mu tin s
trong S v kim tra xem hai mu tin c tha t[A] = s[B]?.
J2: Single-loop join: i vi tng mu tin t trong R, dng cu trc ch
mc truy cp trc tip mu tin tha iu kin kt quan h S.
J3: Sort-merge join: nu mu tin trong R v S u c sp xp vt l
trn A v B th php kt din ra rt hiu qu (nu khng th sp xp c
hai trc), c hai tp tin c duyt theo thuc tnh kt, so khp cc
mu tin cng gi tr A v B.
J4: Hash join (kt bm):dng 1 hm bm nh x cc mu tin ca R
vo cc bucket Ri da vo gi tr ca A. Cc mu tin ca S cng c
nh x vo cc bucket Si. Cc Ri v Si c duyt qua t hp cc
b thuc Hi v Si tha iu kin kt.
13
14
Php ton tp hp
Php ton hi, giao, tr i hi 2 quan h
phi kh hp, thng ci t bng cch sp
xp chng theo cng 1 thuc tnh, sau
bng 1 php duyt n gin ln 2 quan h
cng to ra quan h kt qu.
Php tch - cc tn rt nhiu chi ph v
nn trnh nu c th.
15
Cc hm kt hp
Nu tnh trn ton bng th c thc hin
bng vic duyt bng hoc dng index nu
c.
Nu tnh ton trn tng nhm (c group by)
th vic phn nhm c th thc hin bng
cch:
Sp xp.
Bm.
Nu c clustering index th ch vic tnh ton trn
tng nhm c sn.
16
Query tree
L cu trc dng cy tng ng vi mt biu
thc i s quan h.
title
starName=name
StarsIn name
birthdate LIKE %1960
17
MovieStar
18
LP v PP
title
starName=name Hash join
StarsIn name SEQ scan index scan
MovieStar
19
20
Cc lut bin i tng ng
14. (P (R1 - R2) P (R1) R2
15. A1,, An(C(R)) A1,, An(C(A1,, An,Ap (R)))
c1(R1c2 R2) R1c1 c2 R2
21
25