: 특정 속성을 특정 사용자에게 숨겨주는 역할을 한다.
Create View myProf as
select pID,name
from professor;
실제 tuple 을 저장하지 않는다. : virtual table , virtual relation
↔ base relation : tuple 을 가지는 table
여러개의 table로 부터 정의 할 수 있다.
view 의 정의를 이용하여 view 에 대한 query 를 처리한다.
항상 최신 업데이트 상태로 존재한다.
: 뷰에 대한 질의 → 뷰를 정의로 대체 → 데이터베이스에 대한 질의로 교체
뷰가 더 이상 존재하지 않고 데이터베이스만 존재할 때까지 진행한다.
Create view myFaculty as
select pID, name, deptName
from professor
where salary > 50000;
Create view myFacultyCS as
select pID, name
from myFaculty
where deptName = 'CS';
-- The above view can be expanded:
Create view myFacultyCS as
select pID, name
from professor
where deptName = 'CS' and salary>50000;
-- myFaculty를 이용하여 정의하였지만 나중엔 professor 만 의존하도록 확장한다.
: 뷰에 대한 연산외에도 뷰를 통한 입력, 갱신, 삭제가 가능하다.
뷰에 대한 연산 → 베이스 테이블에 대한 연산으로 대체
Create view myProfessor as
select pID, name, deptName
from professor;
Insert into myProfessor values ('12345', 'Lee', 'CS');
-- ("12345', 'Lee', C' S,' null) 이 들어가게됨
: 변경연산이 지원되는 뷰이다.