Realm 데이터 모델 설계
이 페이지의 내용
효과적인 데이터 모델은 애플리케이션 요구 사항을 지원 합니다. 문서 구조에 대한 주요 고려 사항은 를포함 할지 또는 참조를 사용할지 결정하는 것입니다.
임베디드 데이터 모델
MongoDB를 사용하면 관련 데이터를 단일 구조 또는 문서에 포함할 수 있습니다. 이러한 스키마는 일반적으로 '비정규화된' 모델로 알려져 있으며 MongoDB의 풍부한 문서를 활용할 수 있습니다. 다음 다이어그램을 살펴보세요.
임베디드 데이터 모델을 통해 애플리케이션은 관련 정보를 동일한 데이터베이스 레코드에 저장할 수 있습니다. 이로 인해 애플리케이션은 일반적인 작업을 완료하기 위해 더 적은 수의 쿼리와 업데이트를 실행해야 합니다.
일반적으로 Realm 데이터 모델은 다음과 같은 경우에 사용합니다.
엔터티 간에 '포함' 관계가 있습니다. 내장된 문서를 통한 일대일 관계 모델링을 참조하세요.
엔티티 간에 일대다 관계가 있습니다. 이러한 관계에서 '다수' 또는 하위 문서는 항상 '하나' 또는 상위 문서와 함께 표시되거나 해당 컨텍스트에서 표시됩니다.내장된 문서를 통한 일대다 관계 모델링을 참조하세요.
일반적으로 임베딩을 사용하면 읽기 작업의 성능이 향상될 뿐만 아니라 한 번의 데이터베이스 작업으로 관련 데이터를 요청하고 조회할 수 있습니다. 임베디드 데이터 모델에서는 원자성 쓰기 작업 한 번으로 관련 데이터를 업데이트할 수 있습니다.
내장된 문서 내의 데이터에 액세스하려면 점 표기법 을 사용하여 내장된 문서에 '범위'를 입력합니다. 배열 및 내장된 문서의 데이터에 액세스하는 방법에 대한 더 많은 예제는 배열의 데이터 쿼리 및 내장된 문서 의 데이터 쿼리를 참조하세요.
임베디드 Realm 데이터 모델 및 문서 크기 제한
MongoDB의 문서는 최대 BSON 문서 크기보다 작아야 합니다.
대량 바이너리 데이터의 경우 GridFS를 고려하세요.
정규화된 Realm 데이터 모델
정규화된 Realm 데이터 모델은 문서 간의 참고 를 사용하여 관계를 설명합니다.
일반적으로 정규화된 데이터 모델을 사용합니다.
임베딩으로 인해 데이터 중복이 발생하지만 중복으로 인한 영향을 능가할 만큼 충분한 읽기 성능 이점을 제공하지 않습니다.
더 복잡한 다대다 관계를 표현합니다.
대규모 계층적 데이터 세트를 모델링합니다.
컬렉션에 조인하기 위해 MongoDB는 집계 단계를 다음과 같이 제공합니다.
$lookup
(MongoDB 3.2부터 사용 가능)$graphLookup
(MongoDB 4.2부터 사용 가능)
MongoDB는 또한 컬렉션 전체에 걸쳐 데이터를 결합하는 참조를 제공합니다.
정규화된 데이터 모델의 예시는 문서 참조를 통한 일대다 관계 모델링을 참조하세요.
다양한 트리 모델의 예는 트리 구조 모델링을 참조하세요.
추가 읽기
MongoDB를 사용한 데이터 모델링에 대한 자세한 내용은 MongoDB 애플리케이션 현대화 가이드를 다운로드하여 알아보세요.
다음과 같은 리소스가 다운로드에 포함됩니다.
MongoDB를 사용한 데이터 모델링 방법론에 대한 프레젠테이션
RDBMS 데이터 모델에서 MongoDB로 마이그레이션하기 위한 모범 사례와 고려 사항을 다룬 백서
RDBMS에 해당하는 MongoDB 스키마 참조
애플리케이션 현대화 스코어카드