Oracle/Admin2009. 11. 30. 10:36
● 개요

  - 스키마란 무엇인가?
  - 데이터 타입은 무엇이고, 종류는 어떤 것들이 있는가?
  - 테이블의 생성과 수정은 어떻게 하는가?
  - 제약을 정의하는 방법은?
  - 컬럼과 테이블의 내용을 보자

  - 인덱스는 어떻게 생성하는가?
  - 뷰는 어떻게 생성하는가?
  - 시퀀스는 어떻게 생성하는가?
  - 템프테이블은 어떻게 사용하는가?
  - 데이터 딕셔너리를 사용할 수 있다.


● 스키마
  - 특정한 유저가 소유한 데이터베이스 객체의 집단.
  - 유저를 만들면 같은 이름의 스키마가 생성.
  - sys, system 스키마
  - hr, oe, pm, sh 등의 sample스키마가 있다.

● 데이터 타입
  ◎ 테이블 내의 데이터 타입
      ○ CHAR(size [BYTE|CHAR]
          : 기본은 BYTE, 예) CHAR(10)인 경우, 10byte, 영어 10자리, 한글 5자리
            CHAR[size CHAR]로 표현가능
      ○ VARCHAR2
      ○ DATE
      ○ NUMBER(p, s)
      ○ BINARY_FLOAT : 10g부터 나옴
      ○ BINARY_DOUBLE
      ○ FLOAT
      ○ INTEGER
      ○ NCHAR(length)
      ○ NVARCHAR2(size [BYTE|CHAR])
      ○ LONG
      ○ LONG RAW
      ○ RAW(size)
      ○ ROWID
      ○ UROWID
      ○ BLOB
      ○ CLOB
      ○ NCLOB
      ○ BFILE
      ○ TIMESTAMP

● 테이블의 생성과 수정
  ◎ EM을 이용한 테이블의 생성과 수정을 알아본다.
     - database instance > tables > create table

● 제약
  ◎ 제약의 종류
     ○ NOT NULL
     ○ UNIQUE Key
     ○ PRIMARY KEY
     ○ FOREIGN KEY
     ○ Check
     ○ type
         - immediate
         - deferrable : 지연가능(commit시에 제약을 검사한다.)
     ○ status
         - disable novalidate
         - disable validate     : 테이블에 insert를 금지할 수 있는 효과
         - enable novalidate   : 여기에 한번 거쳐서 enable validate로 갈 것
         - enable validate

예)

SQL> drop table t1 purge;
SQL> create index t1_col1_idx on t1(col1);
SQL> alter table add constraint t1_col1_pk primary key
SQL> create table t1 (col1 number)
SQL> alter table add constraint t1_col1_pk primary key enable
SQL> insert into t1 values (1);
SQL> insert into t1 values (2);
SQL> insert into t1 values (3);
SQL> commit;
SQL> select * from t1;

      COL1
----------
         1
         2
         3
SQL> insert into t1 values (3);          --> 에러
SQL> alter table t1 disable constraint t1_col1_pk;   --> 제약 해제
SQL> insert into t1 values (3);          --> 성공
SQL> insert into t1 values (3);          --> 성공
SQL> commit;
SQL> select * from t1;

      COL1
----------
         1
         2
         3
         3
         3

SQL> alter table t1 enable constraint t1_col1_pk;                --> 제약을 enable validate로 변경하려고 하지만 에러!!!
SQL> alter table t1 enable novalidate constraint t1_col1_pk
SQL> insert into t1 values (3);                                -- ORA-00001: unique constraint (PHIL.T1_COL1_PK) violated

     ※ exceptions 테이블을 이용한 제약 활성화
         : @?/rdbms/admin/utlexcpt.sql 실행  -> exceptions테이블의 생성.
           문제가 있는 데이터의 rowid가 보관됨

SQL> alter table t1 enable validate constraint t1_col1_pk EXCEPTIONS INTO phil.exceptions;
SQL> set lines 200
SQL> select * from exceptions;
SQL> select * from t1, t1.* from t1
         where rowid in (select row_id from exceptions);

  ROWID                    COL1
  ------------------ ----------
  AAACxtAAGAAAALYAAC          3
  AAACxtAAGAAAALYAAD          3
  AAACxtAAGAAAALYAAE          3

SQL> update t1 set col1=13 where rowid='AAACxtAAGAAAALYAAD';
SQL> update t1 set col1=23 where rowid='AAACxtAAGAAAALYAAE';

SQL> alter table t1 enable validate constraint t1_col1_pk EXCEPTIONS INTO phil.exceptions;


  ◎ EM을 이용해 제약을 정의하는 방법
     - database instance > tables > create table

  ◎ SQL로 제약을 정의하는 방법

SQL> alter table e1 add constraint e1_empno_pk  primary key (empno);
SQL> alter table e1 add constraint e1_sal_ck    check (sal >= 0);
SQL> alter table e1 add constraint e1_hphone_uk unique (hphone);
SQL> alter table e1 add constraint e1_deptno_fk foreign key(deptno) references d1(deptno);
SQL> alter table e1 modify(ename constraint e1_ename_nn not null);


● 테이블 (table)
  ◎ DROP TABLE
     - 공간 할당은 반환되지 않음
     - EM에서 실습하기
       : database instance > tables -> delete with options 버튼 클릭 
        -> Delete the table definition, all its data, and dependent objects (DROP)선택 ->yes버튼 클릭
 
  ◎ TRUNCATE TABLE
     - 최초 테이블을 만든 상태와 같이 된다. 최초 할당받은 extent만 남음
     - EM에서 실습하기
       : database instance > tables -> delete with options 버튼 클릭 ->
         -> Delete only the data with no Rollback support (TRUNCATE) -> yes버튼 클릭


기타참고사항

관련 내용 : 오라클 교재 Administration Workshop I 7장
INDEX 크기관련 동영상 : 1. index 크기관련 part1
                                   2. index 크기관련 part2
                                   3. index 크기관련 part3
INDEX SPLIT 관련 동영상 : 1. index split part1
                                      2. index split part2
                                      3. index split part3

'Oracle > Admin' 카테고리의 다른 글

Managing Schema Objects-2  (0) 2009.12.02
Managing Data and Concurrency (주요내용 : Lock)  (0) 2009.12.01
Administering User Security  (0) 2009.11.27
2009년 11월 26일 수업내용  (0) 2009.11.26
2009년 11월 25일 수업내용  (0) 2009.11.25
Posted by 자수성가한 부자