WooBuntu·2021년 1월 8일
0

데이터베이스

목록 보기
11/16

뷰(view)는 하나 이상의 테이블을 합하여 만든 가상의 테이블이다

  • SELECT문을 통해 얻은 결과를 가상의 테이블로 정의하여 실제 테이블처럼 사용할 수 있도록 만든 데이터베이스 개체

  • 실제 데이터를 디스크에 저장하지 않고 단지 뷰를 생성할 때 사용한 SELECT문의 정의를 DBMS가 저장한다.

  • 따라서 뷰를 사용하여 질의를 처리하면 DBMS는 뷰의 정의를 참조하여 질의를 수행하고 그 결과를 사용자에게 반환한다

  • 뷰는 테이블에 적용 가능한 모든 연산을 사용할 수 있다.

  • 자주 사용되는 질의를 뷰로 미리 정의해 재사용할 수 있다.

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

  • 논리 데이터베이스의 원본 테이블의 구조가 변해도 응용 프로그램에 영향을 주지 않도록 하는 논리적 독립성을 제공하는 방법이다.
    (이게 무슨 의미일까)

  • INSERT, UPDATE, DELETE 등의 DML작업은 가상 테이블인 뷰가 아니라 원본 테이블에서 수행된다.
    (다만, 기본키를 포함하지 않는 수정 요청이나 베이스 테이블 두 개 이상에서 속성을 포함하는 수정 요청은 제약을 위반할 가능성이 있기 때문에 금지된다)
    (뭔 소리냐)

뷰의 생성(뷰의 정의)

CREATE VIEW 뷰이름 [(열이름 [,... n])]
AS SELECT
  • 여기서 SELECT문은 뷰를 정의하는 역할을 한다

뷰의 수정

물리적인 테이블의 수정 작업과 같이 뷰도 필요에 따라 정의된 SQL문의 수정이 필요하다

CREATE OR REPLACE VIEW 뷰이름[(열이름 [,... n])]
AS SELECT

뷰의 삭제

DROP VIEW 뷰이름[,... ,n];

시스템 뷰

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

  • 데이터 딕셔너리 뷰, 시스템 카탈로그 등으로 불리기도 한다.

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

  • MySQL 시스템 뷰는 INFORMATION_SCHEMA 데이터베이스에 저장되어 있으며 SELECT 명령으로 조회할 수 있다.

SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema LIKE 'madang';

0개의 댓글

관련 채용 정보