본문 바로가기
Computer Science/DataBase

뷰와 시스템 카탈로그(1)

by J._.cobb 2022. 4. 20.

뷰와 시스템 카탈로그

  • 관계 데이터베이스 시스템의 뷰(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문을 검색
  • 기본 릴레이션에 대한 뷰의 접근 권한을 검사
  • 뷰에 대한 질의를 기본 릴레이션에 대한 동등한 질의로 변환

 

출처

데이터베이스 <2014, 용환승 교수님>

'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