Big Ben
Big Ben's Log
Big Ben
전체 방문자
오늘
어제
  • 전체 글 (80)
    • 파이썬 (23)
      • 파이썬 기초 (5)
      • 클래스 (6)
      • 자료구조 (4)
      • Tensorflow (3)
      • PyTorch (2)
      • konlpy (1)
      • anaconda (1)
    • 머신러닝 (3)
      • 선형회귀 (1)
      • Tree 기반 (1)
    • 딥러닝 (6)
      • NLP (2)
      • VISION (2)
      • TABULAR (0)
      • 딥러닝 서버 구축 (2)
    • 그래프 이론 (1)
      • 그래프마이닝 (1)
      • GNN (0)
    • 강화학습 (3)
      • 강화학습 기본 (3)
    • 인공지능 (5)
    • 추천시스템 (2)
      • 추천시스템 기초 (2)
    • Competitions (1)
    • 빅데이터 (8)
      • 하둡 (3)
      • 스파크 (4)
      • 클라우드 (1)
    • SQL (7)
      • MariaDB (2)
    • 논문 리뷰 (2)
    • 대학원 (0)
      • 데이터 사이언스 (0)
      • 경제학 (0)
    • 선형대수학 (7)
      • 선형대수 ICE BREAKING (1)
      • 벡터 (5)
      • 고윳값 (1)
    • 개인프로젝트 (0)
      • 포트폴리오 대시보드 + AI기반 주식 자동매매 (0)
    • 재테크 (1)
    • 자동차 (0)
    • 알고리즘 (11)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 백준
  • 선형대수
  • Baekjoon
  • 인공지능
  • 딥러닝
  • 하둡
  • AI
  • 데이터베이스
  • sql
  • pytorch
  • mysql
  • 머신러닝
  • 객체
  • 프로그래머스
  • TensorFlow
  • 빅데이터
  • class
  • 프로그래밍
  • 알고리즘
  • 파이썬
  • 코딩테스트
  • 데이터사이언스
  • 선형대수학
  • 데이터
  • MariaDB
  • 코테
  • 객체지향
  • 파이썬기초
  • PYTHON
  • 자료구조

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Big Ben
SQL/MariaDB

[SQL] 뷰(VIEW)란 무엇인가?

[SQL] 뷰(VIEW)란 무엇인가?
SQL/MariaDB

[SQL] 뷰(VIEW)란 무엇인가?

2022. 12. 27. 10:15
반응형

SqlD나 데이터베이스를 공부하다 보면 뷰(view)에 대해 다룬 내용을 마주할 때가 있으리라 생각됩니다.

 

대부분 뷰가 그냥 SELECT문을 날려서 보여주는 테이블 정도로만 이해하하고 넘어가시는 분도 계시지만 조금 구체적으로(?) 뷰와 뷰의 특징은 어떻게 되는지 한번 알아보겠습니다.

 

우선 뷰는 한 번 생성해 놓으면 테이블이라고 생각해도 될 정도로 테이블과 거의 동일한 개체로 여겨집니다.

 

그렇기 때문에 사용자가 SELECT 문을 통해 쿼리를 실행하면, 그것에 대한 결과값으로 보여지는 테이블이 뷰 테이블이라고 할 수 있습니다.

 

그럼 일반 테이블이랑 뭐가 다른 것이냐? 

'읽기 전용'으로 많이 사용되는 것이 다르다고 할 수 있습니다. 하지만 뷰를 통해 원 테이블의 데이터를 수정할 수도 있습니다. 이 부분에 대해서 다르다고 말하기는 힘들 것 같습니다.

 

하지만 뷰만의 장점이 있습니다

 

1. 보안에 도움이 된다

간단한 예를 들어보겠습니다. 

아래는 userTbl이라는 유저 테이블의 기록을 모두 불러온 쿼리의 결과 입니다.

만약에 아르바이트 생을 고용해서 회원의 이름과 주소를 확인하는 작업을 시킨다고 가정해보죠.

이러한 경우에 아르바이트생에게 아래의 그림처럼 userTbl 테이블에 접근하도록 한다면 사용자의 중요 개인 정보(키, 전화번호 등)까지 모두 노출이 되겠죠.

 

이를 방지하기 위해서 테이블의 데이터를 열로 분할하여 관리할 수 있겠지만, 데이터의 일관성 및 관리가 무척이나 복잡해질 수 있습니다.

 

이런 경우에 뷰 VIEW를 활용하여 아르바이트 생에게 userTbl은 접근할수 없도록 권한을 제한하고, 뷰에만 접근 권한을 주면 해결할 수 있습니다.

뷰 테이블 생성

2. 복잡한 쿼리를 단순화 할 수 있다

만약에 조인트 테이블의 결과를 자주 확인해야한다면, 뷰 테이블을 생성하면 쿼리를 단순화할 수 있습니다.

뷰로 생성해놓고, 해당 뷰만 접근하면 편하기 때문이죠.

아래 그림을 보겠습니다.

유저의 정보가 있는 유저테이블과 구매 내역이 기록된 구매 테이블을 연결하여 출력한 결괏값입니다.

 

이를 뷰로 생성해둔다면, 사용자는 해당 뷰만 접근하면 간단한 쿼리를 통해 원하는 데이터에 접근할 수 있습니다.

 

아래 그림을 확인해보면, view를 생성함으로써 단순히 마지막 SELECT문 하나로 두 테이블의 정보를 가져올 수 있습니다.

 

 

반응형
저작자표시

'SQL > MariaDB' 카테고리의 다른 글

[sql] 클러스터형 인덱스와 보조 인덱스 특징  (0) 2023.01.03
    'SQL/MariaDB' 카테고리의 다른 글
    • [sql] 클러스터형 인덱스와 보조 인덱스 특징
    Big Ben
    Big Ben
    Data Scientist

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.