Đào tạo Oracle cơ bản - Giáo trình kiến trúc và quản trị Oracle 8i - Phần 5
lượt xem 23
download
Công ty cổ phần tài ngân - BFC Giáo trình kiến trúc và quản trị Oracle 8i 13 Quản lý Indexes 13.1 Phân loại Index • Index Index là cấu trúc cho phép truy xuất trực tiếp tới các dòng dữ liệu trong bảng. Index có thể đ-ợc phân loại tuỳ theo thiết kế logic hay cài đặt vật lý. • Single Column và Concatenated Column: • Single Column index: chỉ có một cột trong index key Concatenated Column index: Index đ-ợc tạo trên nhiều cột trong một table. Unique va NonUnique index: Unique index: giá trị index xác định duy nhất một dòng dữ...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Đào tạo Oracle cơ bản - Giáo trình kiến trúc và quản trị Oracle 8i - Phần 5
- C«ng ty cæ phÇn tμi ng©n - BFC Gi¸o tr×nh kiÕn tróc vμ qu¶n trÞ Oracle 8i 13 Qu¶n lý Indexes 13.1 Ph©n lo¹i Index • Index Index lµ cÊu tróc cho phÐp truy xuÊt trùc tiÕp tíi c¸c dßng d÷ liÖu trong b¶ng. Index cã thÓ ®−îc ph©n lo¹i tuú theo thiÕt kÕ logic hay cµi ®Æt vËt lý. • Single Column vµ Concatenated Column: Single Column index: chØ cã mét cét trong index key - Concatenated Column index: Index ®−îc t¹o trªn nhiÒu cét trong mét table. - • Unique va NonUnique index: Unique index: gi¸ trÞ index x¸c ®Þnh duy nhÊt mét dßng d÷ liÖu trong b¶ng - NonUnique index: cã nhiÒu dßng d÷ liÖu øng víi cïng mét gi¸ trÞ index - • Function-base index: Gi¸ trÞ index ®−îc x¸c ®Þnh th«ng qua gi¸ trÞ cña mét hµm - • Partition vµ NonPartition index: Partitioned index: sö dông cho c¸c b¶ng lín, l−u gi÷ gi¸ trÞ index t−¬ng øng trªn nhiÒu - segments. Partitioned index ®−îc sö dông cho c¸c Partitioned tables. NonPartition index: index l−u gi÷ c¸c gi¸ trÞ chØ trªn cïng mét segment. - • B-tree Index H×nh vÏ 7 CÊu tróc B-Tree • CÊu tróc cña B-Tree Index: B-Tree Index cã cÊu tróc d¹ng c©y, trªn cïng lµ mét nót gèc, chøa c¸c con trá trá tíi c¸c møc tiÕp theo (nh¸nh) trong index. Møc d−íi cïng (l¸) lµ c¸c blocks. Møc nh¸nh nµy chøa c¸c index trá tíi dßng d÷ liÖu cô thÓ trong b¶ng. • Khu«n d¹ng cña Index Leaf Entries: ®−îc chia lµm c¸c phÇn chÝnh sau: Entry header: chøa sè l−îng c¸c cét vµ lock information - §μo t¹o kiÕn tróc vμ qu¶n trÞ ORACLE 8i http://www.ebook.edu.vn Trang 51
- C«ng ty cæ phÇn tμi ng©n - BFC Gi¸o tr×nh kiÕn tróc vμ qu¶n trÞ Oracle 8i CÆp c¸c th«ng sè: ®é réng vµ gi¸ trÞ kho¸ index - ROWID cña dßng d÷ liÖu chøa gi¸ trÞ kho¸ - • C¸c tÝnh chÊt cña Index Leaf Entry: C¸c gi¸ trÞ kho¸ sÏ ®−îc lÆp l¹i nÕu cã nhiÒu dßng d÷ liÖu cã cïng gi¸ trÞ kho¸ - Kh«ng cã index entry øng víi c¸c dßng d÷ liÖu mµ tÊt c¶ c¸c cét kho¸ ®Òu cã gi¸ trÞ NULL - • ¶nh h−ëng cña c¸c DML Operations ®èi víi index: Thao t¸c chÌn d÷ liÖu sÏ t−¬ng øng víi viÖc chÌn thªm mét nót d÷ liÖu vµo c©y. - Xo¸ dßng d÷ liÖu sÏ t−¬ng øng víi viÖc xo¸ vÒ mÆt logic mét index entry - CËp nhËt dßng d÷ liÖu sÏ t−¬ng øng víi viÖc xo¸ index entry øng víi gi¸ trÞ cò vµ thªm míi mét - index entry øng víi gi¸ trÞ míi. • Bitmap Index Lµ mét c¸ch tæ chøc kh¸c cña Index. Mét bitmap index còng ®−îc tæ chøc theo kiÓu B-tree, Nh−ng mçi nót l¸ l¹i chøa mét bitmap (b¶n ®å ¸nh x¹ bit) ®èi víi mçi gi¸ trÞ kho¸ thay v× lµ danh s¸ch c¸c gi¸ trÞ ROWID. Mçi bit trong bitmap t−¬ng øng víi mét ROWID, vµ nÕu bit ®−îc bËt th× ®iÒu ®ã cã nghÜa r»ng dßng d÷ liÖu t−¬ng øng víi ROWID chøa gi¸ trÞ kho¸. CÊu tróc: • Entry header: : chøa sè l−îng c¸c cét vµ c¸c lock information • Gi¸ trÞ kho¸: bao gåm mét cÆp chiÒu dµi vµ gi¸ trÞ øng víi mçi cét H×nh vÏ 8 CÊu tróc Bitmap Index • §¸nh gi¸ viÖc sö dông B-Tree Index vµ Bitmap Index B-tree Bitmap Suitable for high- Suitable for low- cardinality columns cardinality columns Updates on keys Updates on keys relatively relatively expensive §μo t¹o kiÕn tróc vμ qu¶n trÞ ORACLE 8i http://www.ebook.edu.vn Trang 52
- C«ng ty cæ phÇn tμi ng©n - BFC Gi¸o tr×nh kiÕn tróc vμ qu¶n trÞ Oracle 8i inexpensive Inefficient for Efficient for queries queries using OR using OR predicates predicates Useful for OLTP Useful for data warehousing 13.2 Qu¶n lý Index • T¹o index • Sö dông c©u lÖnh: CREATE [ UNIQUE ]INDEX [schema.] index ON [schema.] table (column [ ASC | DESC ] [ , column [ASC | DESC ] ] ...) [ TABLESPACE tablespace ] [ PCTFREE integer ] [ INITRANS integer ] [ MAXTRANS integer ] [ storage-clause ] [ LOGGING| NOLOGGING ] [ NOSORT ] VÝ dô: CREATE INDEX summit.employee_last_name_idx ON summit.employee(last_name) PCTFREE 30 STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50) TABLESPACE indx; • Sö dông Oracle Enterprise Manager Chän Object/Create - Chän ®èi t−îng cÇn t¹o lµ index - §Æt c¸c thuéc tÝnh thÝch hîp trong page General, Storage, Options - BÊm Create ®Ó t¹o index - • T¹o Reverse Key Indexes Có ph¸p: CREATE [ UNIQUE ]INDEX [schema.] index ON [schema.] table (column [ ASC | DESC ] [ , column [ASC | DESC ] ] ...) [ TABLESPACE tablespace ] [ PCTFREE integer ] [ INITRANS integer ] [ MAXTRANS integer ] §μo t¹o kiÕn tróc vμ qu¶n trÞ ORACLE 8i http://www.ebook.edu.vn Trang 53
- C«ng ty cæ phÇn tμi ng©n - BFC Gi¸o tr×nh kiÕn tróc vμ qu¶n trÞ Oracle 8i [ storage-clause ] [ LOGGING| NOLOGGING ] REVERSE VÝ dô: CREATE UNIQUE INDEX summit.orders_id_idx ON summit.orders(id) REVERSE PCTFREE 30 STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50) TABLESPACE indx; • T¹o Bitmap Indexes Sö dông tham sè CREATE_BITMAP_AREA_SIZE ®Ó chØ ra dung l−îng bé nhí cÊp ph¸t cho Bitmap. Có ph¸p: CREATE BITMAP INDEX [schema.] index ON [schema.] table (column [ ASC | DESC ] [ , column [ASC | DESC ] ] ...) [ TABLESPACE tablespace ] [ PCTFREE integer ] [ INITRANS integer ] [ MAXTRANS integer ] [ storage-clause ] [ LOGGING| NOLOGGING ] [ NOSORT ] VÝ dô: CREATE BITMAP INDEX orders_region_id_idx ON summit.orders(region_id) PCTFREE 30 STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50) TABLESPACE indx; • Thay ®æi c¸c th«ng sè cña index §Ó thay ®æi c¸c tÝnh chÊt cña index, sö dông lÖnh ALTER INDEX. • Thay ®æi tham sè l−u tr÷ cña index: Có ph¸p: ALTER INDEX [schema.]index [ storage-clause ] [ INITRANS integer ] [ MAXTRANS integer ] VÝ dô: ALTER INDEX summit.employee_last_name_idx STORAGE(NEXT 400K MAXEXTENTS 100); §μo t¹o kiÕn tróc vμ qu¶n trÞ ORACLE 8i http://www.ebook.edu.vn Trang 54
- C«ng ty cæ phÇn tμi ng©n - BFC Gi¸o tr×nh kiÕn tróc vμ qu¶n trÞ Oracle 8i • CÊp ph¸t/ thu håi kh«ng gian dµnh cho index Có ph¸p: ALTER INDEX [schema.]index {ALLOCATE EXTENT ([SIZE integer [K|M]] [ DATAFILE ‘filename’ ]) | DEALLOCATE UNUSED [KEEP integer [ K|M ] ] } VÝ dô: ALTER INDEX summit.orders_region_id_idx ALLOCATE EXTENT (SIZE 200K DATAFILE ‘/DISK6/indx01.dbf’); ALTER INDEX summit.orders_id_idx DEALLOCATE UNUSED; • X©y dùng l¹i index Có ph¸p: ALTER INDEX [schema.] index REBUILD [ TABLESPACE tablespace ] [ PCTFREE integer ] [ INITRANS integer ] [ MAXTRANS integer ] [ storage-clause ] [ LOGGING| NOLOGGING ] [ REVERSE | NOREVERSE ] VÝ du: ALTER INDEX summit.orders_region_id_idx REBUILD TABLESPACE indx02; ALTER INDEX summit.orders_id_idx REBUILD ONLINE; • Huû bá index • Sö dông c©u lÖnh: DROP INDEX [schema.] index VÝ dô: DROP INDEX summit.deptartment_name_idx; • Sö dông Oracle Enterprise Manager Chän Index muèn huû - Chän Object/remove - BÊm Yes ®Ó huû index - 13.3 Th«ng tin vÒ index Th«ng tin vÒ index ®−îc l−u gi÷ trong c¸c view tõ ®iÓn ®÷ liÖu: DBA_INDEXES, DAB_IND_COLUMNS. §μo t¹o kiÕn tróc vμ qu¶n trÞ ORACLE 8i http://www.ebook.edu.vn Trang 55
- C«ng ty cæ phÇn tμi ng©n - BFC Gi¸o tr×nh kiÕn tróc vμ qu¶n trÞ Oracle 8i VÝ dô: lÊy th«ng tin vÒ c¸c indexes së h÷u bëi SUMMIT SQL> SELECT index_name, tablespace_name, index_type, 2 uniqueness, status 3 FROM dba_indexes 4 WHERE owner=’SUMMIT’; INDEX_NAME TABLESPACE_NAME INDEX_TYPE UNIQUENES STATUS ------------ --------------- ---------- --------- ------ EMPLOYEE_LAST_.. INDX NORMAL NONUNIQUE VALID ORDERS_ID_IDX INDX NORMAL UNIQUE VALID ORDERS_REGION_.. INDX02 BITMAP NONUNIQUE VALID 3 rows selected. 14 Duy tr× toμn vÑn d÷ liÖu (Maintaining data integrity) 14.1 C¸c d¹ng toμn vÑn d÷ liÖu Toµn vÑn d÷ liÖu lµ yªu cÇu ®Çu tiªn cña mét hÖ qu¶n trÞ CSDL. Cã 3 c¸ch ®Ó ®¶m b¶o toµn vÑn CSDL M· nguån - Database trigger - Constraint - Chän c¸ch thøc toµn vÑn d÷ liÖu nµo lµ do ng−êi thiÕt kÕ ch−¬ng tr×nh. Ng−êi qu¶n trÞ chØ kiÓm tra vµ lµm theo c¸c yªu cÇu toµn vÑn sè liÖu ®· ®−îc ®Þnh s·n. M· nguån ®−îc ch¹y t¹i client v× vËy trong phÇn nµy chØ chó ý tíi Database trigger vµ Constraint. • Database trigger: lµ mét ®o¹n ch−¬ng tr×nh PL/SQL thùc hiÖn khi cã c¸c hµnh ®éng insert, update x¶y ra trªn c¸c column cña b¶ng. Database trigger cã thÓ bËt hoÆc t¾t khi cÇn. Database trigger th−êng ®−îc dïng ®Ó ®¶m b¶o c¸c rµng buéc phøc t¹p vÒ mÆt nghiÖp vô. • Constraint lµ kü thuËt ®Ó ®¶m b¶o c¸c rµng buéc cè ®Þnh vÒ mÆt nghiÖp vô, Cã ®Æc ®iÓm: T¨ng kh¶ n¨ng thùc thi - DÔ ®Þnh nghÜa vµ söa ®æi bëi v× nã kh«ng ph¶i lµ nh÷ng ®o¹n m· phøc t¹p - C¸c rµng buéc chÝnh - MÒm dÎo - Cã ®Çy ®ñ th«ng tin trong database dictionary. - Cã c¸c lo¹i constraint sau: NULL/NOT NULL: rµng buéc column trèng hoÆc kh«ng trèng, trong vÝ dô mÖnh ®Ò rµng buéc: - UNIQUE: ChØ ra rµng buéc duy nhÊt, c¸c gi¸ trÞ cña column chØ trong mÖnh ®Ò UNIQUE trong - c¸c row cña table ph¶i cã gi¸ trÞ kh¸c biÖt. Gi¸ trÞ null lµ cho phÐp nªu UNIQUE dùa trªn mét cét. Vd: §μo t¹o kiÕn tróc vμ qu¶n trÞ ORACLE 8i http://www.ebook.edu.vn Trang 56
- C«ng ty cæ phÇn tμi ng©n - BFC Gi¸o tr×nh kiÕn tróc vμ qu¶n trÞ Oracle 8i PRIMARY KEY: ChØ ra rµng buéc duy nhÊt (gièng UNIQUE), tuy nhiªn kho¸ lµ d¹ng kho¸ - UNIQUE cÊp cao nhÊt. Mét table chØ cã thÓ cã mét PRIMARY KEY. C¸c gi¸ trÞ trong PRIMARY KEY ph¶i NOTT NULL. FOREIGN KEY ( Referential ): ChØ ra mèi liªn hÖ rµng buéc tham chiÕu gi÷a table nµy víi - table kh¸c, hoÆc trong chÝnh 1 table. Nã chØ ra mèi liªn hÖ cha-con vµ chØ rµng buéc gi÷a FOREIGN KEY b¶ng nµy víi PRIMARY KEY hoÆc UNIQUE Key cña b¶ng kh¸c. VÝ dô quan hÖ gi÷a DEPT vµ EMP th«ng qua tr−êng DEPTNO. CHECK: Rµng buéc kiÓm tra gi¸ trÞ - 14.2 T¹o c¸c constraint • T¹o constraint cïng víi viÖc t¹o table. • T¹o constraint cïng víi viÖc chØnh söa cÊu tróc b¶ng Có ph¸p nh− sau: • T¹o constraint t¹i møc column column datatype [CONSTRAINT constraint_name] {[NOT] NULL | PRIMARY KEY [USING INDEX index_clause] | UNIQUE [USING INDEX index_clause] | REFERENCES [schema.]table[(column)] [ON DELETE CASCADE] | CHECK (condition) [DISABLE|ENABLE [VALIDATE|NOVALIDATE]] Constraint_name : Tªn Constraint USING INDEX index_clause : x¸c ®Þnh c¸c tham sè cho mÖnh ®Ò INDEX DEFERRABLE : chØ ®Þnh Constraint kiÓm tra t¹i ®iÓm cuèi cña c©u lÖnh DML mÆc ®Þnh lμ NOT DEFERRABLE VÝ dô: CREATE TABLE NHANVIEN ( MA NUMBER(7) CONSTRAINT PK_NV PRIMARY KEY DEFERRABLE USING INDEX STORAGE (INITIAL 100k NEXT 100k) TABLESPACE INDX, TEN VARCHAR2(25) CONSTAINT CK_NAME NOT NULL, MAPHONGBAN NUMBER(7)) TABLESPACE DATA; • T¹o constraint t¹i møc table CONSTRAINT constraint_name {| PRIMARY KEY (column [,column...]) [USING INDEX index_clause] | UNIQUE (column [,column...]) [USING INDEX index_clause] §μo t¹o kiÕn tróc vμ qu¶n trÞ ORACLE 8i http://www.ebook.edu.vn Trang 57
- C«ng ty cæ phÇn tμi ng©n - BFC Gi¸o tr×nh kiÕn tróc vμ qu¶n trÞ Oracle 8i | FOREIGN KEY (column [,column...]) REFERENCES [schema.]table[(column)] [ON DELETE CASCADE] | CHECK (condition)} [DISABLE|ENABLE [VALIDATE|NOVALIDATE]] §Ó qu¶n lý c¸c constraint dïng lÖnh ALTER TABLE. ®Ó cho phÐp hoÆc kh«ng cho phÐp constraint ®ã ho¹t ®éng. Có ph¸p nh− sau: ALTER TABLE [schema.] table ENABLE [VALIDATE] { CONSTRAINT constraint_name |PRIMARY KEY | UNIQUE (COLUMN [,COLUMN]...)} [USING INDEX index_clause] [EXCEPTIONS INTO [scheme.].table]; 14.3 LÊy th«ng tin vÒ c¸c constraint • Th«ng tin vÒ c¸c constraint chøa trong b¶ng DBA_ CONSTRAINTS. • B¶ng EXCEPTIONS ®−îc ORACLE dïng ®Ó l−u c¸c th«ng tin vÒ c¸c lçi rµng buéc • C¸ch dïng b¶ng EXCEPTIONS theo c¸c b−íc sau: NÕu b¶ng EXCEPTIONS ch−a ®−îc t¹o ch¹y file utlexcpt.sql trong th− môc \RDBMS\ADMIN - VÝ dô ®Ó t¹o b¶ng EXCEPTIONS, dïng lÖnh SQL> @%ORACLE_HOME%\RDBMS\ADMIN\utlexcpt; Söa ®æi b¶ng dïng mÖnh ®Ò EXCEPTIONS. - SQL> ALTER TABLE EMP ENABLE VALIDATE CONSTRAINT EMP_DEPT_FK EXCEPTIONS INTO SYSTEM.EXCEPTION; SQL> ora-02298 cannot enable em+_dept_fk X¸c ®Þnh d÷ liÖu lçi ®−îc ®−a vµo b¶ng EXCEPTIONS - select rowid, empno, ename, deptno from emp where rowid in (select row_id from EXCEPTIONs) for update; ROWID EMPNO ENAME DEPTNO --------------------------------------------- AAAeyAADAAAAA1AAA 77 NGUYEN 50 Lµm chuÈn d÷ liÖu lçi - Update emp set id = 7777 where rowid = 'AAAeyAADAAAAA1AAA'; Xo¸ th«ng tin vÒ d÷ liÖu lçi trong b¶ng EXCEPTIONS - TRUNCATE TABLE EXCEPTIONS; ALTER TABLE EMP ENABLE VALIDATE CONSTRAINT EMP_DEPT_FK §μo t¹o kiÕn tróc vμ qu¶n trÞ ORACLE 8i http://www.ebook.edu.vn Trang 58
- C«ng ty cæ phÇn tμi ng©n - BFC Gi¸o tr×nh kiÕn tróc vμ qu¶n trÞ Oracle 8i EXCEPTIONS INTO SYSTEM.EXCEPTION; 15 N¹p d÷ liÖu Lµ c¸ch thøc chuyÓn d÷ liÖu tõ bªn ngoµi hoÆc bªn trong CSDL vµo c¸c b¶ng (tables) cña CSDL. Oracle cung cÊp nhiÒu ph−¬ng ph¸p ®Ó thùc hiÖn viÖc n¹p d÷ liÖu vµo trong c¸c b¶ng. C¸c ph−¬ng ph¸p th−êng dïng cã thÓ kÓ ®Õn lµ: N¹p d÷ liÖu trùc tiÕp - Sö dông c«ng cô SQL* Loader - Sö dông c«ng cô Export vµ Import - 15.1 N¹p d÷ liÖu trùc tiÕp N¹p d÷ liÖu trùc tiÕp cã thÓ ®−îc sö dông ®Ó sao chÐp d÷ liÖu tõ mét b¶ng ( table) nµy tíi b¶ng kh¸c trong cïng mét CSDL. Nã gia t¨ng hiÖu qu¶ cña c¸c thao t¸c n¹p d÷ liÖu b»ng c¸ch bá qua c¸c bé ®Öm vµ viÕt trùc tiÕp vµo trong datafile. Có ph¸p cña lÖnh nh− sau: INSERT /* APPEND * / INTO [schema.] table [[ NO] LOGGING] sub-query; Trong ®ã: schema: Lµ tªn cña ng−êi chñ cña b¶ng - table: Lµ tªn cña b¶ng - sub-query: lµ c©u lÖnh ®−îc sö dông ®Ó lÊy th«ng tin yªu cÇu ®Ó thùc hiÖn lÖnh n¹p d÷ liÖu - LOGGING vµ NOLOGGING: Tuú chän LOGGING ( NgÇm ®Þnh) cho phÐp sinh ra c¸c thùc thÓ - t−¬ng øng trong redo log trong qu¸ tr×nh n¹p d÷ liÖu, nh»m môc ®Ých kh«i phôc l¹i tr¹ng th¸i d÷ liÖu tr−íc ®ã trong tr−êng hîp n¹p d÷ liÖu cã sù cè. NOLOGGING kh«ng sinh ra c¸c b¶n ghi trong redo log, nªn trong tr−êng hîp cã sù cè kh«ng thÓ quay trë l¹i tr¹ng th¸i d÷ liÖu tr−íc ®ã VÝ dô: INSERT INTO scott.emp NOLOGGING SELECT * FROM Scott.old_emp; 15.2 Sö dông c«ng cô SQL* Loader SQL* Loader lµ tiÖn Ých ®−îc sö dông ®Ó n¹p d÷ liÖu tõ mét file bªn ngoµi vµo trong CSDL Oracle. §©y còng lµ c«ng cô rÊt m¹nh vµ th−êng ®−îc sö dông ®Ó chuyÓn d÷ liÖu tõ mét hÖ thèng kh¸c sang c¬ së d÷ liÖu Oracle. SQL* Loader cã thÓ cho phÐp: • Cã thÓ sö dông mét ho¹ch nhiÒu file ®Çu vµo • Cã thÓ kÕt hîp nhiÒu b¶n ghi trong mét b¶n ghi logic trong qu¸ tr×nh n¹p d÷ liÖu • C¸c tr−êng ®Çu vµo cã thÓ cã chiÒu dµi x¸c ®Þnh hoÆc thay ®æi §μo t¹o kiÕn tróc vμ qu¶n trÞ ORACLE 8i http://www.ebook.edu.vn Trang 59
- C«ng ty cæ phÇn tμi ng©n - BFC Gi¸o tr×nh kiÕn tróc vμ qu¶n trÞ Oracle 8i • D÷ liÖu vµo cã thÓ ë bÊt kú d¹ng g×: character, binary, date ... • D÷ liÖu cã thÓ n¹p tõ nhiÒu thiÕt bÞ l−u tr÷ kh¸c nhau: nh− ®Üa cøng, ®Üa mÒm, b¨ng tõ ... • D÷ liÖu cã thÓ n¹p vµo trßng nhiÒu b¶ng cïng llóc trong mét lÇn ch¹y • Cã c¸c tuú chän cho phÐp thªm d÷ liÖu hoÆc thay thÕ d÷ liÖu ®ang cã trong b¶ng • Cã thÓ thùc hiÖn n¹p trùc tiÕp d÷ liÖu vµo b¶ng kh«ng cÇn qua c¸c bé ®Öm ... 15.2.1 C¸c file ®−îc sö dông bëi SQL* Loader Trong qu¸ tr×nh n¹p d÷ liÖu, SQL* Loader th−êng sö dông hoÆc sinh ra c¸c file nh− sau: • Control file: X¸c ®Þnh khu«ng d¹ng ®Çu vµo, b¶ng ®Çu ra vµ c¸c ®iÒu kiÖn tuú chän mµ cã thÓ ®−îc sö dông ®Ó n¹p chØ nh÷ng b¶n ghi phï hîp t×m thÊy trong file d÷ liÖu ®Çu vµo. • Data files: Cã chøa d÷ liÖu víi khuuong d¹ng ®Þnh nghÜa trong Control file • Parameter files: Lµ file tuú chän mµ cã thÓ ®−îc sö dông ®Ó ®Þnh nghÜa c¸c biÕn cña c¸c dßng lÖnh n¹p d÷ liÖu • Log files: ®−îc t¹o bëi SQL* Loader vµ cã chøa b¶n ghi ®−îc n¹p • Bad file: Cã chøa c¸c b¶n ghi bÞ lo¹i trong qu¸ tr×nh n¹p ( vÝ dô c¸c b¶n ghi cã khu«ng d¹ng kh«ng phó hîp) • Discard file: Cã chøa tÊt c¶ c¸c b¶n ghi kh«ng phï hîp víi ®iÒu kiÖn lùa chän ®Ó n¹p 15.2.2 C¸c Ph−¬ng ph¸p n¹p d÷ liÖu b»ng SQL loader. Ph−¬ng ph¸p th«ng th−êng: X©y dùng mét d·y c¸c hµng ( rows) vµ sö lÖnh SQL INSERT ®Ó n¹p d÷ liÖu. Theo c¸ch nµy c¸c b¶n ghi ®Çu vµo ®−îc ph©n tÝch trªn c¬ së c¸c ®Æc ®iÓm cña c¸c tr−êng vµ mét m¶ng c¸c b¶n ghi ®−îc t¹o ra ®−îc chÌn vµo b¶ng chØ ®Þnh trong control file. C¸c b¶n ghi mµ kh«ng phï hîp víi tÝnh chÊt cña tr−ëng sÏ bÞ lo¹i bá . ViÖc sinh ra redo log ®−îc kiÓm so¸t bëi thuéc tÝnh Logging. Ph−¬ng ph¸p trùc tiÕp: X©y dùng c¸c khèi d÷ liÖu ( blocks) trong bé nhí vµ sau ®ã ghi trùc tiÕp vµo vïng ®−îc x¸c ®Þnh cho b¶ng sÏ ®−îc n¹p d÷ liÖu. Redo log kh«ng ®−îc t¹o ra trõ phi CSDL ®ang trong Archivelog mode. Ph−¬ng ph¸p trùc tiÕp sö dông c¸c ®Æc tÝnh cña tr−êng ®Ó x©y dùng toµn bé c¸c khèi (blocks) d÷ liÖu vµ viÕt trùc tiÕp c¸c block d÷ liÖu vµo Oracle data file. N¹p trùc tiÕp bá qua c¸c bé ®Öm CSDL vµ chØ truy nhËp SGA nªn nã cho phÐp nhanh h¬n ph−¬ng ph¸p th«ng th−êng nh−ng nã l¹i kh«ng thÓ sö dông trong mäi tr−êng hîp. Sau ®©y lµ b¶ng so s¸nh c¸c sù kh¸c nhau gi÷a ph−¬ng ph¸p th«ng th−êng vµ ph−¬ng ph¸p trùc tiÕp Ph−¬ng ph¸p th«ng th−êng Ph−¬ng ph¸p trùc tiÕp Sö dông lÖnh COMMIT ®Ó t¹o ra thay ®æi d÷ liÖu Sö dông l−u d÷ liÖu ( data saves) mét c¸ch cè ®Þnh C¸c môc Redo log lu«n lu«n ®−îc t¹o ra ChØ t¹o ra redo d−íi c¸c ®iÒu kiÖn x¸c ®Þnh Tu©n theo tÊt c¶ c¸c Constraint ChØ tu©n theo c¸c Constrain Primary key, UNIQUE, NOT NULL §μo t¹o kiÕn tróc vμ qu¶n trÞ ORACLE 8i http://www.ebook.edu.vn Trang 60
- C«ng ty cæ phÇn tμi ng©n - BFC Gi¸o tr×nh kiÕn tróc vμ qu¶n trÞ Oracle 8i Trigger INSERT ®−îc bËt Trigger INSERT kh«ng bËt Cã thÓ n¹p d÷ liÖu vµo trong mét nhãm b¶ng kh«ng thÓ n¹p d÷ liÖu vµo trong mét nhãm b¶ng C¸c user kh¸c cã thÓ thùc hiÖn c¸c thay ®æi trªn C¸c user kh¸c kh«ng thÓ t¹o ra c¸c thay ®æi trªn c¸c b¶ng nµy c¸c b¶ng nµy 15.2.3 C¸ch sö dông SQL*Loader C¸c b−íc sö dông SQL*Loader. 1. T¹o file nguån cho viÖc nhËp d÷ liÖu. 2. T¹o file ®iÒu khiÓn. 3. Thùc hiÖn c¸c qu¸ tr×nh load d÷ liÖu. 4. KiÓm tra kÕt qu¶. • T¹o mét file nguån cho viÖc nhËp d÷ liÖu(file d÷ liÖu) lµ viÖc cung cÊp c¸c d÷ liÖu dïng cho viÖc nhËp. • T¹o mét file ®iÒu khiÓn lµ viÖc t¹o mét file ®iÒu khiÓn ®Ó cung cÊp cho SQL*Loader nh÷ng tth«ng tin sau: Tªn, vÞ trÝ cña file d÷ liÖu. - ¸nh x¹ c¸c d÷ liÖu nhËp vµo c¸c cét cña table t−¬ng øng. - §Æc t¶ ®iÒu kiÖn cho viÖc n¹p d÷ liÖu vµ khu«n d¹ng d÷ liÖu cho c¸c cét table. - Có ph¸p cña viÖc t¹o file ®iÒu khiÓn ®iÓn h×nh nh− sau: LOAD DATA INFILE filename INTO TABLE table_name ( field_name1 POSITION(start:end) CHAR field_name2 POSITION(start:end) CHAR) VÝ dô: /*tªn file lμ CASE1.CTL*/ LOAD DATA INFILE 'EMP_DEFT.DAT' INSERT INTO TABLE EMP ( EMP_ID SEQUENCE(MAX,1), F_NAME POSITION (01:35) CHAR, L_NAME POSITION (36,75) CHAR, START_DATE SYSDATE ) Cã 1 sè l−îng lín to¸n tö SQL cã thÓ dïng cho file ®iÒu khiÓn. Trong SQL cã thÓ dïng bÊt cø biÓu thøc SQL nµo. -Job_title POSITION (34:55) CHAR "UPPER(:job_title)" -field1 DATE 'mm-dd-yyy' "RTRIM(:field1)" • Thùc hiÖn c¸c qu¸ tr×nh n¹p d÷ liÖu §μo t¹o kiÕn tróc vμ qu¶n trÞ ORACLE 8i http://www.ebook.edu.vn Trang 61
- C«ng ty cæ phÇn tμi ng©n - BFC Gi¸o tr×nh kiÕn tróc vμ qu¶n trÞ Oracle 8i >SQLLDR username/password CONTROL= control_filename LOG = logfile [keyword= value...] Trong ®ã USERID: Tªn vμ mËt khÈu cña user sÏ n¹p d÷ liÖu vμo. CONTROL: tªn control file (.ctl) LOG: Tªn log file (.log) BAD: Tªn bad file (.bad) DATA: lμ file d÷ liÖu ®Çu vμo DISCARD: lμ file chøa c¸c b¶n ghi kh«ng ®−îc ®−a vμo CSDL. DISCARDMAX: Sè lín nhÊt c¸c b¶n ghi DISCARD SKIP: Sè b¶n ghi bÞ bá qua khi n¹p sè liÖu LOAD: Sè b¶n ghi ®−îc n¹p sau khi bá qua ERRORS: Sè tèi ®a c¸c b¶n ghi bÞ lçi cho phÐp ROWS: Sè row ®−a vμo vïng ®Öm tr−íc khi n¹p sè liÖu DIRECT: X¸c ®Þnh ph−¬ng ph¸p trùc tiÕp (TRUE) hoÆc th«ng th−êng VÝ dô: >SQLLDR scott/tiger CONTROL= case1.ctl LOG = case1.log direct=true • KiÓm tra kÕt qu¶: Khi mét SQL*Loader thùc thi th× sÏ xuÊt ra 3 file out put file sau: Log file. - Bad record file. - Discard file. - • C¸c quyÒn h¹n cÇn cã khi sö dông SQL*Loader: Cã quyÒn INSERT trªn table. - QuyÒn delete table, cÇn thiÕt cho viÖc xãa rçng table råi load file. - 15.3 Tæ chøc l¹i d÷ liÖu Import vµ Export lµ dïng ®Ó di chuyÓn d÷ liÖu vµo hoÆc ra khái c¬ së d÷ liÖu cña Oracle. Export t¹o mét b¶n copy cña tÊt c¶ c¸c ®èi t−îng cña table (table object) vµ ghi nã vµo file ngoµi. Import dùa vµo file Export ®−a d÷ liÖu trë l¹i c¬ së d÷ liÖu. Ng−ßi ta th−êng sö dông c«ng cô nµy trong mét sè tr−êng hîp sau: • Dïng ®Ó l−u tr÷ d÷ liÖu. • N©ng cÊp vµo phiªn b¶n míi cña Oracle( chuyÓn d÷ liÖu tõ version cò sang version míi). • Xãa tÊt c¶ c¸c tablespace. • N©ng cao hiÖu suÊt cña c¬ së d÷ liÖu nhê viÖc gi¶m kh¶ n¨ng ph©n m¶nh d÷ liÖu l−u tr÷. 15.3.1 Export: Export cã 3 chÕ ®é Table mode, User mode, Database Mode . §μo t¹o kiÕn tróc vμ qu¶n trÞ ORACLE 8i http://www.ebook.edu.vn Trang 62
- C«ng ty cæ phÇn tμi ng©n - BFC Gi¸o tr×nh kiÕn tróc vμ qu¶n trÞ Oracle 8i • Table mode: Dïng ®Ó export c¸c ®èi t−îng b¶ng. Chóng ta cã thÓ Export c¸c ®èi t−îng sau: Table data, Table definitions, Owner's table grant, constraints, triggers, Indexes vµ x¸c ®Þnh ph−¬ng thøc sö dông lÖnh import. • User mode: Dïng ®Ó export toµn bé ®èi t−îng trong user. Chóng ta cã thÓ export mét tËp c¸c ®èi t−îng sau nh− trong chÕ ®é table mode View, Snapshot, Snapshot log, Cluster, Database link, Sequences, Private synonyms, Stored procedure. NÕu User cã quyÒn Export bÊt kú user nµo,trong mode nµy sÏ export toµn bé c¸c ®èi t−îng cña user ®ã ®ång thêi c¸c index vµ trigger do user kh¸c t¹o ra trong user’s table. Ng−îc l¹i sÏ chØ export c¸c ®èi t−îng riªng cso cña user. • Full Database Mode: Dïng ®Ó export toµn bé ®èi t−îng trong database trõ c¸c ®èi t−îng trong user SYS. Thùc hiÖn viÖc nµy cÇn ph¶i cã mét sè quyÒn ®Æc biÖt. §Ó thùc hiÖn 3 mode trªn, user cÇn cã quyÒn EXP_FULL_DATABASE. Có ph¸p lÖnh Export: Exp [KEYWORD=] {value|(value1,value2,...,valueN) } [ [ [ . ] KEYWORD=] {value|(value1,value2,...,valueN) } ] ... Mét sè tham sè cña lÖnh lÖnh Exp • Buffer KÝch th−íc cña vïng ®Öm d÷ liÖu • File Tªn file ®−îc ®−a ra • Grants ChØ ra r»ng cã export c¸c grants hay kh«ng • Compress ChØ ra r»ng d÷ liÖu cã nÐn l¹i hay kh«ng • Owner Tªn cña ®èi t−îng sÏ ®−îc export VÝ dô: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR) 15.3.2 Import: ChØ cã thÓ ®äc c¸c file ®−îc t¹o bëi export. §Ó thùc hiÖn ®−îc lÖnh nµy ®ßi hái b¹n ph¶i cã mét sè quyÒn t−¬ng øng. B¹n cã thÓ Import table, Grants, Object, Procedures, Functions vµ packages. Có ph¸p lÖnh Import: Imp [KEYWORD=] {value|(value1,value2,...,valueN) } [ [ [ . ] KEYWORD=] {value|(value1,value2,...,valueN) } ] ... Mét sè tham sè lÖnh (Imp) • Fromuser Tªn owner user t−¬ng øng víi owner trong lÖnh exp • Touser Tªn user ®−îc import • Charset ChØ character set cña export file • Buffer KÝch th−íc cña vïng ®Öm d÷ liÖu • File Tªn file ®−îc ®−a vµo. • Grants ChØ ra r»ng cã import cã kÌm theo grants hay kh«ng VÝ dô: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N §μo t¹o kiÕn tróc vμ qu¶n trÞ ORACLE 8i http://www.ebook.edu.vn Trang 63
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Đào tạo Oracle cơ bản - Giáo trình SQL và PL/SQL
78 p | 546 | 244
-
Khóa Hàm Thụ Visual Basic 6.0_Chương 13
10 p | 144 | 52
-
Đào tạo Oracle cơ bản - Giáo trình kiến trúc và quản trị Oracle 8i - Phần 2
11 p | 185 | 35
-
Đào tạo Oracle cơ bản - Giáo trình kiến trúc và quản trị Oracle 8i - Phần 6
14 p | 140 | 31
-
Đào tạo Oracle cơ bản - Giáo trình kiến trúc và quản trị Oracle 8i - Phần 3
14 p | 131 | 26
-
Đào tạo Oracle cơ bản - Giáo trình kiến trúc và quản trị Oracle 8i - Phần 1
15 p | 85 | 20
-
Đào tạo Oracle cơ bản - Giáo trình kiến trúc và quản trị Oracle 8i - Phần 4
12 p | 119 | 18
-
Đào tạo cơ bản về Oracle8i (A76965-01) - Phần 3
12 p | 68 | 11
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn