OBJECT
OBJECT 종류와 기능
1. 테이블 : 행과 열의 조합으로 구성된 기본 저장단위
2. 시퀀스 : 자동으로 고유한 숫자값을 생성, 주로 기본키 값을 생성하기 위해 사용
3.인덱스 : 쿼리 속도를 향상시키는데 사용
4. 뷰 : 논리적이고 가상적인 테이블
5. 시노님 : OBJECT에 대한 또다른 이름으로 ALIAS역할
6. 프로그램 유닛 : SQL, PL/SQL문으로 작성한 Procedure, Function, Trigger, Package
시퀀스(Sequence)
- 자동으로 Unique number를 생성 (GAP 발생가능)
- 공유가능한 Object
- 일반적으로 PK값 생성을 위해서 사용
시퀀스 생성방법
CREATE SEQUENCE 이름
[ INCREMENT BY n] --시퀀스 번호 간의 간격 , 생략 = 1
[START WITH n] --생성되는 첫번째 시퀀스번호, 생략= 1
[MAXVALUE n | NOMAXVALUE] --생성가능한 시퀀스 최대값 , NOMAXVALUE는 10^27
[MINVALUE n | NOMINVALUE] -- 생성가능한 시퀀스 최소값, NOMINVALUE는 1
[CYCLE n | NOCYCLE] --
[CACHE n | NOCACHE]
시퀀스 생성 및 시퀀스로 INSERT
-NEXTVAL : Sequence가 1개 증가된다.
-CURRVAL : 현재 Sequence 값을 보여준다.
인덱스(Index)
- 테이블의 데이터를 빠르게 검색하기 위해 사용되는 Object이다.
- 최적화에 따라 Index를 사용할지, 하지 않을지 결정한다.
→ Optimizer가 판단한다. 또는 HINT로 INDEX를 사용할지 정해줄 수 있다.
- 인덱스는 자동으로 생성되기도 하고, 사용자가 필요에 의해 만들수도있다.
- 인덱스는 Binary Tree 구조로 수행속도가 빠르다,
단, 삽입과 삭제가 일어날 때마다 트리구조를 새로 갱신해야된다.
인덱스의 구조
B*Tree구조를 이용. (이진트리)
인덱스는 테이블의 각 행에 대응하는 구조(RowID)와 인덱스 컬럼값으로 구성
→ 데이터를 저장하는 것이 아닌 RowId를 저장해서 RowId를 보고 데이터를 찾는다.
→ RowID : 데이터가 저장된 주소
B*tree의 특징
어떤 행에 대한 엑세스 횟수도 동일하게 하는 이진균형탐색 구조
행이 테이블의 시작,중간,끝에 있어도 거의 같은 횟수내에 지정된 값을 엑세스하는 방법
Oracle에서 제공하는 최적화방법
1) 규칙기준 : 내부적인 규칙에 근거하여 적절한 익덱스를 선정해 사용하는 방식
2) 비용기준 : 통계정보를 분석하여 가장 비용이 적게드는 방식으로 결정
인덱스의 생성 및 삭제 예제
CREATE INDEX 인덱스명
ON 테이블명(컬럼 , 컬럼 , ....)
인덱스를 생성해야 할 경우
- 조건절이나 JOIN조건에서 컬럼을 자주 이용할때
- 컬럼이 넓은 범위 값
- 많은 NULL값을 갖는 컬럼일 경우
VIEW
- 다른 뷰를 기초로 한 가상의 테이블 (읽기가 목적 - READ ONLY)
- 데이터베이스에 대한 엑세스를 제한한다.(보안상의 이유)
- 복잡한 SQL문을 통해 얻을 수 있는 결과를 간단한 SQL문을 써서 구할 수 있게 된다.
→ JOIN한 것을 뷰로 만들어서 제공가능하다.
VIEW의 생성
CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW 이름 [ALIAS ,,,] AS SubQuery.. [WITH CHEACK OPTION [CONSTRAINT 제약조건] ] [WITH READ ONLY];
생성된 VIEW
- 생성된 뷰에서 볼 수 있듯이 JOIN방법을 몰라도 JOIN한것처럼 뷰를 통해 볼 수 있다.
뷰 생성권한 부여
'Database' 카테고리의 다른 글
오라클 데이터베이스 설치방법(2) - SQL Developer 다운로드 (0) | 2018.07.21 |
---|---|
오라클 데이터베이스 설치방법(1) - Oracle xe 다운로드 (0) | 2018.07.10 |
DDL명령어 - 데이터 구조 변경 (0) | 2018.05.22 |
DICTIONARY (0) | 2018.05.22 |
CONSTRAINT (0) | 2018.05.22 |