데이터베이스에서 뷰의 사용법과 주의사항

kihoo_ni·2024년 4월 7일

  1. 관계 데이터베이스 관리 시스템의 매우 강력한 기능의 하나
  2. 접근 제어를 향상시키며, 논리적 데이터 독립성을 제공함
  3. 데이터베이스 개념 스키마의 변경을 외부 사용자에게 감추는 역할
  4. 뷰는 일종의 테이블로, 소속 투플이 실제로 데이터베이스에 저장된 것이 아니라 필요할 때 뷰 정의에 따라 계산함.

뷰 생성

CREATE VIEW <뷰 이름>
AS
<쿼리 식>

뷰 삭제

DROP VIEW <뷰 이름>

뷰의 삽입 삭제시 갱신가능성

갱신에 대한 설명에 앞서 예시를 보자!

예를 들자면
의류브랜드 테이블과 백화점의 재고 품목 테이블이 있다고 생각해보자.
이 둘을 합쳐서 의류브랜드에 관란 재고품목 테이블 '뷰'를 만들었다.
만약 해당 뷰에서 어떤 특정 재고품을 지운다고 했을때 뷰에서 그 재고품은 삭제 되지 않는다.
왜일까? 그 재고품은 해당 브랜드가 존재하는 한 뷰에서 지워질 수 없는 것이기 때문이다. 뷰는 사용자 관점에서 실제 데이터가 저장된 것 처럼 보이는 것뿐이지 그 데이터가 실제로 지워지는 것이 아니다. 따라서 해당 데이터를 지우려면
의류브랜드 테이블에서 재고품의 브랜드 항목을 지우고 재고품목 테이블에서도 해당 재고품목을 지워야 뷰에서 사라지게 될 것이다.
그런데 이렇게 둘다 지워버리면 해당 브랜드 아이템 자체가 완전히 사라져버리기 때문에 한개의 재고품만 삭제하다가 브랜드 품목 전체가 삭제될 수 있는 것이다.

그래서 SQL 92 표준에서는 하나의 기반 테이블에 대해 셀렉션 및 프로젝션만으로 정의되고 집단 연산은 사용하지 않는 뷰에 대해서만 갱신을 허용한다. 이런 뷰들을 갱신 가능 뷰(Updatable View)라고 한다.

따라서 뷰의 삽입 삭제시 갱신가능성에 주목해야 한다 !

0개의 댓글