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

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

217 472 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 217
Dung lượng 4,43 MB

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

Nội dung

Rõ ràng, ch có... tr lâu dài... Ngôn ng chu n và ph bi n nh t trong các HQT CSDL quan h là SQL Structured Query Language... Các trang bên trong và các trang lá nút lá th ng có c u trúc k

Trang 1

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

ntquocvinh@due.edu.vn

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

Trang 2

M C L C

Ph n I Ki n th c c b n 1

Ch 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 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 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 ng pháp t ch c ch m c (index) 18

II.1.3 L u tr quan h 19

II.1.4 Các ch m c 22

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

Trang 3

Ch 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 đ c khai báo t ng minh (Explicit) 33

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

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 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

Ch 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

Trang 4

II.3.2.3.2 Các ph n t 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 đ c c đ nh (đ c d li u b n, đ c không chu n) 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

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

Ch 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

Trang 5

H QU N TR C S D LI U – B n Nháp 30-08-08

II.5.2 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 T i u ng ngh a các truy v n 108

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 HQT CSDL trong ki n trúc “Client−Server” 109

Ch 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 116 Ph n IV 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 ng m i 121

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 IV.3 C p nh t KNT 124

IV.3.1 Các c ch c p nh t KNT 124

Trang 6

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

Trang 7

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 ng nghiên c u và phát tri n hi n đ i 169

Ch ng VII.1 Các HQT CSDL th h m i 169

VII.1.1 Theo h ng m r ng mô hình quan h 170

VII.1.2 Các ki u d li u tr u t ng 172

VII.1.3 T o ra các h CSDL theo h ng trình ng d ng 173

VII.1.4 T i u các truy v n đ c đi u khi n b i các quy lu t 174

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 VII.2 Các HQT CSDL h ng đ i t ng 178

VII.2.1 M i liên h gi a HQT CSDL h ng đ i t ng v i khái ni m chung v cách ti p c n h ng đ i t ng 179

VII.2.2 Các mô hình d li u h ng đ i t ng 181

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 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 đ i t 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 u h ng (navigation) t ng minh nh là m t công c v t qua s m t 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 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

Trang 8

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

Trang 10

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 đ c thi t k nh m m c đích qu n tr và khai thác m t s l 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 ng thành c a

đ nh h ng này đã kh i d y s t ng c ng các ph 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 ng đ n gi n hoá cài đ t các thu t toán tính toán, và thi t đ t m i quan h ng 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 i dùng m t giao

di n thu n ti n và d ti p thu Th ng thì kh i l 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ó

Trang 11

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 ng l i nh

D th y r ng, nh ng gi i h n đã nêu trên không nh h ng nhi u đ n các tính toán thu n s Th m chí n u ch 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

Trang 12

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 c ngo c l ch s Trên quan đi m trình ng d ng, t p là m t vùng đã đ 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 đ c 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

v ra m t đ ng (track) Vì th , m i b m t đ a ch a s đ ng b ng s tr Trong quá trình

đ nh d ng đ a, m i đ ng s đ c chia thành các kh i (block) v i s l ng nh nhau, và s

l 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 i u đó liên quan đ n hai đi m Th nh t, quá trình trao đ i thông tin v i đ a c a thi t b đ c th c hi n theo ba thao tác chính: d ch chuy n đ u đ c đ n đ ng c n thi t – b c chi m ph n l n th i gian trong t ng th , tìm trên đ 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

Trang 13

l ng b nh t m th i t 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 c các kh i lu n lý đó c a t p trùng ho c là b i s kích th c c a kh i v t lý c a đ a, và th ng đ c ch n b ng kích

th c m t trang b nh o (virtual memory) B nh o này đ 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 đ c đ i v i ng i dùng,

nh ng th ng thì b bao ph b i m t c p đ cao h n, và chu n h n cho 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 ng và khai báo

nh ng tr 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 ng h p này h th ng

t p ph i duy trì nh ng c u trúc d li u b tr , n v i 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 c các byte ho c là b t

đ u t đ u t p, ho c đ u tiên chuy n đ n v trí byte có s th t cho tr c T ng t , có th ghi m t s cho tr 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 v i ng 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à

Trang 14

ch , t cái gì chu i các tên đó đ 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 ng h p đó, tên đ y đ c a m t t p đ c b t

đ u t tên c a thi t b đ a, mà trên đó đ a t ng ng đ 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 ng án khác, là h th ng t p c a h đi u hành Multics, nhi u ý t ng

g c đ 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 i

d ng m t cây duy nh t Tên đ y đ c a t p đ 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 đã đ c áp d ng trong các h th ng t p h đi u hành UNIX Các

l u tr t p cô l p đ c duy trì trên c p đ c b n trong các h th ng t p M t trong nh ng

l u tr đó s đ c khai báo nh là h th ng t p g c (root) Sau khi h th ng đ c kh i

đ ng, ng 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 đ c t o ra tr c đó Sau khi l p ghép thành h th ng t p chung, vi c đ t tên cho các t p đ c di n ra nh là chính nó t ban đ u đã đ c t p trung hoá N u vi c l p đ t đ c di n ra trong quá trình

kh i đ ng h th ng, thì ng 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 ng 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 i dùng đó

Trang 15

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 i dùng

đã đ ng ký t n t i hai t đ nh danh: t đ nh danh c a nhóm mà ng i đó thu c v , và t

đ nh danh c a chính ng i dùng trong nhóm T ng ng, kèm theo m i t p s đ c l u tr

t đ nh danh c a ng i dùng đã t o ra t p đó, và đánh d u nh ng thao tác nào ng i dùng

đó có th th c hi n v i t p, đánh d u nh ng thao tác nào các ng i dùng khác cùng nhóm

đó có th th c hi n v i t p, và nh ng thao tác nào nh ng ng 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 i dùng, thì tình hu ng hai ho c nhi u

ng 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 i dùng s

d ng t p lúc đó đ c đúng đ n c n ph i có s đ ng b qua l i

