본문 바로가기

ComputerScience/Database

DB - 20. Intermediate SQL - View

728x90

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에서도 변경이 필요하다.

- 이를 실체뷰라고 부른다.

728x90
반응형

'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