Table vs View

정미·2023년 2월 14일
0

table에 데이터를 저장한 후, 특정 컬럼의 정보에만 접근할 수 있는 커스텀된 view를 생성할 수 있다.

Table

실제 DB에 데이터를 저장하는 행과 열의 객체

사용

  • DB의 정보를 보고(view) 체계화(organize)하기 위해

구성

  1. Table name
    • 데이터 컬렉션의 이름
  2. Field name
    • 컬럼의 이름
  3. Definition
    • 테이블을 생성하는 구문
    • 어떻게 데이터를 저장하고, 보여주고, 어떤 제약사항들이 있는지

View

하나 이상의 테이블로부터 만든 논리적인 부분집합
SQL 쿼리를 수행한 후에 생성되는 객체
가상 테이블

특징

  • view 스스로 데이터를 담고 있지 않다.
    - 테이블의 데이터가 view를 통해 보여지거나 변경될 수 있는 'window' 같은 역할
  • 다른 테이블로부터 얻어온 데이터의 컬럼들을 포함한다.
  • 세션이 열려있는 동안 테이블에 적재하는 대신 뷰를 생성해서 사용할 수 있다.
  • stored query
    - 하나 이상의 테이블로 정보를 표현하는 쿼리
  • derived table
    - 실제로 데이터를 저장하지 않는 대신 base table로부터 데이터를 얻는다.

문법

CREATE [OR REPLACE] VIEW view_name AS
SELECT column_list
FROM table_name
[WHERE condition];

종류

  1. Simple
    • 하나의 테이블로부터 데이터를 얻는다.
    • 테이블에 컬럼을 추가하거나 삭제할 수 있다.
  2. Complex
    • 여러 테이블로부터 데이터를 얻는다.
    • 어떤 컬럼을 포함할지 선택할 수 있다.

차이점

저장

  1. Table
    • DB는 테이블과 그 데이터를 저장한다.
    • 삭제하지 않는 이상 테이블의 모든 데이터가 남아있다.
  2. View
    • DB는 쿼리 결과인 뷰의 데이터를 저장하지 않는다.
    • 쿼리를 통해 생성된 뷰는 어플리케이션이 종료되면 사라진다.

구조

  1. Table
    • 컬럼과 로우로 구조화되어 이해하기 쉬운 SQL 테이블
  2. View
    • 컬럼과 로우를 가지고 있지만 테이블의 일부이거나 2개 이상 테이블의 조합이다.

사용

  1. Table
    • 데이터 저장
  2. View
    • 테이블의 특정 정보를 추출하고 보는 용도

의존성

  1. Table
    • 독립적이다. DB 내 의존성이 없다.
  2. View
    • 테이블에 의존한다.

데이터 조작

  1. Table
    • 쉽게 데이터를 추가, 수정, 삭제할 수 있다.
  2. View
    • 데이터 추가, 수정, 삭제가 불가능하다.

속도

  1. Table
    • 한 번 어플리케이션이 시작되면, db에 저장된 원하는 정보에 접근하는 속도가 빠르다.
  2. View
    • 쿼리를 한 번 실행해야하기 때문에 접근 시간이 테이블 접근 시간보다 더 걸린다.
    • 여러 테이블로부터 결과를 얻으면 더 걸린다.

재생성

  1. Table
    • create 혹은 drop만 가능하다.
  2. View
    • replace 옵션을 통해 쉽게 뷰를 다시 만들 수 있다.

출처

0개의 댓글