Th ng thì trong các h th ng t p ng d ng cách sau b t đ u m t phiên làm vi c

v i t p, ti n trình (ch 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 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 m đ c đ a vào áp d ng

I.1.2 L nh v c ng d ng c a t p tin

Tr 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

ch ng trình,… Nh ng t p nh v y th ng đ c t o ra và đ c thao tác b i các ch ng 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 ng r t đ n gi n: ho c là

Trang 16

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 ng trình đ c s d ng là đ u vào c a các trình biên

d ch 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 ng Trên quan đi m h th ng t p, các t p đ i t 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

đ i t ng ph c t p h n và chuyên bi t cho h th ng đó ó là c u trúc lu n lý (logic), và

c u trúc mô-đun đ i t ng đó là “không hi u” đ i v i h th ng t p

T 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

đo n ch 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 đ c

Nh v y, h th ng t p th ng ch đ m b o l u tr các thông tin đ c c u trúc y u,

và đ ph n c u trúc hoá còn l i cho các trình ng d ng i u đó th m chí r t t t trong các

tr 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

Trang 17

qua th vi n ch 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 ng cho m i phòng ban, c ng nh t ng s ti n

l 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 đ c h ng m c l ng cho

tr 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 đ c v 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 c chuy n này đã làm h th ng ti n g n đ n HQT CSDL

Tr 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 ng Và

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 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à

Trang 18

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 ng” Suy ra, HQT CSDL c n ph i h tr m t ngôn ng g n v i ngôn ng con ng i và cho phép

t o ra các truy v n m t cách đ n gi n, và ng 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

Trang 19

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 i dùng không c n bi t HQT CSDL s d ng h

th ng t p hay không, và n u s d ng, thì ng i dùng không c n bi t các t p đ c t ch c

nh th nào Thông th ng, HQT CSDL đ m b o h th ng chuyên bi t c a mình đ đ t tên các đ i t ng c a CSDL

I.2.1.2 Qu n tr các b nh đ m (buffers) trong RAM

Trang 20

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 duy trì

C ng t n t i m t l p HQT CSDL riêng h ng đ n vi c luôn t n t i c CSDL trong RAM H 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 ng này đang n m trong giai đo n nghiên c u

I.2.1.3 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 i dùng làm vi c đ ng th i

Tính ch t m i giao tác đ 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 i dùng c m giác nh h là ng i dùng duy nh t trong HQT CSDL Ch trong m t s

tr ng h p đ c bi t, ng 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

Trang 21

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 đ c

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 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 ng h p đó, đ duy trì tính tu n t c n ph i th c hi n rollback (làm ng c l i t t c các thay đ i trong CSDL đ c th c hi n b i) m t hay nhi u giao tác

ó là m t trong nh ng tr ng h p làm cho ng i dùng c a HQT CSDL nhi u ng i dù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 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, đó

d ng l i tr ng thái ch a hoàn thành Tr ng h p đ u có th xem là m t d ng đ c bi t c a

s c thi t b m m Khi x y ra tr ng h p th hai, c n ph i thanh lý (hu b ) t t c các h u

qu (nh ng thay đ i) đ 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 đ c s d ng đ khôi ph c CSDL c n ph i đ 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

Trang 22

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 i dùng và đ c b o qu n m t cách vô cùng c n

th n Th m chí thông th ng ng 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 đ c ghi nh t ký các c p đ khác nhau: đôi khi b n ghi nh t ký t 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 ng h p, chi n l c ghi nh t ký tr c (WAL – Write Ahead

Log) Chi n l c đó chính là b n ghi v s thay đ i c a b t k đ i t ng nào c a CSDL đ u

ph i đ c c đ nh trong b nh ngoài c a nh t ký, tr c khi đ i t ng đã đ c s 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 c th i

đ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 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 đ c c đ nh trong b

nh ngoài, và 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

ch a đ 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

Trang 23

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

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 ng đ c g i là

các ngôn ng CSDL Trong các HQT CSDL tr c đây duy trì vài ngôn ng chuyên bi t theo

ch c n ng c a chúng Th ng phân ra hai ngôn ng - ngôn ng đ nh ngh a l c đ (SDL – Schema Definition Language) CSDL và ngôn ng thao tác d 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 đ c s

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

Trang 24

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 đ c l u tr trong CSDL v i các thu c tính đ c đ t tên i v i ng 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

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

Trang 25

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 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

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

ti n ích Trong vài h th ng, các ph n đó đ c phân chia m t cách rõ ràng, và trong m t s

Trang 26

không rõ ràng, nh ng m t cách lu n lý, s phân chia nh th đ c áp d ng trong t t c các HQT CSDL

Nhân c a HQT CSDL ch u trách nhi m 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 và nh t ký T ng ng, có th phân chia các thành ph n c a nhân thành qu n tr viên (manager) d li u, qu n tr viên các b nh đ m,

qu n tr viên các giao tác và qu n tr viên nh t ký Ch c n ng c a các thành ph n đó là liên quan qua l i v i nhau, và đ đ m b o công vi c c a HQT CSDL đ c đúng đ n, t t c các thành ph n đó c n ph i t ng tác v i nhau theo các giao th c đã đ c tính toán và ki m tra

k l ng Nhân c a HQT CSDL s h u giao di n riêng c a mình Giao di n đó là không th truy c p tr c ti p đ i v i ng i dùng và đ c s d ng trong các ch ng trình đ c s n sinh

ra b i trình biên d ch SQL và trong các ti n ích c a CSDL Nhân c a HQT CSDL là ph n

l u trú (resident) (trong b nh ) ch y u c a HQT CSDL Khi s d ng ki n trúc

“khách-ch ”, nhân là ph n c u thành server c b n c a h th ng

Ch c n ng chính c a trình biên d ch (compiler) ngôn ng CSDL là biên d ch các l nh

c a ngôn ng CSDL thành các ch ng trình th c thi nào đó V n đ chính c a các HQT CSDL quan h là các ngôn ng c a các h th ng đó (th ng là SQL) không ph i là ngôn

ng th t c (non-procedure), ngh a là, trong l nh c a m t ngôn ng nh th m t thao tác trên CSDL đ c đ c t Nh ng đ c t đó không ph i là m t th t c, mà ch là miêu t trong

m t hình th c nào đó các đi u ki n hoàn thành m t thao tác mong mu n Vì th , trình biên

d ch ph i quy t đ nh, c n ph i th c thi l nh nh th nào tr c khi t o ra ch ng trình Nhi u

ph ng pháp ph c t p khác nhau đ c áp d ng đ t i u hoá các l nh K t qu quá trình biên d ch là m t trình th c thi, đ c bi u di n trong m t h th ng nào đó trong mã máy,

th ng là trong mã bên trong không ph thu c máy Vi c th c thi th c t m t l nh đ c

th c hi n b i phân h h tr th i gian th c thi Phân h này th c t là m t trình thông d ch (interpreter - M t công c phiên d ch ngôn ng l p trình b c cao dùng đ d ch và ch y

ch ng trình cùng m t lúc) c a ngôn ng bi u di n bên trong đó

Các ti n ích riêng l c a CSDL th ng là các th t c mà th c thi chúng s d ng ngôn

ng CSDL là quá “t n kém” Ví d , t i (load) và unload CSDL, thu th p các s th ng kê,

ki m tra t ng th tính toàn v n CSDL,… Các ti n ích đ c l p trình cùng v i vi c s d ng giao di n c a nhân HQT CSDL, và đôi khi tác đ ng đ n bên trong c a nhân

Trang 27

li u trong CSDL) và C p đ ngôn ng (ch ng h n c p đ tri n khai ngôn ng SQL) V i

