by yetiinnexx [DB 모델링/설계] view table [2021.04.19 13:44:54]
안녕하세요!
데이터 분석가로 일하며 이번 직장에서 처음으로 데이터 엔지니어와 처음 협업을 하게 되며 요청사항을 정리하고 있는데, DB 설계 관련해서 지식이 많지 않아 궁금증이 생겼습니다.
table과 view는 다르다고 배웠는데 이전 직장과 현재 직장에서 모두 뷰를 거의 테이블처럼 저장해놓고 반영구적으로 사용하는 경우를 봤습니다.
그런데 이 view들의 경우 거의 집계값들이 필드로 들어가 있고, view 간에는 중복된 집계값이 많습니다.
예를 들어 viewA에서는 A 상품 카테고리에 대해 고객의 성,연령 비율을 보는 필드가 있고 viewB에서는 B 상품 카테고리에 대해 성, 연령 비율을 보는 필드가 들어가는 식으로, 사실상 거의 비슷한 측정값들이 대상만 다르게 해서 수십 개의 view로 나뉘어 있습니다.
1. view와 table의 차이를 검색해보면, view는 테이블과 달리 물리적 공간을 차지하지 않는다고 배웠는데 계속 저장해두고 사용해도 그런지
2. 많은 view를 만들어서 사용하는 것이 이점이 있는 경우들이 무엇인지
3. 혹시 중복된 컬럼이 많은 뷰를 남발하는 데에서 오는 문제가 있지는 않은지 궁금합니다.(관리의 문제? 혹은 저장공간의 문제?)
가 궁금합니다.
감사합니다
1. 뷰는
- 데이터가 저장되는게 아니라 쿼리가 저장되는 것입니다.
- 뷰 조회시 저장된 쿼리가 실행되는 것입니다.
2. 많은 view를 만들어서 사용하는 것이 이점이 있는 경우
- 이미 작성되어 있는 쿼리를 이용하므로 별도 쿼리를 작성할 필요가 없겠네요.
3. 혹시 중복된 컬럼이 많은 뷰를 남발하는 데에서 오는 문제
- 실제 데이터 중복은 없으므로 데이터 관점에서는 전혀 문제가 없습니다.
- 다만 관리적인 관점에서는 많은 뷰를 관리하는 문제가 있긴 하겠네요.
http://gurubee.net/lecture/1036