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

Nhập môn Cơ sở dữ liệu DB

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 (9.25 MB, 210 trang )







 ! "

Mt cun sách ca cng ng dành cho cng ng

!#$%&' ()
Nhp môn H qun tr c s d liu DB2

1






























Xut bn ln u (tháng 11 nm 2007)

Tài liu này s dng cho IBM DB2 Express-C phiên bn 9.1 vi h iu hành Linux,
UNIX và Windows

Bn quyn thuc công ty IBM
Nhp môn H qun tr c s d liu DB2

2
Mc Lc
Thông cáo và Nhãn hiu hàng hóa...................................................................................7
Ai nên c cun sách này?...............................................................................................8
Cu trúc ca quyn sách này nh th nào? ......................................................................8
Mt quyn sách do cng ng làm và giành cho cng ng ...........................................8
Tác gi và nhng ngi óng góp ...................................................................................8
Li cm n .......................................................................................................................9
Li cm n bn ting Vit .............................................................................................10
Li nói u .....................................................................................................................12

Phn I – Tng quan và Cài t.......................................................................................13
Chng 1 - DB2 Express-C là gì?...................................................................................13
1.1 T do phát trin, trin khai và phân phi…không có gii hn!............................... 13
1.2 H tr k thut .........................................................................................................14
1.3 Các máy ch DB2 ....................................................................................................14
1.4 Máy khách DB2 .......................................................................................................15
1.5 T do phát trin phn mm ng dng......................................................................16
1.6 Phiên bn và n bn DB2 (version and edition) ......................................................16
1.7 Chuyn sang n bn DB2 khác ................................................................................17
1.8 Bo trì DB2 Express-C ............................................................................................17
1.9 Mt s phn mm min phí liên quan......................................................................17
1.9.1 DB2 Developer Workbench (công c phát trin) .............................................17
1.9.2 DB2 9 Embedded Application Server (máy ch nhúng) .................................18
1.9.3 DB2 9 Net Search Extender (m rng tìm kim trên mng) ............................18
1.9.4 B công c bt u Rails cho DB2 ...................................................................18
1.9.5 B công c bt u Web 2.0 dành cho DB2.....................................................18
Chng 2 – Các tính nng liên quan và các sn phm.................................................19
2.1 Các tính nng bao hàm trong ng ký s dng DB2 Express-C .............................20
2.1.1 Các chng trình sa li...................................................................................20
2.1.2 Tính s n sàng cao và khôi phc sau s c (HADR) .........................................20
2.1.3 Kh nng tái to d liu (di trú d liu)............................................................20
2.2 Các tính nng không có trong bn DB2 Express-C .................................................21
2.2.1 Phân vùng c s d liu....................................................................................21
2.2.2 B tp trung kt ni...........................................................................................21
2.2.3 B m rng không gian !a lý ..........................................................................22
2.2.4 B kim soát truy vn .......................................................................................22
2.3 Các sn ph"m có tr phí liên quan n DB2............................................................22
2.3.1 DB2 Connect.....................................................................................................22
2.3.2 WebSphere Federation Server ..........................................................................22
2.3.3 WebSphere Replication Server .........................................................................23

Chng 3 - Cài t DB2 ..................................................................................................24
3.1 Các iu kin trc khi cài #t ................................................................................24
3.2 Quyn cài #t h iu hành......................................................................................24
3.3 Cài #t theo hng d$n t%ng bc...........................................................................25
3.4 Cài #t hàng lot (Silent Install) ..............................................................................28
Bài tp nhanh #1: Cài #t DB2 Express-C và to ra c s d liu m$u ........................30
Chng 4 - Các công c DB2..........................................................................................32
4.1 Trung tâm iu khin (Control Center) ...................................................................33
4.2 Nhp lnh trc tip...................................................................................................36
4.3. Trình tr giúp SQL.................................................................................................38
4.4 Trình bày nút Show SQL .........................................................................................40
Nhp môn H qun tr c s d liu DB2

3
Bài tp nhanh #2 - To mt CSDL mi vi Trung tâm iu khin ..............................40
4.5 To k!ch bn.............................................................................................................42
4.5.1 Các k!ch bn SQL .............................................................................................42
4.5.2 Các k!ch bn vi h iu hành ..........................................................................44
Bài tp nhanh #3 – To mt k!ch bn cài #t cho c s d liu EXPRESS ..................45
4.6 Trung tâm tác v (Task Center) ...............................................................................48
4.6.1 C s d liu Tools Catalog .............................................................................48
4.7 Nht ký.....................................................................................................................49
4.8 Giám sát tình trng (health) .....................................................................................51
4.8.1 Trung tâm tình trng .........................................................................................51
Chng 5 - Môi trng ca DB2...................................................................................54

5.1 Cu hình DB2 ..........................................................................................................62
5.1.1 Các bin môi trng .........................................................................................63
5.1.2 Tp cu hình qun tr! c s d liu (dbm cfg)..................................................63
5.1.3 Tp cu hình c s d liu (db cfg) .................................................................. 65

5.1.4 &ng ký lý l!ch DB2 (profile)...........................................................................66
5.2 Máy ch qun tr! DB2..............................................................................................67
Phn II – Hc DB2: Qun tr C s d liu ..................................................................68

Chng 6 - Kin trúc ca DB2 .......................................................................................68

6.1 Mô hình x lý ca DB2 ...........................................................................................68
6.2 Mô hình b nh ca DB2.........................................................................................69
6.3 Mô hình lu tr ca DB2.........................................................................................70
6.3.1 Trang và phm vi ..............................................................................................70
6.3.2 Vùng nh m...................................................................................................70
6.3.3 Các không gian bng.........................................................................................73
Chng 7 – Kt ni máy khách DB2..............................................................................77

7.1 Tr giúp cu hình.....................................................................................................77
7.1.1 Nhng cài #t bt buc trên máy ch ...............................................................77
7.1.2 Nhng cài #t cn thit trên máy khách............................................................ 79
7.1.3 To lý l!ch cho máy khách và máy ch.............................................................82
Bài tp nhanh #4 – S dng Tr giúp thit lp cu hình ...............................................86
Chng 8 - Làm vic vi các i tng d liu ............................................................88

8.1 S  ........................................................................................................................88
8.2 Bng .........................................................................................................................88
8.2.1 Kiu d liu.......................................................................................................89
8.2.2 Ct khoá chính (Identity columns) ...................................................................91
8.2.3 Các  tng tun t (Sequence object) ........................................................... 92
8.2.4. Các bng danh sách h thng...........................................................................92
8.2.5. Khai báo các bng tm thi..............................................................................93
Bài tp nhanh #5 - Khi to mt bng mi.................................................................... 94
8.3 Các khung nhìn (Views) ..........................................................................................96

