CS/DB

[DB] 뷰

겜도리도리 2022. 6. 7. 23:16
반응형

뷰의 개요

ANSI/SPARC 3단계 아키텍처에서 외뷰 뷰는 특정 사용자가 보는 데이터베이스 구조를 의미했다.

관계 데이터베이스에서의 뷰는 한 사용자의 전체 외뷰 뷰 대신에 하나의 가상 릴레이션을 의미한다.

뷰는 기존의 기본 릴레이션에 대한 SELECT문의 형태로 정의된다.

사용자는 여러 개의 릴레이션과 뷰를 사용할 수 있다.

뷰는 릴레이션으로부터 데이터를 검색하거나 갱신할 수 있는 동적인 창의 역할을 한다.

 

스냅샷

스냅샷이란, 어느 시점에 SELECT문의 결과를 기본 릴레이션의 형태로 저장해 놓은 것이다.

스냅샷은 사진을 찍은 것과 같아서 스냅샷을 정의하는 시점의 기본 릴레이션의 내용이 스냅샷에 반영된다.

어떤 시점의 조직체의 현황, 예를 들어 몇년 몇월 시점에 근무하던 사원들의 정보, 재고 정보 등이 스냅샷으로 정의될 수 있다.

 

뷰와 기본 릴레이션의 관계

 

뷰의 정의

뷰를 정의하는 SQL문의 구문

뷰의 이름 다음에 애트리뷰트들을 생략하면 뷰를 정의하는데 사용된 SELECT문의 SELECT절에 열거된 애트리뷰트들의 이름과 동일한 애트리뷰트들이 뷰에 포함된다.

 

뷰를 정의하는 SELECT절에 산술식 또는 집단 함수가 사용된 애트리뷰트가 있는 경우, 뷰의 정의에 조인이 포함되어 있고 두 개 이상의 다른 릴레이션으로부터 가져온 애트리뷰트들의 이름이 같아서 뷰에서 두 개 이상의 애트리뷰트 이름이 같게 되는 경우에는 뷰를 정의할 때 모든 애트리뷰트들의 이름을 지정해야 한다.

 

"3번 부서에 근무하는 사원들의 사원번호, 사원이름, 직책으로 이루어진 뷰"를 정의하는 예시

 

파란색 음영이 EMP_DNO3를 통해서 접근할 수 있는 부분이다.

 

두 릴레이션에서 뷰를 정의할 수도 있다.

 

뷰를 사용하여 데이터를 접근할  때 관계 DBMS에서 거치는 과정

1. 시스템 카탈로그로부터 뷰의 정의, 즉 SELECT문을 검색한다.

2. 기본 릴레이션에 대한 뷰의 접근 권한을 검사한다.

3. 뷰에 대한 질의를 기본 릴레이션에 대한 동등한 질의로 변환한다.

 

 

뷰의 장점

1. 복잡한 질의를 간단하게 표현할 수 있다.

2. 데이터 무결성을 보장하는데 활용할 수 있다.

3. 데이텨 독립성을 제공한다.

4. 데이터 보안 기능을 제공한다.

5. 동일한 데이터에 대한 여러 가지 뷰를 제공한다.

갱신이 불가능한 뷰

한 릴레이션 위에서 정의되었으나 그 릴레이션의 기본 키가 포함되지 않은 뷰

기본 릴레이션의 애트리뷰트들 중에서 뷰에 포함되지 않은 애트리뷰트에 대해 NOT NULL이 지정되어 있을 때

집단 함수가 포함된 뷰

조인으로 정의된 뷰

 

갱신 가능성 기준에 따른 뷰들의 유형

반응형

'CS > DB' 카테고리의 다른 글

[DB] 동시성 제어  (0) 2022.06.14
[DB] 시스템 카탈로그  (0) 2022.06.09
[DB] 정규화와 역정규화  (0) 2022.05.28
[DB] 릴레이션 분해  (0) 2022.05.26
[DB] 함수적 종속성  (0) 2022.05.26