코딩 공부/DB

[DB] 데이터베이스 객체

희원96 2022. 4. 8. 16:50

데이터베이스 객체

시퀀스 

-고유 번호를 자동으로 생성합니다.

-공유 가능한 객체입니다.

-일반적으로 기본 키 값을 생성하는 데 사용됩니다.

-응용프로그램 코드를 대체합니다.

-시퀀스 값을 메모리에 캐시하면 액세스 효율이 높아 집니다.

 

CREATE SEQUENCE문 구문

 

시퀀스가 하나의 테이블에 전적으로 연결되어 있는것이 아니다, 일반적으로 시퀀스는 용도에 따라 이름을

정하게 되지만 일므과 상관없이 어디서나 사용할 수 있다.

 

NEXTVAL 및 CURRBAL 의사 열

-NEXTVAL은 사용 가능한 다음 시퀀스 값을 반환하며, 참조될 때마다 고유한 값을 반환한다.

-CURRBAL은 현재 시퀀스 값을 반환한다.

-CURRBAL이 값을 포함하려면 먼저 해당 시퀀스에 대해 NEXTVAL이 실행되어야 한다.

 

시퀀스 사용 

-시퀀스 값을 메모리에 캐시하면 해당 값을 더 빠르게 액세스 할 수 있다.

-다음과 같은 경우 시퀀스 값 사이에 공백(gap)이 생깁니다.

=>롤백이 발생하는 경우

=>시스템이 고장난 경우

=>시퀀스가 다른 테이블에서 사용되는 경우

-시퀀스는 값을 추출해주는 역할만 한다, 그래서 테이블 데이터에 영향을 주지 않는다.

 

시퀀스 수정 (ALTER)

-증분 값, 최대값, 최소값. CYCLE 옵션 또는 CACHE옵션을 변경합니다.

-시퀀스 소유자이거나 시퀀스에 대한 ALTER권한이 있어야한다.

-이 후 시퀀스 번호에만 영향을 줍니다.

-시퀀스를 다른 벌호로 다시 시작하려면 시퀀스를 삭제한 후 다시 생성해야 합니다.

-일부 검증이 수행된다.

 

시퀀스 제거 (DROP)

-DROP SEQUENCE문을 사용하여 데이터 딕셔너리에서 시퀀스를 제거한다.

-제거된 시퀀스는 더 이상 참조할 수 없다.

 

인덱스

- 스키마 객체입니다.

- Oracle server에서 포인터를 사용하여 행 검색 속도를 높이기 위해 사용한다.

- 데이터 위치를 빠르게 찾는 신속한 경로 액세스 방법을 사용하여 디스크 I/O를 줄여 줍니다.

- 인덱스화된 테이블과 독립되어 존재한다.

- Oracle server에 의해 사용되며 자동으로 유지 관리된다.

 

동의어

-동의어(객체의 다른 이름)를 생성하여 객체 액세스를 단순화합니다.

-다른 사용자가 소유한 테이블을 쉽게 참조한다.

-긴 객체 이름을 짧게 만든다.