8.4 Các ch' mc (Index).................................................................................................96
8.4.1 Tr giúp thit k (Design Advisor)...................................................................97
8.5 Tính toàn v(n tham chiu.........................................................................................98
Chng 9 – Công c di chuyn d liu ........................................................................100

9.1 Công c EXPORT (xut) .......................................................................................101
9.2 Công c IMPORT (nhp).......................................................................................102
9.3. LOAD (np) ..........................................................................................................102
9.4 Công c db2move ..................................................................................................104
9.5 Công c db2look ....................................................................................................104
Nhp môn H qun tr c s d liu DB2

4
Bài tp nhanh #6 - Trích xut DDL t% c s d liu EXPRESS ................................. 107
Chng 10 – Bo mt c s d liu..............................................................................110

10.1 &!nh danh.............................................................................................................111
10.2 Quyn hn ............................................................................................................112
10.3 Quyn qun tr! c s d liu DBADM................................................................114
10.4 Nhóm PUBLIC ....................................................................................................115
10.5 Lnh GRANT và REVOKE.................................................................................115
10.6 Kim tra vic cp quyn và quyn .......................................................................115
10.7 Xem xét quyn trên nhóm....................................................................................117
Bài tp nhanh # 7: Cho phép và hy b) (phân quyn) quyn ngi s dng.............118
Chng 11 – Sao lu và khôi phc...............................................................................121

11.1 Nht ký c s d liu ........................................................................................... 121
11.2 Các kiu nht ký...................................................................................................122
11.3 Các kiu ghi nht ký.............................................................................................122
11.3.1 Ghi tun t quay vòng................................................................................... 122

11.3.2 Nht ký lu tr..............................................................................................123
11.4 Nht ký c s d liu t% Trung tâm iu khin....................................................123
11.5 Các tham s ca nht ký ..................................................................................... 124
11.6 Sao lu c s d liu............................................................................................125
Bài tp nhanh #8 - Lp l!ch sao lu .............................................................................127
11.7 Khôi phc c s d liu .......................................................................................129
11.7.1 Các kiu khôi phc d liu ...........................................................................129
11.7.2 Khôi phc c s d liu ................................................................................129
11.8 Các hot ng khác vi BACKUP và RESTORE ...............................................130
Chng 12 - Nhim v bo trì ......................................................................................131

12.1 REORG, RUNSTATS, REBIND ........................................................................131
12.1.1 Lnh REORG................................................................................................131
12.1.2 Lnh RUNSTATS......................................................................................... 132
12.1.3 BIND/REBIND.............................................................................................132
12.1.4 Các công vic duy trì t% Trung tâm iu khin............................................. 133
12.2 Các la chn bo trì .............................................................................................135
Bài tp nhanh #9 – Cu hình vic bo trì t ng ....................................................... 137
Chng 13 – Truy cp ng thi và khóa ...................................................................139

13.1 Các giao d!ch........................................................................................................139
13.2 Truy cp ng thi...............................................................................................140
13.3 Các vn  khi không kim tra truy cp ng thi ..............................................141
13.3.1 Mt d liu cp nht ..................................................................................... 141
13.3.2 &c vi không cam kt .................................................................................142
13.3.3 &c không l#p li..........................................................................................142
13.3.4 &c th%a........................................................................................................143
13.4 Các mc cô lp.....................................................................................................144
13.4.1 &c vi không cam kt .................................................................................144
13.4.2 *n !nh con tr) .............................................................................................144

13.4.3 &c +n !nh...................................................................................................145
13.4.4 &c l#p li.....................................................................................................145
13.4.5 So sánh các mc  cô lp d liu................................................................ 145
13.4.6 &#t mc cô lp ..............................................................................................146
13.5 Khóa leo thang .....................................................................................................147
13.6 Kim soát khóa ....................................................................................................148
13.7 Ch khóa.............................................................................................................. 148
Nhp môn H qun tr c s d liu DB2

5
13.8 Vn  khóa ph thuc và phát hin....................................................................149
13.9 Truy cp ng thi và thc tin khóa tt nht .....................................................150
PHN 3: HC DB2 – PHÁT TRIN NG DNG ...................................................152

Chng 14 – Các th tc SQL PL................................................................................153

14.1 DB2 Developer Workbench.................................................................................154
14.1.2 To mt th tc lu trong DWB ...................................................................154
14.2 Mt s khái nim v th tc SQL PL ..................................................................158
14.2.1 Cu trúc ca th tc ......................................................................................158
14.2.2 Nhng thuc tính tùy chn ca th tc.........................................................158
14.2.3 Các loi tham s............................................................................................159
14.2.4 Chú thích trong th tc SQL PL ...................................................................159
14.2.5 Câu lnh ghép ............................................................................................... 160
14.2.6 Khai báo bin ................................................................................................160
14.2.7 Câu lnh gán .................................................................................................160
14.3 Các con tr) (cursor) .............................................................................................161
14.4 &iu khin lung..................................................................................................161
14.5 Gi th tc............................................................................................................162
14.6 Li và x lý iu kin ..........................................................................................163

14.7 SQL ng.............................................................................................................165
Chng 15 – Hàm ni tuyn, hàm ngi dùng nh ngha, các hàm x ký các s! kin
b"y (Inline SQL PL, UDF, Triggers)............................................................................166

15.1 Hàm ni tuyn SQL .............................................................................................166
15.2 B$y s kin (Triggers) .........................................................................................167
15.2.1 Các loi b$y s kin......................................................................................167
Bài tp nhanh #10 - Khi to mt b$y b,ng Trung tâm iu khin.............................170
15.3 Hàm ngi dùng !nh ngh-a (UDF)....................................................................172
15.3.1 Hàm vô hng ..............................................................................................172
15.3.2 Hàm bng ......................................................................................................173
Bài tp nhanh #11 - Khi to UDF s dng DB2 Developer Wordbench .................. 175
Chng 16 – SQL/XML và XQuery ............................................................................176

16.1 S dng XML vi các c s d liu ....................................................................176
16.2 C s d liu XML ..............................................................................................177
16.2.1 c s d liu h tr XML ............................................................................. 177
16.2.2 C s d liu thun XML ............................................................................. 178
16.3 XML trong DB2...................................................................................................178
16.3.1 .u im ca công ngh pureXML trong DB2 9 ..........................................179
16.3.2 Khái nim c bn v XPath ..........................................................................181
16.3.3 &!nh ngh-a XQuery.......................................................................................184
16.3.4 Chèn các tài liu XML..................................................................................185
16.3.5 Truy vn d liu XML.................................................................................. 188
16.3.6 Ni (join) vi SQL/XML..............................................................................193
16.3.7 Ni (Join) vi XQuery .................................................................................. 194
16.3.8 Các lnh cp nht và xóa ..............................................................................194
16.3.9 Ch' mc XML ............................................................................................... 195
Bài tp nhanh #12 – SQL/XML và XQuery ................................................................197
Chng 17 – Phát trin vi Java, PHP và Ruby.........................................................198


17.1 Phát trin ng dng b,ng Java ............................................................................. 198
17.1.1 Trình iu khin JDBC kiu 2 (type 2).........................................................198
17.1.2 Trình iu khin JDBC kiu 4 ......................................................................199
17.2 Phát trin ng dng b,ng PHP............................................................................. 200
Nhp môn H qun tr c s d liu DB2

6
17.2.1 La chn kt ni DB2 cho PHP.................................................................... 200
17.2.2 /ng dng công ngh Zend Core dành cho IBM...........................................201
17.3 Phát trin ng dng Ruby trên nn Rails .............................................................203
17.3.1 B công c phát trin DB2 trên nn Rails ....................................................203
A.1 Thêm thông tin v mã các li................................................................................204
A.2 SQLCODE and SQLSTATE ................................................................................ 205
A.3 Nht ký khai báo qun tr! DB2 ............................................................................. 205
A.4 db2diag.log............................................................................................................206
A.5 Theo vt CLI .........................................................................................................206
A.6 Khc phc và sa li trong DB2 ...........................................................................206
Các trang web ..............................................................................................................207
Sách..............................................................................................................................208
Nhp môn H qun tr c s d liu DB2

7
V cun sách này
Thông cáo và Nhãn hiu hàng hóa

Copyright IBM Corporation 2007
All right Reserved.
IBM Canada
8200 Warden Avenue

Markham, ON
L6G 1C7
Canada

Không c sao chép hoc s dng di bt k dng thc nào hoc dch sang ngôn
ng khác toàn b hoc bt c phn nào ca tài liu này mà không c s cho phép
trc ca ngi gi bn quyn  trên.

