database에서 view를 어떻게 사용하나요?

주재성·2023년 2월 12일
0
post-thumbnail

VIEW란 무엇인가?

database에서 view는 물리적 객체가 아니라 논리적 객체로 가상의 테이블입니다.
view에서 지정한 쿼리는 다른 쿼리로 이 view를 참조할 때마다 실행됩니다.

  • table은 select, update 및 delete가 가능하지만 view는 select만 가능합니다.
  • table은 데이터를 포함하고 view는 어떤 데이터도 포함되어 있지 않습니다.

VIEW를 왜 사용하나요?

  1. 데이터 보안 : view를 사용하여 테이블에 대한 액세스를 제한할 수 있으므로 어떤 사용자가 어떤 데이터를 보고 조작할 수 있는지 제어할 수 있습니다.
  2. 단순화 : 전체 테이블을 표시하는 대신 관련 열과 행만 표시하여 데이터 쿼리 프로세스를 단순화할 수 있스니다.
  3. 추상화 : 기본 데이터 구조를 추상화하고 데이터에 대한 상위 수준 인터페이스를 제공하여 이해하고 작업하기 쉽게 만듭니다.
  4. 성능 : 데이터를 사전 집계하거나 인덱스를 사용하여 데이터에 보다 효율적으로 액세스함으로써 복잡한 쿼리의 성능을 향상시킬 수 있습니다.
  5. 데이터 무결성 : 삽입, 업데이트 또는 삭제할 수 있는 데이터를 제한하여 비즈니스 규칙을 적용하는 데 사용할 수 있습니다.
  6. 재사용성 : 여러 쿼리, 보고서, 대시보드 등의 기반으로 사용할 수 있습니다.

Best Practices

  1. 복잡한 쿼리 단순화: join 또는 sub query와 같은 복잡한 논리를 캡슐화하고 작업하기 쉬운 단순화된 형식으로 데이터를 표시합니다.
  2. column 수 제한: 성능을 개선하고 전송해야 하는 데이터 양을 줄일 수 있으므로 필요한 열만 포함합니다.
  3. 데이터 보안 적용: 데이터의 특정 열 또는 행에 대한 액세스를 제한하고 특정 사용자 또는 역할에 대한 액세스를 제한합니다.
  4. 데이터 수정에 사용 금지: 뷰는 일반적으로 읽기 전용이므로 뷰를 통해 데이터를 수정하려고 하면 오류나 예기치 않은 동작이 발생할 수 있습니다.
  5. 무결성 적용: view를 사용하여 특정 비즈니스 규칙에 따라 데이터를 삽입, 업데이트 또는 삭제합니다.
  6. 성능 향상: view를 사용하여 데이터를 사전 집계하거나 index를 사용하여 데이터에 보다 효율적으로 액세스하여 쿼리 성능을 향상시킬 수 있습니다.
  7. 기본 데이터 구조 추상화: 데이터에 대한 상위 수준 인터페이스를 제공하여 더 쉽게 이해하고 작업할 수 있습니다.
  8. 재사용성 향상: 여러 쿼리, 보고서, 대시보드 등의 기반으로 사용할 수 있습ㄴ디ㅏ.
  9. 데이터 일관성 유지: 다른 애플리케이션이나 사용자가 동일한 버전의 데이터로 작업하도록 유지하십시오.
  10. 성능 문제를 숨기기 위해 view를 사용하지 않음: view의 성능이 좋지 않은 경우 view를 사용하여 숨기기 보다 근본적인 성능 문제를 식별하고 해결하는 것이 중요합니다.

개인적으로는 CTE문을 사용하여 쿼리를 단순화하다가 반복적으로 사용되는 부분을 view로 만들어서 유용하게 사용하고 있습니다.

0개의 댓글