c u trúc t ch c nh v y các h th ng còn ph i h tr trong b nh ngoài các c u trúc c

b n mà s di n gi i c th c a nó là m t ph n trong s ch c n ng c a phân h c p đ cao

h n

Trang 28

đ ng th i (ph bi n h n và th ng là phép n i nhi u quan h t n nhi u ngu n l c) Trong

đi u ki n đó trong b nh ngoài ph i h tr các c u trúc qu n lý t ng c ng nh ch m c

− Cu i cùng, đ th c hi n yêu c u l u tr m t cách an toàn CSDL v n ph i h tr

“đ th a l u tr ” d li u Th ng đ c tri n khai d i d ng nh t ký thay đ i d li u

Nh v y xu t hi n nh ng ch ng lo i đ i t ng trong b nh ngoài sau đây:

ng i dùng có th th y đ c

− Các c u trúc đi u khi n – ch m c, đ c t o ra m t cách ch đông theo sáng

ki n c a ng i dung, th ng là qu n tr viên hay c p đ cao nh t c a h th ng t nh ng d

ki n nâng cao hi u qu th c hi n các truy v n và th ng t đ ng đ c h tr b i các c p đ

th p h n c a h th ng

− Thông tin nh t ký − đ c h tr đ đ m b o an toàn trong l u tr d li u

− Các thông tin b tr khác đ đáp ng các yêu c u bên trong c p đ th p c a h

th ng (ví d thông tin v ph n b nh không đ c s d ng)

Ví d …

II.1.3 L u tr quan h

V nguyên t c t n t i hai cách l u tr v t lý các quan h Ph bi n nh t là l u tr quan h theo t ng b n ghi B n ghi là đ n v l u tr v t lý Rõ ràng cách này đ m b o ti p

c n nhanh chóng đ n t ng b n ghi Nh ng nh v y trong b nh ngoài nh ng giá tr chung

c a các b n ghi khác nhau c a m t quan h đ c l p l i, và nh v y, có th đòi h i nh ng trao đ i d th a v i b nh ngoài n u c n m t ph n b n ghi

Cách khác ít ph bi n h n là l u tr quan h theo c t, ngh a là đ n v l u tr là

c t c a quan h lo i tr nh ng giá tr l p l i Rõ ràng cách này v t ng th đòi h i ít b nh

Trang 29

H QU N TR C S D LI U – B n Nháp 30-08-08

ngoài h n b i vì nh ng giá tr l p l i không đ c l u tr V i m t trao đ i v i b nh ngoài trong tr ng h p chung có th đ c đ c thông tin c n thi t nhi u h n M t u th n a là

kh n ng dùng các giá tr c a c t đ t i u hoá quá trình th c hi n phép n i Nh ng trong

tr ng h p này đòi h i ho t đ ng ph tr t ng đ i l n đ thu đ c nguyên b n ghi ho c

trong su t th i t n t i c a b n ghi C u trúc tid suy ra t hình v trên

− Th ng m i b n ghi đ c l u tr toàn v n trong m t trang d li u T đó suy

ra đ dài l n nh t c a m t b n ghi đ c gi i h n b i kích c c a trang d li u T đó n y sinh câu h i: Làm th nào v i nh ng d li u “dài” không th ch a trong m t trang d li u?

riêng bi t ngoài CSDL và trong b n ghi thay vì giá tr gi li u chúng ta gi tên t p cùng v i

đ ng d n đ y đ m t vài HQT CSDL nh ng d li u dài nh v y đ c l u tr riêng bi t trên nh ng t p h p các trang d li u trong b nh ngoài C hai ph ng pháp trên đ u r t

h n ch trong làm vi c v i d li u dài, ví d , làm th nào đ thay đ i ho c xoá 1 byte gi a trong chu i d li u nhi u MB? Hi n t i ng i ta th ng s d ng ph ng pháp đ c gi i thi u cách đây ch a lâu, trong đó d li u dài đ c l u tr và t ch c d i d ng B-tree chu i các byte d li u

− Theo nguyên t c, rõ ràng trong m t trang d li u ch l u tr b n ghi c a m t quan h duy nh t Nh ng c ng t n t i nh ng ph ng án l u tr b n ghi c a các quan h

Trang 30

− Thay đ i s đ quan h đ c l u tr b ng cách thêm c t không b t bu c ph i t