IBM không m bo hay i din cho nhng ni dung c nêu ra  ây và không chu
trách nhim v tính thng mi hoc tính hp lý cho bt kì mc ích nào. IBM cho rng
mình không có trách nhim vi bt k li nào trong tài liu này. Thông tin trong tài liu
này có th thay i mà không cn báo trc. IBM giành quyn c thay i và không
bt buc phi thông báo cho bt c ai v s thay i này. IBM không cam kt nhng
thông tin trong tài liu này là mi nht.

Các thông tin trong tài liu này liên quan n sn ph m không phi ca IBM ã có c
qua các nhà cung cp sn ph m ó. IBM không kim tra các sn ph m ó và không
kh!ng nh v tính chính xác khi thc hin, tính tng thích hoc bt k thc mc nào
liên quan n sn ph m không phi ca IBM. Các câu h"i v kh nng ca các sn
ph m không phi ca IBM cn c gi cho các nhà cung cp sn ph m ó.

IBM, biu tng IBM, DB2, DB2 Connect, DB2 Universal Database, i5/OS, pureXML,
WebSphere, và z/OS là nhãn hiu hàng hóa ã ng ký ca t#p oàn IBM ti M$, các
nc khác, hoc c hai.

Java và tt c các nhãn hiu Java là nhãn hiu hàng hóa ng ký ca công ty Sun
Microsystem, Inc. ti M$, các nc khác, hoc c hai.

Microsoft và Windows là nh%n hiu hàng hóa ca t#p oàn Microsoft ti M$, các nc
khác, hoc c hai.


Linux là nhãn hiu ng ký ca Linus Torvalds ti M$, các nc khác, hoc c hai.

Tên ca công ty khác, sn ph m, hoc dch v có th là nhãn hiu ng ký ca h&.

Trích d%n các sn ph m và dch v ca IBM trong tài liu này không có ngh'a là IBM a
chúng n tt c các quc gia mà IBM có hot ng.

Nhp môn H qun tr c s d liu DB2

8
Ai nên c cun sách này?
Quyn sách này giành cho bt k ai ang làm vic hoc mun làm vic vi c s d
liu, nh qun tr h c s d liu (DBAs), ngi phát trin ng dng, nhà t vn, kin
trúc phn mm, giám c sn ph m, giáo viên và sinh viên.
Cu trúc ca quyn sách này nh th nào?
Phn I, Tng quan và Cài t, gii thích n bn DB2 Express-C là gì, gii thiu h& sn
ph m DB2 và các chc nng, giúp ( cài t và to mi c s d liu, và khám phá các
công c s)n có ca DB2.

Phn II, H&c DB2: Qun tr c s d liu, c thit k  bn làm quen vi môi trng,
kin trúc, kt ni t* xa, các i tng d liu, chuyn d liu (nh#p và xut d liu), an
toàn, sao lu và khôi phc, truy c#p +ng thi và khóa ca DB2, và các công vic bo trì
thông thng.

Phn III, H&c DB2: Phát trin ng dng, bao g+m th tc, hàm do ngi dùng nh
ngh'a, các b%y s kin, SQL/XML, XQuery, phát trin ng dng bng Java, PHP và
Ruby.

Ph lc có các thông tin cn thit v sa li.


Bài t#p  ây là bài t#p nhanh, có  hu ht các chng, tt c các tp cn thit  thc
hin bài t#p này có th tìm thy  tp nén expressc_book_quicklabs.zip i kèm theo
sách này, hoc s, tìm thy  trang web ca IBM DB2 Express-C, a ch-
www.ibm.com/db2/express

Tài liu ca cun sách c.ng c s dng làm bài ging ca chng trình “DB2 vi /i
h&c” (DB2 on Campus). Cun sách này c.ng giúp bn chu n b cho bài kim tra ca
chng trình “DB2 vi /i h&c”, chng trình y  ca nó bài h&c vi 16 gi trên lp.
Bn có th xem thêm thông tin v chng trình này  trang DB2 Express-C, a ch-
www.ibm.com/db2/express/students.html.
Mt quyn sách do cng ng làm và giành cho cng ng
/i ng. làm DB2 Express-C ã có sáng kin làm quyn sách này  cung cp mi0n phí
cho cng +ng. Vit và ch-nh lý mt cun sách là vic làm khó khn. Mc ích ca
chúng tôi là ni dung cun sách s, c duy trì và m rng bng vic tham gia ca
cng +ng DB2 Express-C. Nu bn mun óng góp ý kin, óng góp nhng ni dung
mi  nâng cao ni dung hin ti hoc dch cun sách này sang ngôn ng khác, làm
n gi k hoch thc hin v a ch- vi tiêu  “DB2 Express-C
book changes.”
Tác gi và nhng ngi óng góp
Nhng ngi sau ây ã cung cp ni dung và có các óng góp có ý ngh'a cho cun
sách này

Tên /n v Chc danh Tài liu óng góp Ngày
Raul F. Chong IBM G/ chng trình
“DB2 vi /i h&c”
Bn tho tt c các
chng
Tháng 5 –
2007

Ian Hakes IBM Cng +ng DB2
Express-C
Xem li và sa cha Tháng 5, 6
– 2007
Rav Ahuja IBM G/ sn ph m DB2 Xem li, c#p nh#t và
trình bày cun sách
Tháng 7-10
- 2007
Nhp môn H qun tr c s d liu DB2

9
Li cm n

Chúng tôi chân thành cm n các cá nhân sau ây vi s tr giúp
- Ted Wasserman, Clara Liu và Paul Yip  phòng thí nghim IBM Toronto, ngi
ã phát trin ng dng trong khuôn kh cun sách này
- Don Chamberlin và Cindy Saracco vi các bài báo ca h& v XQuery ng trên
developerWorks, và Matthía Nicola vi bài trình bày v pureXML.
- Kevin Czap và Grant Hutchingson vi các tài liu k$ thu#t v phát trin DB2
- Katherine Boyachok vi thit k bìa
- Susan Visser giúp ( xut bn cun sách này


Nhp môn H qun tr c s d liu DB2

10
Li cm n bn ting Vit

/ có c bn dch ting Vit này, rt nhiu các bn sinh viên ã tham gia dch và hiu
ính. Chúng ta t hào rng ây úng là mt quyn sách do cng +ng và vì cng +ng.

Vì trình  và thi gian hn ch, dù có th còn nhiu khim khuyt, nhng rt mong các
bn ón nh#n nó nhit tình và óng góp ý kin cho bn dch hoàn thin hn. Hy v&ng
rng các bn sinh viên s, tip tc chuyn n cng +ng nhng n ph m mi, vi
cht lng chc chn tt hn.

Danh sách sinh viên tham gia dch và hiu ính:

H và tên Trng
1 Bùi Thanh Sn /H Bách Khoa Hà Ni
2 Châu Uyên Minh H&c vin Công ngh Bu chính Vi0n thông TPHCM
3 /ng Chin Công Coltech Hà Ni
4 / Bá Lâm /H Bách khoa Hà Ni
5 / Tun Anh
6 / Tun Anh /H Khoa h&c T nhiên, Tp HCM
7 Hà Thúy Hng /H Khoa h&c T nhiên, Tp HCM
8 Hà Tun Trung /H Bách Khoa Hà Ni
9 Hà Tun Trung
10 Hoàng Minh Hin Trung Ði H&c Công Ngh, VNU Hà Ni
11 Hunh Hu Hip H&c Vin công ngh BCVT
12 Hunh Minh Tân /H Khoa H&c Tu Nhien, Tp HCM
13 Lê Anh /c /H Bách Khoa Hà Ni
14 Lê Bá Tr&ng /H Khoa h&c T nhiên, Tp HCM
15 Lê Hunh Công Tho /H Công ngh Thông tin, Tp HCM
16 Lê Nguy0n Thúy An /H Công ngh Thông tin, Tp HCM
17 Lê Thành Huy /H Cn Th
18 Ngô Phi Thành /i h&c Duy Tân, /à N)ng
19 Nguy0n Anh Khoa /H Khoa h&c T nhiên, Tp HCM
20 Nguy0n Chin Thng /HBK /à N)mg
21 Nguy0n Hi Phong /H Bách Khoa Hà Ni
22 Nguy0n Hoàng Minh Quc

