DATABASE VIEW

Younghwan Cha·2022년 1월 6일
0

Database

목록 보기
1/16
post-thumbnail

뷰(View) 란 무엇일까?

  1. 뷰는 사용자에게 접근이 허용된 데이터만을 제한적으로 보여주기 위해서 기본 테이블로부터 유도된 가상의 테이블이다.

장단점

장점

  1. 논리적 데이터 독립성을 제공한다.
  2. 동일 데이터에 대해 상이한 요구들을 충족 시킬 수 있다.
  3. 위에서 사용자에게 접근이 허용된 데이터 만을 제한적으로 보여준다고 했다. 이는 원본 테이블의 공개 없이 컬럼과 데이터만 공개되므로
    보안적으로 이점이 있다.

단점

  1. 뷰로 구성된 데이터에 대한 삽입, 삭제, 갱신, 연산에 제약이 따른다.

뷰 구현

그러면 이제 직접 뷰를 구현해보자.

CREATE VIEW 뷰이름 AS SELECT 문;
DROP VIEW 뷰이름 RESTRICT or CASCADE;
- RESTRICT : 뷰를 다른곳에서 참조할 경우 삭제 취소
- CASCADE : 뷰를 참조하는 다른 뷰나 제약 조건들까지 모두 삭제

뷰는 위와 같은 형식으로 만들어진다.

제약 사안

모든 뷰에 삽입, 수정, 삭제 연산을 할 수 있는 것은 아니고 몇가지 제약 사안들이 존재한다.

  1. 기존 테이블의 기본키를 구성하는 속성이 포함되지 않는 경우
  • 만약 뷰에서 기본 테이블의 pk 행을 포함하지 않았을 경우, INSERT 를 수행했을 경우 기본 테이블에 PK 는 들어가지 않는다.
    이는 테이블의 제약 조건에 범하는 일이므로 불가능하다.
  1. 기본 테이블에 있던 내용이 아닌 집계 함수로 새로 계산된 내용을 포함하고 있는 뷰는 변경할 수 없다.

  2. GROUP BY, DISTINCT 키워드를 포함하여 정의한 뷰는 변경할 수 없다.

  • DISTINCT 키워드를 사용할 경우 삽입 수정 삭제 연산을 할 때 어떤 튜플을 변화시켜야 할지 명확하지 않다.
  1. JOIN 을 하여 정의한 뷰의 경우에도 변경이 불가능한 경우가 많다.
profile
개발 기록

0개의 댓글