컴퓨터 공부/Advanced Database

[6월 5일 1교시] 여러 종류의 DB 객체 1

려리군 2009. 6. 5. 09:21

데이터베이스 객체

테이블(TABLE) : 데이터를 저장.

1 10 500
2 20 1000
3 20 ...
4 20
50 10
...


뷰(VIEW) : 테이블의 일부분만 보여줌으로써 보안성, 편이성 증가

예시)

CREATE VIEW emp_dept

AS SELECT e.empno, e.ename, d.deptno, d.dname

FROM emp e, dept d

WHERE e.deptno, d.deptno


인덱스(INDEX) : 쿼리 성능 증가

시퀀스(SEQUENCE) : 유일한 순차적인 번호(PK, UK)를 자동생성

시노님(SYNONYM) : 보안성(스키마를 숨길 수 있음), 편이성(다른 테이블을 내거처럼 혹은 길이를 줄여준다.)

예시) scott.emp =시노님=> emp




뷰의 용도

미리 정한 테이블의 행 또는 열로의 접근을 제한함으로서 테이블 보안성을 높인다.

사용자에 대한 명령을 간단하게 하고 데이터 복잡성을 숨긴다.

원래 테이블의 데이터로부터 다른 관점으로 데이터를 표현한다.

원래 테이블의 정의 변화로부터 응용 프로그램을 분리한다.

복잡한 쿼리를 저장할 수 있다.


뷰의 옵션

OR REPLACE : 이미 존재하는 뷰는 덮어써서 만든다.

버리지 않고 다시 만들기 위해 이미 있는 뷰의 정의를 바꾸기 위해 이 구문을 사용할 수 있다.

FORCE : 컴파일을 하지 않음. 

뷰의 기본 테이블이나 참조되는 객체 형태가 존재하는 지 혹은 뷰를 가진 사용자가 기본 테이블에 대해 특권을 가지고 있던 지 상관없이 뷰를 생성한다.

NO FORCE

기본 테이블에 대해 특권을 가진 사용자와 기본 테이블을 가진자만이 뷰를 만든다.

WITH READ onLY : 뷰에서 실제 테이블의 데이터 수정, 삭제, 추가를 할 수 있지만 SELECT 전용으로 만듬.

WITH CHECK OPTION

뷰를 통해 수행된 삽입이나 갱신은 뷰 쿼리가 선택할 수 있는 행에 영향을 받는다. (?)

CONSTRAINT 제약조건 : 제약조건에 이름을 지정한다.


simple view : 하나의 테이블에서 뷰를 만듬. DML(추가, 수정, 삭제)이 가능.

complex view : DML(추가, 수정, 삭제)이 불가능(조인 조건, 그룹함수, 그룹 구문, DISTINCT 때문)


inline view

스키마 객체가 아닌다.

SQL 구문에서 뷰처럼 사용할 수 있는 alias(상관관계가 있는)인 서브쿼리이다.