ch c l i quan h v m t v t lý Ch c n thay đ i thông tin v nhãn miêu t (descriptor) c a quan h và n i r ng b n ghi ch khi thông tin đ c nh p vào c t m i

− B i vì quan h có th ch a nh ng giá tr không xác đ nh nên c n thi t ph i có

t n t i s h tr c p đ l u tr Th ng có th đ t đ c đi u đó b ng cách gi l i m t đ (scale) co gi n t ng ng trong m i b n ghi, và v nguyên t c b n ghi có th ch a nh ng giá tr không xác đ nh

− V n đ phân b b nh trong các trang d li u g n li n v i v n đ đ ng b và ghi l i nh t ký Ví d , trong quá trình th c hi n giao tác m t trang d li u b xoá s ch (tàn phá) s không đ c đ a vào tr ng thái “t do” cho đ n khi k t thúc giao tác, b i vì khi rollback giao tác nh ng b n ghi b xoá trong quá trình th c hi n giao tác s và khôi ph c trong quá trình rollback ph i đ c nh n chính xác nh ng ch danh mà nó đã có tr c khi b t

đ u th c hi n giao tác

− M t ph ng pháp nâng cao hi u qu HQT CSDL là liên cung (nhóm, clustering) nhi u quan h theo giá tr m t hay nhi u c t Nhóm chung nhi u quan h có l i trong t i u hoá phép n i các quan h khác nhau

− V i m c đích s d ng kh n ng th c hi n song song các trao đ i v i b nh ngoài th nh tho ng áp d ng s đ de-clustered l u tr các quan h : b n ghi có giá tr c t chung (c t đ c declustering) đ c l u tr trên nh ng thi t b đ a khác nhau, và trao đ i thông tin v i chúng có th th c hi n song song

Ý t ng ch đ o trong vi c l u tr quan h theo c t là l u tr chung t t c các giá

tr c a m t hay nhi u c t V i m i b n ghi quan h s l u tr b n ghi cùng c p đ đó, đ c

Trang 31

nhau L u tr quan h theo các c t theo ngh a nào đó là tr ng h p “gi i h n” c a s phân chia quan h theo chi u d c

Các thao tác đ c/ghi c a thi t b l u tr đ c th c hi n theo b i s c a đ n v l u

tr v t lý N u m i đ n v d li u (l u tr ) ph kín các đ n v l u tr c a b nh v t lý thì ít

t n kém không gian l u tr v t lý nh t N u các đ n v d li u n m n i ti p nhau trên thi t

b l u tr thì th i gian đ c và ghi d li u th p nh t nh ti t ki m th i gian di chuy n đ u

đ c Tuy nhiên, s không hi u qu n u kh i l ng d li u thay đ i nhanh chóng Các HQT CSDL hi n đ i đ u có nh ng chính sách ho ch đ nh không gian l u tr , và thông th ng, không gian l u tr “ho ch đ nh tr c” đ c t ng lên theo m t thông s đã đ c thi t đ t và

l n h n nhi u l n so v i đ n v d li u l u tr và l n h n nhi u l n kh i l ng d li u c n

l u tr t ng lên trong l n g n nh t

II.1.4 Các ch m c

Các ch m c không th không đ c t ch c trong các HQT CSDL b i vì ch c

n ng ch y u c a chúng là đ m b o truy c p tr c ti p đ n các b n ghi c a quan h m t cách

hi u qu b ng các khoá Thông th ng ch m c đ c t o ra cho m t quan h và khoá là giá

tr c a m t thu c tính (có th là khoá kép đ c c u thành t nhi u thu c tính) N u khoá c a quan h là khoá c a ch m c thì ch m c ph i có tính ch t “đ c nh t”, ngh a là không ch a các khoá l p l i Trên th c t hoàn c nh có v đ i l p: Khi khai báo khoá ng viên (chính) cho m t quan h m t ch m c đ c nh t đ c t o ra, và bi n pháp duy nh t đ khai báo m t khoá nào nào đó khác v i khoá ng viên (chính) là t o ra m t ch m c đ c nh t m t cách rõ ràng (explicit) i u đó liên quan đ n vi c đ ki m tra vi c l u gi tính ch t đ c nh t c a

m t khoá nào đó đòi h i ph i có h tr v m t ch m c

B i vì trong quá trình th c hi n nhi u toán t (“phép”) c a c p đ ngôn ng đòi

h i s p x p các quan h t ng ng v i giá tr c a nh ng thu c tính nào đó M t tính ch t

c a ch m c mang l i nhi u l i ích đó là đ m b o cho xem liên ti p các b n ghi c a quan h trong kho ng giá tr c a khoá t ng hay gi m các giá tr c a khoá

Cu i cùng, m t trong nh ng bi n pháo t i u hoá quá trình th c hi n phép n i (equal-join) các quan h , m t trong nh ng phép ph bi n nh t và “tr giá cao nh t – đòi h i nhi u ngu n”, đó là t ch c các “đa ch m c” cho nhi u quan h s h u các thu c tính

gi ng nhau B t c cái nào t các thu c tính (ho c t h p) đó đ u có th đ i di n làm khoá

c a đa ch m c T h p b n ghi t t c các quan h liên quan b i đa ch m c t ng quan v i

Trang 32

H QU N TR C S D LI U – B n Nháp 30-08-08

giá tr khoá, và giá tr các thu c tính tham gia trong quá trình t o ra đa ch m c c a các b n ghi đó trùng v i giá tr c a khoá

Ý t ng chung c a t t c các quá trình t ch c ch m c cho phép truy c p tr c

ti p b ng khoá và xem liên ti p theo th t t ng ho c gi m d n giá tr khoá là l u gi danh sách các giá tr khoá đã đ c s p x p và ràng bu c v i t ng giá tr khoá c a danh sách các

t đ nh danh các b n ghi Các ph ng pháp t ch c ch m c khác bi t nhau cách th c tìm khoá v i m t giá tr đ c cho

II.1.4.1 B-tree

