View

  • 하나 이상의 테이블을 합하여 만든 가상의 테이블

  • 질의의 결과 만들어지는 가상의 테이블로, 실제 테이블 처럼 사용할 수 있다.

  • 실제 디스크에는 저장되지 않고, 뷰 생성시 사용한 select 문의 정의를 DBMS가 저장한다.

  • 장점

    • 편리성 & 재사용성:

      • 미리 정의된 뷰를 일반 테이블처럼 사용할 수 있기 때문에 편리.

      • 사용자가 필요한 정보만 요구에 맞게 가공하여 뷰로 만들어 쓸 수 있다.

      • 자주 사용되는 질의를 뷰로 미리 정의해 재사용이 가능하다.

    • 보안성

      • 각 사용자별로 보안이 필요한 데이터를 제외하여 선별하여 보여줄 수 있다.

    • 독립성

      • 논리 데이터베이스의 원본 테이블의 구조가 변해도, 응용프로그램에 영향을 주지 않도록 하는 논리적 독립성을 제공.

  • SELECT 문을 제외한 일부 물리적인 테이블의 갱신작업을 수행하는데 제약이 있다.

  • 기본키를 포함하지 않는 수정 요청이나, 테이블 2개 이상에서 속성을 포함하는 수정요청은 제약을 위한 할 가능성이 있으므로 갱신작업 제약이 있다.

뷰의 생성

  • CREATE VIEW 뷰이름 [(열이름 [, ... n])]
    AS SELECT
    
    -- 예시
    create view vw_book
    as select * 
    from book
    where bookname like '%축구%';
  • 뷰이름: 생성할 뷰의 이름

  • 열이름: 뷰에서 사용할 열의 이름

  • 열 이름과 select문에서 추출하는 속성은 1:1 대응

뷰의 수정

  • 물리적인 테이블의 수정작업과 마찬가지로, 뷰도 필요에 따라 정의된 SQL문의 수정이 필요.

  • 뷰의 수정은 CREATE VIEW문에 OR REPLACE명령을 더하여 작성

뷰의 삭제

시스템 뷰

  • DBMS는 데이터베이스 개체(테이블, 함수, 뷰 등)나 시스템의 통계 정보 등을 사용자가 직접 확인할 수 있도록 시스템 뷰를 만들어 제공한다.

  • 시스템 뷰(=데이터 딕셔너리 뷰, 시스템 카탈로그)

  • DBMS 관련 정보를 테이블 형태로 만들어 실시간으로 제공.

  • 사용자들은 시스템뷰를 참조해서 데이터 베이스 튜닝, 기타문제들을 해결할 수 있다.

  • MySQL 시스템 뷰는 INFORMATION_SCHEMA 데이터베이스에 저장되어 있으며, SELECT 명령으로 조회할 수 있다. 메뉴얼을 참조하여 필요한 뷰를 찾아 사용하면 된다.

Last updated

Was this helpful?