* 뷰(View)
CREATE [ OR REPLACE ] [ FORCE | NOFORCE ] VIEW view name [ alias...] AS sub query [ WITH CHECK OPTION [ CONSTRAINT constraint name ] ] [ WITH READ ONLY [ CONSTRAINT constraint name ] ] |
* Force / Noforce
-> 뷰를 생성하는 대부분의 경우는 베이스 테이블이 존재한다는 가정하에서 이루어진다. 하지만 베이스 테이블이 존재하지 않는 경우에도 뷰를 생성할 수가 있는데 이때는 Force 옵션을 적용할 수 있다. Noforce 옵션의 경우는 뷰를 생성할 때 반드시 베이스 테이블이 존재해야 한 한다는 것을 의미한다. 특별한 설정이 없다면 Noforce 옵션을 기본적으로 사용한다.
* With check option
-> 뷰를 생성할 때 사용한 컬럼 값을 변경하지 못하도록 설정해준다.
* With read only
-> 생성하고 있는 뷰를 통해서 DML을 수행할 수 없다는 옵션을 지정해준다. 뷰를 생성하고 나면 다음과 같은 과정이 가능해진다.
-> user_views라는 데이터 딕셔너리 뷰에 해당 뷰의 정보가 저장된다.
-> 뷰를 통해서 베이스 테이블의 정보를 쿼리 또는 갱신할 수 있다.
* Simple 뷰
-> 뷰를 생성할 때 테이블로서 하나의 테이블을 사용하게 되며 뷰를 만들 때 함수(Function)라든지 그룹을 이루어서 생성할 수 없다. 그리고 Simple 뷰를 통해서는 아무 문제없이 베이스 테이블에 대한 DML 문장을 실행할 수 있다는 장점이 있다.
* Complex 뷰
-> Complex 뷰는 베이스 테이블로서 하나 이상의 테이블을 사용하며 뷰를 만들 때 함수라든지 그룹을 이루어서 생성할 수 있다. Simple 뷰와 비교할 때 중요하게 고려해야 하는 점은 바로 Complex 뷰를 통한 베이스 테이블에 대한 DML 처리 문제이다. Complex 뷰를 통해서 DML을 수행할 수 있지만 항상 그런 것은 아니다.
'Operating System > ORACLE' 카테고리의 다른 글
[ORACLE] 시퀀스 (0) | 2022.02.23 |
---|---|
[ORACLE] 뷰(View)를 통한 로우 데이터의 갱신과 추가 (0) | 2022.02.18 |
[ORACLE] 제약 조건 (Constraints) (0) | 2022.02.11 |
[ORACLE] 데이터 잠금 (Locking) (0) | 2022.02.10 |
[ORACLE] 커밋(Commit)과 롤백(Rollback) (0) | 2022.02.09 |