Nh n th y r ng cách th c t ch c ch m c ph bi n nh t là dùng k thu t B-tree Trên quan đi m bi u di n lu n lý bên ngoài, B-tree là cây có tính cân b ng và có r t nhi u nhánh trong b nh ngoài Tính cân b ng đ c hi u r ng chi u dài đ ng đi t g c đ n b t

c lá nào c ng nh nhau Tính phân nhánh c a cây là m i nút c a cây ch (links) đ n s

l ng l n các nút h u du (nút con) Trên quan đi m t ch c v t lý đ c bi u di n nh m t

c u trúc “đa danh sách” (multi-lists) các trang b nh ngoài, ngh a là m i nút B-tree t ng

ng v i m t kh i (trang) b nh ngoài Các trang bên trong và các trang lá (nút lá) th ng

có c u trúc khác nhau

Tr ng h p đi n hình trang có c u trúc nh hình v d i đây:

Trong đi u ki n đó luôn luôn tho mãn các tính ch t:

− key(1) <= key(2) <= … <= key(n);

− trong trang c a cây Nm ch a các khoá k v i các giá tr key(m)<= k <= key(m+1)

Trang lá th ng có c u trúc:

Và th ng có các tính ch t:

− key(1) <= key(2) <= … <= key(t);

N1 key(1) N2 key(2) N3…Nn key(n) Nn+1 key(n+1)

Hình II.2 C u trúc đi n hình c a trang b nh

key(1) List(1) key(2) List(2)…key(t) List(t)

Hình II.3 C u trúc đi n hình c a trang (lá) b nh

Trang 33

H QU N TR C S D LI U – B n Nháp 30-08-08

đ c s p x p;

− các trang lá liên k t v i nhau d i d ng danh sách liên k t đ n ho c kép

Tìm ki m trong B-tree là đi qua t g c đ n lá trong s t ng ng giá tr khoá

đ c cho B i vì cây phân nhánh r t m nh và đ c cân b ng nên đ th c hi n vi c tìm ki m theo b t k giá tr nào c a khoá c n đúng m t s duy nh t và th ng r t nh các trao đ i v i

b nh ngoài Chính xác h n, trong các cây đã đ c cân b ng, n i mà chi u dài t t c các

đ ng t g c đ n lá nh nhau, n u trong trang bên trong ch a n khoá, thì trong tr ng h p

chi u sâu c a cây không l n và vi c tìm ki m di n ra r t nhanh

Khi m khuy t ch y u c a B-tree là t đ ng h tr tính ch t cân b ng Bây gi chúng ta hãy xem đi u gì s x y ra khi them và xoá m t b n ghi

Tr ng h p thêm b n ghi:

B-tree không có khoá v i giá tr đã cho thì s thu đ c s trang mà nó s ph i đ c ch a trong

đó, và t t nhiên đ a ch chính xác t ng ng trong trang

− t b n ghi vào ch Rõ ràng r ng t t c các thao tác đ u đ c th c hi n trong

b nh đ m RAM Trang lá mà b n ghi s đ c thêm vào s đ c đ c lên b nh và trong

đó s đ c th c hi n quá trình “thêm vào” (insert) Kích th c b nh đ m ph i l n h n kích th c trang b nh ngoài

− N u sau khi th c hi n vi c thêm b n ghi kích th c ph n b nh đ m đ c s

d ng không tr nên l n h n so v i kích th c trang b nh ngoài thì quá trình thêm b n ghi xem nh k t thúc Ph n b nh đ m có th s đ c đ y ra b nh ngoài ngay l p t c ho c

t m th i đ c gi l i trong RAM tu thu c vào chính sách s d ng và qu n lý b nh đ m

− N u x y ra tr ng h p tràn b đ m (kích th c ph n b nh đ m đ c s d ng

tr nên l n h n so v i kích th c trang b nh ngoài) thì quá trình tách trang s đ c th c

hi n Cho vi c này, m t trang b nh ngoài m i s đ c yêu c u, và ph n b nh đ m đang

đ c s d ng s đ c chia làm hai theo cách nào đó đ n a th hai c ng đ c b t đ u b i

m t khoá Và n a th hai đ c ghi và trang b nh v a đ c chia Còn trong trang c thì thông tin v ph n b nh còn tr ng đ c s a đ i t ng ng T t nhiên đ ng d n (links) theo danh sách các trang lá

Trang 34

đ c chia tách làm hai n a Và t t nhiên thông tin trong trang th h tr c c a nó c ng ph i

đ c s a đ i t ng ng K t qu là khoá và đ ng d n (đ a ch ) đ n trang m i đ c ghi vào trang th h tr c theo c p b c và quá trình này c tái di n

− Tr ng h p hi h u là tràn b nh trang g c c a B-tree Trong tr ng h p này

nó c ng đ c phân tách ra làm hai và m t trang g c m i s đ c hình thành Chi u sâu c a cây t ng lên m t đ n v

Tr ng h p xoá b n ghi:

− Tìm b n ghi theo khoá N u không tìm ra thì không có gì c n xoá c

− Trang lá ch a b n ghi c n xoá đ c đ c vào b nh đ m và quá trình xoá th c

s x y ra trong đó

− N u nh sau khi th c hi n b c xoá b n ghi kích th c ph n b nh đ m đ c

s d ng tr thành kích th c mà t ng c a nó v i kích th c ph n đã ch a thông tin trong trang bên ph i ho c trái trang hi n t i l n h n kích th c trang thì quá trình xoá b n ghi k t thúc

− N u ng c l i thì s di n ra quá trình h p nh t trang hi n t i v i trang bên trái

ho c bên ph i Ngh a là trong b nh đ m hình thành hình d ng m i c a trang, mà trong đó

đ c ch a n i dung c c a nó và n i dung trang bên trái ho c bên ph i t ng ng Trang lá

c không c n thi t đ c cho vào danh sách trang lá còn tr ng Danh sách các trang lá c ng

đ c thay đ i t ng ng

