Oracle Database 강좌/3. 데이터베이스 객체

뷰: 가상 테이블 생성 및 활용

_Blue_Sky_ 2024. 10. 7. 11:53
728x90
728x90

데이터베이스 객체: 뷰(View)를 활용한 가상 테이블 생성 및 활용 가이드

뷰(View)란 무엇인가?

데이터베이스에서 뷰(View)는 가상 테이블이라고 불리는 가상의 객체입니다. 실제 테이블처럼 행과 열로 구성되어 있지만, 실제 데이터를 저장하지 않고 기존 테이블의 데이터를 기반으로 특정한 시각을 제공합니다. 마치 창문을 통해 특정한 풍경만을 보는 것과 같이, 뷰는 전체 데이터 중에서 필요한 부분만을 추출하여 보여주는 역할을 합니다.

왜 뷰를 사용해야 할까요?

  • 데이터 접근의 간소화: 복잡한 조인이나 집계 쿼리를 단순한 뷰로 만들어 사용하면, 비전문가도 쉽게 데이터에 접근할 수 있습니다.
  • 데이터 보안 강화: 민감한 정보가 포함된 열을 제외하거나, 특정 조건에 맞는 데이터만 노출하는 뷰를 생성하여 데이터 보안을 강화할 수 있습니다.
  • 데이터 일관성 유지: 한 번 정의된 뷰는 기본 테이블이 변경되더라도 항상 동일한 결과를 반환하므로, 데이터의 일관성을 유지하는 데 도움이 됩니다.
  • 쿼리 성능 향상: 자주 사용되는 복잡한 쿼리를 뷰로 미리 정의해 두면, 쿼리 실행 시간을 단축할 수 있습니다.
  • 데이터 모델링의 유연성: 데이터 모델이 변경되더라도 뷰만 수정하면 되므로, 시스템의 유연성을 높일 수 있습니다.

뷰 생성 방법 (예시: SQL Server)

CREATE VIEW [뷰 이름]
AS
SELECT [필드 목록]
FROM [테이블 이름]
WHERE [조건]
 
  • [뷰 이름]: 생성할 뷰의 이름을 지정합니다.
  • [필드 목록]: 표시할 필드를 지정합니다.
  • [테이블 이름]: 데이터를 가져올 기본 테이블을 지정합니다.
  • [조건]: 필터링 조건을 지정합니다.

예시:

CREATE VIEW CustomerView
AS
SELECT CustomerID, CustomerName, City
FROM Customers
WHERE Country = 'USA';
 

위 예시에서는 Customers 테이블에서 Country가 'USA'인 고객 정보만을 보여주는 CustomerView라는 뷰를 생성합니다.

728x90

뷰 활용 방법

  • SELECT 문에서 사용:
    SELECT * FROM CustomerView;
    
     
  • JOIN 문에서 사용:
    SELECT * 
    FROM CustomerView 
    INNER JOIN Orders ON CustomerView.CustomerID = Orders.CustomerID;
    
     
  • WHERE 절에서 사용:
    SELECT * FROM CustomerView
    WHERE City = 'New York';
    
     

뷰의 종류

  • 단순 뷰: 하나의 테이블을 기반으로 생성되는 뷰
  • 복합 뷰: 여러 테이블을 조인하여 생성되는 뷰
  • 인라인 뷰: 서브쿼리 결과를 기반으로 생성되는 뷰

뷰의 장단점

장점:

  • 데이터 접근의 간편화
  • 데이터 보안 강화
  • 데이터 일관성 유지
  • 쿼리 성능 향상
  • 데이터 모델링의 유연성

단점:

  • 성능 저하: 복잡한 뷰는 쿼리 성능을 저하시킬 수 있습니다.
  • 데이터 변경의 어려움: 뷰를 통해 데이터를 직접 수정할 수 없습니다.
  • 인덱스 활용의 제한: 뷰에 인덱스를 생성할 수 없거나, 생성해도 효과가 제한적일 수 있습니다.

뷰 활용 시 주의사항

  • 뷰의 복잡도: 뷰가 너무 복잡하면 성능이 저하될 수 있으므로, 간단하게 만들도록 노력해야 합니다.
  • 인덱스 활용: 뷰에 자주 사용되는 필드에 인덱스를 생성하여 성능을 향상시킬 수 있습니다.
  • 데이터 변경: 뷰를 통해 데이터를 직접 수정하려고 하지 마세요. 기본 테이블을 직접 수정해야 합니다.
  • 뷰의 유지보수: 기본 테이블의 구조가 변경되면 뷰도 함께 수정해야 합니다.

결론

뷰는 데이터베이스 개발에서 매우 유용한 도구입니다. 데이터 접근을 간소화하고, 데이터 보안을 강화하며, 쿼리 성능을 향상시키는 데 큰 도움이 됩니다. 뷰를 효과적으로 활용하기 위해서는 뷰의 특징과 장단점을 잘 이해하고, 적절하게 사용해야 합니다.

 

728x90
728x90