Nhập môn Cơ Sở Dữ Liệu
! " Mt cun sách ca cng ng dành cho cng ng !#$%&' () Nhp môn H qun tr c s d liu DB2 1 Xut bn ln u (tháng 11 nm 2007) Tài liu này s dng cho IBM DB2 Express-C phiên bn 9.1 vi h iu hành Linux, UNIX và Windows Bn quyn thuc công ty IBM Nhp môn H qun tr c s d liu DB2 2Mc Lc Thông cáo và Nhãn hiu hàng hóa .7 Ai nên c cun sách này? .8 Cu trúc ca quyn sách này nh th nào? 8 Mt quyn sách do cng ng làm và giành cho cng ng .8 Tác gi và nhng ngi óng góp .8 Li cm n .9 Li cm n bn ting Vit .10 Li nói u .12 Phn I – Tng quan và Cài t .13 Chng 1 - DB2 Express-C là gì? .13 1.1 T do phát trin, trin khai và phân phi…không có gii hn! . 13 1.2 H tr k thut .14 1.3 Các máy ch DB2 14 1.4 Máy khách DB2 .15 1.5 T do phát trin phn mm ng dng 16 1.6 Phiên bn và n bn DB2 (version and edition) 16 1.7 Chuyn sang n bn DB2 khác 17 1.8 Bo trì DB2 Express-C 17 1.9 Mt s phn mm min phí liên quan 17 1.9.1 DB2 Developer Workbench (công c phát trin) .17 1.9.2 DB2 9 Embedded Application Server (máy ch nhúng) .18 1.9.3 DB2 9 Net Search Extender (m rng tìm kim trên mng) 18 1.9.4 B công c bt u Rails cho DB2 .18 1.9.5 B công c bt u Web 2.0 dành cho DB2 .18 Chng 2 – Các tính nng liên quan và các sn phm .19 2.1 Các tính nng bao hàm trong ng ký s dng DB2 Express-C .20 2.1.1 Các chng trình sa li .20 2.1.2 Tính s n sàng cao và khôi phc sau s c (HADR) .20 2.1.3 Kh nng tái to d liu (di trú d liu) 20 2.2 Các tính nng không có trong bn DB2 Express-C .21 2.2.1 Phân vùng c s d liu 21 2.2.2 B tp trung kt ni .21 2.2.3 B m rng không gian !a lý 22 2.2.4 B kim soát truy vn .22 2.3 Các sn 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 Chng 3 - Cài t DB2 24 3.1 Các iu kin trc khi cài #t 24 3.2 Quyn cài #t h iu hành 24 3.3 Cài #t theo hng d$n t%ng bc .25 3.4 Cài #t hàng lot (Silent Install) 28 Bài tp nhanh #1: Cài #t DB2 Express-C và to ra c s d liu m$u 30 Chng 4 - Các công c DB2 32 4.1 Trung tâm iu khin (Control Center) .33 4.2 Nhp lnh trc tip .36 4.3. Trình tr giúp SQL .38 4.4 Trình bày nút Show SQL .40 Nhp môn H qun tr c s d liu DB2 3Bài tp nhanh #2 - To mt CSDL mi vi Trung tâm iu khin 40 4.5 To k!ch bn .42 4.5.1 Các k!ch bn SQL .42 4.5.2 Các k!ch bn vi h iu hành 44 Bài tp nhanh #3 – To mt k!ch bn cài #t cho c s d liu EXPRESS 45 4.6 Trung tâm tác v (Task Center) .48 4.6.1 C s d liu Tools Catalog .48 4.7 Nht ký .49 4.8 Giám sát tình trng (health) .51 4.8.1 Trung tâm tình trng .51 Chng 5 - Môi trng ca DB2 .54 5.1 Cu hình DB2 62 5.1.1 Các bin môi trng .63 5.1.2 Tp cu hình qun tr! c s d liu (dbm cfg) 63 5.1.3 Tp cu hình c s d liu (db cfg) 65 5.1.4 &ng ký lý l!ch DB2 (profile) .66 5.2 Máy ch qun tr! DB2 67 Phn II – Hc DB2: Qun tr C s d liu 68 Chng 6 - Kin trúc ca DB2 .68 6.1 Mô hình x lý ca DB2 .68 6.2 Mô hình b nh ca DB2 .69 6.3 Mô hình lu tr ca DB2 .70 6.3.1 Trang và phm vi 70 6.3.2 Vùng nh m .70 6.3.3 Các không gian bng .73 Chng 7 – Kt ni máy khách DB2 77 7.1 Tr giúp cu hình .77 7.1.1 Nhng cài #t bt buc trên máy ch .77 7.1.2 Nhng cài #t cn thit trên máy khách 79 7.1.3 To lý l!ch cho máy khách và máy ch .82 Bài tp nhanh #4 – S dng Tr giúp thit lp cu hình .86 Chng 8 - Làm vic vi các i tng d liu 88 8.1 S 88 8.2 Bng .88 8.2.1 Kiu d liu .89 8.2.2 Ct khoá chính (Identity columns) .91 8.2.3 Các tng tun t (Sequence object) . 92 8.2.4. Các bng danh sách h thng .92 8.2.5. Khai báo các bng tm thi 93 Bài tp nhanh #5 - Khi to mt bng mi 94 8.3 Các khung nhìn (Views) 96 8.4 Các ch' mc (Index) .96 8.4.1 Tr giúp thit k (Design Advisor) .97 8.5 Tính toàn v(n tham chiu .98 Chng 9 – Công c di chuyn d liu 100 9.1 Công c EXPORT (xut) .101 9.2 Công c IMPORT (nhp) .102 9.3. LOAD (np) 102 9.4 Công c db2move 104 9.5 Công c db2look 104 Nhp môn H qun tr c s d liu DB2 4Bài tp nhanh #6 - Trích xut DDL t% c s d liu EXPRESS . 107 Chng 10 – Bo mt c s d liu 110 10.1 &!nh danh .111 10.2 Quyn hn 112 10.3 Quyn qun tr! c s d liu DBADM 114 10.4 Nhóm PUBLIC 115 10.5 Lnh GRANT và REVOKE .115 10.6 Kim tra vic cp quyn và quyn .115 10.7 Xem xét quyn trên nhóm 117 Bài tp nhanh # 7: Cho phép và hy b) (phân quyn) quyn ngi s dng .118 Chng 11 – Sao lu và khôi phc .121 11.1 Nht ký c s d liu . 121 11.2 Các kiu nht ký .122 11.3 Các kiu ghi nht ký .122 11.3.1 Ghi tun t quay vòng . 122 11.3.2 Nht ký lu tr 123 11.4 Nht ký c s d liu t% Trung tâm iu khin 123 11.5 Các tham s ca nht ký . 124 11.6 Sao lu c s d liu 125 Bài tp nhanh #8 - Lp l!ch sao lu .127 11.7 Khôi phc c s d liu .129 11.7.1 Các kiu khôi phc d liu .129 11.7.2 Khôi phc c s d liu 129 11.8 Các hot ng khác vi BACKUP và RESTORE .130 Chng 12 - Nhim v bo trì 131 12.1 REORG, RUNSTATS, REBIND 131 12.1.1 Lnh REORG 131 12.1.2 Lnh RUNSTATS . 132 12.1.3 BIND/REBIND .132 12.1.4 Các công vic duy trì t% Trung tâm iu khin . 133 12.2 Các la chn bo trì .135 Bài tp nhanh #9 – Cu hình vic bo trì t ng . 137 Chng 13 – Truy cp ng thi và khóa .139 13.1 Các giao d!ch 139 13.2 Truy cp ng thi .140 13.3 Các vn khi không kim tra truy cp ng thi 141 13.3.1 Mt d liu cp nht . 141 13.3.2 &c vi không cam kt .142 13.3.3 &c không l#p li 142 13.3.4 &c th%a 143 13.4 Các mc cô lp .144 13.4.1 &c vi không cam kt .144 13.4.2 *n !nh con tr) .144 13.4.3 &c +n !nh .145 13.4.4 &c l#p li .145 13.4.5 So sánh các mc cô lp d liu 145 13.4.6 &#t mc cô lp 146 13.5 Khóa leo thang .147 13.6 Kim soát khóa 148 13.7 Ch khóa 148 Nhp môn H qun tr c s d liu DB2 513.8 Vn khóa ph thuc và phát hin 149 13.9 Truy cp ng thi và thc tin khóa tt nht .150 PHN 3: HC DB2 – PHÁT TRIN NG DNG .152 Chng 14 – Các th tc SQL PL 153 14.1 DB2 Developer Workbench .154 14.1.2 To mt th tc lu trong DWB .154 14.2 Mt s khái nim v th tc SQL PL 158 14.2.1 Cu trúc ca th tc 158 14.2.2 Nhng thuc tính tùy chn ca th tc .158 14.2.3 Các loi tham s 159 14.2.4 Chú thích trong th tc SQL PL .159 14.2.5 Câu lnh ghép . 160 14.2.6 Khai báo bin 160 14.2.7 Câu lnh gán .160 14.3 Các con tr) (cursor) .161 14.4 &iu khin lung 161 14.5 Gi th tc 162 14.6 Li và x lý iu kin 163 14.7 SQL ng .165 Chng 15 – Hàm ni tuyn, hàm ngi dùng nh ngha, các hàm x ký các s! kin b"y (Inline SQL PL, UDF, Triggers) 166 15.1 Hàm ni tuyn SQL .166 15.2 B$y s kin (Triggers) .167 15.2.1 Các loi b$y s kin 167 Bài tp nhanh #10 - Khi to mt b$y b,ng Trung tâm iu khin .170 15.3 Hàm ngi dùng !nh ngh-a (UDF) 172 15.3.1 Hàm vô hng 172 15.3.2 Hàm bng 173 Bài tp nhanh #11 - Khi to UDF s dng DB2 Developer Wordbench 175 Chng 16 – SQL/XML và XQuery 176 16.1 S dng XML vi các c s d liu 176 16.2 C s d liu XML 177 16.2.1 c s d liu h tr XML . 177 16.2.2 C s d liu thun XML . 178 16.3 XML trong DB2 .178 16.3.1 .u im ca công ngh pureXML trong DB2 9 179 16.3.2 Khái nim c bn v XPath 181 16.3.3 &!nh ngh-a XQuery .184 16.3.4 Chèn các tài liu XML 185 16.3.5 Truy vn d liu XML 188 16.3.6 Ni (join) vi SQL/XML 193 16.3.7 Ni (Join) vi XQuery 194 16.3.8 Các lnh cp nht và xóa 194 16.3.9 Ch' mc XML . 195 Bài tp nhanh #12 – SQL/XML và XQuery 197 Chng 17 – Phát trin vi Java, PHP và Ruby .198 17.1 Phát trin ng dng b,ng Java . 198 17.1.1 Trình iu khin JDBC kiu 2 (type 2) .198 17.1.2 Trình iu khin JDBC kiu 4 199 17.2 Phát trin ng dng b,ng PHP . 200 Nhp môn H qun tr c s d liu DB2 617.2.1 La chn kt ni DB2 cho PHP 200 17.2.2 /ng dng công ngh Zend Core dành cho IBM .201 17.3 Phát trin ng dng Ruby trên nn Rails .203 17.3.1 B công c phát trin DB2 trên nn Rails 203 A.1 Thêm thông tin v mã các li 204 A.2 SQLCODE and SQLSTATE 205 A.3 Nht ký khai báo qun tr! DB2 . 205 A.4 db2diag.log 206 A.5 Theo vt CLI .206 A.6 Khc phc và sa li trong DB2 .206 Các trang web 207 Sách 208 Nhp môn H qun tr c s d liu DB2 7V cun sách này Thông cáo và Nhãn hiu 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 hoc s dng di bt k dng thc nào hoc dch sang ngôn ng khác toàn b hoc bt c phn nào ca tài liu này mà không c s cho phép trc ca ngi gi bn quyn trên. IBM không m bo hay i din cho nhng ni dung c nêu ra ây và không chu trách nhim v tính thng mi hoc tính hp lý cho bt kì mc ích nào. IBM cho rng mình không có trách nhim vi bt k li nào trong tài liu này. Thông tin trong tài liu này có th thay i mà không cn báo trc. IBM giành quyn c thay i và không bt buc phi thông báo cho bt c ai v s thay i này. IBM không cam kt nhng thông tin trong tài liu này là mi nht. Các thông tin trong tài liu này liên quan n sn ph m không phi ca IBM ã có c qua các nhà cung cp sn ph m ó. IBM không kim tra các sn ph m ó và không kh!ng nh v tính chính xác khi thc hin, tính tng thích hoc bt k thc mc nào liên quan n sn ph m không phi ca IBM. Các câu h"i v kh nng ca các sn ph m không phi ca IBM cn c gi cho các nhà cung cp sn ph m ó. IBM, biu tng IBM, DB2, DB2 Connect, DB2 Universal Database, i5/OS, pureXML, WebSphere, và z/OS là nhãn hiu hàng hóa ã ng ký ca t#p oàn IBM ti M$, các nc khác, hoc c hai. Java và tt c các nhãn hiu Java là nhãn hiu hàng hóa ng ký ca công ty Sun Microsystem, Inc. ti M$, các nc khác, hoc c hai. Microsoft và Windows là nh%n hiu hàng hóa ca t#p oàn Microsoft ti M$, các nc khác, hoc c hai. Linux là nhãn hiu ng ký ca Linus Torvalds ti M$, các nc khác, hoc c hai. Tên ca công ty khác, sn ph m, hoc dch v có th là nhãn hiu ng ký ca h&. Trích d%n các sn ph m và dch v ca IBM trong tài liu này không có ngh'a là IBM a chúng n tt c các quc gia mà IBM có hot ng. Nhp môn H qun tr c s d liu DB2 8Ai nên c cun sách này? Quyn sách này giành cho bt k ai ang làm vic hoc mun làm vic vi c s d liu, nh qun tr h c s d liu (DBAs), ngi phát trin ng dng, nhà t vn, kin trúc phn mm, giám c sn ph m, giáo viên và sinh viên. Cu trúc ca quyn sách này nh th nào? Phn I, Tng quan và Cài t, gii thích n bn DB2 Express-C là gì, gii thiu h& sn ph m DB2 và các chc nng, giúp ( cài t và to mi c s d liu, và khám phá các công c s)n có ca DB2. Phn II, H&c DB2: Qun tr c s d liu, c thit k bn làm quen vi môi trng, kin trúc, kt ni t* xa, các i tng d liu, chuyn d liu (nh#p và xut d liu), an toàn, sao lu và khôi phc, truy c#p +ng thi và khóa ca DB2, và các công vic bo trì thông thng. Phn III, H&c DB2: Phát trin ng dng, bao g+m th tc, hàm do ngi dùng nh ngh'a, các b%y s kin, SQL/XML, XQuery, phát trin ng dng bng Java, PHP và Ruby. Ph lc có các thông tin cn thit v sa li. Bài t#p ây là bài t#p nhanh, có hu ht các chng, tt c các tp cn thit thc hin bài t#p này có th tìm thy tp nén expressc_book_quicklabs.zip i kèm theo sách này, hoc s, tìm thy trang web ca IBM DB2 Express-C, a ch- www.ibm.com/db2/express Tài liu ca cun sách c.ng c s dng làm bài ging ca chng trình “DB2 vi /i h&c” (DB2 on Campus). Cun sách này c.ng giúp bn chu n b cho bài kim tra ca chng trình “DB2 vi /i h&c”, chng trình y ca nó bài h&c vi 16 gi trên lp. Bn có th xem thêm thông tin v chng trình này trang DB2 Express-C, a ch- www.ibm.com/db2/express/students.html. Mt quyn sách do cng ng làm và giành cho cng ng /i ng. làm DB2 Express-C ã có sáng kin làm quyn sách này cung cp mi0n phí cho cng +ng. Vit và ch-nh lý mt cun sách là vic làm khó khn. Mc ích ca chúng tôi là ni dung cun sách s, c duy trì và m rng bng vic tham gia ca cng +ng DB2 Express-C. Nu bn mun óng góp ý kin, óng góp nhng ni dung mi nâng cao ni dung hin ti hoc dch cun sách này sang ngôn ng khác, làm n gi k hoch thc hin v a ch- db2x@ca.ibm.com vi tiêu “DB2 Express-C book changes.” Tác gi và nhng ngi óng góp Nhng ngi sau ây ã cung cp ni dung và có các óng góp có ý ngh'a cho cun sách này Tên /n v Chc danh Tài liu óng góp Ngày Raul F. Chong IBM G/ chng trình “DB2 vi /i h&c” Bn tho tt c các chng Tháng 5 – 2007 Ian Hakes IBM Cng +ng DB2 Express-C Xem li và sa cha Tháng 5, 6 – 2007 Rav Ahuja IBM G/ sn ph m DB2 Xem li, c#p nh#t và trình bày cun sách Tháng 7-10 - 2007 Nhp môn H qun tr c s d liu DB2 9Li cm n Chúng tôi chân thành cm n các cá nhân sau ây vi s tr giúp - Ted Wasserman, Clara Liu và Paul Yip phòng thí nghim IBM Toronto, ngi ã phát trin ng dng trong khuôn kh cun sách này - Don Chamberlin và Cindy Saracco vi các bài báo ca h& v XQuery ng trên developerWorks, và Matthía Nicola vi bài trình bày v pureXML. - Kevin Czap và Grant Hutchingson vi các tài liu k$ thu#t v phát trin DB2 - Katherine Boyachok vi thit k bìa - Susan Visser giúp ( xut bn cun 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... Bách khoa Hà N i / i h&c Duy Tân, /à N)ng /H Khoa h&c Hu /H Bách Khoa Hà N i /H Công ngh Thông tin, Tp HCM /H Công ngh Thông tin, Tp HCM /H Khoa h&c T nhiên, Tp HCM /H Khoa h&c Hu /H Khoa h&c Hu Nh p môn H qu n tr c s d li u DB2 41 42 43 44 45 46 47 48 49 50 51 52 53 Nguy0n Xuân Tr ng Ph m Ng&c Huy Ph m Th Minh Hi n Ph m V$ Tu n Quách Tiêu Thu#n Thái Quang Hòa Thái Tuy n Tr n Anh Huy Tr n Th Thúy Trinh... ngh -/ i h&c qu c gia Hà n i /H Bách khoa /à N)ng Trung tâm Công ngh Ph n m m - /H C n Th /H Khoa h&c Hu / i h&c Nông Lâm tp HCM / i h&c Duy Tân, /à N)ng /H Bách Khoa /à N)ng /H Bách khoa Hà N i Nh p môn H qu n tr c s d li u DB2 L i nói 12 u t phá c a các ti n b công ngh T i IBM, sáng t o ã tr thành c i Sáng t o là s 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... 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 Ch t 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... 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 li u cho ng d ng c a mình, b n có th s d ng DB2 Express-C s d 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... 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... / 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... 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... 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... 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 . sách ca cng ng dành cho cng ng !#$%&' () Nhp môn H qun tr c s d liu DB2 1 Xut bn ln. vi h iu hành Linux, UNIX và Windows Bn quyn thuc công ty IBM Nhp môn H qun tr c s d liu DB2 2Mc Lc Thông cáo và Nhãn hiu hàng hóa...................................................................................7