NoSQL 을 이용한 구현은 데이터 모델링을 얼마나 잘했느냐가 개발 성공 여부 90%이상을 차지한다.
RDBMS에서 도메인 모델 -> [테이블 -> 쿼리] 순서로 진행했다면
NoSQL에서는 도메인 모델 -> [쿼리 결과 -> 테이블] 순서로 테이블을 디자인 해야 한다.
NoSQL은 쿼리의 효율성을 위해서 데이터를 정규화 하지 않고
의도적으로 중복된 데이터를 저장하는 등의 비정규화된 데이터 모델 설계 방식으로 접근해야 한다.
NoSQL 에는 ORDER BY, GROUP BY 를 이용한 그룹화, 조인 기능이 없다.
NoSQL 모델링 패턴
1. 역정규화
- 같은 데이터를 중복해서 저장하는 방식
- 테이블 간의 조인 없앨 수 있다.
- 하나의 테이블에 조인 될 데이터를 중복 저장하게 되면 1번의 IO로도 데이터를 가지고 올 수 있다.
- NoSQL의 경우 조인이 어렵고 어플리케이션
장점
- 성능향상
- 쿼리 로직의 복잡도가 낮아짐
단점
- 데이터 일관성 문제 발생 가능
- 스토리지 용량 증가
반응형
'프로그래밍 언어 > DB' 카테고리의 다른 글
Postgresql에서 5432 port가 열려있냐는 문제(Ubuntu 기준) (0) | 2021.06.30 |
---|---|
서버에서 postgresql 접속 및 데이터베이스, 스키마, 테이블 조회 (0) | 2021.06.18 |
postgresql - relation "hibernate_sequence" does not exist (0) | 2021.05.14 |
Column count of mysql.proc is wrong. Expected 21, found 20. The table is probably corrupted (0) | 2021.04.16 |
entity, attribute (0) | 2020.07.06 |