정보처리기사/데이터베이스 활용

View (뷰)

glorypang 2025. 10. 4. 01:01
728x90
반응형
SMALL
  • 가상의 테이블: 실제 데이터를 저장하지 않고, SELECT 정의만 가진 논리적 객체.
  • 목적: 보안(민감 정보 숨김), 단순화(복잡 쿼리 캡슐화), 편의성, 논리적 독립성 제공.
  • 특징
    • 뷰 자체로는 인덱스 없음 (단, DBMS에 따라 물질화 뷰는 인덱스 가능).
    • 논리적 독립성 제공 → 내부 테이블 구조가 바뀌어도, 뷰를 통해 사용자 쿼리는 안정적으로 동작.
    • 사용자별 맞춤 데이터 제공 → 데이터 관리 용이.
    • 뷰 위에 또 다른 뷰 정의 가능
    • 뷰에 따른 조작에서 삽입, 갱시, 삭제 연산은 제약이 따름

DDL 관점에서의 제약

  1. ALTER 불가
    • 뷰는 직접 ALTER로 수정할 수 없음.
    • 대신 `CREATE OR REPLACE VIEW` 또는 `DROP + CREATE` 방식 사용.
    -- 뷰 수정은 ALTER 불가
    ALTER VIEW UserNameView RENAME TO NewView;   -- ❌ (DB마다 일부 제한적 지원만)
    
    -- 일반적으로는
    CREATE OR REPLACE VIEW UserNameView AS
    SELECT id, name FROM "User";
    
  2. DROP 가능
    • 필요 시 뷰는 테이블처럼 삭제 가능.
    DROP VIEW UserNameView;
    

뷰 예시들

단순 뷰 (컬럼 제한)

CREATE VIEW UserNameView AS
SELECT name FROM "User";

조건 포함 뷰

CREATE VIEW Sales_KR AS
SELECT * FROM Sales
WHERE region = 'KR'
WITH CHECK OPTION;
  • `WITH CHECK OPTION`: 이 뷰를 통해 입력/수정 시 조건 위배 불가.

삭제

DROP VIEW Sales_KR;

 

728x90
반응형
LIST