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
Ph n I
Ch
Ki n th c c b n ....................................................................................................... 1
ng I.1
CSDL và h th ng t p tin ............................................................................. 1
I.1.1 H th ng t p tin ..................................................................................................... 3
I.1.1.1
C u trúc t p tin .............................................................................................. 3
I.1.1.2
t tên (gán nhãn) cho t p tin ....................................................................... 4
I.1.1.3
B o v t p tin ................................................................................................ 5
I.1.1.4
Ch đ truy c p nhi u ng
i dùng ................................................................ 6
I.1.2 L nh v c ng d ng c a t p tin ............................................................................... 6
I.1.3 Yêu c u c a các h th ng thông tin ....................................................................... 7
Ch
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
Các l i ích khác........................................................................................... 15
I.2.2 T ch c đi n hình c a m t HQT CSDL hi n đ i ................................................ 16
Ph n II T ch c bên trong c a HQT CSDL ........................................................................ 18
Ch
ng II.1 T ch c bên trong c a HQT CSDL ............................................................ 18
II.1.1
Ki n trúc c a m t HQT CSDL .......................................................................... 18
II.1.2
Các c u trúc b nh ngoài, các ph
II.1.3
L u tr quan h .................................................................................................. 19
II.1.4
Các ch m c ....................................................................................................... 22
ng pháp t ch c ch m c (index)............. 18
II.1.4.1
B-tree........................................................................................................... 23
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
II.2.2
Khái ni m giao tác ............................................................................................. 30
II.2.3
Phân lo i giao tác ............................................................................................... 32
II.2.3.1
Giao tác t ch p nh n (Autocommit mode) ................................................ 32
II.2.3.2
Giao tác đ
II.2.3.3
Giao tác gi m (Implicit ) ............................................................................. 34
II.2.3.4
Giao tác t ph c h i (Auto rollback) .......................................................... 35
II.2.3.5
Giao tác l ng (Nested Transaction) ............................................................ 37
c khai báo t
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
II.2.5.3.5 Ràng bu c CSDL ................................................................................... 51
II.2.6
Ch
Tri n khai ràng bu c tính toàn v n d ng đ nh ngh a b ng công c SQL .......... 52
II.2.6.1
Các nguyên t c chung trong tri n khai ràng bu c b ng các công c SQL . 52
II.2.6.2
Cú pháp ràng bu c theo chu n SQL ........................................................... 54
ng II.3 Giao tác và tính song song (tính đ i ng u) ................................................. 64
II.3.1
ôi đi u v công vi c c a giao tác .................................................................... 65
II.3.2
Các v n đ th c hi n song song các giao tác .................................................... 66
II.3.2.1
V n đ m t k t qu c p nh t d li u ........................................................... 66
II.3.2.2
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
II.3.3.1
nh lý Esvaran v tính tu n t .................................................................. 73
II.3.3.2
Chi m l nh đ ng b ..................................................................................... 75
II.3.3.2.1 Các phong to ......................................................................................... 75
II.3.3.2.2 Gi i quy t các v n đ c a tính song song b ng s giúp đ c a các phong
to
76
II.3.3.2.2.1 V n đ m t k t qu c p nh t ............................................................ 77
II.3.3.2.2.2 V n đ ph thu c không đ
chu n)
c c đ nh (đ c d li u b n, đ c không
77
II.3.3.2.2.3 V n đ xung kh c trong phân tích ................................................... 78
II.3.3.2.2.4 Xung kh c th c ch t trong phân tích ............................................... 80
II.3.3.2.2.5 Gi i quy t (g b ) các tình hu ng b t c ......................................... 81
II.3.3.2.2.6 Phong to có ch đ nh (Chi m l nh đ ng b b ng cách tán nh ) .... 83
II.3.3.2.3 Phong to theo m nh đ ......................................................................... 88
II.3.3.2.4 C ch tách phiên b n d li u ................................................................ 89
II.3.3.3
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
Ph c h i sau s c “m m” .......................................................................... 99
II.4.2.3
Tính nh t quán v t lý c a CSDL .............................................................. 101
II.4.2.4
Ph c h i sau s c “c ng” ........................................................................ 103
II.4.2.5
Ph c h i d li u và chu n SQL ................................................................ 104
ng II.5 Các trình biên d ch SQL. Các v n đ t i u hoá ...................................... 105
II.5.1
S đ chung trong x lý các truy v n .............................................................. 105
Nguy
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
iv
H QU N TR C S D
II.5.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
II.5.4.1
T o ra các k ho ch................................................................................... 108
II.5.4.2
ánh giá tr giá các k ho ch th c thi truy v n ........................................ 108
II.5.4.3
Các đánh giá chính xác h n ...................................................................... 108
Ph n III
Ch
T i u ng ngh a các truy v n ......................................................................... 108
HQT CSDL trong ki n trúc “Client−Server” .................................................... 109
ng III.1 Ki n trúc “Client−Server” ........................................................................ 109
III.1.1 Các h th ng m .............................................................................................. 109
III.1.2 Các máy khách và máy ch trong m ng c c b .............................................. 110
III.1.3 Ki n trúc h th ng “khách-ch ” ...................................................................... 111
III.1.3.1 Khách thông minh (Smart Client) ............................................................. 113
III.1.4 Các máy ch CSDL ......................................................................................... 115
III.1.4.1 Các nguyên t c t
ng tác gi a ph n khách và ph n ch .......................... 115
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 d ng KNT trong các kho d li u ............................................................. 124
Ch
ng m i ........................................ 121
ng IV.3 C p nh t KNT ........................................................................................... 124
IV.3.1 Các c ch c p nh t KNT ................................................................................ 124
Nguy
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
v
H QU N TR C S D
LI U – B n Nháp 30-08-08
IV.3.2 Phân lo i các thu t toán CNGT KNT .............................................................. 126
IV.3.2.1 CNGT có s d ng đ y đ thông tin (b ng KNT, các b ng g c, v n b n truy
v n và v n b n truy v n thao tác d li u) ................................................................. 126
IV.3.2.2 CNGT KNT s d ng m t ph n thông tin ................................................. 127
IV.3.2.3 C p nh t trì hoãn ....................................................................................... 130
Ch
ng IV.4
ng d ng ý t
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
VI.3.2.1 Nhân b n đ ng b ..................................................................................... 146
VI.3.2.2 Nhân b n không đ ng b .......................................................................... 147
VI.3.2.2.1 Nhân b n theo nút chính và nhân b n ngang hàng ............................. 147
VI.3.3 Qu n tr danh m c phân tán ............................................................................. 150
VI.3.3.1
t tên cho các đ i t
ng ......................................................................... 150
VI.3.3.2 C u trúc danh m c phân tán ..................................................................... 151
VI.3.4 Tính đ c l p c a d li u phân tán .................................................................... 152
Ch
ng VI.4 X lý các truy v n phân tán ...................................................................... 154
VI.4.1 Các thu t toán n i join ..................................................................................... 154
VI.4.1.1 Các truy v n nonjoin ................................................................................. 154
VI.4.1.2 Th c thi phép n i trên HQT CSDL PT ..................................................... 155
VI.4.1.2.1 Rút ra nh ng gì c n thi t..................................................................... 155
VI.4.1.2.2 Chuy n đ n m t nút ............................................................................ 155
VI.4.1.2.3 Semijoins và Bloomjoins .................................................................... 155
Nguy
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
vi
H QU N TR C S D
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
VII.1.1
Theo h
VII.1.2
Các ki u d li u tr u t
VII.1.3
T o ra các h CSDL theo h
VII.1.4
T i u các truy v n đ
VII.1.5
H tr các thông tin l ch s và các truy v n bi u th th i gian .................... 175
Ch
ng m r ng mô hình quan h ........................................................ 170
ng VII.2 Các HQT CSDL h
VII.2.1
ng.......................................................................... 172
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 ......................................................... 181
ng quan gi a các ngôn ng l p trình và các ngôn ng
truy v n trong HQT CSDL quan h .......................................................................... 184
VII.2.3.2 Các ngôn ng l p trình CSDL H T nh là các ngôn ng H T h tr các
đ it
ng b n v ng (persistent) ................................................................................ 185
VII.2.3.3 Các ví d ngôn ng l p trình CSDL H T ............................................... 186
VII.2.4
Các ngôn ng truy v n CSDL H T ............................................................. 187
VII.2.4.1
i uh
ng (navigation) t
ng minh nh là m t công c v
mát tính t
ng ng .................................................................................................... 187
VII.2.4.2 Các ngôn ng truy v n không-đi u h
t qua s m 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
VII.3.2
Các CSDL n ng đ ng (ch đ ng – active DB) ............................................ 196
VII.3.3
CSDL suy di n ............................................................................................. 197
Ph n VIII Ph l c ............................................................................................................... 199
A. MS SQL Server ......................................................................................................... 199
A.1 Ki n trúc c a SQL Server ...................................................................................... 201
A.2 Cài đ t và khôi ph c trong SQL Server ................................................................. 205
B. Oracle ........................................................................................................................ 205
B.1. Ki n trúc c a Oracle ............................................................................................. 205
B.2. Cài đ t và khôi ph c trong Oracle ........................................................................ 205
C. Các hình v ............................................................................................................... 206
D. Các b ng.................................................................................................................... 207
Tài li u tham kh o ............................................................................................................... 208
Nguy
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
viii
H QU N TR C S D
Nguy
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,…
HQT CSDL là m t h th ng ph n m m đ
thác m t s l
c thi t k nh m m c đích qu n tr và khai
ng l n các t p h p l n d li u v i kh i l
ng có th t ng lên r t nhanh.
T bu i ban đ u c a quá trình phát tri n công ngh tính toán, có hai đ nh h
ng
chính trong vi c s d ng nó. Th nh t, đó là ng d ng k thu t tính toán đ th c hi n các
tính toán s mà n u th c hi n th công thì r t lâu ho c là không th . S tr
đ nh h
ng này đã kh i d y s t ng c
ng các ph
ng thành c a
ng pháp gi i quy t b ng tính toán các
bài toán toán h c ph c t p, s phát tri n c a l p các ngôn ng l p trình theo h
hoá cài đ t các thu t toán tính toán, và thi t đ t m i quan h ng
ng đ n gi n
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
ph n b nh . Rõ ràng, ch có
th nói v vi c l u tr thông tin m t cách tin c y và lâu dài khi có các thi t b ghi nh l u
Nguy
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
1
H QU N TR C S D
LI U – B n Nháp 30-08-08
gi thông tin sau khi ngu n đi n c a máy tính b c t. B nh t m th i truy c p ng u nhiên
(RAM – Random Access Memory) không có tính n ng đó. Ban đ u có hai lo i thi t b b
nh ngoài đ
c s d ng là b ng t và tr ng. Dung l
ng c a b ng t khá l n nh ng nó ch
cho phép truy c p n i ti p đ n d li u. Các tr ng t cho phép truy c p ng u nhiên đ n d
li u gi ng nh các đ a t ngày nay (v i đ u đ c c đ nh) nh ng dung l
D th y r ng, nh ng gi i h n đã nêu trên không nh h
thu n s . Th m chí n u ch
ng l i nh .
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.
C ng t n t i d ng đ a đ u đ c c đ nh (Fixed-head), ngh a là các đ u đ c không d ch
chuy n. Trong các
đ a đó có nhi u đ u đ c và m t đ u riêng bi t cho m i rãnh. S s p x p
này cho phép máy tính chuy n t rãnh này sang rãnh khác mau chóng, không ph i di chuy n
đ u đ c-vi t.
i u này làm gi m thi u th i gian truy c p đ a vì th i gian d ch chuy n đ u
đ c gi a các rãnh trong
đ a v i đ u đ c di đ ng chi m ph n l n th i gian c a c quá trình
truy c p đ a. Tuy nhiên, c n m t s r t l n đ u đ c-vi t cho lo i
đ a này,và nh v y giá
c a thi t b b nâng cao lên r t nhi u.
L ch s các h th ng qu n tr d li u trong b nh ngoài c ng đ
s xu t hi n các đ a t . Tr
c b t đ u cùng v i
c đó, m i trình ng d ng c n đ n vi c l u tr d li u trên b
nh ngoài c n ph i t xác đ nh v trí c a t ng ph n d li u trên b ng t ho c tr ng, và ph i
t th c hi n vi c trao đ i thông tin gi a b nh trong và b nh ngoài b ng s giúp đ c a
các ph
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
l u tr trong t p, và c u trúc các d li u đó ph thu c vào m t h th ng qu n lý t p c th ,
và có th , ph thu c vào ki u t p. H th ng qu n lý t p ch u trách nhi m phân b b nh
ngoài, bi u di n các tên t p trên các đ a ch t
ng ng trong b nh ngoài và đ m b o truy
c p đ n d li u.
H th ng t p tin tiên ti n l n đ u tiên đ
c phát tri n
công ty IBM. Chúng ta s
không xem xét nó b i vì nó quá l i th i so v i các h th ng t p bây gi nh Ext3, NTFS,...
I.1.1.1 C u trúc t p tin
Bây gi chúng ta xem xét k nh ng h th ng t p có t ch c tiên ti n h n. Hi n t i,
h u nh trong t t c các máy tính hi n đ i, thi t b b nh ngoài ch đ o là nh ng đ a t có
đ u đ c d ch chuy n, và chính chúng ph c v cho vi c l u tr t p. Nh ng đ a t nh v y
th c t là nh ng “gói” các b n t (b m t), gi a chúng là “gói” nh ng đ u đ c t di đ ng.
B
c chuy n đ ng c a gói đ u đ c là r i r c (không liên t c, discrete), và m i v trí c a gói
đ uđ ct
v ra m t đ
ng ng m t cách lu n lý các tr (cylinder) c a các đ a t . Trên m i b m t, tr
ng (track). Vì th , m i b m t đ a ch a s đ
đ 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.
hai đi m. Th nh t, quá trình trao đ i thông tin v i đ a c a thi t b đ
thao tác chính: d ch chuy n đ u đ c đ n đ
trong t ng th , tìm trên đ
ng c n thi t – b
i u đó liên quan đ n
c th c hi n theo ba
c chi m ph n l n th i gian
ng đó kh i c n thi t và trao đ i thông tính v i kh i đó. Th hai,
đ có th làm vi c v i nh ng ph n c a các kh i, h th ng t p c n ph i đ m b o m t dung
Nguy
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
3
H QU N TR C S D
l
ng b nh t m th i t
LI U – B n Nháp 30-08-08
ng ng, và đi u đó làm ph c t p quá trình phân b b nh r t
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
c đ i v i ng
ng thì b bao ph b i m t c p đ cao h n, và chu n h n cho ng
i dùng,
i dùng. Ph
bi n h n là hai cách ti p c n ch đ o sau. Cách th nh t, t p là m t chu i các b n ghi. M i
b n ghi là m t chu i các bytes có kích th
đ
c c đ nh ho c là thay đ i. Các b n ghi có th
c đ c ho c ghi m t cách n i ti p ho c có th theo v trí b ng s th t c a b n ghi trong
t p. M t vài h th ng t p cho phép c u trúc hoá các b n ghi theo các tr
nh ng tr
ng và khai báo
ng nào đó là các khoá c a b n ghi. Trong các h th ng t p đó có th yêu c u
ch n ra m t b n ghi t m t t p theo khoá c a nó. Rõ ràng, trong tr
t p ph i duy trì nh ng c u trúc d li u b tr , n v i ng
ng h p này h th ng
i dùng. Các ph
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à các th m c. M i m t th
m c ch a các tên c a các th m c khác ho c/và các t p đ
c ch a trong th m c đó. Nh
v y, tên đ y đ c a t p đ
c c u thành th tên c a các th m c c ng v i tên t p trong th
m c. S khác bi t gi a các ph
ng pháp đ t tên t p trong các h th ng t p khác nhau là
Nguy
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
4
H QU N TR C S D
ch , t cái gì chu i các tên đó đ
LI U – B n Nháp 30-08-08
c b t đ u. Có hai ph
ng án. Trong nhi u h th ng qu n
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
i
dùng không ph i quan tâm đ n các thi t đ t các đ a c th trên thi t b đ a. B n thân h
th ng s h i v thi t đ t các đ a c n thi t khi tìm m t t p theo tên c a nó. M t h th ng t p
nh th có th nói là hoàn toàn t p trung hoá. Ví d , các h th ng t p c a Windows.
T t nhiên, h u h t các h th ng t p đ
c cô l p thu n ti n h n: h th ng qu n lý t p
đ m nh n h u h t công vi c. Nh ng trong các h th ng đó l i xu t hi n các v n đ khá l n,
n u nh m t ai đó c n chuy n m t ph n c a cây h th ng t p đ n m t tr m đi n toán khác.
M t gi i pháp tho hi p đã đ
l u tr t p cô l p đ
l u tr đó s đ
đ ng, ng
c áp d ng trong các h th ng t p h đi u hành UNIX. Các
c duy trì trên c p đ c b n trong các h th ng t p. M t trong nh ng
c khai báo nh là h th ng t p g c (root). Sau khi h th ng đ
c kh i
i dùng có th l p đ t (mount) h th ng t p g c và hàng lo t các h th ng t p cô
l p vào m t h th ng t p duy nh t. Vi c đó đ
c th c hi n b ng cách thêm vào h th ng t p
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 đã đ
c đ ng ký trong h th ng máy tính, cho m i m t
t p s có thông tin v nh ng quy n truy c p ho c là b c m đ i v i ng
Nguy
ng
i dùng đó.
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
5
LI U – B n Nháp 30-08-08
H QU N TR C S D
Trong h u h t các h th ng qu n lý t p hi n đ i đ u áp d ng bi n pháp b o v t p.
u tiên đ
c tri n khai trong h đi u hành UNIX. Trong h th ng đó, m i m t ng
đã đ ng ký t n t i hai t đ nh danh: t đ nh danh c a nhóm mà ng
đ nh danh c a chính ng
t đ nh danh c a ng
i dùng trong nhóm. T
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
c các ng
i dùng đó ch đ nh đ c t p, thì không có v n đ gì đ bàn cãi. Nh ng n u ch c n
m t ng
i trong h thay đ i n i dung c a t p, thì đ công vi c c a t t c ng
d ng t p lúc đó đ
Th
i dùng s
c đúng đ n c n ph i có s đ ng b qua l i.
ng thì trong các h th ng t p ng d ng cách sau.
v i t p, ti n trình (ch
b t đ u m t phiên làm vi c
ng trình) c n ph i th c hi n thao tác m t p. Trong thao tác m t p,
ngoài nh ng thông s c n thi t c a h th ng, c n ph i ch ra ch đ làm vi c v i t p – m
ch đ đ c hay là có s a đ i. N u t i th i đi m ti n trình A ti n hành thao tác m t p X, t p
X đã đ
c m b i ti n trình B, và ch đ m t p mà ti n trình A mong mu n không t
ng
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 đ
c t o ra và đ
trình x lý v n b n khác nhau. C u trúc c a các t p v n b n th
Nguy
c thao tác b i các ch
ng
ng r t đ n gi n: ho c là
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
6
H QU N TR C S D
LI U – B n Nháp 30-08-08
m t chu i các b n ghi ch a các xâu ký t , ho c là chu i các bytes, mà trong chúng có th
g p nh ng ký t đ c bi t, ví d các ký t cu i câu.
Các t p ch a mã ngu n các ch
d ch.
ng trình đ
c s d ng là đ u vào c a các trình biên
n phiên mình, các trình biên d ch c ng t o ra các t p ch a các mô-đun đ i t
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
thì ch có các trình so n th o, xem nh có ch c n ng xem nh đ nh d ng JPG hi u đ
Nh v y, h th ng t p th
ng ch đ m b o l u tr các thông tin đ
và đ ph n c u trúc hoá còn l i cho các trình ng d ng.
tr
c.
c c u trúc y u,
i u đó th m chí r t t t trong các
ng h p s d ng t p đã nêu trên, b i vì trong quá trình phát tri n m t h th ng ng d ng
m i nào đó, ch c n d a trên nh ng công c chu n và đ n gi n c a h th ng t p có th tri n
khai các c u trúc l u tr . Các c u trúc l u tr g n g i v i các đ c thù c a l nh v c ng d ng
c a h th ng h n.
I.1.3 Yêu c u c a các h th ng thông tin
Tuy nhiên, th c ch t tình hu ng c a các h th ng thông tin khác bi t v i các ng
d ng đã nêu trên. Các h th ng này ch y u thiên v l u tr , l a ch n và s a đ i các thông
tìn t n t i v nh vi n. C u trúc thông tin th
ng r t ph c t p, và dù c u trúc d li u khác bi t
nhau trong các h th ng thông tin, nh ng gi a chúng th
ng t n t i nhi u th chung.
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
ng trình chung, mà trong đó các công c l u tr d li u ph c t p h n
c tri n khai trên m t h th ng t p chu n và c n b n.
Ví d , chúng ta mu n tri n khai m t h th ng thông tin đ n gi n đ h tr qu n lý
nhân s m t t ch c nào đó. H th ng c n ph i có nh ng tính n ng sau: Cho xem danh sách
nhân viên theo phòng ban, chuy n m t nhân viên t phòng ban này sang phòng ban khác,
nh n nhân viên m i ho c cho ngh vi c m t nhân viên. Ngoài ra, có th tính t ng s nhân
viên trong m i phòng ban, t ng s ti n l
l
ng cho m i phòng ban, c ng nh t ng s ti n
ng ph i tr cho toàn c quan. Ngoài ra, v i m i nhân viên có th xem thông tin v h ,
công vi c h đang làm, trách nhi m quy n h n h đang n m gi ,…
N u chúng ta s d ng h th ng t p đ l u tr , ngh a là t t c thông tin đ
c ghi vào
m t t p v n b n d ng text, t t nhiên, ph i phát tri n thêm th vi n công c đ c bi t đ làm
vi c v i h th ng t p.
đây, đ n v thông tin nh nh t là nhân viên, vì th m i b n ghi là
m t dòng l u gi t t c m i thông tin liên quan nhân viên. V i m t h th ng thông tin đ n
gi n nh th , trong tr
ng h p này đòi h i: 1) xây d ng các thi t đ t đ ph c t p đ truy
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.
c tiên, h th ng ph i bi t r ng, nó đang làm vi c v i nhi u t p khác nhau ch a
thông tin liên quan m t thi t v i nhau, và bi t đ
c ý ngh a (ng ngh a) c a t ng tr
r ng, n u thay đ i thông tin trong m t t p thì c ng ph i t đ ng thay đ i t
ng ng
ng. Và
nh ng
t p khác ch a thông tin liên quan. Khái ni m tính nh t quán d li u (tính toàn v n) là khái
ni m mang tính chìa khoá c a CSDL. Th c t , n u h th ng thông tin h tr l u tr d li u
m t cách nh t quán trong nhi u t p, th ì có th nói r ng, nó đã đ m b o tính nh t quán, và có
th g i nó là h qu n tr c s d li u (HQT CSDL). Dù bây gi ch yêu c u duy trì tính
nh t quán d li u trong nhi u t p, nh ng th vi n các ch c n ng (công c ) c a chúng ta
c ng không th b đi. Vì h th ng nh th c n ph i có nh ng d li u c a riêng nó, đó là
Nguy
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
8
H QU N TR C S D
LI U – B n Nháp 30-08-08
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 ch a trong các t p c a chúng ta không còn n m trong
tr ng thái nh t quán n a. Các HQT CSDL hi n đ i nh n t t c các trách nhi m đó, nó đ m
b o CSDL s đ
c khôi ph c l i tr ng thái nh t quán sau khi x y ra s c và ng
i dùng
c ng nh trình ng d ng không c n ph i quan tâm đ n v n đ đó.
Và cu i cùng, n u chúng ta mu n đ m b o công vi c song song c a nhi u ng
i
dùng đ ng th i trên CSDL, và chúng ta ch d a trên vi c s d ng tr c ti p các t p, thì đ
đ m b o tính đúng đ n trong công vi c trong c th i gian s a đ i d li u b i m t ng
i
dùng nào đó trong m t trong s các t p ch a thông tin liên quan, thì vi c truy c p c a t t c
các ng
i dùng còn l i đ n t p đó b phong to (nh đã nói
trên). Nh v y, th i gian đ
th c hi n m t truy v n dù là trên các d li u không liên quan c ng b kéo dài. Các HQT
CSDL hi n đ i đ m b o c ch m m d o h n nhi u đ đ ng b hoá truy c p đ ng th i đ n
d li u.
Và nh th , HQT CSDL gi i quy t nhi u v n đ mà h u nh không th gi i quy t
đ
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.
9
H QU N TR C S D
Ch
LI U – B n Nháp 30-08-08
ng I.2 Các ch c n ng c a HQT CSDL. T ch c đi n hình c a m t HQT CSDL
hi n đ i
Nh đã ch ng minh
trên, các tính n ng truy n th ng c a h th ng t p không đ đ
xây d ng m t h th ng thông tin, dù là đ n gi n. Chúng ta đã ch ra nh ng yêu c u mà h
th ng t p không th đáp ng đ
c: H tr tính nh t quán lu n lý c a t h p các t p; đ m
b o ngôn ng thao tác và truy v n d li u; khôi ph c d li u sau các s c khác nhau; và
đ m b o công vi c song song gi a các ng
i dùng khác nhau. Có th nói r ng, n u m t h
th ng thông tin ng d ng nào đó d a trên m t h th ng qu n tr d li u s h u các tính n ng
trên, thì h qu n tr d li u đó có th đ
c g i là HQT CSDL.
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.
I.2.1.2 Qu n tr các b nh đ m (buffers) trong RAM
HQT CSDL th
th
ng làm vi c v i các CSDL có kích th
c đó l n h n g p nhi u l n so v i dung l
m i truy c p đ n các ph n t d li u đ u đ
c r t l n, th
ng thì kích
ng RAM có th truy c p. Nh ng rõ ràng, n u
c th c hi n tr c ti p b ng m t trao đ i v i b
nh ngoài, thì c h th ng s làm vi c v i t c đ c a thi t b b nh ngoài. Ch có m t cách
duy nh t đ nâng cao t c đ làm vi c c a h th ng, đó là đ m hoá (bufferring) d li u trong
RAM. Khi đó, th m chí n u h đi u hành th c hi n đ m hoá chung cho c h th ng, nh
trong tr
ng h p UNIX, thì c ng đ cho các m c đích c a HQT CSDL. B i vì HQT CSDL
phân b ph n l n nh ng thông tin v l i ích c a bufferring ph n này hay ph n kia c a
Nguy
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
10
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
CSDL là m t th th ng nh t. Giao tác ho c là đ
c th c thi hoàn toàn, và HQT CSDL c
đ nh (COMMIT) trong b nh ngoài các thay đ i trong CSDL b i giao tác đó; ho c là
không có b t c m t thay đ i nào do nó gây nên đ
c th hi n trong tr ng thái c a CSDL.
Khái ni m giao tác c n thi t đ đ m b o tính nh t quán lu n lý c a CSDL. Trong tr
ng
h p s d ng h th ng t p và l u tr các b ng trong các t p nh đã nêu trên (?), cách duy
nh t đ đ m b o tính nh t quán CSDL khi th c thi m t s a đ i d li u và d n t i c n thi t
ph i s đ i trên các t p có thông tin liên quan, đó là liên k t t t c các thao tác đó vào m t
“gói” g i là giao tác. Nh v y, duy trì c ch giao tác là đi u ki n c n, th m chí trong các
HQT CSDL v i ch đ m t ng
i dùng. Khái ni m giao tác còn quan trong h n r t nhi u
trong các HQT CSDL cho phép nhi u ng
Tính ch t m i giao tác đ
i dùng làm vi c đ ng th i.
c b t đ u trong tr ng thái toàn v n c a CSDL và c ng đ
l i m t tr ng thái toàn v n CSDL khi k t thúc, cho phép s d ng giao tác nh là m t đ n v
ho t đ ng c a ng
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
qu ) cu i cùng th c thi c a h n h p các giao tác t
ng đ
ng v i k t qu th c thi chúng
theo m t th t n i ti p nào đó. K ho ch tu n t th c thi h n h p các giao tác là m t k
Nguy
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
11
H QU N TR C S D
LI U – B n Nháp 30-08-08
ho ch th c thi s đ a đ n k t qu là tu n t hoá các giao tác. Hi u r ng, n u có th đ t đ
th c thi tu n t m t cách th c s h n h p các giao tác, thì v i m i m t ng
đ
c
i m t giao tác
c t o nên và s có m t c a các giao tác khác trong h th ng là không nh n th y, n u
chúng ta không tính đ n kh n ng h th ng s đ a l i k t qu th c thi ch m h n so v i khi
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
c m nh n s có m t trong h th ng nhi u giao tác c a các ng
i dùng
i dùng khác.
I.2.1.4 Nh t ký
M t trong nh ng yêu c u c n b n đ i v i HQT CSDL là tính tin c y trong l u tr d
li u trong b nh ngoài. Tính tin c y trong l u tr đ
c hi u là, HQT CSDL c n ph i trong
t th s n sàng khôi ph c tr ng thái nh t quán cu i cùng c a CSDL sau khi x y ra b t k s
c nào, ph n c ng hay ph n m m. Các x c ph n c ng (thi t b ) đ
c chia làm hai lo i, đó
là c c m m – các s c có th x y ra do máy tính d ng làm vi c đ t ng t, ví d nh ng t
đi n không d báo tr
c; và s c c ng – các s c đ c tr ng b i vi c m t mát d li u trên
các thi t b l u tr . Các ví d s c ph n m m có th là HQT CSDL d ng làm vi c vì s c
là k t qu c a các l i ch
ng trình ho c l i ch
c ng; ch
ng trình c a 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
li u nh th là đ a vào nh t ký các thay đ i c a CSDL.
Nguy
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
12
LI U – B n Nháp 30-08-08
H QU N TR C S D
Nh t ký là ph n đ c bi t c a CSDL l u tr thông tin v t t c các thay đ i trong
CSDL, là không th truy c p đ i v i ng
th n. Th m chí thông th
ng ng
i dùng và đ
c b o qu n m t cách vô cùng c n
i ra l u gi nh t ký theo nhi u b n sao trong ít nh t hai
thi t b l u tr b nh ngoài khác nhau. Trong các HQT CSDL khác nhau các thay đ i đ
ghi nh t ký
các c p đ khác nhau: đôi khi b n gh i nh t ký t
c
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 đã đ
cs ađ iđ
c
c đ nh trong b nh ngoài c a ph n ch y u c a CSDL. Và nh th , d th y r ng, n u
HQT CSDL tuân th giao th c WAL, thì v i s giúp đ c a nh t ký có th gi i quy t t t c
các v n đ khôi ph c CSDL sau b t k s c nào.
Tình hu ng đ n gi n nh t c a vi c khôi ph c – đó là rollback riêng l m t giao tác.
Cho tr
ng h p này không nh t thi t ph i s d ng nh t ký thay đ i CSDL chung c a c h
th ng, ch c n duy trì m t nh t ký c c b các thao tác s a đ i CSDL cho m i giao tác, và
th c thi rollback giao tác b ng cách làm ng
c l i t t c các thao tác, b t đ u cu i nh t ký
c c b . Trong vài HQT CSDL làm nh th , nh ng ph n l n các HQT CSDL không duy trì
các nh t ký c c b , còn rollback riêng l m t giao tác đ
c th c hi n theo nh t ký chung
c a h th ng. Và vì th , t t c các b n ghi t m t giao tác liên k t v i nhau b ng m t danh
sách ng
c t cu i cho đ n đ u.
Trong s c m m, trong b nh ngoài c a ph n chính c a CSDL có th có các đ i
t
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
c hoàn t t.
đ tđ
c tr ng thái đó, đ u tiên ph i th c hi n rollback các giao tác
Nguy
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
13
LI U – B n Nháp 30-08-08
H QU N TR C S D
ch a hoàn t t (undo), và sau đó l p l i các thao tác c a các giao tác đã hoàn t t nh ng k t
qu c a nó v n ch a đ
c c đ nh trong b nh ngoài. Quá trình đó ch a r t nhi u đi m
m m d o, tinh vi liên quan đ n cách t ch c chung c a vi c qu n tr các b nh đ m và nh t
ký.
Nh t ký và b n sao l u l u tr c a CSDL đ
c s d ng đ khôi ph c CSDL sau s
c c ng. Có th nói nôm na, b n sao l u l u tr là b n sao toàn b CSDL cho đ n th i đi m
b t đ u ghi nh t ký. T t nhiên, đ khôi ph c CSDL sau s c c ng m t cách bình th
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
thao tác d
c đ (SDL –
li u (DML – Data
Manipulation Language). SDL ph c v ch y u đ đ nh ngh a c u trúc lu n lý c a CSDL,
ngh a là c u trúc c a CSDL đ
c th hi n v i ng
i dùng. DML ch a t h p các toán t
(l nh) thao tác d li u, ngh a là các l nh cho phép th c hi n vi c cho d li u m i vào
CSDL, th c hi n các s a đ i c ng nh xoá ho c là l a ch n nh ng d li u đang t n t i.
Trong các HQT CSDL hi n đ i, th
ng thì m t ngôn ng tích h p duy nh t đ
cs
d ng. Ngôn ng đó ch a t t c nh ng công c c n thi t đ làm vi c v i CSDL, t vi c t o
ra nó, và đ m b o m t giao di n ng
i dùng c n b n v i các CSDL. Ngôn ng chu n và
ph bi n nh t trong các HQT CSDL quan h là SQL (Structured Query Language).
Ngôn ng SQL ch a các công c đ c bi t đ đ nh ngh a các r àng bu c tính nh t quán
c a CSDL. Các ràng bu c đ
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
c l u tr trong CSDL v i các thu c tính đ
cđ t
i dùng, khung nhìn c ng là m t b ng gi ng nh b t k m t b ng g c nào
c l u tr trong CSDL. Nh ng, v i s giúp đ c a các khung nhìn có th h n ch ho c
m r ng “t m nhìn” CSDL cho m t ng
i dùng c th . Duy trì các khung nhìn c ng đ
c
th c hi n trên c p đ ngôn ng .
Cu i cùng, xác th c quy n truy c p đ n các đ i t
ng c a CSDL c ng đ
hi n trên c s các công c đ c bi t c a ngôn ng SQL. Ý t
SQL khác nhau ng
c th c
ng là đ th c hi n các l nh
i dùng c n ph i có các quy n h n khác nhau. Ng
i dùng đã t o ra
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
ng (abstract view) c a d li u đ cách ly mã trình
ng d ng v i các chi ti t d li u đó.
Truy c p d li u hi u qu đ
c th hi n qua vi c DBMS s d ng nh ng k thu t
c c k tinh vi đ l u tr và thu nh n d li u m t cách hi u qu . Tính n ng này r t quan
trong n u d li u đ
c l u tr trên nh ng thi t b l u tr ngoài.
m b o toàn v n d li u và b o m t d li u (data integrity và security) là l i ích
quan tr ng nh t mà HQT CSDL mang l i. N u d li u luôn đ
c truy c p thông qua HQT
CSDL, HQT CSDL có th tuân th các ràng bu c toàn v n d li u. Có th nói, m c đích
chính c a các ch c n ng chính c a HQT CSDL nêu trên ch y u c ng nh m đ m b o tính
toàn v n d li u. Ngoài ra, HQT CSDL còn đi u khi n quá trình truy c p đ ch huy d li u
nào s thu c quy n truy c p b i nh ng nhóm ho c ng
Nguy
i dùng c th nào.
n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn}
15
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
các truy v n, gi i quy t cùng lúc nhi u yêu c u t
ng tranh,…), và các trình ng d ng c ng
có th không ch n s d ng HQT CSDL trong nhi u tr
ng h p, ch ng h n:
– Các ng d ng yêu c u các ràng bu c th i gian th c nghiêm ng t;
– Các ng d ng ch yêu c u ch vài thao tác ng d ng ch yêu c u ch vài thao tác
then ch t đ
c thi t k t t và ch c n vi t mã ngu n cho các thao tác đó (t t nhiên hi u qu
s d ng s cao h n nhi u);
–
ng d ng yêu c u ph i thao tác d li u theo ki u mà ngôn ng CSDL c a HQT
CSDL không đáp ng đ
c.
I.2.2 T ch c đi n hình c a m t HQT CSDL hi n đ i
T ch c c a m t HQT CSDL đi n hình và thành ph n các b ph n c u thành c a nó
t
ng ng v i t h p các ch c n ng mà chúng ta đã nói
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