학습자료(~2017)/오라클

12. 오라클 - SEQUENCE & SYNNYM

단세포소년 2011. 3. 16. 19:52
반응형


Sequence : 자동적으로 순차적인 번호를 생성하고자 하는 때 사용, 기본 키를 생성할 때 주로 사용, Table 에 종속적이지 않으며 여러사용자에 의해 공유, 메모리에 캐시형태로 존재하면 Access 효율성을 높일 수 있다.


SEQUENCE 생선, 변경, 제거
생성 : CREATE SEQUENCE empno_seq INCREMENT BY 1 START WITH 1000 MAXVALUE 9999 NOCYCLE CACHE 10;
변경 : ALTER SEQUENCE empno_seq CYCLE CACHE 20;
삭제 : DROP SEQUENCE empno_seq;

사용 : SEQUENCE_NAME.NEXTVAL  // 다음 숫자
         SEQUENCE_NAME.CURRVAL  // 현재 숫자 
예) empno_seq.NEXTVAL 

** SEQUENCE의 값 사이에는 GAP이 발생가능
   - ROLLBACK, SYSTEM CRASH, 동일한 SEQUENCE가 다른 테이블에서 사용


SEQUENCE의 장점
. 과거 SELECT MAX(empno)+1 FROM emp;  사용
. 전통적 방식보다 오버헤드가 적다.
. Application 코드를 단순화 시킴


SEQUENCE 제약사항
. Sub Query가 아닌 SELECT LIST 에서 사용가능
. INSERT 문장에서 SELECT LIST에서 사용가능
. INSERT 문장의 Values Clause 에서 사용가능
. UPDATE 문장의 Set Clause 에서 사용가능
. DISTINCT 혹은 UNIQUE 를 사용한 SELECT 에서 사용불가
. GROUP BY, HAVING, ORDER BY를 사용한 SELECT에서 사용불가
. VIEW의 SELECT LIST 에서 사용불가
. TABLE에서의 DEFAULT 표현식에서 사용불가


SEQUENCE 관련 DICTIONARY
 - > user_sequences





SYNONYM = 동의어
. 객체 이름을 단순화 시켜주는 객체이다.
. TABLE, VIEW , PRECEDURE, TRIGGER 등 객체에 대한 다른 이름을 제공
. 사용자에게 위치 투명성 제공
. 원격지 테이블을 짧게 할수 있다.

생성 : CREATE SYNONYM e FOR [tablename, viewname, objectname];
삭제 : DROP SYNONYM e ;


SYNONYM 관련 DICTIONARY
 - > user_synonyms
       
반응형