H QU N TR C S D
LI U – B n Nháp 30-08-08
Xin cám n b n đã dành s quan tâm cho tài li u này!
Tài li u này tôi t ng h p t nhi u quy n sách khác nhau. Tôi ngh nó có ích cho nh ng
ng i mu n hi u các h qu n tr c s d li u làm vi c nh th nào. Trên c s đó, ng i
đ c có th thi t k các c s d li u và t o ra các h th ng s d ng c s d li u quan h t t
h n. Ngoài ra, tôi còn gi i thi u m t s h ng đang đ c phát tri n trên th gi i đ các b n
tham kh o.
Trong quá trình biên-d ch-so n d a trên ki n th c c a mình, tôi đã r t c g ng nh ng ch c
ch n v n có nhi u h n ch và sai sót. N u b n phát hi n sai sót, ho c có ý ki n đóng góp
nh m m c đích giúp tôi nâng cao ch t l ng c a tài li u này c ng nh hoàn thi n chính
mình, mong b n ph n h i v , và
Tôi s c g ng hoàn thi n tài li u này, và t t nhiên, không th thi u nh ng ý ki n ph n h i
c a các b n.
Nguy n Tr n Qu c Vinh
Nguy
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
i
H QU N TR C S D
LI U – B n Nháp 30-08-08
M CL C
ng I.2
hi n đ i
Các ch c n ng c a HQT CSDL. T ch c đi n hình c a m t HQT CSDL
10
I.2.1 Các ch c n ng c a HQT CSDL .......................................................................... 10
I.2.1.1
Qu n tr d li u tr c ti p trong b nh ngoài ............................................. 10
I.2.1.2
Qu n tr các b nh đ m (buffers) trong RAM .......................................... 10
I.2.1.3
i u khi n các giao tác ............................................................................... 11
I.2.1.4
Nh t ký ........................................................................................................ 12
I.2.1.5
H tr các ngôn ng CSDL ........................................................................ 14
I.2.1.6
II.1.4.2
B m (Hashing) ............................................................................................ 26
II.1.4.3
Thông tin nh t ký ........................................................................................ 27
II.1.4.4
Thông tin ph c v ....................................................................................... 27
Nguy
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
ii
H QU N TR C S D
Ch
LI U – B n Nháp 30-08-08
ng II.2 Giao tác và tính toàn v n CSDL ................................................................. 29
II.2.1
Ví d s phá hu tính toàn v n CSDL............................................................... 29
ng minh (Explicit) ........................................... 33
II.2.3.5.1 Khái ni m ............................................................................................... 37
II.2.3.5.2 Các quy t c ............................................................................................. 37
II.2.3.5.3 Bi n @@trancount trong HQT CSDL SQL Server ............................... 39
II.2.4
Ràng bu c tính toàn v n CSDL ......................................................................... 39
II.2.5
Phân lo i ràng bu c tính toàn v n CSDL .......................................................... 41
II.2.5.1
B ng các cách tri n khai (realization)......................................................... 42
II.2.5.2
Phân lo i ràng bu c tính toàn v n theo th i đi m ki m tra ........................ 44
II.2.5.3
Phân lo i ràng bu c tính toàn v n theo không gian ng d ng .................... 45
II.2.5.3.1 Ràng bu c Mi n giá tr ........................................................................... 45
II.2.5.3.2 Ràng bu c thu c tính.............................................................................. 45
II.2.5.3.3 Ràng bu c b n ghi .................................................................................. 46
II.2.5.3.4 Ràng bu c quan h ................................................................................. 50
V n đ ph thu c ch a c đ nh (đ c d li u b n, đ c không chu n…) ..... 67
II.3.2.3
V n đ xung kh c trong phân tích .............................................................. 67
II.3.2.3.1
c không l p l i ................................................................................... 67
Nguy
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
iii
H QU N TR C S D
II.3.2.3.2 Các ph n t
LI U – B n Nháp 30-08-08
o ........................................................................................ 68
II.3.2.3.3 Phân tích xung kh c th c ch t................................................................ 69
II.3.2.3.4 Xung đ t gi a các giao tác ..................................................................... 70
II.3.3
m b o th c thi song song (tính tu n t ) các giao tác .................................... 73
Ph
ng pháp m c th i gian ........................................................................ 91
II.3.3.4
Tri n khai tính cô l p các giao tác b ng các công c SQL ......................... 92
II.3.3.4.1 Các m c đ cô l p .................................................................................. 92
II.3.3.4.2 Cú pháp các l nh SQL đ đ nh ngh a m c đ cô l p ............................. 93
Ch
ng II.4 Các giao tác và ph c h i d li u ................................................................. 95
II.4.1
Nh t ký và ghi nh trung gian (buffering)......................................................... 96
II.4.2
Các ki u ph c h i d li u .................................................................................. 98
Ch
II.4.2.1
Rollback giao tác riêng bi t ........................................................................ 98
II.4.2.2
LI U – B n Nháp 30-08-08
T i u hoá cú pháp các truy v n ...................................................................... 106
II.5.2.1
Bi n đ i logic đ n gi n các truy v n ........................................................ 106
II.5.2.2
Bi n đ i các truy v n b ng cách thay đ i th t các thao tác quan h ..... 106
II.5.2.3
Chuy n các truy v n ch a các truy v n l ng thành các truy v n ch a các
phép n i 107
II.5.3
II.5.3.1
Bi n đ i các truy v n trên c s thông tin m ng ng ngh a ..................... 108
II.5.3.2
S d ng các thông tin m ng ng ngh a trong t i u hoá các truy v n ..... 108
II.5.4
Ch n và đánh giá các k ho ch th c thi các truy v n khác nhau .................... 108
III.1.4.2 Các u đi m c a giao th c g i th t c t xa ............................................ 115
III.1.4.3 S phân b ch c n ng đi n hình gi a khách và ch ................................. 116
III.1.4.4 Các yêu c u kh n ng ph n c ng và ph n m m n n t ng đ i v i khách và
ch
Ph n IV
116
Các khung nhìn th c .......................................................................................... 117
Ch
ng IV.1 Khái ni m khung nhìn th c....................................................................... 117
Ch
ng IV.2
ng d ng c a KNT ................................................................................... 119
IV.2.1
ng d ng KNT trong các HQT CSDL th
IV.2.2
ng d ng KNT nh m đ y nhanh t c đ th c thi các truy v n ........................ 122
IV.2.3
ng KNT trong các HQT CSDL ch a h tr KNT ........... 131
IV.4.1 Ví d v h n ch c a KNT trong các HQT CSDL th
ng m i....................... 131
IV.4.2 “KNT” trong các HQT CSDL không h tr KNT .......................................... 134
Ph n V Kho d li u – DataWarehouse .............................................................................. 138
Ph n VI
CSDL phân tán .................................................................................................. 139
Ch
ng VI.1 Các lo i hình h th ng phân tán ................................................................ 140
Ch
ng VI.2 Các ki n trúc c a HQT CSDL PT ............................................................ 142
VI.2.1 Các h th ng khách-ch .................................................................................. 142
VI.2.2 Các h th ng máy ch h p tác ......................................................................... 142
VI.2.3 Các h th ng t ng trung gian ........................................................................... 143
Ch
ng VI.3 L u tr d li u trên HQT CSDL PT ......................................................... 144
VI.3.1 Phân m nh (fragmentation) ............................................................................. 144
VI.3.2 Nhân b n (replication) ..................................................................................... 145
LI U – B n Nháp 30-08-08
VI.4.2 Biên d ch phân tán các truy v n ....................................................................... 157
Ch
ng VI.5 Qu n tr các giao tác và quá trình đ ng b hoá ........................................ 159
VI.5.1 Giao th c c đ nh hai pha (2PC – Two-Phases Commit Protocol) ................. 159
VI.5.2 Các ph
ng pháp qu n tr ................................................................................ 161
VI.5.3 Các b t c phân tán .......................................................................................... 162
Ch
ng VI.6 Kh i đ ng l i sau s c ............................................................................. 164
VI.6.1 Kh i đ ng l i h th ng sau s c .................................................................... 164
VI.6.2 Giao th c c đ nh 3 pha (3PC – Three Phases Commit Protocol) .................. 165
Ch
ng VI.7 Các h th ng tích h p (hay liêng bang) và đa CSDL ............................... 168
Ph n VII Các h
Ch
ng nghiên c u và phát tri n hi n đ i .................................................... 169
ng VII.1 Các HQT CSDL th h m i ..................................................................... 169
ng trình ng d ng ......................................... 173
c đi u khi n b i các quy lu t ................................. 174
ng đ i t
M i liên h gi a HQT CSDL h
ti p c n h
ng đ i t
ng ........................................................... 178
ng đ i t
ng v i khái ni m chung v cách
ng .............................................................................................. 179
VII.2.2
Các mô hình d li u h
VII.2.3
Các ngôn ng l p trình các CSDL H T ...................................................... 184
VII.2.3.1 S đánh m t m i t
ng đ i t
ng (non-navigation) .................. 187
VII.2.4.3 Các v n đ t i u hoá truy v n ................................................................ 189
VII.2.5
Các ví d HQT CSDL H T ......................................................................... 191
Nguy
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
vii
H QU N TR C S D
LI U – B n Nháp 30-08-08
VII.2.5.1 D án ORION .......................................................................................... 192
VII.2.5.2 Project O2................................................................................................. 193
Ch
ng VII.3 Các h CSDL trên n n t ng các quy lu t ................................................. 195
VII.3.1
Ph n m r ng và ph n t ng c
ng c a CSDL ............................................. 195
LI U – B n Nháp 30-08-08
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
ix
H QU N TR C S D
LI U – B n Nháp 30-08-08
Ph n I
Ki n th c c b n
Ch ng I.1 CSDL và h th ng t p tin
u tiên, chúng ta hãy xem qua ý t
ng chung c a các khái ni m c s d li u
(CSDL, DB – Database) và h qu n tr c s d li u (HQT CSDL, DBMS – Databases
Managerment System).
CSDL là m t t p h p các d li u mô t m t l nh v c ng d ng nào đó ho c m t l nh
v c c a th gi i th c. Ví d , CSDL v đào t o c a m t tr
ng đ i h c có th ch a các
thông tin v :
– Các th c th nh sinh viên, gi ng viên, các h c ph n, khoa, l p, phòng h c.
– Các m i quan h gi a các th c th , ch ng h n nh sinh viên đ ng ký m t h c
ph n, gi ng viên ph trách m t h c ph n cho l p nào đó, vi c s d ng các phòng h c,…
c l i v i các nhà phát tri n
các ki n trúc máy đi n toán m i.
nh h
ng th hai, đó là s d ng các công c c a k thu t tính toán trong các h
th ng thông tin t đ ng ho c là t đ ng hoá. Theo ngh a r ng, h th ng thông tin là m t t
h p ch
ng trình. Các ch c n ng c a h th ng thông tin ch y u là duy trì vi c l u tr
thông tin m t cách tin c y trong b nh c a máy tính, th c hi n các bi n đ i thông tin
và/ho c tính toán đ c thù cho m t ng d ng đã cho, và cung ng cho ng
di n thu n ti n và d ti p thu. Th
ng thì kh i l
i dùng m t giao
ng thông tin mà các h th ng đó c n ph i
qu n lý/x lý là r t l n, và c u trúc c a chính d li u c ng ph c t p. Ví d c đi n c a h
th ng thông tin là các h th ng ngân hàng, các h th ng đ t vé máy bay ho c là vé tàu, đ t
ch khách s n, v.v…
Trong th c t , đ nh h
ng th hai xu t hi n mu n h n b i vì trong th i gian đ u c a
k thu t tính toán các máy tính s h u các tính n ng h n ch
ng nhi u đ n các tính toán
ng trình c n ph i x lý m t kh i l
ng l n thông tin thì trong
quá trình l p trình có th ngh ra m t các phân b thông tin trong b nh ngoài đ ch
ng
trìn làm vi c nhanh h n đ n m c có th .
M t khác, cho các h th ng thông tin mà trong đó ng
i dùng yêu c u trong các d
li u hi n t i, thì các b ng t và tr ng không đáp ng yêu c u. Ví d , m t khách hàng mu n
mua vé c n ph i đ ng ch máy tính tua h t m t b ng t . M t trong nh ng yêu c u rõ ràng
đ i v i các h th ng nh th là th i gian trung bình đ th c hi n m t giao d ch c n ph i
nhanh.
Có th chính các yêu c u trong k thu t tính toán t phía các ng d ng không thu n
tính toán s đã đ a đ n s xu t hi n các đ a t có th tháo ra v i các đ u đ c di đ ng. S
xu t hi n đó là cu c cách m ng trong l ch s k thu t tính toán. Các thi t b b nh ngo ài đó
s h u dung l
ng l n h n nhi u so v i các tr ng t , còn kh n ng thay th các đ a trên
thi t b cho phép s h u kho d li u g n nh không gi i h n v m t dung l
ng.
ng ti n l p trình b c th p. Ch đ làm vi c này không cho phép ho c r t làm trì tr
vi c duy trì trên m t ph
ng ti n bên ngoài nhi u l u tr (archives) các thông tin c n l u
Nguy
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
2
LI U – B n Nháp 30-08-08
H QU N TR C S D
tr lâu dài. Ngoài ra, m i trình ng d ng ph i gi i quy t v n đ đ t tên (g n nhãn) các ph n
d li u và ph i c u trúc d li u trong b nh ngoài.
I.1.1 H th ng t p tin
Chuy n sang s d ng các h th ng qu n tr t p t p trung là b
quan đi m trình ng d ng, t p là m t vùng đã đ
c ngo c l ch s . Trên
c đ t tên c a b nh ngoài và có th ghi
d li u lên ho c đ c d li u t đó. Các quy lu t đ t tên t p, cách th c truy c p d li u đ
c
đ nh d ng đ a, m i đ
l
ng s đ
ng b ng s tr . Trong quá trình
c chia thành các kh i (block) v i s l
ng nh nhau, và s
ng bytes có th ch a t i đa trong m i kh i là nh nhau. Nh v y, đ trao đ i thông tin
v i đ a t trên c p đ thi t b c n ph i ch ra s th t c a tr , s th t c a b m t, s th
t c a kh i trên đ
ng t
ng ng và s l
ng bytes c n ghi vào ho c là đ c ra tính t đ u
kh i.
Tuy nhiên, kh n ng trao đ i thông tin v i các đ a t theo nh ng ph n nh h n dung
l
ng c a kh i hi n t i không đ
c s d ng trong các h th ng t p.
nhi u.
Vì th , trong t t c các h th ng t p, ho c là tr c ti p, ho c là gián ti p m t c p đ c
b n nào đó đ
c phân ra. C p đ đó đ m b o công vi c v i các t p. M i t p là m t t h p
các kh i có đ a ch trong không gian đ a ch c a t p. Kích th
trùng ho c là b i s kích th
th
c m t trang b nh
c các kh i lu n lý đó c a t p
c c a kh i v t lý c a đ a, và th
o (virtual memory). B nh
o này đ
ng đ
c ch n b ng kích
c duy trì b i thi t b máy
tính cùng v i h đi u hành.
Trong m t vài h th ng t p c p đ c b n là có th truy c p đ
nh ng th
ng pháp t ch c
các t p có khoá ph bi n d a trên n n t ng k thu t b m (hashing) và cây nh phân (B-tree).
C ng t n t i các ph
ng pháp t ch c t p nhi u khoá.
Cách ti p c n th hai ph bi n song song cùng v i h đi u hành UNIX. Mà theo đó,
m i t p là m t chu i các bytes. T m t t p có th đ c m t s cho tr
đ u t đ u t p, ho c đ u tiên chuy n đ n v trí byte có s th t cho tr
ghi m t s cho tr
đ i v i ng
c các byte ho c là b t
c. T
ng t , có th
c các byte vào cu i t p, ho c vào m t v trí nào đó. Chú ý r ng, dù là n
i dùng, nh ng trong t t c các bi n th c a h th ng t p c a h đi u hành UNIX
là ki u bi u di n t p theo kh i.
I.1.1.2
t tên (gán nhãn) cho t p tin
T t c các h th ng t p h tr đ t tên các t p theo nhi u t ng nh vào vi c duy trì
trong b nh ngoài nh ng t p b tr có c u trúc đ c bi t.
lý t p yêu c u m i m t l u tr các t p (cây tra c u đ y đ ) đ u hoàn toàn phân b trên m t
gói đ a, ho c là trên m t đ a lu n lý. Trong tr
đ u t tên c a thi t b đ a, mà trên đó đ a t
ng h p đó, tên đ y đ c a m t t p đ
ng ng đ
cb t
c cài đ t. Có th g i cách t ch c
đó là duy trì các h th ng t p cô l p.
Trong m t ph
g cđ
ng án khác, là h th ng t p c a h đi u hành Multics, nhi u ý t
ng
c phát tri n, nh ng chúng ta ch quan tâm đ n các đ c tính t ch c l u tr các t p.
Trong h th ng t p đó, ng
i dùng bi u di n t h p các th m c và các t p c a mình d
d ng m t cây duy nh t. Tên đ y đ c a t p đ
i
c b t đ u t tên c a th m c g c, và ng
g c các th m c r ng m t cách ch ý. M t phân h c a h đi u hành s làm nhi m v k t
n i th m c g c c a l u tr t p (h th ng t p) v i m t th m c r ng đ
Sau khi l p ghép thành h th ng t p chung, vi c đ t tên cho các t p đ
chính nó t ban đ u đã đ
kh i đ ng h th ng, thì ng
c t p trung hoá. N u vi c l p đ t đ
c t o ra tr
c đó.
c di n ra nh là
c di n ra trong quá trình
i dùng không c m giác v quá trình phát sinh ban đ u c a h
th ng t p chung nh t.
I.1.1.3 B o v t p tin
B i vì h th ng t p là kho l u tr chung c a các t p thu c v nhi u ng
i dùng khác
nhau, nên h th ng qu n lý t p ph i đ m b o vi c xác th c quy n truy c p các t p. Th
thì theo quan h v i m i ng
i dùng đã đ
i đó thu c v , và t
ng ng, kèm theo m i t p s đ
c l u tr
i dùng đã t o ra t p đó, và đánh d u nh ng thao tác nào ng
đó có th th c hi n v i t p, đánh d u nh ng thao tác nào các ng
đó có th th c hi n v i t p, và nh ng thao tác nào nh ng ng
i dùng
i dùng khác cùng nhóm
i dùng khác thu c các nhóm
khác có th th c hi n v i t p.
I.1.1.4 Ch đ truy c p nhi u ng
i dùng
N u h đi u hành h tr ch đ nhi u ng
ng
i dùng, thì tình hu ng hai ho c nhi u
i dùng đ ng th i mu n làm vi c v i cùng m t t p nào đó là hoàn toàn có th . N u t t
thích v i ch đ m t p mà ti n trình B đã s d ng, thì tu thu c vào các tính n ng c a h
th ng mà ti n trình A s đ
c thông báo v vi c không th m t p X trong ch đ mong
mu n, ho c là ti n trình A s b phong to cho đ n khi ti n trình B ch a th c hi n thao tác
đóng t p X.
Trong các phiên b n m i c a h đi u hành UNIX có h tr ch đ đ ng b hoá trong
khi m t p. Th m chí, t n t i kh n ng đ ng b nhi u ti n trình cùng m và s đ i n i dung
m t t p.
đ
cm đ
th c hi n đi u đó, m t c ch các phong to đ ng b các kho ng đ a ch c a t p
c đ a vào áp d ng.
I.1.2 L nh v c ng d ng c a t p tin
Tr
ch
c tiên, các t p đ
c s d ng đ l u tr các d li u v n b n: tài li u, mã ngu n
ng trình,… Nh ng t p nh v y th
ng đ
Trên quan đi m h th ng t p, các t p đ i t
ng.
ng c ng s h u c u trúc r t đ n gi n – chu i
các b n ghi ho c các bytes. H th ng l p trình thi t đ t lên c u trúc đó m t c u trúc mô-đun
đ it
ng ph c t p h n và chuyên bi t cho h th ng đó.
c u trúc mô-đun đ i t
T
đo n ch
ó là c u trúc lu n lý (logic), và
ng đó là “không hi u” đ i v i h th ng t p.
ng t v i các t p đ
c t o ra b i các trình so n th o các liên k t và ch a các
ng trình th c thi. C u trúc lu n lý c a các t p nh th c ng ch “hi u đ
c” v i
trình so n th o các liên k t và trình kh i đ ng c a h đi u hành. V i các t p ch a thông tin
đ ho , âm thanh… c ng có tình hu ng nh th . Ví d , m t t p ch a nh có đ nh d ng JPG
giai
đo n đ u s d ng k thu t máy tính đ qu n tr thông tin, các v n đ c u trúc hoá d li u
đ
c gi i quy t riêng l trong m i h th ng thông tin. Nh ng b i vì các h th ng thông tin
yêu c u các c u trúc d li u ph c t p, các công c b tr riêng l đ qu n tr d li u đó là
m t ph n khá l n c a các h th ng thông tin và trên th c t g n nh l p l i trong các h
th ng. Vi c c g ng phân ra và công b ph n chung c a các h th ng thông tin, ph n ch u
trách nhi m qu n tr các d li u đ
c c u trúc ph c t p có th đ
c xem là nguyên nhân đ u
tiên đánh th c vi c c n thi t ph i xây d ng HQT CSDL. Sau này th y r ng, không th b
Nguy
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
7
H QU N TR C S D
qua th vi n ch
đ
LI U – B n Nháp 30-08-08
c p đ n các t p theo nhi u khoá; 2) rõ ràng, t n t i s d th a r t l n trong l u tr d li u,
và ph i th c hi n quá nhi u phép ch n và tính toán đ thu đ
c thông tin t ng k t v m t
phòng ban. Ngoài ra, trong quá trình khai thác h th ng, n u mu n đ a vào thêm ch c n ng
đ n gi n, ch ng h n nh cho xem danh sách nh ng nhân viên đ
tr
ch
ng m c l
ng cho
c, chúng ta ph i đ c toàn b t p, ho c là ph i c u trúc l i t p đ thêm khoá.
C ng có th làm vi c tr c ti p trên n n t ng h th ng t p, nh ng chúng ta chia t p đó
thành nhi u t p. Và khi đó, nh ng s b t ti n và khó kh n nêu trên s đ
cv
t qua, nh ng
rõ ràng h th ng thông tin c a chúng ta bây gi ph i s h u nh ng tính n ng m i trong th
vi n các công c , và b
Tr
c chuy n này đã làm h th ng ti n g n đ n HQT CSDL.
nh ng siêu d li u (meta-data), và th m chí nh ng tri th c đ nh ngh a tính nh t quán c a d
li u.
Nh ng đó c ng ch a ph i là t t c nh ng gì đòi h i t m t HQT CSDL. Th nh t, rõ
ràng trong h th ng thông tin đ n gi n đó c ng r t khó đ tri n khai nh ng truy v n r t đ n
gi n ki u nh “cho xem s l
ng nhân viên trong phòng ban mà nhân viên A làm tr
Suy ra, HQT CSDL c n ph i h tr m t ngôn ng g n v i ngôn ng con ng
t o ra các truy v n m t cách đ n gi n, và ng
ng”.
i và cho phép
i dùng không c n quan tâm c n ph i th c thi
truy v n nh th nào. Nh ng ngôn ng nh th g i là ngôn ng truy v n đ n CSDL. SQL
(Structured Query Language) cho mô hình d li u quan h là m t ngôn ng nh th .
Th hai, HQT CSDL ph i nh n trách nhi m v tính nh t quán c a d li u. N u
chúng ta làm vi c tr c ti p trên n n t ng h th ng t p b ng th vi n các công c m r ng đ
làm vi c v i t p, và phân tách CSDL ra làm nhi u t p khác nhau; khi c n s a đ i d li u
m t t p thì t t nhiên c ng ph i th c hi n nh ng thay đ i t
ng ng trong nh ng t p ch a d
li u liên quan. N u trong quá trình đó, chúng ta không k p th c hi n các thay đ i c n thi t
trong t t c các t p liên quan và trong h th ng x y ra s c , ví d m t đi n, thì sau khi h
th ng kh i đ ng l i, CSDL đ
đ
c ho c r t khó n u gi i quy t b ng vi c s d ng h th ng t p. Trong khi đó c ng t n t i
nhi u trình ng d ng, mà đ i v i chúng các t p là đ ; ho c c n ph i xác đ nh cho chúng
m c đ c n thi t đ làm vi c v i d li u đ
c l u tr trong b nh ngoài; ho c là đ i v i
chúng,
c n
HQT
CSDL
Nguy
là
thi t
vô
đi u
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
ki n.
I.2.1 Các ch c n ng c a HQT CSDL
I.2.1.1 Qu n tr d li u tr c ti p trong b nh ngoài
Ch c n ng này bao g m s đ m b o các c u trúc c n thi t c a b nh ngoài đ l u
tr d li u là d li u c a CSDL, và c cho các m c đích ph c d ch (ph c v ) khác, ví d , đ
đ y nhanh quá trình truy c p đ n d li u trong m t s tr
ng h p nào đó. Trong m t vài
phiên b n HQT CSDL các tính n ng c a h th ng t p đ
c s d ng r t tích c c, nh ng
trong vài phiên b n khác công vi c đ
c th c hi n trên c p đ các thi t b b nh ngoài.
Nh ng trong các HQT CSDL tiên ti n, ng
th ng t p hay không, và n u s d ng, thì ng
nh th nào. Thông th
các đ i t
i dùng không c n bi t HQT CSDL s d ng h
i dùng không c n bi t các t p đ
c t ch c
ng, HQT CSDL đ m b o h th ng chuyên bi t c a mình đ đ t tên
ng c a CSDL.
H QU N TR C S D
LI U – B n Nháp 30-08-08
CSDL. Vì th trong các HQT CSDL tiên ti n, m t t h p b nh đ m RAM c a chính nó
cùng v i các nguyên t c trao đ i/thay đ i b đ m c a riêng nó đ
C ng t n t i m t l p HQT CSDL riêng h
RAM. H
c duy trì.
ng đ n vi c luôn t n t i c CSDL trong
ng này d a trên n n t ng gi thuy t r ng, dung l
ng RAM trong t
ng lai là
không gi i h n ho c l n đ n m c nào đó, đ cho phép không quan tâm đ n đ m hoá n a.
Hi n t i các công trình theo h
I.2.1.3
ng này đang n m trong giai đo n nghiên c u.
i u khi n các giao tác
Giao tác là m t chu i n i ti p các thao tác trên CSDL, và các thao tác đó xem HQT
i dùng trong quan h v i CSDL. D
i m t s đi u khi n t
ng ng vi c
th c thi song song các giao tác đ ng th i c a HQT CSDL, h u nh m i m t trong s các
ng
tr
i dùng c m giác nh h là ng
ng h p đ c bi t, ng
i dùng duy nh t trong HQT CSDL. Ch trong m t s
i dùng m i c m giác r ng còn có nh ng ng
i khác c ng làm vi c
trên HQT CSDL nh mình.
Cùng v i khái ni m đi u khi n các giao tác trong HQT CSDL nhi u ng
i dùng liên
quan đ n các khái ni m r t quan tr ng, đó là khái ni m tu n t hoá (serialization) các giao
tác và khái ni m k ho ch tu n t th c thi h n h p các giao tác. Khái ni m tu n t hoá các
giao tác đ
c hi u là th t hoá k ho ch th c hi n công vi c c a chúng, mà k t qu (hi u
ch có m t ng
i dùng (ho c trong ch đ m t ng
i dùng).
T n t i m t s thu t toán tu n t hoá các giao tác.Trong các HQT CSDL t p trung,
ph bi n nh t là các thu t toán trên n n t ng phong to đ ng b (synch locks) các đ i t
ng
CSDL. Trong quá trình s d ng b t k m t thu t toán tu n t hoá các giao tác nào c ng có
th xu t hi n các xung đ t gi a hai ho c nhi u h n các giao tác theo truy c p đ n các đ i
t
ng c a CSDL. Trong tr
(làm ng
ng h p đó, đ duy trì tính tu n t c n ph i th c hi n rollback
c l i t t c các thay đ i trong CSDL đ
ó là m t trong nh ng tr
ng h p làm cho ng
c th c hi n b i) m t hay nhi u giao tác.
i dùng c a HQT CSDL nhi u ng
i dùng d ng làm vi c vì s c và k t qu là m t giao tác nào đó
d ng l i
tr ng thái ch a hoàn thành. Tr
s c thi t b m m. Khi x y ra tr
qu (nh ng thay đ i) đ
ng trình là k t qu c a m t s c ph n
ng h p đ u có th xem là m t d ng đ c bi t c a
ng h p th hai, c n ph i thanh lý (hu b ) t t c các h u
c t o ra ch b i giao tác đó.
Rõ ràng, trong m i tr
ng h p, đ khôi ph c CSDL c n ph i có nh ng thông tin b
tr nào đó. Nói cách khác, đ duy trì tính tin c y c a vi c l u tr d li u trong CSDL đòi
h i tính d th a trong l u tr d li u, và khi đó, ph n d li u đ
CSDL c n ph i đ
c s d ng đ khôi ph c
c l u tr đ c bi t tin c y. Bi n pháp ph bi n đ duy trì tính d th a d
ng ng v i m t thao tác lu n
lý thay đ i d li u, ví d , thao tác xoá m t dòng t m t b ng c a CSDL quan h ; đôi khi –
thao tác t i thi u đ s a đ i m t trang b nh ngoài; và đôi khi c hai ph
đ
ng pháp trên đ u
c s d ng.
Trong t t c các tr
Log). Chi n l
ph i đ
ng h p, chi n l
c ghi nh t ký tr
c (WAL – Write Ahead
c đó chính là b n ghi v s thay đ i c a b t k đ i t
c c đ nh trong b nh ngoài c a nh t ký, tr
c khi đ i t
ng nào c a CSDL đ u
ng đã đ
ng đã đ
c s a đ i b i các giao tác ch a hoàn thành cho đ n th i đi m x y ra s c , và
có th không có các đ i t
ng đã đ
c s a đ i b i nh ng giao tác hoàn thành tr
đi m x y ra s c nh ng k t qu c a nó trên b nh đ m v n ch a đ
c th i
c c đ nh trong b
nh ngoài. N u tuân theo giao th c WAL, các b n ghi thu c các thao tác s a đ i c a c hai
lo i đ i t
ng đ m b o có m t trong b nh ngoài c a nh t ký. M c đích c a quá trình khôi
ph c sau s c m m là tr ng thái b nh ngoài c a ph n chính c a CSDL, tr ng thái mà s
xu t hi n n u t t c các s a đ i CSDL b i các giao tác đã hoàn thành đ
nh ngoài, và
ch a đ
c c đ nh trong b
tr ng thái đó CSDL không ch a b t c m t d u n nào c a các giao tác
ng,
thì nh t ký không b đánh m t ho c h h i. Và khi đó, công vi c khôi ph c CSDL bao g m:
xu t phát t b n sao l u l u tr c a CSDL th c thi công vi c c a tât c các giao tác đ ã hoàn
t t thành công cho đ n th i đi m x y ra s c . V nguyên t c, c ng có th th c thi công vi c
c a các giao tác ch a hoàn t t và cho phép ti p t c công vi c sau khi k t thúc quá trình khôi
ph c. Tuy nhiên, trong các h th ng th c ti n đi u đó không đ
c th c hi n, b i vì quá trình
khôi ph c CSDL sau s c c ng là quá trình khá lâu dài v m t th i gian.
I.2.1.5 H tr các ngôn ng CSDL
Các ngôn ng đ c bi t đ
c s d ng đ làm vi c v i các CSDL th
các ngôn ng CSDL. Trong các HQT CSDL tr
ch c n ng c a chúng. Th
ng đ
c g i là
c đây duy trì vài ngôn ng chuyên bi t theo
ng phân ra hai ngôn ng - ngôn ng đ nh ngh a l
Schema Definition Language) CSDL và ngôn ng
c l u gi trong các b ng-danh m c đ c bi t, và đ m b o ki m
tra tính nh t quán c a CSDL đ
c di n ra trên c p đ ngôn ng , ngh a là, khi biên d ch các
l nh s a đ i CSDL, trên c s các ràng bu c tính nh t quán CSDL đang có, trình biên d ch
SQL t o ra mã ch
ng trình t
ng ng.
Nguy
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
14
H QU N TR C S D
LI U – B n Nháp 30-08-08
Các l nh đ c bi t c a ngôn ng SQL cho phép đ nh ngh a các khung nh ìn c a CSDL.
Các khung nhìn th c t là các truy v n đ
tên.
đ
i v i ng
b ng thì có đ y đ th m quy n đ làm vi c v i b ng. Trong s các th m quy n đó có c
quy n truy n t t c các th m quy n ho c m t ph n trong đó cho các ng
i dùng khác, k c
quy n trao th m quy n cho ng
i dùng đ
i dùng k ti p. Các th m quy n c a ng
trong các b ng-danh m c đ c bi t. Vi c ki m soát th m quy n đ
c mô t
c duy trì trên c p đ ngôn
ng .
I.2.1.6 Các l i ích khác
Ngoài các ch c n ng chính và c ng là nh ng l i ích trên, HQT CSDL còn mang l i
nh ng l i ích r t l n khác, nh đ m b o s đ c l p d li u, đ m b o truy c p d li u hi u
qu , toàn v n và b o m t d li u, qu n tr và rút ng n th i gian (đ n gi n hoá quá trình) phát
tri n ng d ng.
S đ c l p d li u đ
c hi u là các trình ng d ng c n ph i không ph thu c đ n
m c cao nh t có th vào các chi ti t l u tr và cung ng (representation) d li u. HQT
CSDL cung c p m t khung nhìn tr u t
H QU N TR C S D
LI U – B n Nháp 30-08-08
T p trung hoá quá trình qu n tr d li u có ý ngh a c i thi n h th ng đáng k , khi
nhi u ng
ng
i dùng cùng chia s d li u. Qu n tr d li u cho phép các chuyên gia – nh ng
i hi u đ c tính c a d li u đang đ
c qu n tr và hi u các nhóm ng
i dung khác nhau
s d ng d li u nh th nào, ch u trách nhi m t ch c th hi n d li u nh m nâng cao hi u
qu truy c p thông qua t i thi u hoá s d th a và thi t đ t đúng các tính n ng c a h th ng
l u tr d li u.
Rút ng n th i gian phát tri n ng d ng đ
c hi u thông qua vi c HQT CSDL cung
c p h u h t các ch c n ng quan tr ng trong vi c l u tr , qu n tr và s d ng d li u thay vì
ph i phát tri n t đ u cùng v i trình ng d ng.
M c dù HQT CSDL cung c p nhi u l i ích nh v y, nh ng nó là m t h th ng ph n
m m hoàn thi n đ
c t i u hoá cho nh ng lo i công vi c nh t đ nh nào đó (nh th c thi
trên:
− Qu n tr d li u trong b nh ngoài;
− Qu n tr các b nh đ m RAM;
− Qu n tr các giao tác;
− Ghi nh t ký và khôi ph c CSDL sau s c ;
− Duy trì các ngôn ng CSDL.
m c khái ni m (lu n lý, logic), trong các HQT CSDL quan h hi n đ i có th phân
chia thành ph n bên trong nh t – nhân c a HQT CSDL, g i là DataBase Engine (DBE);
trình biên d ch ngôn ng (th
ng là SQL); phân h h tr th i gian th c thi; và t h p các
ti n ích. Trong vài h th ng, các ph n đó đ
Nguy
c phân chia m t cách rõ ràng, và trong m t s
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
16