목록

2019년 2월 11일 월요일

[데이터베이스] 12. 뷰 (View)






1. 뷰(View) 란?

  • 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 가상 테이블이다.
  • 저장장치 내에 물리적으로 존재하지 않지만, 사용자에게는 존재하는 것처럼 간주된다.
  • 데이터 보정 작업, 처리 과정 시험 등 임시 작업을 위한 용도로 활용된다.




2. 뷰(View)의 특징

  • 기본 테이블로부터 유도된 테이블이기 때문에 기본 테이블과 같은 형태의 구조를 가진다.
  • 조작도 기본 테이블과 거의 같다.
  • 가상 테이블이기 때문에 물리적으로 구현되어 있지 않다.
  • 필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 관리가 용이하고 명령문이 간단해진다.
  • Join문의 사용을 최소화하여 사용상의 편의성을 최대화 한다.
  • 뷰를 통해서만 데이터에 접근하게 하면 뷰에 나타나지 않는 데이터를 안전하게 보호할 수 있다.
  • 기본 테이블의 기본키를 포함한 속성(Attribute)의 집합으로 뷰를 구성해야만 삽입, 삭제, 갱신 연산이 가능하다.
  • 정의된 뷰는 다른 뷰의 정의에 기초가 될 수 있다.
  • 하나의 뷰를 삭제하면 그 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제된다.




3. 뷰(View)의 장점

  • 논리적 데이터 독립성을 제공한다.
  • 동일 데이터에 대해 동시에 여러 사용자의 응용이나 요구를 지원해준다.
  • 사용자의 데이터 관리를 간단하게 해준다.
  • 접근 제어를 통한 자동 보안이 제공된다.




4. 뷰(View)의 단점

  • 독립적인 인덱스를 가질 수 없다.
  • 뷰는 ALTER문을 이용하여 정의를 변경할 수 없기 때문에 삭제 후 다시 생성해야 한다.
  • 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약이 따른다.




5. 뷰(View)의 생성과 삭제


5-1. 뷰 정의문

CREATE VIEW 뷰이름(속성이름1, 속성이름2, ...)
AS
SELECT문
;



  • SSELECT문을 부질의로 사용하여 SELECT문의 결과로서 뷰를 생성한다.
  • 부질의로서의 SELECT문에는 UNION이나 ORDER BY절을 사용할 수 없다.
  • 속성 이름을 생략하면 SELECT문의 속성 이름이 자동으로 사용된다.




5-2. 뷰 삭제문

DROP VIEW 뷰이름 ;


ex) DROP VIEW 뷰입니다 RESTRICT


  • RESTRICT : 뷰를 다른 곳에서 참조하고 있으면 삭제가 취소된다.
  • CASCADE : 뷰를 참조하는 다른 뷰나 제약 조건까지 모두 삭제된다.





댓글 없음:

댓글 쓰기