− lo i b kh n ng truy c p t g c đ n trang lá v a đ c gi i phóng c n ph i xoá khoá và đ a ch c a nó t trang bên trong th h tr c nó Trong tr ng h p đó có th

x y ra kh n ng c n ph i h p nh t trang bên trong th h tr c v i trang bên trái ho c bên

ph i c a nó Và quá trình này l i tái di n

− Tr ng h p cu i cùng là trang g c có th đ c xoá tr ng hoàn toàn sau khi h p

nh t hai trang h u du cu i cùng c a trang g c Trong tr ng h p đó trang g c đ c gi i phóng và chi u sâu c a cây gi m xu ng m t đ n v

Trang 35

H QU N TR C S D LI U – B n Nháp 30-08-08

Nh đã th y, trong quá trình thêm và xoá b n ghi tính ch t cân b ng c a B-tree

đ c b o toàn, còn dung l ng b nh ngoài đ c s d ng n u t ng lên thì c ng r t ti t

ki m

V n đ là ch trong quá trình s a đ i d li u có kh n ng ph i h p nh t và phân tách các trang r t nhi u l n đ t đ c hi u qu s d ng b nh ngoài b ng cách gi m thi u s l n h p nh t và chia tách các trang ng i ta s d ng m t s gi i pháp sau:

− phân tách trang tr c, có ngh a là không ch đ n khi trang b tràn chúng ta m i phân tách mà phân tách tr c khi m c đ l p đ y trang cao đ n m t m c nào đó;

− đ b t sang trang bên c nh, ngh a là đ m b o m c đ l p đ y các trang g n nhau là nh nhau;

− h p nh t 3 vào 2, có ngh a là t o ra 2 trang m i trên c s n i dung c a 3 trang

g n nhau

C n chú ý r ng trong các HQT CSDL quá trình t ch c “đa truy c p” t g c đ n các trang lá c a B-tree là th ng xuyên và có th g p và ph i gi i nhi u v n đ khác nhau Cách gi i quy t đ n gi n nh t là đ c chi m B-tree trong su t quá trình s a đ i d li u ch ng

h n, nh ng rõ ràng không hi u qu Có nh ng cách đi khác t t h n, nh ng không n m trong khuôn kh ch ng trình Có th tìm hi u thêm []

M t đi m n a là m t s sách ng i ta dùng ký hi u B*-tree ho c B+-tree

II.1.4.2 B m (Hashing)

M t cách ti p c n khác đ t ch c các ch m c ph bi n h n đó là s d ng k thu t b m ây là m t ch đ l n và đ c xem xét nghiên c u riêng l Chúng ta ch gi i

h n xem qua m t vài đ c đi m c n ph i chú ý Ý t ng chung c a các ph ng pháp (k thu t) b m là s d ng các hàm b m (hay cu n, hash-functions) cho các giá tr c a khoá đ cho ra nh ng giá tr nh h n B m các giá tr khoá ra và dùng nó đ truy c p đ n các b n ghi

Tr ng h p đ n gi n và c đi n nh t đó là s b m khoá đ c s d ng nh là đ a

ch trong m t b ng ch a các khoá và b n ghi Yêu c u c n b n c a hàm b m là s phân b

đ ng đ u các giá tr b m N u xu t hi n xung đ t, m t b m duy nh t cho nhi u giá tr khoá

ph ng pháp này là kích th c c a trang c đ nh không đ i N u trang b quá đ y và tràn thì

s xu t hi n nhi u chu i các s tràn đ y Và n u nh v y, u đi m chính c a b m là truy

Trang 36

H QU N TR C S D LI U – B n Nháp 30-08-08

c p đ n b n ghi th ng ch b ng m t b c truy c p đ n b ng s b m t đi M r ng trang đòi h i ph i làm l i hoàn toàn trên c s hàm b m m i v i giá tr b m kích th c l n h n Trong tr ng h p CSDL đi u này là hoàn toàn không đ c phép x y ra Vì v y các b ng tra

c u t m th i ch a các giá tr khoá và đ a ch b n ghi th ng đ c cho vào Còn b n thân

b n ghi đ c l u tr riêng l m t ch khác Vì v y khi x y ra s tràn đ y các b ng tra c u thì ch c n làm l i các b ng tra c u, và rõ ràng các chi phí ph thêm c ng nh h n nhi u

tránh tr ng h p ph i làm l i hoàn toàn các b ng tra c u t m th i trong quá trình t ch c tri n khai hashing ng i ta th ng ng d ng k thu t B-tree cùng c i vi c h p

nh t và phân tách các trang Hàm b m trong tr ng h p này th ng thay đ i m t cách linh

đ ng tu thu c vào chi u sâu c a cây

II.1.4.3 Thông tin nh t ký

C u trúc c a nh t ký th ng là khác bi t ph thu c vào t ng tr ng h p tri n khai c th Chúng ta ch xem qua nh ng tính ch t c b n chung nh t

Nh t ký th ng là nh ng t p ghi chu i các b n ghi v i kích th c thay đ i khác nhau, và th ng có th xem t trên xu ng d i ho c ng c l i Trao đ i d li u đ c di n

ra theo t ng ph n thông th ng ho c theo trang cùng v i s s d ng b đ m RAM Trong các h th ng đ c t ch c t t ch các b ph n c a HQT CSDL đ c bi t c u trúc và n i dung nh t ký đ ph c v cho vi c ghi nh t ký và khôi ph c d li u B i vì n i dung nh t ký

có tính ch t quy t đ nh trong quá trình khôi ph c DB sau khi x y ra s c nên quá trình t n

t i và thao tác v i các t p nh t ký đòi h i s tin c y đ c bi t Th ng ng i ta c g ng l u

tr cùng lúc hai phiên b n gi ng nhau c a nh t ký trên các ph ng ti n l u tr bên ngoài khác nhau

II.1.4.4 Thông tin ph c v

