2010년 7월 6일 화요일

데이터베이스(DB)의 뷰(View)란?

View란

 - 테이블이나 다른 View를 기반으로한 논리적인 테이블
 - View자체는 데이터를 포함하지 않음
 - Create View 권한이 있어야만 생성가능

 

Simple View
 - 한테이블 데이터만 포함
 - 그룹함수를 포하하지 않음
 - View를 통한 DML 수행 가능

 

Complex View
 - 둘 이상의 테이블 데이터 포함
 - 그룹함수, DISTINCT,GROUP BY절 등이 포함되어 있을 경우
 - View를 통한 DML 수행 불가능

 

생성 Syntax

 CREATE [OR REPLACE] [FORCE|NOFORCE]
 [(alias[.alias...])
 VIEW view_name AS subquery
 [WITH CHECK OPTION] [WITH READ ONLY]

 

 Alias : 컬럼명
 [OR REPLACE] : 기존에 존재하면 재생성함(SQL Server제외)
 [FORCE|NOFORCE] : Base Table 존재여부와 상관없이 생성
 [WITH CHECK OPTION] : View에 의해 엑세스 될 수 있는 행만이 입력,갱신됨
 [WITH READ ONLY] : 이 View에서 DML이 수행가능한지 여부(Oracle Only)

 

뷰의 정의 확인

 - 오라클 : "DESC USER_VIEW" 후 "SELECT VIEW_NAME, TEXT FROM USER_VIEWS"
 - MySQL : "SHOW CREATE VIEW 뷰이름"
 - SQLServer : "SP_HELPTEXT 뷰이름"

 

뷰의 수정
 - "OR_REPLACE" 옵션을 사용
 - SQLServer은 "ALTER VIEW"를 사용함

 

WITH CHECK OPTION
 - 데이터를 뷰 생성 조건에 위배되는 데이터를 만들지 못함
   즉, 뷰의 생성조건이 AGE>20 인데 AGE가 20이하인 레코드는 삽입 변경이 불가능하다

 

뷰의 삭제
 - DROP VIEW 뷰이름

댓글 없음:

댓글 쓰기