23 Nguy0n Hùng Thông /H S phm K$ thu#t, Tp. HCM
24 Nguy0n Hu Th& /H Khoa h&c T nhiên, Tp HCM
25 Nguy0n Lng Sn /i h&c Duy Tân, /à N)ng
26 Nguy0n Minh Châu /H Khoa h&c T nhiên, Tp HCM
27 Nguy0n Minh Tun /H Bách khoa Hà Ni
28 Nguy0n Minh Tun
29 Nguy0n Ng&c Duy
30 Nguy0n Ng&c Trí /H S phm K$ thu#t, Tp. HCM
31 Nguy0n Thành Trung /H Bách khoa Hà Ni
32 Nguy0n Th Phúc /i h&c Duy Tân, /à N)ng
33 Nguy0n Th Diu Hng /H Khoa h&c Hu
34 Nguy0n Th H+ng Hà /H Bách Khoa Hà Ni
35 Nguy0n Th Kim Phng
/H Công ngh Thông tin, Tp HCM
36 V. Th Lan Chi
/H Công ngh Thông tin, Tp HCM
37 Nguy0n Trang
38 Nguy0n Trung Hiu /H Khoa h&c T nhiên, Tp HCM
39 Nguy0n Vn Nam /H Khoa h&c Hu
40 Nguy0n Vn Nam /H Khoa h&c Hu
Nhp môn H qun tr c s d liu DB2

11
41 Nguy0n Xuân Trng /H Khoa h&c T nhiên, Tp HCM
42 Phm Ng&c Huy /i h&c Công ngh-/i h&c quc gia Hà ni
43 Phm Th Minh Hin /H Bách khoa /à N)ng
44 Phm V$ Tun
45 Quách Tiêu Thu#n Trung tâm Công ngh Phn mm - /H Cn Th
46 Thái Quang Hòa /H Khoa h&c Hu
47 Thái Tuyn /i h&c Nông Lâm tp. HCM

48 Trn Anh Huy /i h&c Duy Tân, /à N)ng
49 Trn Th Thúy Trinh /H Bách Khoa /à N)ng
50 Trn Vn Tn /H Bách khoa Hà Ni
51 Trn Vn Tn
52 Trn Vng Trung
53 Tun Vit

Nhp môn H qun tr c s d liu DB2

12
Li nói u

Sáng to là s t phá ca các tin b công ngh. Ti IBM, sáng to ã tr thành ci
ngu+n ca s phát trin c s d liu. Là ngi i tiên phong trong k$ thu#t qun tr d
liu trong nhng nm 60 và 70, chúng tôi tip tc a ra nhng sáng to công ngh v
qun tr thông tin, biu hin bng hàng nghìn ng ký phát minh v qun tr d liu ca
nhng nhà công ngh ca IBM. Kt qu là, mt s các t chc ln nht hành tinh ngày
nay ã tin tng vào các sn ph m ca IBM nh DB2  v#n hành các gii pháp có nhu
cu cao nht, qun tr nhng d liu ti quan tr&ng ca h&.

Tuy nhiên DB2 không ch- dành cho các doanh nghip ln. Vi vic a ra bn DB2
Express-C, công ngh ni ting DB2 ã s)n sàng cho các doanh nghip v*a và nh" - và
không bt buc phi mt chi phí! Mc dù còn có các sn ph m mi0n phí hay các phn
mm ngu+n m khác, DB2 Express-C trao cho bn sc mnh duy nht vt trên tt c
các la ch&n cùng loi.

Có rt nhiu sáng to công ngh hin din trong DB2 Express-C. Mt s trong chúng
nhm vào kh nng tiên tin mi, mt s khác li hng ti gim thiu gánh nng qun
tr, mt s khác na li ci thin hiu nng, gim chi phí h tng. Chúng tôi s, không
trình bày chúng  ây, hy v&ng các bn s, b cun hút khi &c quyn sách này – chúng

tôi ch- xin mô t mt vn  hóc búa nht.

DB2 Express-C c xây dng trên nn công ngh “Viper”, nó là c s d liu lai u
tiên qun lý c d liu quan h và d liu XML di dng b m sinh. /iu này làm cho
DB2 tr nên rt lý tng cho các xu hng mi ca ng dng SOA và Web 2.0 trong ó
các lu+ng d liu XML là rt nhiu. Không ging vi h qun tr c s d liu ca các
hãng thng mi khác, DB2 Express-C không gii hn dung lng d liu lu tr trong
c s d liu hay s lng c s d liu bn có th to ra trong h thng. Và tt nhiên,
nu bn cn tr giúp h tr t* IBM, bn ch- cn nhn chut vào nút Help.

Cun sách này dùng  giúp nhng ngi mi bt u s dng DB2 Express-C, nó s,
giúp bn hiu các khái nim ca DB2 và cho phép bn phát trin k$ nng qun tr c.ng
nh phát trin ng dng DB2. K$ nng và s hiu bit nh#n c t* cun sách này có
liên quan rt nhiu n các bn DB2 tiên tin hn trên Linus, UNIX và Windows.

Mc dù DB2 Express-C không phi là sn ph m mã ngu+n m, IBM chúng tôi v%n rt tin
tng vào s h tr và c v. t* cng +ng. Tôi vui m*ng c thy cun sách này do
các thành viên ca cng +ng DB2 Express-C phát trin và phát hành mi0n phí cho
cng +ng. Tôi mong các bn c#p nh#t, làm giàu thêm kin thc ca cun sách vi hiu
bit, kinh nghim ca các bn, và giúp dch cun sách này sang các ngôn ng khác,
nh v#y nhng ngi khác s, có li t* s hiu bit ca bn.

Arvind Krishna
Phó ch tch, C s d liu
Ban Qun tr thông tin, Nhóm phn mm IBM

Nhp môn H qun tr c s d liu DB2

13
1

Phn I – Tng quan và Cài t
Chng 1 - DB2 Express-C là gì?

DB2 Express-C là mt sn ph m thuc dòng IBM DB2 – phn mm máy ch d liu
qun lý c d liu quan h và d liu XML. DB2 Express-C là n bn DB2 c dùng
mi0n phí, không hn ch và d0 s dng. Ch C trong DB2 Express-C là vit tt ca
Community (Cng +ng). Ngh'a là cng +ng nhng ngi s dng DB2 Express-C kt
hp li  h tr l%n nhau c trc tuyn và không trc tuyn. Cng +ng DB2 Express-C
bao g+m các cá nhân và các công ty thit k, phát trin, trin khai, hay s dng các gii
pháp c s d liu nh:

