DB View 테이블이란? 만드는 방법

RDBMS는 여러 개의 테이블이 관계를 갖기 때문에 각 테이블을 조합하여 원하는 형태로 데이터를 뽑아낼 수 있습니다. 예를 들어, A와 B 테이블에서 각각 필요한 컬럼만 빼내서 C라는 테이블로 결과를 도출하는 식입니다. 이때 C를 마치 실제 테이블처럼 사용할 수 있습니다. 이게 VIEW 테이블의 개념입니다. 이런 방식이 왜 필요한지, 어떻게 사용할 수 있는지 알아보겠습니다.

뷰 테이블이란?

데이터베이스에서 뷰(View)는 실제 테이블의 데이터를 기반으로 만든 가상의 테이블입니다. 실제로 데이터를 저장하지는 않지만 데이터를 가상으로 구성해서 사용자에게 보여주고, 사용자가 실제 테이블에 접근하는 걸 막을 수 있습니다. 그러면서도 사용자 입장에서는 필요한 정보만 간단히 볼 수 있기 때문에 데이터를 더 쉽게 이해하고 분석할 수 있습니다.

 

뷰 테이블 사용 이유

뷰 테이블을 사용하는 이유는 여러 가지가 있습니다. 다만 그중에서도 기업에 도입된 솔루션 관점에서 보면 뷰 테이블은 인사(조직도) DB를 연동할 때 활용도가 높습니다. IT 인프라를 갖춘 기업들은 모두 고유의 인사 DB를 갖추고 있습니다. 인사 정보는 로그인이 필요한 모든 솔루션에 필수적인 요소이기 때문에 보통 해당 기업의 인사 정보를 자사의 솔루션 조직도에 연동하는 작업을 하게 됩니다.

 

기업 입장에서 인사 DB를 민감하게 다루고 싶을 수 있습니다. 그렇기 때문에 인사와 관련된 모든 테이블 스키마를 공개하는 것을 꺼릴 수 있습니다. 이럴 땐 필요한 데이터와 테이블 형태를 기준으로 view 테이블을 만들어 주면 됩니다.

 

예를 들어, A라는 솔루션에 조직도를 연동할 때 필수로 필요한 게 직원 이름, 직원 ID, 비밀번호, 부서, 상위 부서라면 그에 맞게 뷰 테이블을 만들어서 "이 뷰 테이블의 데이터로 연동하세요"라고 하는 겁니다. 그럼 실제 테이블의 데이터를 몰라도 만들어진 view를 보고 데이터를 가져다 쓸 수 있습니다.

 

뷰 테이블 생성 구문

CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;

 

예시)

cusotmers와 orders라는 테이블이 있습니다.

 

샘플 테이블

 

이 두 테이블을 조인해서 필요한 데이터를 뽑아 하나의 뷰 테이블을 만들어보겠습니다.

CREATE VIEW customer_orders AS
SELECT c.first_name, c.last_name, o.product, o.order_date
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id;

 

GUI로 보면 눈동자 모양으로 customer_orders라는 뷰가 생긴 걸 볼 수 있습니다. 실제로 데이터가 저장되는 게 아니기 때문에 용량도 없습니다.

 

생성된 뷰 테이블

 

이 테이블을 조회하면 만들었던 형태대로 데이터를 출력합니다.

SELECT * FROM customer_orders;

 

한번 만들어진 뷰 테이블은 실시간으로 실제 테이블의 변경을 반영합니다. 예를 들어, 실제 테이블인 customers와 orders에 값을 추가하고 customer_orders 뷰 테이블을 조회하면 그 결과가 반영됩니다.

INSERT INTO customers (customer_id, first_name, last_name, email) 
VALUES (2, 'Jane', 'Smith', 'jane.smith@example.com');

INSERT INTO orders (order_id, customer_id, product, order_date) 
VALUES (2, 2, 'Another Product', '2023-07-28');

SELECT * FROM customer_orders;

 

뷰 테이블 조회

반응형

댓글

Designed by JB FACTORY