Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ /

임베디드된 데이터 및 참조 비교

이 페이지의 내용

  • 임베디드 데이터 모델
  • 사용 사례
  • 내장된 데이터 쿼리
  • 참조
  • 사용 사례
  • 정규화된 데이터 모델 쿼리
  • 자세히 알아보기

효과적인 데이터 모델은 애플리케이션의 요구 사항을 지원합니다. 스키마 설계의 주요 결정 중 하나는 데이터를 포함 할지 아니면 참조를 사용할지 여부입니다.

단일 문서에 관련 데이터를 포함할 수 있습니다. 다음 예제에서 contactaccess 필드는 내장된 문서입니다.

모든 관련 정보가 포함된 필드가 내장된 데이터 모델입니다.

자주 액세스하는 데이터는 여러 컬렉션에 중복되어 있기 때문에 내장된 데이터 모델은 종종 비정규화됩니다.

임베디드 데이터 모델을 통해 애플리케이션은 관련 정보를 동일한 데이터베이스 레코드에서 쿼리할 수 있습니다. 이로 인해 애플리케이션은 일반적인 작업을 완료하기 위해 더 적은 수의 쿼리와 업데이트를 실행해야 합니다.

다음 시나리오에서는 임베디드 데이터 모델을 사용하세요.

  • 엔터티 간에 '포함' 관계가 있습니다. For example, a contacts document that contains an address. 내장된 문서를 통한 일대일 관계 모델링을 참조하세요.

  • 엔티티 간에 일대다 관계가 있습니다. 이러한 관계에서 '다수' 또는 하위 문서는 '하나' 또는 상위 문서의 컨텍스트에서 표시됩니다. 내장된 문서를 통한 일대다 관계 모델링을 참조하세요.

임베드하면 다음과 같은 이점이 있습니다.

  • 읽기 작업의 성능 향상

  • 단일 데이터베이스 작업으로 관련 데이터를 검색할 수 있는 기능

  • 단일 원자 쓰기 작업으로 관련 데이터를 업데이트하는 기능

내장된 문서 내에서 데이터를 쿼리하려면 점 표기법을 사용합니다. 배열 및 내장된 문서의 데이터를 쿼리하는 예는 다음을 참조하세요.

참고

문서 크기 제한

MongoDB의 문서는 16메가바이트보다 작아야 합니다.

대규모 바이너리 데이터의 경우 GridFS를 고려하세요.

참조는 한 문서에서 다른 문서로 연결되는 링크(참조라고 함)를 포함하여 데이터 간의 관계를 저장합니다. 다음 예시에서 contactaccess 문서에는 user 문서에 대한 참조가 포함되어 있습니다.

링크 문서에 대한 참조를 사용하여 데이터 모델을 연결합니다. ``contact`` 문서와 ``access`` 문서 모두 ``user`` 문서에 대한 참조를 포함하고 있습니다.

데이터가 여러 컬렉션으로 나뉘고 중복되지 않기 때문에 참조는 정규화된 데이터 모델을 생성합니다.

다음 시나리오에서는 참조를 사용하여 관련 데이터를 연결합니다.

  • 임베딩으로 인해 데이터 중복이 발생하지만, 중복으로 인한 영향을 능가할 만큼 충분한 읽기 성능 이점을 제공하지 않습니다. 예를 들어 임베디드 데이터가 자주 변경되는 경우입니다.

  • 복잡한 다대다 관계 또는 대규모 계층적 데이터 세트를 표현해야 합니다.

  • 관련 엔티티는 자주 자체적으로 쿼리됩니다. 예를 들어 employeedepartment 데이터가 있는 경우 employee 문서에 부서 정보를 포함하는 것을 고려할 수 있습니다. 그러나 부서 목록을 자주 쿼리하는 경우 employee 컬렉션에 참조와 함께 연결된 별도의 department 컬렉션을 사용하면 애플리케이션이 최상의 성능을 발휘합니다.

여러 컬렉션의 정규화된 데이터를 쿼리하기 위해 MongoDB는 다음과 같은 집계 단계를 제공합니다.

정규화된 데이터 모델의 예시는 문서 참조를 통한 일대다 관계 모델링을 참조하세요.

다양한 트리 모델의 예는 트리 구조 모델링을 참조하세요.

MongoDB를 사용한 데이터 모델링에 대한 자세한 내용은 MongoDB 애플리케이션 현대화 가이드를 다운로드하여 알아보세요.

다음과 같은 리소스가 다운로드에 포함됩니다.

  • MongoDB를 사용한 데이터 모델링 방법론에 대한 프레젠테이션

  • RDBMS 데이터 모델에서 MongoDB로 마이그레이션하기 위한 모범 사례와 고려 사항을 다룬 백서

  • RDBMS에 해당하는 MongoDB 스키마 참조

  • 애플리케이션 현대화 스코어카드

돌아가기

개념