1. View
- instructor 테이블을 아래처럼 되어있다. 교수 정보들을 조회를 하려는데 salary는 민감한 정보라 빼고 조회하였다.
- 이 결과 set에 이름을 붙여 추가 작업을 할수 있도록 도와주는 것이 View이다.
- 실제로 DB에 이런 테이블은 없지만 가상으로 faculty table이 존재하는 것처럼 이름을 붙인다.
- create 구문으로 만든 table은 base table이라고 하고 view로 만들어진 테이블을 virtual table이라고 한다.
- 그럼 이렇게 faculty에 대해서 쿼리문을 작성할 수 있게된다.
- 실제로 faculty는 디스크에 존재하지 않는 테이블이기 때문에 faculty를 정의하는 sql 구문과 faculty에 대한 쿼리문을 시스템이 합성해서 base table대상으로 하는 쿼리문을 새로 만들어 사용한다.
- 이게 유용한 이유는 salary에 접근할 수 있는 사용자의 권한을 제한할 수 있다.
- from절에 얼마든지 view table이 올 수 있다.
2. 3 level Architecture
- 우리가 설계한 스키마에 기반해서 만들어진 테이블들이 logical level에 해당한다. 이 층에 해당하는 스키마를 conceptual 스키마라고 한다.
- physical level은 internal 스키마, view level은 external 스키마라고 한다.
- 고객 혹은 사용자 모두를 위한 스키마를 설계하지만 각자 필요한 영역이 다를 수 있다. 즉 고객에게 모든 스키마가 보일 필요가 없기때문에 이럴때 view가 효과적이다.
3. Materialized View
- view를 사용하는 목적은 자주 사용될 테이블을 가상으로 저장해 놓는데 있다.
- join연산은 cost가 비싼 연산이기 때문에 정말 빈번히 사용되는 테이블이라면 view지만 디스크에 저장해 놓는 것을 materialized view라고한다.
- 어쨋든 view이기 때문에 base table에서 도출된 테이블이다. 따라서 base table에서 값의 변경이 생기면 view에서도 변경이 필요하다.
- 이를 실체뷰라고 부른다.
'ComputerScience > Database' 카테고리의 다른 글
DB - 22. Intermediate SQL 2 (0) | 2021.12.05 |
---|---|
DB - 21. Integrity Constraints (0) | 2021.12.01 |
DB - 19. Intermediate SQL - Join (0) | 2021.11.30 |
DB - 18. Normalization 2 (0) | 2021.11.30 |
DB - 17. Boyce Codd Normal Form (0) | 2021.11.24 |