[정보처리기사 필기] 물리 데이터베이스 설계 - 072. 뷰 View 설계

1. 뷰의 개요

  • 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블
  • 저장장치 내에 물리적으로 존재하지 않지만, 사용자에게는 있는 것처럼 간주
  • 데이터 보정 작업, 처리 과정 시험 등 임시적인 작업을 위한 용도로 활용
  • 조인문의 사용 최소화로 사용상의 편의성을 최대화
  • 뷰를 생성하면 뷰 정의가 시스템 내에 저장되었다가 생성된 뷰 이름을 질의어에서 사용할 경우 질의어가 실행될 때 뷰에 정의된 기본 테이블로 대체되어 기본 테이블에 대해 실행
    • 정의 테이블 : 뷰는 하나 이상의 다른 테이블로부터 유도된 하나의 가상 테이블이며, 뷰를 만들기 위해 유도된 기본 테이블이 정의 테이블

2. 뷰의 특징

  • 기본 테이블로부터 유도된 테이블이므로 기본 테이블과 같은 형태의 구조를 사용, 조작도 기본 테이블과 거의 같음
  • 가상 테이블이므로 물리적으로 구현되어 있지 않음
  • 데이터의 논리적 독립성을 제공할 수 있음
  • 필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 관리가 용이하고 명령문이 간단해짐
  • 뷰를 통해서만 데이터에 접근하게 하면 뷰에 나타나지 않는 데이터를 안전하게 보호하는 효율적인 기법으로 사용
  • 기본 테이블의 기본키를 포하머한 속성(열) 집합으로 뷰를 구성해야만 삽입, 삭제, 갱신 연산이 가능
  • 정의된 뷰는 다른 뷰의 정의에 기초가 될 수 있음
  • 뷰가 정의된 기본 테이블이나 뷰를 삭제하면 그 테이블이나 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제됨
  • 명령문 
    • CREATE문 : 뷰를 정의
    • DROP문 : 뷰를 제거

3. 뷰의 장단점

  • 장점
    • 논리적 데이터 독립성을 제공
    • 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원
    • 사용자의 데이터 관리를 간단하게 해줌
    • 접근 제어를 통한 자동 보안이 제공
  • 단점
    • 독립적인 인덱스를 가질 수 없음
    • 뷰의 정의를 변경할 수 없음
    • 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약이 따름

4. 뷰 설계 순서

  • 대상 테이블 선정
    • 외부 시스템과 인터페이스에 관여하는 테이블
    • CRUD 매트릭스를 통해 여러 테이블이 동시에 자주 조인되어 접근되는 테이블
    • SQL문 작성 시 거의 모든 문장에서 인라인 뷰 방식으로 접근되는 테이블
      • 인라인 뷰 Inline View : FROM절 안에 사용되는 서브 쿼리
  • 대상 컬럼 선정
    • 보안을 유지해야 하는 컬럼은 주의하여 선별
  • 정의서 작성
뷰명 뷰 설명 관련 테이블 관련 컬럼명 데이터 타입
V_SELLITEM 판매와 판매 목록 처리 SELLITEM SELLBO
SELLNAME
SELLDATE 
VARCHAR(5)
VARCHAR(40)
DATE
SELLITEM ITEMNO
PRICE
VARCHAR(5)
NUMBER(10)

5. 뷰 설계 시 고려사항

  • 테이블 구조가 단순화 될 수 있도록 반복적으로 조인을 설정하여 사용하거나 동일한 조건절을 사용하는 테이블을 뷰로 생성
  • 동일한 테이블이라도 업무에 따라 테이블을 이용하는 부분이 달라질 수 있으므로 사용할 데이터를 다양한 관점에서 제시해야 함
  • 데이터의 보안 유지를 고려하여 설계