SQL Object의 종류

Object의 종류 및 기능

테이블 : 행과 열의 조합으로 구성된 데이터의 기본 저장 단위.

시퀀스 : 자동으로 고유한 숫자값을 생성해주며 주로 기본 키 값을 생성하기 위해 사용.

인덱스 : 쿼리 속도를 향상.

뷰 : 하나 또는 그 이상의 테이블로부터 논리적으로 데이터를 추출한 부분집합으로 논리적이고 가상적인 테이블

시노님 : Object에 대한 또다른 이름으로 ALIAS역할

프로그램 유닛 : SQL, PL/SQL문으로 작성한 Procedure, Function, Trigger, Package

 

SEQUENCE란?

자동으로 Unique number를 생성

공유가능한 Object

일반적으로 Primary Key값 생성을 위해 사용

 

CREATE SEQUENCE 이름

[INCREMENT BY n]

[START WITH n]

[{MAXVALUE n | NOMAXVALUE }]

[{MINVALUE n | NOMINVALUE}]

[{CYCLE | NOCYCLE}]

[{CACHE | NOCACHE}]

 

사용법 :

NEXTVAL, CURRVAL 의사 컬럼의 사용

NEXTVAL은 사용 가능한 다음 SEQUENCE값을 반환한다.

NEXTVAL은 다른 사용자에 의해 참조되더라도 매번 고유한 값을 반환한다.

CURRVAL은 현재 SEQUENCE 값을 포함한다.

CURRVAL은 반드시 NEXTVAL사용 후에 참조되어야 한다.

 

인덱스의 개념

테이블의 데이터를 좀더 빠르게 검색하기 위해 사용하는 데이터베이스 Object이다.
오라클서버가 최적화 방법에 따라 어떤 Index를 사용할 것인지, 혹은 Index를 사용하지 않을 것인지를 결정한다.

B*트리의 검색방법으로 디스크 입출력(I/O) 횟수를 줄인다.

오라클 서버가 Index를 자동적으로 사용하고 유지보수한다.

Index는 논리적, 물리적으로 테이블과는 독립적이다.

Index는 자동으로 생성되기도 하고 사용자가 필요에 의해 만들기도 한다.

 

인덱스 생성을 위한 지침

인덱스를 만들 때

-조건절이나 조인조건에서 컬럼을 자주 이용할 때

-컬럼이 넓은 범위값을 가질 때

-많은 NULL값을 갖는 컬럼일 때

-테이블의 데이터가 많고 그 테이블에서 조회되는 행의 수가 전체의 10-15%정도 일때

 

인덱스를 만들지 않아야 할 때

-테이블이 작을 때

-컬럼이 조회의 조건으로 사용되는 경우가 별로 없을 때

-대부분의 조회가 행의 10-15% 이상을 검색한다고 예상될 때

-테이블이 자주 변경될때

 

View?

view란 테이블이나 다른 뷰를 기초로 한 논리적이고 가상의 테이블이다.

view는 자체의 데이타는 없지만 테이블의 데이타를 보거나 변경할 수 있는 창과 같다.

view는 실제적으로 질의문장을 가진다.

 

장점

뷰는 데이타베이스의 선택적인 내용을 보여줄 수 있기 때문에 데이터베이스에 대한 액세스를 제한한다.

복잡한 질의어를 통해 얻을 수 있는 결과를 간단한 질의어를 써서 구할 수 있게 한다. 예를 들면 조인 방법을 몰라도 조인을 한 것처럼 여러 테이블에 대한 데이타를 뷰를 통해 볼 수 있다.

한 개의 뷰로 여러 테이블에 대한 테이타를 검색할 수 있다.

 

생성

CREATE [OR REPLACE] [FORCE | NOFORCE ] VIEW 이름 [(alias[,alias]...)]

AS subquery

[WITH CHECK OPTION [CONSTRAINT 제약 조건]]

[WITH READ ONLY]

 

뷰에 대한 DML문 사용 규칙

간단한 뷰에서는 DML연산 수행 가능

뷰가 다음 사항을 포함하는 경우 행을 삭제할 수 없음

- 조인 조건

- 그룹 함수

- GROUP BY 절

- DISTINCT 명령

뷰가 다음 사항을 포함하는 경우 데이터를 수정할 수 없음

-위의 조건

-식으로 정의된 컬럼

뷰가 다음 사항을 포함하는 경우 데이터를 추가할 수 없음

-위의 조건

-VIEW에 선택되지 않는 NOT NULL 컬럼

 

SYNONYM

Synonym이란 특정 Obejct에 부여하는 또다른 이름이다.

Synonym은 사용자의 편의나 참조를 빠르게 하기 위해서 사용한다.

 

CREATE [PUBLIC] SYNONYM synonym명

FOR Object명;

댓글

이 블로그의 인기 게시물

javascript ===, ==, >=, <=연산자

SQL oracle 내장함수[문자열 처리]

javascript 데이터 타입과 값