뷰와 시스템 카탈로그
- 관계 데이터베이스 시스템의 뷰(view)는 다른 릴레이션으로부터 유도된 릴레이션(derived relation)으로서 ANSI/SPARC 3단계 아키텍처의 외부 뷰와는 다름
- 뷰는 관계 데이터베이스 시스템에서 데이터베이스의 보안 메커니즘으로서, 복잡한 질의를 간단하게 표현하는 수단으로써, 데이터 독립성을 높이기 위해서 사용됨
- 시스템 카탈로그는 시스템내의 객체(기본 릴레이션, 뷰, 인덱스, 사용자, 접근 권한 등)에 관한 정보를 포함
- 시스템 카탈로그를 적절히 활용하면 원하는 릴레이션을 데이터베이스에서 찾고, 그 릴레이션에 어떤 애트리뷰트들이 들어 있으며, 각 애트리뷰트의 데이터 타입은 무엇인가 드을 쉽게 파악할 수 있음
뷰의 개요
- ANSI/SPARC 3단계 아키텍처에서 외부 뷰는 특정 사용자가 보는 데이터베이스의 구조
- 관계 데이터베이스에서의 뷰는 한 사용자의 전체 외부 뷰 대신에 하나의 가상 릴레이션(virtual relation)을 의미
- 뷰는 기존의 기본 릴레이션(base relation, 실제 릴레이션)에 대한 SELECT문의 형태로 정의됨
- 사용자는 여러 개의 릴레이션과 뷰를 사용할 수 있음
- 뷰는 릴레이션으로부터 데이터를 검색하거나 갱신할 수 있는 동적인 창(dynamic window)의 역할
스냅샷(snpashot)
- 어느 시점에 SELECT문의 결과를 기본 릴레이션의 형태로 저장해 놓은 것
- 스냅샷은 사진을 찍은 것과 같아서 스냅샷을 정의하는 시점의 기본 릴레이션의 내용이 스냅샷에 반영됨
- 어떤 시점의 조직체의 현황, 예를 들어 몇 년 몇 월 시점에 근무하던 사원들의 정보, 재고 정보 등이 스냅샷으로 정의될 수 있음
뷰와 기본 릴레이션의 관계
뷰의 정의
- 뷰를 정의하는 SQL 문의 구문
CREATE VIEW 뷰이름 [(애트리뷰트(들))]
AS SELECT문
[WITH CHECK OPTION];
- 뷰의 이름 다음에 애트리뷰트들을 생략하면 뷰를 정의하는 데 사용된 SELECT문의 SELECT 절에 열거된 애트리뷰트들의 이름과 동일한 애트리뷰트들이 뷰에 포함됨
- 뷰를 정의하는 SELECT절에 산술식 또는 집단 함수에 사용된 애트리뷰트가 있는 경우, 뷰의 정의에 조인이 포함되어 있고 두 개 이상의 다른 릴레이션으로부터 가져온 애트리뷰트들의 이름이 같아서 뷰에서 두 개 이상의 애트리뷰트의 이름이 같게 되는 경우에는 뷰를 정의할 때 모든 애트리뷰트들의 이름을 지정해야 함
뷰를 사용하여 데이터를 접근할 때 관계 DBMS에서 거치는 과정
- 시스템 카탈로그로부터 뷰의 정의, 즉 SELECT문을 검색
- 기본 릴레이션에 대한 뷰의 접근 권한을 검사
- 뷰에 대한 질의를 기본 릴레이션에 대한 동등한 질의로 변환
출처
'Computer Science > DataBase' 카테고리의 다른 글
트랜잭션(1) (0) | 2022.04.22 |
---|---|
뷰와 시스템 카탈로그(2) (0) | 2022.04.22 |
릴레이션 정규화 (0) | 2022.04.20 |
물리적 데이터베이스 설계 (0) | 2022.04.15 |
데이터베이스 설계와 ER모델(2) (0) | 2022.04.13 |