• Các nhà phát trin ng dng có nhu cu v mt phn mm c s d liu chu n
m  xây dng các ng dng c l#p, dng khách-ch, dng nn web hoc các
ng dng ln.
• ISVs – các nhà cung cp phn mm c l#p, các nhà cho thuê phn cng, c s
h tng hay nhng ngi cung cp gii pháp, mun óng gói mt máy ch d
liu vi y  tính nng nh là mt phn trong các gii pháp ca h&.
• Ngi c vn, qun tr d liu, và kin trúc s công ngh thông tin, nhng ngi
cn mt máy ch d liu mnh  t h&c t#p, phát trin k$ nng, ánh giá hoc
th nghim.
• Các công ty mi thành l#p, v*a và nh" cn mt máy ch d liu tin c#y cho công
vic và ng dng ca h&.
• Nhng ngi yêu thích c s d liu, say mê tìm hiu công ngh mun có mt
máy ch d liu d0 s dng  xây dng ng dng Web 2.0 hay các ng dng
th h sau.
• Sinh viên, giáo viên hay nhng h&c gi mun có mt máy ch d liu linh hot
 ging dy, h&c t#p, nghiên cu.

DB2 Express-C có y  các tính nng c bn nh các n bn DB2 thng mi trên
nn Linux, UNIX và Windows. DB2 Express-C có th chy trên c h thng 32-bit hoc

64-bit ca Linux hay Windows. Nó c ti u cho các h thng ti a 2 b x lý, b
nh 4GB, và không yêu cu bt k mt b nh chuyên dng hay các cài t h thng
nào khác. DB2 Express-C c.ng bao g+m pureXML, pureXML là mt công ngh c
trng ca DB2 dùng  lu tr và x lý các vn bn XML b m sinh.

1.1 T do phát trin, trin khai và phân phi…không có gii hn!
Các t tng ct lõi ca DB2 Express-C g+m:
• T do phát trin: Nu bn là ngi phát trin ng dng và cn mt c s d
liu cho ng dng ca mình, bn có th s dng DB2 Express-C.
Nhp môn H qun tr c s d liu DB2

14
• T do trin khai: Nu bn ang làm vic trong l'nh vc sn xut và cn mt c
s d liu  lu tr các thông tin quan tr&ng, bn có th dùng DB2 Express-C.
• T do phân phi: Nu bn ang phát trin mt ng dng hay mt công c cn
óng gói vi mt máy ch d liu, bn c.ng có th dùng DB2 Express-C. DB2
Express-C mi0n phí ngay c khi c óng gói vào trong ng dng ca bn,
c phân phi mi khi bn bán ng dng ca mình. Bn ch- cn ng ký vi
IBM  tái phân phi DB2 Express-C. Tt nhiên vic ng ký c.ng hoàn toàn
mi0n phí.
• Không gii hn: Trong khi các i th cnh tranh a ra các gii hn v kích
thc c s d liu, nhng DB2 Express-C thì không t gii hn nào c. C s
d liu ca bn có th c tip tc m rng mà không h vi phm iu khon
s dng. C.ng không có gii hn nào v s lng kt ni hay s ngi s dng
trên mi máy ch.
1.2 H tr k thut
Nu bn có bt k thc mc k$ thu#t nào v DB2 Express-C, bn có th ng câu h"i
ca bn lên di0n àn ca DB2 Express-C. Di0n àn này c iu hành bi mt i
DB2 Express-C, nhng chính cng +ng s, là nhng ngi gii áp trên c s t
nguyn. IBM c.ng cho phép ngi dùng mua bn quyn theo nm vi giá thp (còn

c g&i là Bn quyn 12 tháng hay Bn quyn thi hn c nh FTL (Fixed Term
License)). Vic mua này s, cho phép ngi dùng c h tr k$ thu#t 24×7 c.ng nh
c#p nh#t phn mm. Vi khon phí thp hng nm ($2,995 trên mt máy ch mt nm 
M$ - có th thay i  các nc khác) bn s, c hng các quyn li v h tr và
bo trì phn mm cho máy ch DB2 Express-C, bn c.ng có thêm hai tính nng na là:
tính s)n sàng phc h+i sau khi gp s c (HARD - High Availability Disaster Recovery)
và di trú d liu truy vn (SQL replication -  tái to li d liu vi các máy ch DB2
khác).
1.3 Các máy ch DB2
Tt c các n bn máy ch DB2 u có chung các thành phn lõi; Các n bn này c
óng gói thu#n tin  ngi s dng có th la ch&n các tính nng cn thit vi giá c
hp lý. Hình 1.1 th hin s khác nhau gia các n bn ca DB2.


Hình 1.1 - Các máy ch DB2

Nh trên hình 1.1, n bn DB2 Express-C c.ng ging nh n bn DB2 Express ch- thiu
i mt s thành phn. DB2 Express-C là hoàn toàn mi0n phí. C.ng nh ã nói  trên,
ngi dùng luôn c s)n sàng h tr k$ thu#t t* di0n àn, hoc có th nh#n s h tr
chính thc 24x7 ca IBM nu tr phí 12 tháng.
Nhp môn H qun tr c s d liu DB2

15

Hình 1.1 c.ng cho thy kh nng nâng cp t* DB2 Express-C lên bt kì n bn máy ch
DB2 nào khác, vì tt c các máy ch DB2 u có chung thành phn lõi. /iu này có
ngh'a là tt c các ng dng c phát trin trên mt n bn v%n s, hot ng trên các
n bn khác mà không cn phi ch-nh sa. Và bt kì k$ nng nào bn h&c c t* mt
n bn u áp dng c cho các n bn khác.
1.4 Máy khách DB2

Mt máy khách DB2 bao g+m các chc nng cn thit  kt ni vi máy ch DB2. Tuy
nhiên, không phi lúc nào c.ng cn cài t mt máy khách DB2. Ví d, mt ng dng
JDBC (Java DataBase Connectivity) kiu 4 có th ni th!ng ti máy ch DB2, ch- cn có
trình iu khin thích hp. Máy khách DB2 g+m nhng loi sau:
• Máy khách DB2: y  nht, bao g+m các công c + h&a, các trình iu khin.
• Máy khách DB2 runtime client: Có các chc nng c bn  kt ni, c.ng bao
g+m các trình iu khin.
• Máy khách DB2 runtime kt hp Mô-un cho Windows: c s dng ch yu
trên máy khách DB2 runtime nh là mt phn cài t cho các ng dng ca
Windows.

Hình 1.2 cho ta thy các máy khách khác nhau và các trình iu khin s)n có.



Hình 1.2 - Các máy khách DB2 và các trình iu khin

Trên phn bên trái ca hình 1.2, tt c các máy khách DB2 và trình iu khin c th
hin. Mc dù tt c các máy khách DB2 u bao g+m trình iu khin cn thit, trong
DB2 9 chúng tôi v%n cung cp nhng trình iu khin riêng bit. Các máy khách DB2 và
các trình iu khin u mi0n phí và có th c ti v t* trang web DB2 Express-C.
Các máy khách và các trình iu khin có th c s dng  kt ni n máy ch
DB2 trên nn Linux, Unix, hoc Windows. / kt ni n DB2 trên máy ch z/OS® hoc
DB2 trên máy ch i5/OS®, bn cn phi thông qua máy ch kt ni DB2 (DB2 Connect
nm  gia hình 2). Chúng ta s, tho lu#n v phn mm DB2 Connect trong Chng 2.
Nhp môn H qun tr c s d liu DB2

16
1.5 T do phát trin phn mm ng dng
DB2 to ra mt môi trng phát trin ng dng da trên các chu n và trong sut i vi

h& sn ph m DB2. Vic s dng SQL chu n trong các dòng sn ph m DB2 s, cung cp
mt t#p các giao din l#p trình ng dng (API) thông dng cho vic truy nh#p c s d
liu.

Thêm vào ó, mi sn ph m DB2 cung cp các b tin-dch (pre-compiler) cho phép nhà
phát trin nhúng các câu lnh SQL t'nh và ng trong các chng trình ng dng kh
chuyn. DB2 còn có mt s)n công c qun lý .NET có th tích hp vi các công c
Microsoft® Visual Studio.

