[sql] SQL 데이터베이스 뷰 업데이트 시나리오 예시

데이터베이스 뷰는 하나 이상의 테이블에서 데이터를 가져와 가상의 테이블로 표현하는데 사용됩니다. 가끔씩 뷰를 갱신해야 하는 상황이 발생할 수 있습니다. 이번 블로그에서는 SQL 데이터베이스에서 뷰를 업데이트하는 간단한 시나리오를 살펴보겠습니다.

뷰 업데이트 시나리오

가령, 고객 정보를 보여주는 customer 테이블과 주문 내역을 보여주는 orders 테이블이 있다고 가정해봅시다. 이 두 테이블을 조인하여 고객별 주문 수를 보여주는 뷰를 생성했다고 가정합니다.

CREATE VIEW customer_order_count AS
SELECT c.customer_id, c.customer_name, COUNT(o.order_id) AS order_count
FROM customer c
JOIN orders o ON c.customer_id = o.customer_id
GROUP BY c.customer_id, c.customer_name;

그런데 이제 주문 테이블에 새로운 주문 내역이 추가되었고, 이를 반영하여 customer_order_count 뷰를 업데이트해야 합니다.

뷰 업데이트 방법

SQL에서 뷰는 직접적으로 수정할 수 없기 때문에, 뷰를 업데이트하려면 사용된 테이블들의 데이터를 업데이트해야 합니다. 새로운 주문이 추가된 경우, orders 테이블을 업데이트한 후 해당 데이터가 반영되도록 customer_order_count 뷰를 다시 생성해야 합니다.

CREATE OR REPLACE VIEW customer_order_count AS
SELECT c.customer_id, c.customer_name, COUNT(o.order_id) AS order_count
FROM customer c
JOIN orders o ON c.customer_id = o.customer_id
GROUP BY c.customer_id, c.customer_name;

결론

데이터베이스 뷰를 업데이트하는것은 뷰에 사용된 기본 테이블들의 데이터를 업데이트하는것과 밀접한 관련이 있습니다. 뷰를 갱신할 때 항상 뷰를 구성하는 기본 테이블들의 변경사항을 고려하여야 합니다.

이상으로 뷰를 업데이트하는 간단한 시나리오를 살펴보았습니다. 감사합니다.

참고 문헌