NoSQL

문서형 NoSQL은 함께 읽는 단위를 한 문서로 묶는다

임베딩은 읽기 경로를 짧게 만들지만, 문서 크기와 변경 빈도, 중복 갱신 비용을 함께 봐야 한다.

임베딩

{ orderId: "O100", customer: { name: "김민수" }, items: [ { productId: "P10", qty: 2 } ] }

참조

{ orderId: "O100", customerId: "C01", itemIds: ["I10", "I11"] }
관점
임베딩 적합
참조 적합
읽기
주소, 전화번호처럼 작고 항상 함께 읽는다.
독립적으로 자주 바뀌거나 매우 많은 자식 데이터다.
쓰기
부모와 자식이 같은 트랜잭션 의미를 가진다.
중복 갱신 비용이 크다.
제한
문서 크기와 업데이트 패턴이 DBMS 제한 안에 있다.
관계를 여러 문서가 공유한다.

기준: NoSQL이라도 모든 관계를 한 문서에 넣는 것은 아니다. 읽기 단위와 변경 단위가 같을 때만 묶는다.