Các ngôn ng và các chu n có th c s dng vi DB2 là:
• Ruby trên nn Rails
• C/C++(ODBC và SQL nhúng)
• JDBC và SQLJ
• COBOL
• Borland
• Python
• PHP
• Perl
• Ngôn ng .NET
• OLE-DB
• ADO
• Dch v Web (Web Service)
• SQL
• Microsoft Office: Excel, Access, Word
1.6 Phiên bn và n bn DB2 (version and edition)
Nu bn mi làm quen vi DB2, bn có th b bi ri mt chút v s khác bit gia các
phiên bn DB2 (version) và các n bn DB2 (edition).

Vài nm mt ln, IBM công b mt phiên bn mi ca DB2. Mt phiên bn bao g+m các
tính nng mi và a nhng ci tin áng k vào sn ph m. Hin ti, phiên bn DB2 8

và DB2 9 c h tr chính thc bi IBM. Mt phiên bn c.ng có th có mt vài ln
phát hành, có th bao g+m mt vài chc nng mi nhng thông thng không  rõ
ràng  nói rng ây là mt phiên bn mi. Ví d 8.1 và 8.2 là các ln phát hành vi
phiên bn DB2 8. Trong thi gian v*a qua, IBM thng a ra mt ln phát hành mi
ca DB2 mi nm mt ln, tuy nhiên nhng phiên bn mi thng c a ra cách
nhau t* 2-3 nm. Ln phát hành mi nht n thi im hin ti, V9.1 (trc ây c
g&i là DB2 “Viper”) tr thành phiên bn chính thc vào mùa hè nm 2006. Khi cun sách
này c vit (tháng 9/2007), ln phát hành tip theo (có tên là DB2 “Viper 2”) ã có
phiên bn beta. Mi ln phát hành c.ng có th cha nhiu mc ch-nh sa, thng cha
nhng phn vá li tc là tng ng vi các chng trình sa li (fixpack), và rt ít khi
cha nhng tính nng mi. Ti thi im này, phiên bn, phát hành, ch-nh sa (Version-
Release-Modification/ V-R-M) ca DB2 là 9.1.2 tng ng vi phiên bn 9.1 cùng vi
b chng trình sa li 2.

Trên mt ni dung khác, các n bn là nhng la ch&n hoc nhóm các gói tính nng
trong mi phiên bn. Nh ã  c#p, mt n bn là mt gói nhng chc nng khác nhau
vi giá thành và bn quyn xác nh. DB2 phiên bn 9 (c.ng c bit ti vi tên DB2
9) có nhiu n bn; ví d: DB2 express-C 9, DB2 Express 9, DB2 Workgroup 9, và DB2
Enterprise 9 (xem hình 1.1)

Nhp môn H qun tr c s d liu DB2

17
1.7 Chuyn sang n bn DB2 khác
Khi c s d liu ca bn cn m rng, có th bn s, cn nâng cp n bn DB2 h tr
cu hình phn cng ln hn. Nu trng hp này xy ra, rt d0 dàng  nâng cp lên
mt n bn khác ca DB2:
• Nu bn nâng cp lên mt n bn DB2 khác trên cùng mt máy, cài t n bn
DB2 mi è lên DB2 Express-C, cùng vi bn quyn tng ng. C s d liu
ca bn s, không b xóa (nhng chúng ta v%n nên sao lu c s d liu trc

khi nâng cp).
• Nu bn nâng cp DB2 trên mt máy mi, ln hn và s dng chung mt h
iu hành vi máy c., hãy cài t n bn DB2 mi trên máy mi, sao lu d liu
trên máy c. và khôi phc li nó trên máy mi. Bn c.ng có th lu các cu hình
trên máy c. (dbm cfg) và cài t cu hình này trên máy mi. Các lnh sao lu và
khôi phc s, c nói rõ hn trong Chng 11 Sao lu và Khôi phc, dbm cfg
s, c nói rõ hn trong Chng 5, Môi trng DB2.
• Trong bt kì trng hp nào, ng dng ca bn u không phi sa cha  s
dng DB2.
1.8 Bo trì DB2 Express-C
Nh ã nói trc ây, có hai la ch&n h tr cho DB2 Express –C:

1. Mua mt bn quyn 12 tháng. /iu này s, cung cp cho bn h tr 24x7 t* b
ph#n h tr k' thu#t ca IBM, +ng thi còn cho bn kh nng cài t các c#p nh#t
ca DB2 (còn c g&i là các chng trình sa li fixpack).

2. S dng di0n àn cng +ng DB2 Express-C trc tuyn. Cách này hoàn toàn
mi0n phí, tuy nhiên bn s, không có c s h tr chính thc nào t* IBM. /+ng
thi, vi cách này, IBM không cam kt cung cp nhng chc nng mi và nhng
bn vá li nh thi gian ã nh. /nh ngh'a v mt chng trình sa li, c nói
n trong Chng 2, c.ng s, không có ý ngh'a  ây, thay vì v#y mt bn cài t
mi ca DB2 Express-C s, c c.ng cp trên trang web cho các ngi dùng ti
v. Khi IBM a ra bt kì s ch-nh sa mi nào trong DB2, bn có th tìm thy bn
cài t mi này và thay th cho bn DB2 c. bn ang dùng.
1.9 Mt s phn mm min phí liên quan
Tt c các phn mm có th c ti t* trang ti phn mm ca DB2 Express-C
(www.ibm.com/db2/express/download.html) u là phn mm mi0n phí. Bên cnh
nhng bn DB2 Express-C (cho Linux và Windows, c kin trúc 32 và 64 bit), còn có
nhng phn mm hu dng có th c ti và s dng mi0n phí nh:
• DB2 Developer Workbench

• DB2 9 Embedded Application Server
• DB2 9 Net Search Extender

Ngoài ra bn có th ti v b công c khi u da trên DB2 Express-C t* trang web
IBM Alphaworks (www.alphaworks.ibm.com/datamgmt). B công c này bao g+m:
• Starter toolkit for DB2 on Rails
• Web 2.0 Starter Toolkits for DB2

