앱에 대한 액세스 패턴 식별

완료됨

NoSQL 데이터베이스를 위한 데이터 모델을 디자인할 때의 목표는 최소한의 요청으로 데이터에 대한 작업을 수행하는 것입니다. 이렇게 하려면 데이터 간의 관계와 애플리케이션에서 데이터에 액세스하는 방법을 이해해야 합니다. 이러한 액세스 패턴은 관계와 함께 다양한 엔터티의 속성을 그룹화하고 Azure Cosmos DB for NoSQL 데이터베이스의 컨테이너 내에서 문서에 저장하는 방법을 결정하기 때문에 중요합니다.

Azure Cosmos DB for NoSQL에서는 문서를 항목이라고 하며 컨테이너를 컬렉션의 동의어로 자주 사용합니다.

고객 엔터티에 대한 액세스 패턴 식별

먼저 전자상거래 데이터베이스의 고객 엔터티부터 살펴보겠습니다. 다음 다이어그램에서는 세 개의 엔터티와 엔터티 간의 관계를 보여 줍니다. 세 가지 엔터티는 Customer, CustomerAddressCustomerPassword입니다. Customer 엔터티는 CustomerAddress와 일대다 관계가 있습니다. CustomerCustomerPassword와 일대일 관계가 있습니다.

Diagram that shows the relational model for customer entities.

이 애플리케이션에서는 고객 엔터티에 대해 다음 세 가지 작업을 수행합니다.

  • 고객 생성: 새 사용자가 전자상거래 사이트를 처음 방문하면 새 고객이 생성됩니다.
  • 고객 업데이트: 기존 사용자가 프로필 정보를 업데이트하면 고객 기록이 업데이트됩니다.
  • 고객 검색: 사이트를 방문한 기존 사용자는 암호를 사용하여 로그인합니다. 동일한 세션 동안 새 항목을 구매하려면 다른 고객 데이터(예: 주소)에 액세스해야 합니다.

각 작업에 대해 이 모든 데이터가 동시에 필요합니다. 엔터티를 별도의 문서로 모델링할 수 있지만, 그렇게 하려면 고객 데이터를 생성, 업데이트, 검색하기 위해 서버를 여러 번 왕복해야 합니다.

고객 엔터티 모델링

Azure Cosmos DB는 데이터를 JSON으로 저장하므로 CustomerCustomerAddress 간의 일대다 관계를 모델링하고 고객 주소 데이터를 배열로 포함할 수 있습니다. CustomerCustomerPassword 간의 일대일 관계는 새로운 단일 고객 문서에 개체로 포함할 수 있습니다. 그러면 전자상거래 애플리케이션이 한 번의 요청으로 고객 데이터를 생성, 편집 또는 검색할 수 있습니다.

다음 다이어그램은 고객 엔터티가 어떤 모습인지 보여 줍니다.

Diagram that shows a modeled customer document.