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

Giáo trình hệ quản trị cơ sở dữ liệu nguyễn trần quốc vinh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.43 MB, 217 trang )

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



thi t



đ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


×