1.9.1 DB2 Developer Workbench (công c phát trin)
DB2 Developer Workbench (DBW) là mt môi trng phát trin tích hp mnh (IDE) cho
phép bn to ra, sa cha, g( ri, trin khai và kim tra các th tc c lu tr SQL
PL và Java, c.ng nh các hàm do ngi dùng nh ngh'a (User defined function UDFs),
các ng dng SQLJ, khi to và thc thi các câu lnh SQL và các truy vn XML. Công
Nhp môn H qun tr c s d liu DB2

18
c này da trên Eclipse IDE và thay th IBM Development Center ca các phiên bn
DB2 trc ây. Chúng ta s, tho lu#n DBW trong chng 14, Các th tc lu tr SQL
PL.

1.9.2 DB2 9 Embedded Application Server (máy ch nhúng)
Embedded Application Server cho phép bn chy các ng dng Web c h tr vi
DB2 phiên bn 9.1 mà không yêu cu bn phi mua thêm mt máy ch ng dng riêng
bit. Các ng dng Web c h tr vi DB2 phiên bn 9.1 bao g+m:
• Các công c Web DB2 dành cho ngi qun tr c s d liu nn web.
• DB2WebServer, mt ng dng t ng trin khai các dch v web .NET t*
Microsoft Visual Studio n DB2 Embedded Application Server..

1.9.3 DB2 9 Net Search Extender (m rng tìm kim trên mng)
Vi DB2 9 Net Search Extender bn có th thc thi nhanh và chi tit các tìm kim ni

dung vn bn (full-text), bao g+m bt c tài liu XML nào c lu tr b m sinh trong
DB 9.1
1.9.4 B công c bt u Rails cho DB2
B công c bt u Rail cho DB2 là mt t#p các sn ph m và công ngh c óng gói
tin li cho phép to ra nhanh chóng mt môi trng  xây dng các ng dng Web
DB2 s dng công ngh Ruby trên nn Rails. Tt c các phn mm c yêu cu bao
g+m: DB2 Express-C, trình iu khin DB2 cho Ruby, b thích nghi (adapter) DB2 vi
Rails, bên cnh ó là các hng d%n, ví d, và nhng tài liu h&c t#p khác. Chúng ta s,
tho lu#n Ruby trên nn Rails  Chng 17, S phát trin trong Java, PHP và Ruby.
1.9.5 B công c bt u Web 2.0 dành cho DB2
B công c bt u Web 2.0 dành cho DB2 là mt cách d0 dàng  bt u vi DB2,
PHP và Dojo. Nó giúp cho bn trin khai các yêu cu phn mm, cung cp cho bn các
bài hng d%n và các bn ng dng trình di0n (demo). Hai trong s các ng dng trình
di0n là Atom Feed Control Panel, nó khi to các Atom ly t* các bng DB2, và Web
Services Control Panel to ra các bao ph dch v Web REST xung quanh các bng
DB2 ca bn. C hai ng dng u da trên Dojo h tr y  kh nng ni b#t ca
Ajax và kh nng m rng.

















Nhp môn H qun tr c s d liu DB2

19
2
Chng 2 – Các tính n ng liên quan và các sn ph!m

Chng này mô t các tính nng ca DB2 i kèm trong vic mua giy phép s dng 12
tháng ca DB2 Express-C. Ngoài ra còn mt s tính nng khác không có trong DB2
Express-C, nhng là mt phn ca nhng n bn DB2 khác, trong trng hp có tr
thêm phí.

Nhng tính nng có trong DB2 Express-C có bn quyn 12 tháng
• B chng trình sa li (Fixpacks)
• Tính s)n sàng cao và Khôi phc sau s c (High Availability and Disaster
Recovery- HADR )
• Di trú d liu (SQL hp nht)

Nhng tính nng không có mt trong DB2 Express-C nhng có mt trong các n bn
DB2 khác là:

Các tính nng ca n bn DB2 Enterpirse có phí:
• Tính nng phân tán c s d liu (DPF)
• Tính nng ti u hóa lu tr d liu (k c nén)
• /iu khin truy nh#p mc cao (an toàn mc cao và c chia nh" tt)
• Ti u s thc thi (kim soát các truy vn, chuyên nghip trong thc thi)
• Qun lý d liu o c
• S liên kt hp nht d liu DB2


DB2 Enterprise c.ng bao g+m nhng tính nng c thêm vào mi0n phí nh
• Phân tán bng (phm vi)
• Các bng truy vn c c th hóa (Materializated Query Tables MQT)
• K$ thu#t bó a chiu (Multi-dimensional Clustering - MDC)
• Tính s)n sàng cao và kh nng phc h+i sau s c (HADR)
• B t#p trung kt ni (Connection Concenstrator)

Các tính nng ca n bn DB2 Workgroup và Express có phí
• Tính s)n sàng cao
• Qun lý công vic (B t#p trung kt ni, b kim soát truy vn)
• Ti u hiu nng (MQT, MDC, truy vn song song)
• S liên kt hp nht d liu DB2

Các sn ph m có phí có liên quan ti DB2:
• DB2 Connect
• WebSphere® Federation Server - Máy ch nhóm WebSphere
• WebSphere Replication Server - Máy ch di trú WebSphere

Nhp môn H qun tr c s d liu DB2

20
2.1 Các tính n ng bao hàm trong  ng ký s" dng DB2 Express-C
Phn này im qua các chng trình sa li DB2, s di trú HADR và SQL.
2.1.1 Các chng trình s"a li
Mt chng trình sa li DB2 là mt t#p các sa li c áp dng cho mt sn ph m
DB2 ã c cài t, nhm mc tiêu sa các vn  khác nhau c báo cáo sau khi
sn ph m c phát hành. Vi mt ng ký s dng có bn quyn, các chng trình
sa li có th c ti xung và cài t mi0n phí. Chúng thng c a ra ba tháng
mt ln.


/ ti chng trình sa li mi nht, xem trang h tr k$ thu#t ca DB2 ti a ch-

2.1.2 Tính s#n sàng cao và khôi phc sau s c (HADR)
Tính s)n sàng cao và khôi phc sau s c là  tin c#y ca d liu, nó cung cp mt
gii pháp s)n sàng và khôi phc sau s c cho s suy sp toàn phn hoc mt phn.
Mt môi trng HADR thông thng bao g+m hai máy ch d liu, máy ch chính và
ph (có th c t ti nhng ni khác nhau). Máy ch chính là ni c s d liu gc
c lu tr và truy c#p bi các trình ng dng ti máy khách. Trong khi các giao dch
c tin hành trên c s d liu chính, các bn ghi nh#t ký d liu c chuyn t
ng n máy ch th cp (máy ch ph) thông qua h thng mng. Máy ch th cp
có mt bn sao ca c s d liu chính, thng c to ra bng cách sao lu c s
d liu chính và khôi phc nó ti h thng th cp. Khi các bn ghi nh#t ký d liu c
nh#n v, chúng c thc thi li và áp dng cho c s d liu th hai.Thông qua vic
thc hin li các bn ghi nh#t ký này, c s d liu th hai c +ng b hóa vi c s
d liu chính và có th thay th c s d liu chính nu có s c xy ra.

Mt gii pháp HADR h tr DB2 y  cung cp cho bn:
1 Kh nng phc h+i cc nhanh, trong sut tuyt i vi khách hàng và các ng
dng ti máy trm
1 Giao dch y  t*ng thành phn nh"  tránh mt mát d liu
1 Kh nng nng cp h thng hoc nâng cp ng dng mà không gây ngt quãng
i vi dch v
1 Kh nng thay th h thng t* xa, cung cp kh! nng phc h+i y  cho a
im b s c
1 Qun tr d0 dàng vi các công c + h&a ca DB2
1 Tt c các kh nng trên có nh hng không áng k vi hiu nng tng th
ca h thng
2.1.3 Kh n ng tái to d liu (di trú d liu)
Tính nng này cho phép tái to d liu gia máy ch ngu+n ni các thay i d liu

c ghi li, và mt máy ch ích ni các thay i d liu c áp dng. Hình 2.1 cung
cp tng quan v cách tái to d liu.
Nhp môn H qun tr c s d liu DB2

21

Hình 2.1 – Khôi phc SQL

Trong hình 2.1 có hai máy ch, mt máy ch ngu+n và mt máy ch ích. Trên máy ch
ngu+n, mt chng trình “chp” ghi nh#n li các thay i i vi c s d liu. Trên
máy ch ích, mt chng trình “áp dng” thc hin các thay i cho c s d liu nh
th#t. Kh nng tái to d liu hu dng cho rt nhiu mc ích cn n d liu c tái
l#p, bao g+m gim ti dung lng truyn, np d liu vào các kho cha d liu hay các
“ch” d liu (data marts), và kim tra lch s thay i. S dng tính nng tái to d liu,
bn có th tái to d liu gia DB2 Express-C và các máy ch DB2 khác, bao g+m c
nhng máy s dng các h thng khác nh Linux, UNIX, z/OS và i5/OS.
2.2 Các tính n ng không có trong bn DB2 Express-C
Phn này miêu t mt vài tính nng có trong các bn DB2 khác mà không trong DB2
Express-C
2.2.1 Phân vùng c s d liu
Tính nng phân vùng c s d liu (DPF) ch- có trong n bn DB2 Enterprise vi mt
mc phí ng ký b sung. Nó cho phép các c s d liu có th c tri ra trên nhiu
phân vùng khác nhau, t trên nhiu máy tính. DPF da trên kin trúc không chia s2
(share-nothing architecture). Mi máy tính, do c thêm vào nhóm phân vùng, mang
theo sc mnh x lý d liu vi CPU và b nh ca chúng. DPF c bit hu dng
trong môi trng máy ch c s d liu ln nh các kho cha d liu ni mà các truy
vn ca h tr giúp quyt nh (DSS) c thc thi.
2.2.2 B tp trung kt ni
B t#p trung kt ni là tính nng cho phép h tr mt lng ln ngi dùng kt ni ti
mt thi im. Trc ây, mi kt ni c s d liu cn n mt tác t (agent) c s d