phân h (h th ng con) đi u khi n d li u ho t đ ng đúng đ n trong b nh ngoài c n ph i h tr nh ng thông tin đ c dùng ch m i phân h đó, và b khu t đ i v i phân h c p đ ngôn ng T p h p c u trúc c a thông tin ph thu c vào t ch c chung c a

h th ng, nh ng th ng có các thông tin sau:

− Các danh m c bên trong miêu t các tính ch t thu c tính v t lý c a các đ i

t ng CSDL, ví d các thông tin đ nh ngh a quan h nh s thu c tính c a quan h , kích

th c c a chúng, và có th type d li u, mô t ch m c…

Trang 37

H QU N TR C S D LI U – B n Nháp 30-08-08

− Các nhãn miêu t (descriptor), kích th c ph n b nh còn tr ng và đã b n c a các trang d li u c a quan h Nh ng thông tin này c n thi t đ xác đ nh ch tr ng khi c n thêm m t b n ghi m i vào quan h Trong các tr ng h p quan h không liên cung và liên cung (không nhóm và nhóm) công vi c tìm ki m ch tr ng đ c gi i quy t khác nhau Trong tr ng h p liên cung c n ph i s d ng thông tin b tr là ch m c liên cung Nh đã nói trên, v n đ gi i phóng m t trang trong đi u ki n đa truy c p là không đ n gi n (netivialna!)

− Liên k t các trang c a m t quan h N u trong m t t p trong b nh ngoài có

th l u gi các trang c a vài quan h (th ng là c g ng h ng t i nh v y) thì c n ph i

b ng cách nào đó liên k t các trang c a m t quan h v i nhau Bi n pháp thông th ng là s

d ng các đ ng d n (links) tr c ti p gi a các trang r t hay d n đ n khó kh n trong quá tr ình

đ ng b hoá các giao tác Ví d r t khó kh n đ gi i phóng trang và t o l p các trang m i

Vì v y c n ph i c g ng s d ng s liên k t gián ti p cùng v i vi c s d ng các ch m c

ph c v b tr Ch ng h n nh k thu t chung đ miêu t ph n b nh còn tr ng và liên k t các trang trong B-tree

Trang 38

H QU N TR C S D LI U – B n Nháp 30-08-08

Qu n lý và tu n t hoá các giao tác

Ch ng II.2 Giao tác và tính toàn v n CSDL

Trong ph n này chúng ta s xem xét các khái ni m n n t ng c a giao tác Khái ni m này không thu c v mô hình d li u quan h , b i vì giao tác có m t không ch trong các HQT CSDL quan h , mà còn trong các HQT CSDL khác, c ng nh trong các d ng h th ng thông tin khác

Trên quan đi m tác đ ng đ n HQT CSDL, giao tác là m t chu i các phép thao tác (thêm, xoá, s a đ i) v i d li u i v i ng i dùng, giao tác đ c th c hi n theo nguyên

t c “T T C HO C KHÔNG CÓ GÌ”, ngh a là ho c giao tác đ c th c hi n hoàn toàn và

đ a CSDL t m t “tr ng thái toàn v n” này sang m t “tr ng thái toàn v n” khác, ho c là

n u vì m t lý do nào đó m t trong các thao tác không đ c th c hi n hay là x y ra m t s phá hu công vi c bình th ng c a h th ng, thì CSDL s đ c cho quay v tr ng thái ban

đ u nh tr c khi b t đ u th c hi n giao tác (rollback giao tác) Trên quan đi m đó giao tác quan tr ng trong c các h th ng nhi u ng i dùng và c h th ng m t ng i dùng Trong các h th ng m t ng i dùng, giao tác là nh ng đ n v logic c a công vi c, mà sau khi th c

hi n xong CSDL v n trong tr ng thái toàn v n Giao tác c ng là nh ng đ n v ph c h i d

li u sau s c Khi ph c h i d li u, h th ng s thanh toán (th tiêu) nh ng d u tích giao tác không k p hoàn thành vì lý do s c ch ng trình hay là ph n c ng Hai tính ch t đó xác

đ nh tính nguyên t (atomicity) c a giao tác Ngoài ra, trong các h th ng nhi u ng i dùng

giao tác đ c dùng đ đ m b o cô l p công vi c c a t ng ng i dùng Nhi u ng i làm vi c trong dùng h th ng cùng m t lúc nh ng h v n c m th y nh là m t mình h làm vi c trong h th ng đó và không nh h ng đ n nhau

II.2.1 Ví d s phá hu tính toàn v n CSDL

minh ho kh n ng phá hu tính toàn v n CSDL chúng ta s xem xét các ví d sau

Ví d 1 Có m t h th ng l u tr thông tin v các b ph n và nh ng ng i làm vi c

