nosql 데이터 모델링 개념과 특징 / 기법 좋은 자료인것같아 정리해봤습니다.
https://www.youtube.com/watch?v=oUjpMJNtfYE 영상입니다.
Denormalization> 비정규화 = 데이터 중복 허용
- 쿼리 프로세싱을 간단하게 하거나 최적화하기 위해 또는, 사용자의 데이터를 특정한 데이터 모델에 맞추기 위해서 같은 데이터를 여러 도큐먼트나 테이블에 복제하여 중복하는 것을 허용함> 비정규화로 인한 트레이드-오프
- Query data volume or IO per query VS total data volume
(쿼리당 I/O 또는 쿼리 데이터 사이즈 VS 전체 데이터 사이즈)
- Processing complexity VS total data volume
(쿼리 수행의 복잡도 VS 전체 데이터 사이즈)- 비정규화하면 쿼리 수행을 위한 모든 데이터를 한곳에 모아놓고 쿼리를 수행하기 때문에, 쿼리 수행을 위한 I/O 숫자를 줄여 전체 성능을 향상시킬 수 있음
- 데이터 모델링 시점에서 데이터 정규화(중복 제거)를 하거나 쿼리 실행 시점에서 데이터 간의 연속적인 join은 쿼리 프로세스의 복잡도를 증가시킴
- 데이터 비정규화를 하면 쿼리에 필요한 모든 데이터를 한 곳에 쿼리 친화적인 구조로 모아놓을 수 있기 때문에 전체적인 쿼리 프로세싱을 단순화하고 수행시간 단축이 가능하다
- 해당 데이터는 다른 쿼리 수행을 위해 다른 도큐먼트나 테이블에 중복 저장되기 때문에 사이즈는 필연적으로 증가한다
Aggregates-"유연한 스키마" 속성은 복잡하고 다양한 구조의 내부요소를 가지고 있는 데이터 클래스를 구성가능하게 한다.-NoSQL의 schema-less 특성 이용하면, 데이터 모델을 하나의 테이블로 합칠 수 있음 (7:35) https://www.youtube.com/watch?v=oUjpMJNtfYE
Application Side Joins
- 대상 데이터가 수시로 변경되는 경우, 비정규화와 어그리게이션을 통해 많은 entity에 해당 데이터의 중복을 허용했기 때문에 해당 데이터 업데이트 많은 비용이 발생함
- 이런 경우, 차라리 변경이 잦은 데이터만을 추려 쿼리 타임 조인을 수행하는 것이 대안 (RDBMS)# 주요 NOSQL 데이터 모델링 기법## Composite Key## Inverted Search Index
은총정리
nosql특징