liu. B t#p trung kt ni gii thiu khái nim tác t lô-gic, cho phép mt tác t x lý
nhiu kt ni. Các tác t c bàn n k$ hn trong chng 6, kin trúc DB2.
Nhp môn H qun tr c s d liu DB2

22
2.2.3 B m rng không gian $a lý
B m rng không gian a lý ca DB2 t+n ti nh mt la ch&n có phí cho n bn DB2
Enterprise. Phn m rng này làm vic phát trin cho các ng dng chính ph in t
hoc các ng dng có qui trình nghip v yêu cu phân tích các v trí a lý c d0
dàng hn. B m rng không gian a lý ca DB2 có th cu thành mt th gii a lý o
vi bt k t3 l nào. Hu ht các thông tin v trí c thu th#p s dng các h thng toàn
cu, nh h thng nh v v tinh toàn cu (GPS), và có th c th hin trong h kinh
/v' . Các d liu kinh doanh, nh a ch-, có th c chuyn i thành t&a  kinh
tuyn/v' tuyn nh b m rng không gian ca DB2 (DB2 Spatial Extender) và các
chng trình ng dng doanh nghip làm vic tt hn khi chúng lu tr d liu theo
nh dng này,  phép chiu tng ng lên bn + c thng nht  các ng dng
khác nhau: lp trình bày,  hin th và in các bn +.
2.2.4 B kim soát truy vn
B kim soát truy vn ca DB2 là mt h thng qun lý truy vn mnh, có th iu khin
lu+ng các truy vn ti c s d liu DB2 ca bn. Nó cho phép bn iu ch-nh li khi
lng công vic ca truy vn d liu, do ó các truy vn nh" và có mc u tiên cao có
th chy nhanh chóng, m bo các tài nguyên h thng c s dng hiu qu.
2.3 Các sn ph!m có tr phí liên quan n DB2.
2.3.1 DB2 Connect
DB2 Connect là mt phn mm da trên vic tr phí cho phép mt máy khách DB2
Linux, UNIX hay Windows kt ni n mt máy ch DB2 z/OS hay DB2 i5/OS nh trong
hình 2.2. DB2 Connect không c yêu cu trong quá trình liên kt theo chiu ngc
li, khi bn kt ni t* DB2 z/OS hay DB2 i5/OS dn mt máy ch DB2 Linux, UNIX hay
Windows. DB2 Connect có trong hai n bn chính tùy theo s kt ni mà bn cn: DB2
Connect Personal Edition và DB2 Connect Enterprise Edition.


Hình 2.2. DB2 Connect
2.3.2 WebSphere Federation Server
/c bit n trc ây là WebSphere Infomation Integrator (h tr tích hp thông tin),
WebSphere Federation Server cho phép s liên kt hp nht các c s d liu, iu
này ngh'a là bn có th chy các truy vn c s d liu trên nhiu i tng t* các h
thng c s d liu quan h khác nhau. Ví d nu bn mua WebSphere Federation
Server bn có th chy truy vn di ây:


Nhp môn H qun tr c s d liu DB2

23
SELECT *
FROM Oracle.Table1 A
DB2.Table2 B
SQLServer.Table3 C
WHERE
A.col1 < 100
And B.col5 = 1000
and C.col2 = ’Test’

Hình 2.3 cung cp s gii thiu v kh nng s dng ca WebSphere Federation Server

Hình 2.3 - WebSphere Federation Server

/i vi các h thng qun lý c s d liu quan h thuc h& IBM, s h tr liên kt hp
nht ã c xây dng s)n trong DB2 Express-C. /iu này ngh'a là WebSphere
Federation Server không cn c òi h"i., ví d khi bn mun chy mt truy vn gia
hai c s d liu DB2 khác nhau, hoc gia mt c s d liu DB2 và mt c s d

liu Informix® (Infomix là mt phn trong h& IBM).
2.3.3 WebSphere Replication Server
/c bit trc ây là WebSphere Infomation Integrator (h tr tích hp thông tin).
WebSphere Replication Server cho phép s to li SQL trong các bn ghi c s d liu
khi các máy ch không phi ca IBM tham gia vào. Nó c.ng bao g+m mt tính nng
c bit n là Q-Replication cho s tái to d liu s dng các hàng i thông ip.
Nhp môn H qun tr c s d liu DB2

24
3
Chng 3 - Cài t DB2

/ cài t n bn DB2 Express-C cho Linux hay Windows, m bo rng các h thng
ca bn th"a mãn các iu kin trc khi cài t.
3.1 Các iu kin trc khi cài t
4 khía cnh phiên bn h iu hành, DB2 Express-C có th c s dng trên Linux
hay Windows 2000, XP, Vista. Kin trúc b x lý c yêu cu là 32 bít, 64 bít và
PowerPC (Linux). Nu bn cn chy DB2 trên mt nn khác (ging nh UNIX), bn nên
mua mt trong nhng n bn máy ch d liu khác ã c nói n trc ây trong
quyn sách này. Các iu kin ca h iu hành trc khi cài t cho tt c các n bn
DB2 c.ng c miêu t trong tài liu này.


Trong khía cnh v các tài nguyên phn cng, DB2 Express-C c ti u hóa cho các
h thng lên ti 2 CPU v#t lý và 4GB RAM. Các h thng này có th là các h thng v#t
lý hay các h thng o c to ra bi s phân tán hoc vic chy các phn mm máy
o. Bn có th d' nhiên chy nó trong các h thng nh" hn nu bn mun, ví d trong
các h thng n CPU vi 1GB RAM.

/ có c nhng thông tin mi nht v các iu kin ca phn cng trc khi cài t

DB2 Express-C, hãy xem trên trang web DB2 Express-C.

3.2 Quyn cài t h iu hành
/ cài t DB2 Express-C trên Linux hay Windows, bn phi là mt ngi s dng h
iu hành có  quyn.

Vi Linux: bn cn phi là root (superuser)  cài t DB2 Express-C.

Vi Windows, tài khon ngi s dng phi thuc v nhóm Qun tr trên máy mà bn
s, thc hin cài t. Mt cách khác, mt tài khon ngi dùng không thuc nhóm Qun
tr có th c s dng, vi iu kin là mt thành viên thuc nhóm Qun tr Windows
u tiên cu hình các thit l#p nâng quyn Windows  cho phép mt tài khon ngi
dùng không thuc nhóm Qun tr có th thc thi cài t.

Vi các tài khon min (domain) Windows,  xác thc nh danh (ID) ca ngi dùng
trên máy ch DB2, ID ca ngi tin hành cài t phi thuc nhóm Qun tr ti min
(domain) mà các tài khon này s, c to. Có th s dng tài khon s)n có (built-in)
trên h thng  tin hành cài t.

Tài khon ngi dùng c.ng phi có quyn “Truy c#p máy tính này qua mng”

×