Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
0,92 MB
Nội dung
Nhp môn H qun tr c s d liu DB2 84 Hình 7.12 – Xut kt qu lý l$ch / nh#p mt lý lch ã c tùy ch-nh t* Tr giúp cu hình, kích vào trình n Configure, sau ó ch&n Import Profile -> Customize, nh c mô t trong Hình 7.13 Hình 7.13 – Nh#p mt lý lch Hình 7.14 mô t nhng trng cn c hoàn thành nh#p mt lý lch Nhp môn H qun tr c s d liu DB2 85 Hình 7.14 – Nhp lý l$ch c tùy ch,nh Nhp môn H qun tr c s d liu DB2 86 Bài tp nhanh #4 – S" dng Tr giúp thit lp cu hình Mc tiêu Chng trình Tr giúp thit l#p cu hình có th c s dng cu hình các kt ni c s d liu t* xa mt cách nhanh chóng và d0 dàng. Trong bài t#p nhanh này, bn s, to ch- mc cho mt c s d liu nm trên mt máy ch DB2 xa (remote DB2 server - c th hin bng máy trm ca ngi ng+i bên cnh bn, s dng c hai cách Tìm kim và Khám phá ). Mt khi c s d liu ó ã c lit kê, bn s, có th truy c#p c s d liu này ging nh là nó ang ngay trên h thng máy ca mình. DB2 thc hin tt c các quá trình giao tip mt cách thm lng. Ghi chú Bài t#p nhanh này gi nh rng bn ang làm vic trong 1 mng máy tính. Nu không phi nh v#y, bn luôn có th s dng chính máy tính ca mình v*a làm máy ch v*a làm máy khách và làm theo các ch- d%n cho công vic cu hình di ây kt ni n chính h thng ca bn. Th tc 1. H"i ngi bên cnh (hay ngi hng d%n bn) các thông tin sau ây : Thông tin c s d liu t* xa: (PR) Giao thc _TCPIP__ (IP) /a ch- IP hay tên máy ch _________ (PN) S cng ca th hin (instance) _________ (DB) Tên ca c s d liu _SAMPLE_ Các m7o : - Trong môi trng Windows, ly tên ca máy ta gõ lnh hostname t* ca s dòng lnh - Trong môi trng Windows, ly a ch- IP ta gõ lnh ipconfig t* ca s dòng lnh 2. M chng trình Tr giúp thit l#p cu hình (M7o: chng trình này có th truy c#p thông qua lnh Start) 3. M bng ch&n Selected và ch&n mc Add Database Using Wizard 4. Trong trang Source ca trình tr giúp, ch&n mc Manually Configure a Connection to a Database. Nhn nút Next di chuyn n trang tip theo ca trình tr giúp. 5. Trong trang Protocol ca trình tr giúp, ch&n mc TCP/IP. Nhn nút Next di chuyn n trang tip theo ca trình tr giúp. 6. Trong trang TCP/IP ca trình tr giúp, nh#p vào tên y ca máy ch hoc là a ch- IP mà bn ã ghi li trong bc 1. Nh#p vào s cng bn ã ghi trong bc 1. Nhn nút Next di chuyn n trang tip theo ca trình tr giúp. Ghi chú: Tùy ch&n Service Name có th c s dng nu bn có mt mc (entry) trong t#p tin Services ni b vi mt cng có s c nh ngh'a da trên cng mà máy ch t* xa ang lng nghe. Khi bn s dng tùy ch&n này, DB2 s, tìm kim trong t#p tin dch v trên máy ca bn ch không phi trên máy ch. Bn cn phi thêm mt mc vào t#p tin này nu bn mun s dng tùy ch&n trên. Nhp môn H qun tr c s d liu DB2 87 7. Trong trang C s d liu ca trình tr giúp, nh#p vào tên ca c s d liu c nh ngh'a trên máy ch t* xa mà bn ã ghi li trong bc 1 trng Database Name. / ý vic trng Database Alias c in mt cách t ng vi cùng giá tr ó nh th nào. Bí danh c s d liu (database alias) là mt cái tên mà nhng ng dng ni b trên máy ca bn s, s dng kt ni n c s d liu này. Bi vì bn ã có mt c s d liu trên máy ca mình c nh ngh'a s)n vi tên là SAMPLE, DB2 s, không cho phép bn to tên mt c s d liu khác có cùng tên. Vì th bn phi s dng mt tên bí danh khác. Trong ví d này, hãy i bí danh c s d liu thành SAMPLE1. Bn có th nh#p vào mt li chú thích tùy ý v c s d liu này nu bn mun. Nhn nút Next di chuyn n trang tip theo ca trình tr giúp. 8. Trong trang Data source ca trình tr giúp, bn có th (không bt buc) ng ký c s d liu (ngu+n d liu) mi này nh mt ngu+n d liu ODBC. Vic này s, t ng ng ký c s d liu ó trong chng trình qun lý ODBC ca Windows (Windows ODBC Manager) cho bn. Trong ví d này, b" du ánh mc “Register this database for ODBC” ti vì bn s, không s dng ODBC. Nhn nút Next di chuyn n trang tip theo ca trình tr giúp. 9. Trong trang Node Options ca trình tr giúp, xác nh h iu hành ca máy ch ni mà c s d liu t* xa ang nm ti ó. Bi vì tt c các máy trm trong phòng máy này u s dng Microsoft Windows, hãy m bo rng mc Windows trong danh sách s xung c ch&n. Trng Instance name nên c t là DB2. Nu trng này cha c t thì hãy t giá tr cho nó là DB2. Nhn nút Next di chuyn n trang tip theo ca trình tr giúp. 10. Trang System Options ca trình tr giúp cho bn c hi m bo rng h thng và tên máy ch ã c in chính xác và xác nh#n nhng cài t ca h thng. Nhn nút Next di chuyn n trang tip theo ca trình tr giúp. 11. Trang Security Options ca trình tr giúp cho phép bn xác nh ni bn mun vic xác thc ngi dùng xy ra và phng thc bn mun s dng. Ch&n mc Use authentication value in server’s DBM Configuration. Cách làm này s, s dng phng thc c xác l#p bi tham s AUTHENTICATION trong t#p tin cu hình ca th hin (instance) xa. Nhn nút Finish to danh mc c s d liu t* xa và óng trình tr giúp li. Mt hp thoi xác nh#n s, hin ra. Nhn nút Test Connection m bo bn có th kt ni thành công n c s d liu. Thêm vào ó, m bo tên ngi dùng và m#t kh u mà bn cung cp là hp l trên máy ch xa (bi vì có th tham s AUTHENTICATION ca máy ch c t giá tr là SERVER). Nu vic th kt ni thành công, bn ã to danh mc c s d liu xa mt cách thành công. Nu vic kt ni không thành công, bn hãy quay tr li trình tr giúp và m bo rng tt c các giá tr ã c xác l#p úng (Nhn nút Change quay li nhng cài t trong trình tr giúp) 12. M trung tâm iu khin và th xem nhng bng khác nhau trong c s d liu t* xa v*a mi c to danh mc 13. Quay tr li chng trình Tr giúp thit l#p cu hình và th to danh mc vi mt c s d liu khác, ln này s dng tu ch&n Search the Network. Làm t*ng bc trong trình tr giúp ging nh bn ã cu hình kt ni bng tay. Lu ý rng, trên nhng mng ln, vic tìm kim có th s, tn thi gian tr v các kt qu Nhp môn H qun tr c s d liu DB2 88 8 Chng 8 - Làm vic vi các i tng d liu Chng này tho lu#n các i tng d liu nh là dng s + (schemas), dng bng (table), khung nhìn (view), ch- mc (indexes), chui (sequences)… Mt s các i tng d liu cao cp nh là các b%y s kin (triggers), các hàm do ngi dùng nh ngh'a (UDFs) và nhng th tc c lu tr s, c tho lu#n trong chng 14, SQL PL lu tr các th tc, và chng 15, trong dòng SQL PL, UDFs, Triggers. 8.1 S S + là không gian tên (name spaces) cho t#p hp các i tng d liu. Chc nng chính ca chúng nh sau: - Cung cp cho bn các ch- d%n ca quyn s hu các i tng hay các mi quan h i vi mt ng dng. - Gom nhóm các i tng có mi quan h vi nhau. Tt c các i tng d liu trong DB2 có hai phn tên theo tiêu chu n; s + là na phn u tiên ca tên: <tên_s >.<tên_i tng> Tên i tng theo quy chu n phi là duy nht. Khi bn kt ni c s d liu và to hay tham chiu n mt i tng mà không nh rõ tên s +, DB2 s, ly mã tài khon mà bn kt ni vi c s d liu làm tên s +. Ví d, nu bn kt ni d liu m%u vi tên s dng là “arfchong”, và to mt bng bng cách s dng phát biu CREATE TABLE CREATE TABLE artist … Tên theo quy chu n y ca bng c to ra s, là arfchong.artists. 8.2 Bng Mt bng là mt t#p hp các d liu có mi quan h vi nhau mt cách hp lý theo các ct và hàng. Phát biu bên di cung cp cho bn ví d v vic làm cách nào to ra mt bng bng cách s dng phát biu CREATE TABLE CREATE TABLE artists { artno SMALLINT not null, name VARCHAR (50) with default ‘abc’, classification CHAR (1) not null, bio CLOB (100K) logged, picture BLOG (2M) not logged compact } Nhp môn H qun tr c s d liu DB2 89 In mytblsl Trong các phn tip theo ây, chúng ta có th mô t các phn chính ca phát biu CREATE TABLE này. 8.2.1 Kiu d liu Hình 8.1 Danh sách các kiu d liu c h tr trong DB2 Hình 8.1 – Các kiu d liu ca DB2 Các kiu d liu i tng ln (LOB) Các kiu d liu i tng ln c dùng lu tr các chui lý t ln, các chui nh phân ln, hay các t#p tin c ch- ra trong hình 8.2 Nhp môn H qun tr c s d liu DB2 90 Hình 8.2 – Các kiu d liu LOB Các i tng kiu nh phân ln này thng c vit tt cho d0 hiu: Mt i tng nh phân ln phi là mt BLOB, mt i tng ký t ln là CLOB, và i tng ký t ln 2 byte c.ng c bit nh là DBCLOB. Các kiu d liu c $nh ngh-a bi ngi dùng DB2 cho phép bn có th t nh ngh'a kiu d liu ca chính mình, da trên kiu d liu ca h thng. /iu này c xem nh là vic có b kiu d liu do ngi dùng t nh ngh'a (UDTs). UDTs c dùng khi: - Có nhu cu thit l#p ng cnh cho các giá tr - Có nhu cu cn ép kiu d liu DB2. Các phát biu theo sau âu mô t mt ví d v vic s dng UDTs nh th nào và khi nào CREATE DISTINCT TYPE POUND AS INTEGER WITH COMPARISIONS CREATE DISTINCT TYPE KILOGRAM AS INTEGER WITH COMPARISIONS CREATE TABLE person { F_name VARCHAR (30), Weight_p POUND NOT NULL, Weight_k KILOGRAM NOT NULL } Trong ví d này, có 2 UDTs c to ra là: POUND and KILOGRAM. C hai u c xây ng da trên kiu d liu s)n có ca h thng INTEGER. Mnh WITH COMPARISIONS c nh ngh'a nh là phn cú pháp ch- ra rng vic thay các hàm vi cùng tên c.ng ging nh vic các kiu d liu s, c to ra. Bng person dùng 2 UDTs mi trong ct weight_p và weight_k theo tun t. Nu bây gi chúng ta a ra phát biu sau: SELECT F_NAME FROM PERSON WHERE weight_p > weight_k Nhp môn H qun tr c s d liu DB2 91 Bn s, nh#n c mt thông báo li vì vic so sánh 2 ct vi kiu d liu khác nhau. Th#m chí weight_p và weight_k dùng d liu là POUND và KILOGRAM, theo th t, c hai trng này u c da trên kiu d liu là INTEGER. Tuy nhiên bng vic to UDTs thì bn không th thc hin loi so sánh này. /ây chính là nhng gì bn mun, bi vì trong cuc sng thc, làm th nào so sánh gia pound và kilogram? Nó s, vô lý. Trong ví d k tip, bn mun so sánh ct weight_p vi kiu d liu integer. Tuy nhiên hai kiu d liu này khác nhau, vì th bn s, nh#n c thông báo li tr* khi bn s dng mt hàm ã ép kiu. Nh bn thy trong phát biu bên di, chúng tôi s, dùng hàm ép kiu POUND() iu so sánh này có th thc hin c. Nh ã nêu trên hàm ép kiu POUND() c to ra vi UTD khi triu g&i WITH COMPARISIONS ca phát biu CREATE DISTINCT TYPE. SELECT F_NAME FROM PERSON WHERE weight_p > POUND (30) Các giá tr$ NULL Mt giá tr null i din cho mt rng thái không xác nh. Tuy nhiên, phát biu CREATE TABLE có th nh ngh'a mt ct bng cách s dng mnh NOT NULL. /iu này m bo rng ct này s, cha giá tr d liu c bit n. Bn c.ng có th ch- nh giá tr mc nh cho ct nu NOT NULL c khai báo. Phát biu k tip cung cp ví d cho iu này: CREATE TABLE Staff { ID SMALLINT NOT NULL, NAM E VARCHAR (9), DEPT SMALLINT NOT NULL with default 10, JOB CHAR (5), YEARS SMALLINT, SALARY DECIMAL (7, 2), COMM DECIMAL (7, 2) with default 15 } 8.2.2 Ct khoá chính (Identity columns) Ct khoá chính này là mt con s c to ra t ng, s này là duy nht cho mi dòng. Ch- có mt ct khoá chính cho mt bng. Có hai cách to ra giá tr cho ct khoá chính, iu này ph thuc vào vic nó c nh ngh'a nh th nào: - Luôn luôn c sinh ra: nhng giá tr luôn luôn c DB2 sinh ra. Các ng dng thì không c phép cung cp nhng giá tr c th. - Sinh ra mc nh: giá tr có th c cung cp c th bi mt ng dng hoc, nu không có giá tr cho trc, thì DB2 s, sinh ra. DB2 không th m bo c tính duy nht. Tùy ch&n này c d nh phc v cho vic truyn d liu, và cho vic unload và reload ca mt bng. Hãy xem qua ví d sau: Nhp môn H qun tr c s d liu DB2 92 CREATE TABLE subscriber (subscriberID INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 100 INCREMENT BY 100), firstname VARCHAR (50), lastname VARCHAR (50)) Trong ví d này, ct subscriberID là mt INTEGER c nh ngh'a nh là mt ct khoá chính thuc loi luôn luôn c sinh ra t ng. Giá tr c sinh ra s, bt u t* 100, và nó s, c tng lên vi bc là 100. 8.2.3 Các tng tun t (Sequence object) Các i tng tun t sinh ra mt con s duy nht da vào c s d liu. Không ging nh các ct khóa chính, các i tng tun t này là nhng bng c l#p, xem ví d minh h&a phát biu sau: CREATE TABLE t1 (salary int) CREATE SEQUENCE myseq START WITH 10 INCREMENT BY 1 NO CYCLE INSERT INTO t1 VALUES (nextval for myseq) INSERT INTO t1 VALUES (nextval for myseq) INSERT INTO t1 VALUES (nextval for myseq) SELECT * FROM t1 SALARY 10 11 12 3 record(s) selected SELECT prevval for myseq FROM sysibm.sysdummy1 1 12 1 record(s) selected PREVVAL cung cp cho bn giá tr hin ti ca dãy tun t, trong khi NEXTVAL cung cp giá tr k tip. Ví d bên trên c.ng s dng SYSIBM.SYSDUMMY1. ây là mt bng danh mc h thng mà nó ch- có mt ct và mt hàng. Nó có th c dùng trong tình hung nh mt câu truy vn yêu cu tr v ch- mt giá tr. Các bng danh mc h thng c mô t trong phn k tip. 8.2.4. Các bng danh sách h thng Mi c s d liu có các bng danh sách h thng ca riêng nó. Các bng này lu tr siêu d liu v các i tng c s d liu. Bn có th truy vn nhng bng này nh bt k bng c s d liu bình thng khác. Ba s + c s dng nh#n dng các bng danh sách h thng: • SYSIBM: các bng c s, ti u hóa s dng DB2 • SYSCAT: khung nhìn (view) da trên bng SYSIBM, ti u s d0 s dng. Nhp môn H qun tr c s d liu DB2 93 • SYSSTAT: các s liu thng kê c s d liu Sau ây là mt vài ví d v các khung nhìn ca danh mc: • SYSCAT.TABLES • SYSCAT.INDEXES • SYSCAT.COLUMNS • SYSCAT.FUNCTIONS • SYSCAT.PROCEDURES 8.2.5. Khai báo các bng tm thi Khai báo bng tm thi là các bng c to ra trong b nh, c s dng bi mt ng dng và c t ng xóa khi ng dng kt thúc. Nhng bng này ch- có th c truy nh#p bi ng dng to ra chúng. Không có bn ghi nào c sinh trong bng danh sách ca DB2. Truy nh#p nhng bng này có hiu qu rt cao bi vì không có s tranh chp danh sách, các hàng không b khóa, không ghi nh#t ký (tùy ch&n), và không kim tra quyn. C.ng có h tr ch- mc cho các bng tm thi này, ó là, bt c ch- mc chu n nào c.ng có th c to trên mt bng tm thi. Bn c.ng có th chy lnh RUNSTATS vi các bng này. Khai báo các bng tm thi bên trong mt không gian s dng ca bng tm thi, ây là cái phi c nh ngh'a trc khi to ra bt c bng tm thi nào. Các phát biu di ây cung cp mt ví d làm th nào to ba khai báo bng tm thi: CREATE USER TEMPORARY TABLESPACE apptemps MANAGED BY SYSTEM USING ('apptemps'); DECLARE GLOBAL TEMPORARY TABLE temployees LIKE employee NOT LOGGED; DECLARE GLOBAL TEMPORARY TABLE tempdept (deptid CHAR(6), deptname CHAR(20)) ON COMMIT DELETE ROWS NOT LOGGED; DECLARE GLOBAL TEMPORARY TABLE tempprojects AS (fullselect) DEFINITION ONLY ON COMMIT PRESERVE ROWS NOT LOGGED WITH REPLACE IN TABLESPACE apptemps; Khi mt khai báo bng tm thi c to ra, s + ca nó là SESSION, và phi c ch- tng minh. ID ngi dùng c s dng to mt bng tm thi s, có tt c quyn trên bng. Mi ng dng to mt bng tm thi s, quyn c l#p ca riêng nó c ch- ra trong Figure 8.5. [...]...Nh p môn H qu n tr c s d li u DB2 94 Figure 8 .5 – Ph m vi c a các b ng t m th i toàn c c công khai Bài t p nhanh #5 - Kh i t o m t b ng m i M c tiêu / n ây, b n có th s d ng nh ng b ng có s)n trong c s d li u SAMPLE minh h&a các khái ni m Cu i cùng, b n s, c n... employee_copy ALL IMMEDIATE UNCHECKED N u b n thích làm vi c v i Trung tâm i u khi n h n, b n có th th c hi n công c LOAD và SET INTEGRITY nh trong hình 9.4 và 9 .5 t ng ng Hình 9.4 - Th c hi n công c LOAD Nh p môn H qu n tr c s d li u DB2 104 Hình 9 .5 - Th c hi n công c SET INTEGRITY 9.4 Công c db2move T i m t th i i m, công c EXPORT, IMPORT, và LOAD ch- làm vi c trên m t b ng M c dù b n có th vi t m t k... t hình nh c nh ngh'a nh m t c t “NULLABLE” B n có ngh' t i sao c t c nh ngh'a nh th ? 5 4 ây, t t c thông tin b t bu c cho vi c t o b ng u c cung c p B ng cách nh y sang các trang khác, b n coi nh ang ch&n các giá tr m c nh cho nh ng tùy ch&n ó B n có th thêm các khóa và ràng bu c sau khi m t b ng v*a c t o Nh p môn H qu n tr c s d li u DB2 96 6 Thêm m t ràng bu c t i b ng h n ch các giá tr trên c... nh hình 8.6: Hình 8.6 – Th c hi n tr giúp thi t k t& Trung tâm i u khi n Hình 8.7 Cho th y tr giúp thi t k Theo sau là các b thi t k g i ý t* DB2 ch ng d%n t c cách Nh p môn H qu n tr c s d li u DB2 98 Hình 8.7 – Tr giúp thi t k 8 .5 Tính toàn v.n tham chi u Toàn v7n tham chi u cho phép c s d li u qu n lý c các quan h gi a các b ng B n có th thi t l#p ki u cha-con (parent-child) c a các quan h gi a... là SUPPLIES B n c.ng có th gõ vào m t ghi chú tùy ý Nh n vào nút Next ti p t c t i trang sau c a h ng d%n 4 T* trang này, b n có th thêm các c t vào b ng Nh n nút ADD thêm các c t Nh p môn H qu n tr c s d li u DB2 95 Gõ “product_id” vào Column name và ch&n ki u là INTEGER B" d u ki m Nullable, và nh n vào nút Apply nh ngh'a c t L p l i b c này cho nh ng c t còn l i c a b ng s d ng các tùy ch&n c chc... empno foreign key workdept reference department on delete no action) in DMS01 Hình 8.8 - Ví d v toàn v.n tham chi u gi a các b ng Trong toàn v7n tham chi u, th ng s d ng các khái ni m sau: PHONENO Nh p môn H qu n tr c s d li u DB2 Khái ni m B ng cha (Parent table) B ng ph thu c (Dependant table) Khóa chính (Primary key) Khóa ngo i (Foreign key) 99 Mô t B ng d li u i u khi n ch a khóa chính B ng d li... c áp t d li u phù h p v i c tính nào ó ho c các quy t c trong kinh doanh c a d li u Ví d , n u m t c t c a b ng là gi i tính, nó có th c ép ch a m t trong hai giá tr là “M” cho nam và “F” cho n Nh p môn H qu n tr c s d li u DB2 100 9 Ch ng 9 – Công c di chuy n d li u Nh ng công c hay câu l nh c mô t trong ph n này c s d ng di chuy n d li u trong cùng m t c s d li u hay qua nh ng c s d li u khác nhau... ng Công c LOAD thì nhanh h n vì nó i tr c ti p n nh ng trang c s d li u mà không c n t ng tác n h th ng DB2; tuy nhiên, ph ng th c này không th t o ra nh ng ki m tra ràng bu c i v i d li u, và s, Nh p môn H qu n tr c s d li u DB2 101 không th c hi n c các b%y s ki n (n u có) / m b o m t cách kiên nh vi c n p d li u dùng công c LOAD, l nh SET INTEGRITY th ng c s s ng theo sau Nh ng ph n ti p theo sau... (popup menu) t* ó b n có th ch&n Export Sau khi ch&n m c này, c a s h ng d%n t*ng b c s, hi n lên Ch- c n n gi n làm theo nh ng b c cung c p s)n trong h ng d%n này hoàn thành quá trình th c hi n Nh p môn H qu n tr c s d li u DB2 102 9.2 Công c IMPORT (nh p) Công c IMPORT c dùng n p d li u t* m t t p sang m t b ng nh ã nói tr c ây / ng sau nó, m t thao tác SQL INSERT c th c thi th c s Khi m t l nh... c theo 3 giai o n: LOAD, BUILD và DELETE Ví d sau ây n p t t c các d li u t* t p employee.ixf có nh d ng IXF vào trong b ng employee_copy L a ch&n REPLACE là m t trong nh ng l a ch&n có s)n trong Nh p môn H qu n tr c s d li u DB2 LOAD Trong tr ng h p này, nó trong b ng employe_copy 103 c s d ng REPLACE t t c các d li u có LOAD FROM employee.ixf OF IXF REPLACE INTO employ_copy Sau khi th c thi câu l . nó c ch- ra trong Figure 8 .5. Nhp môn H qun tr c s d liu DB2 94 Figure 8 .5 – Phm vi ca các bng tm thi toàn cc công khai Bài tp nhanh #5 - Khi to mt bng mi Mc. c hoàn thành nh#p mt lý lch Nhp môn H qun tr c s d liu DB2 85 Hình 7.14 – Nhp lý l$ch c tùy ch,nh Nhp môn H qun tr c s d liu DB2 86 Bài tp nhanh. DEPT SMALLINT NOT NULL with default 10, JOB CHAR (5) , YEARS SMALLINT, SALARY DECIMAL (7, 2), COMM DECIMAL (7, 2) with default 15 } 8.2.2 Ct khoá chính (Identity columns) Ct khoá