trong đó Danh sách các b ph n đ c l u tr trong b ng CACBOPHAN(bp_id, bp_ten,

Trang 39

Tính đ n ràng bu c đó có th k t lu n r ng thêm m t nhân viên vào b ng không th

có chuy n ch th c hi n m t thao tác Khi thêm m t nhân viên m i c n ph i đ ng th i t ng giá tr c a tr ng bp_soluong

− B c 1 Thêm nhân viên vào b ng NHANVIEN: insert into nhanvien values(6,

‘Nguyen Van A’, 1)

− B c 2 T ng giá tr tr ng bp_soluong: update BOPHAN set bp_soluong = bp_soluong + 1 where bp_id = 1

N u sau khi hoàn thành hành đ ng đ u tiên và tr c khi hoàn thành hành đ ng th hai xay ra s c trong h th ng, thì th c t ch hoàn thành hành đ ng th nh t và CSDL s

có tr ng thái không toàn v n

II.2.2 Khái ni m giao tác

nh ngh a 1 Giao tác là m t chu i các toán t thao tác v i d li u th c hi n nh là

m t th th ng nh t (t t c ho c không có gì) và đ a CSDL t m t tr ng thái toàn v n này vào tr ng thái toàn v n khác

Giao tác có 4 tính ch t quan tr ng: (ACID)

Trang 40

− Tính cô l p (Isolation) Giao tác c a nh ng ng i dùng khác nhau không nh

h ng đ n nhau, ví d gi ng nh chúng đ c th c hi n theo m t th t nghiêm ng t

− Tính lâu b n (Durability) N u giao tác đ c hoàn thành thì k t qu th c hi n công

vi c c a nó ph i đ c l u tr trong CSDL, th m chí ngay sau đó x y ra s c h th ng

Thông th ng Giao tác t đ ng đ c b t đ u t th i đi m ng i dùng k t n i đ n HQT CSDL và ti p t c cho đ n khi x y ra m t trong các s ki n sau:

− ng i dùng g i đ n l nh COMMIT WORK (c đ nh giao tác);

− ng i dùng g i đ n l nh ROLLBACK WORK (rollback giao tác);

− ng i dùng ng t k t n i v i HQT CSDL;

− x y ra s c h th ng

Th ng thì l nh COMMIT WORK k t thúc giao tác hi n th i và t đ ng b t đ u

m t giao tác m i Trong khi đó đ m b o r ng k t qu th c hi n giao tác v a đ c k t thúc

đ c c đ nh, ngh a là đ c l u tr trong CSDL Trong m t s h th ng, ví d Visual FoxPro, đòi h i ph i g i l nh BEGIN TRANSACTION đ b t đ u m t giao tác m i Và

th ng trong các HQT CSDL, ch đ này có th đ c thi t đ t theo ý mu n c a ng i dùng

L nh ROLLBACK WORK d n đ n vi c toàn b nh ng thay đ i b i nh ng l nh trong giao tác hi n t i b t ch i, gi ng nh là ch a có l nh nào đ c th c hi n và ch a bao

gi có thay đ i nào x y ra Sau l nh ROLLBACK WORK m t giao tác s t đ ng đ c b t

đ u

Khi ng i dùng ng t k t n i v i HQT CSDL s t đ ng c đ nh (nh ng thay đ i

b i) giao tác hi n th i

Khi x y ra s c h th ng, nh ng quá trình ph c t p h n s di n ra Nói m t cách

ng n g n, khi h th ng đ c kh i đ ng l i thì s di n ra quá trình phân tích t t c các giao

COMMIT WORK nh ng k t qu th c hi n ch a đ c gi l i trong CSDL thì s đ c th c

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

HÌNH ẢNH LIÊN QUAN

Hình II.1 B ng B _PH N - Giáo trình  hệ quản trị cơ sở dữ liệu   nguyễn trần quốc vinh
nh II.1 B ng B _PH N (Trang 39)
Hình  II.5 V n đ  ph  thu c ch a c  đ nh - Giáo trình  hệ quản trị cơ sở dữ liệu   nguyễn trần quốc vinh
nh II.5 V n đ ph thu c ch a c đ nh (Trang 76)
Hình  II.7 Các ph n t   o - Giáo trình  hệ quản trị cơ sở dữ liệu   nguyễn trần quốc vinh
nh II.7 Các ph n t o (Trang 78)
Hình  II.8 Phân tích xung kh c th c ch t - Giáo trình  hệ quản trị cơ sở dữ liệu   nguyễn trần quốc vinh
nh II.8 Phân tích xung kh c th c ch t (Trang 79)
Hình II.4 Công vi c c a giao tác khi s  d ng giao th c phong to  hai pha - Giáo trình  hệ quản trị cơ sở dữ liệu   nguyễn trần quốc vinh
nh II.4 Công vi c c a giao tác khi s d ng giao th c phong to hai pha (Trang 83)
Hình  II.9 V n đ  m t k t qu  c p nh t - Giáo trình  hệ quản trị cơ sở dữ liệu   nguyễn trần quốc vinh
nh II.9 V n đ m t k t qu c p nh t (Trang 86)
Hình  II.12 Xung kh c trong phân tích - Các ph n t   o - Giáo trình  hệ quản trị cơ sở dữ liệu   nguyễn trần quốc vinh
nh II.12 Xung kh c trong phân tích - Các ph n t o (Trang 89)
Hình  II.17 C  ch  tách phiên b n d  li u - Giáo trình  hệ quản trị cơ sở dữ liệu   nguyễn trần quốc vinh
nh II.17 C ch tách phiên b n d li u (Trang 100)
Hình II.7 S  đ  chung x  lý truy v n - Giáo trình  hệ quản trị cơ sở dữ liệu   nguyễn trần quốc vinh
nh II.7 S đ chung x lý truy v n (Trang 114)
Hình  IV.1 Nguyên t c  ng d ng KNT - Giáo trình  hệ quản trị cơ sở dữ liệu   nguyễn trần quốc vinh
nh IV.1 Nguyên t c ng d ng KNT (Trang 129)
Hình  VI.1 Phân m nh ngang và phân m nh d c - Giáo trình  hệ quản trị cơ sở dữ liệu   nguyễn trần quốc vinh
nh VI.1 Phân m nh ngang và phân m nh d c (Trang 153)
Hình  VI.2 Giao th c c  đ nh hai pha - Two-Phases Commit Protocol - Giáo trình  hệ quản trị cơ sở dữ liệu   nguyễn trần quốc vinh
nh VI.2 Giao th c c đ nh hai pha - Two-Phases Commit Protocol (Trang 169)
Hình  VI.3 Các phiên b n c a giao th c 2PC - Giáo trình  hệ quản trị cơ sở dữ liệu   nguyễn trần quốc vinh
nh VI.3 Các phiên b n c a giao th c 2PC (Trang 170)
Hình  VI.4 Giao th c c  đ nh 3 pha - 3PC - Giáo trình  hệ quản trị cơ sở dữ liệu   nguyễn trần quốc vinh
nh VI.4 Giao th c c đ nh 3 pha - 3PC (Trang 176)
Hình  VIII.1 Các thành ph n chính c a ki n trúc SQL Server - Giáo trình  hệ quản trị cơ sở dữ liệu   nguyễn trần quốc vinh
nh VIII.1 Các thành ph n chính c a ki n trúc SQL Server (Trang 211)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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

w