데이터 모델이란 무엇인가요?
많은 소프트웨어 애플리케이션의 기반은 종종 데이터 모델입니다. 데이터 모델은 애플리케이션 내에서 어떤 데이터가 사용되고 상호 작용할 것인지 정의합니다. 이 데이터는 메모리에 일시적으로 저장되거나 데이터베이스와 같은 데이터 저장소에 영구적으로 저장됩니다.
데이터 모델 Mendix 도메인 모델이라고 알려진 시각적 언어를 사용하여 구축됩니다. 도메인 모델 내부에서 다음 구성 요소를 정의할 수 있습니다.
- 엔터티: 지속형 또는 비지속형일 수 있으며 데이터를 일시적 또는 영구적으로 저장할 수 있습니다. 지속형 엔터티는 고유한 기본 키(예: 위치 엔터티 또는 금융 거래 엔터티)와 함께 제공되는 데이터베이스 테이블과 동일합니다.
- Attributes: 이는 데이터베이스 테이블의 열과 같습니다(즉, 위치의 이름과 주소, 금융 거래의 날짜와 유형).
- 협회: 이는 두 데이터베이스 테이블 간의 조인과 같이 두 엔터티 간의 관계를 정의합니다.
때 Mendix 애플리케이션이 실행되면 런타임은 모델을 선택된 데이터베이스와 비교하고 필요한 모든 업데이트 스크립트를 수행합니다. Mendix 다음을 포함한 다양한 데이터베이스 유형을 지원합니다.
- PostgreSQL
- 마이크로 소프트 SQL 서버
- MySQL의
- 신탁
- 하나DB
선택은 당신입니다!
1. 엔터티 정의
새 프로젝트를 시작할 때마다 가장 먼저 정의해야 할 것은 데이터 구조입니다. 애플리케이션을 빌드하기 위해 만들어야 할 엔티티에 대해 생각해야 합니다. 이 예에서는 고객이 여러 가지 다른 제품을 주문할 수 있도록 하는 애플리케이션을 빌드합니다.
이 애플리케이션의 도메인 모델에서는 고객, 주문, 주문 라인이 지속된 엔터티가 필요합니다. 이를 통해 고객이 어떤 제품에 대해 어떤 주문을 했는지 추적할 수 있습니다. 지속된 각 엔터티는 고유한 키가 있는 데이터베이스의 테이블로 이어집니다. 아래 다이어그램은 네 개의 엔터티를 보여줍니다.

2. 속성을 추가하세요
엔티티를 만든 후에는 각 엔티티에 더 많은 세부 정보를 추가해야 하며, 여기서 속성이 작용합니다. 예를 들어, 고객은 VIP 또는 일반과 같은 이름이나 계정 유형을 가질 수 있습니다. 제품에는 이름이나 설명이 있을 수 있습니다.
엔티티를 작성하면서 애플리케이션의 세부 정보가 실현됩니다. 돌아가서 필요한 다른 속성을 추가하는 것은 매우 쉽습니다. 아래 다이어그램은 네 개의 엔티티 내에서 속성이 어떻게 나열되는지 보여줍니다.

우리는 이름과 자동 생성된 주문 번호, 그리고 주문이 이루어진 날짜를 추가했습니다. 속성은 테이블 열과 동일하며 문자열, 정수, 부울 및 애플리케이션을 빌드하는 데 필요한 모든 일반적인 데이터 유형과 같은 속성 유형과 크기를 갖습니다.
3. 연관성 생성
엔티티와 그 속성을 결정한 후에는 이들이 어떻게 관련되어 있는지 결정할 차례입니다. 이 예에서 고객은 여러 주문을 가질 수 있고, 주문은 여러 주문 라인을 가질 수 있으며, 각 제품은 여러 번 주문될 수 있습니다. 아래 그림은 엔티티 간의 관계를 나타냅니다.

관계가 연관 관계를 통해 시각적으로 어떻게 표현되는지 알 수 있을 것입니다. 고객-주문 관계는 별표로 표시된 대로 일대다입니다. 이 예를 한 단계 더 발전시키기 위해 관계 간의 동작을 삭제할 수도 있습니다.
예를 들어, 고객이 주문이 있는 경우 고객과 관련된 모든 주문을 삭제해야 합니까(계단식 삭제라고 함)? 아니면 고객이 주문이 있는 경우 사용자가 주문을 삭제하지 못하게 해야 합니까(예방 삭제라고 함)?

연관성을 두 번 클릭하여 동작과 삭제 옵션이 구성된 방식을 확인합니다. 삭제 동작은 비즈니스 요구 사항에 따라 달라야 합니다. 다음 질문을 고려하세요. 주문이 있을 때 고객을 유지하는 것이 중요한가요? 아니면 고객을 삭제할 때 데이터베이스를 정리하고 고아 주문이 없도록 하는 것이 더 중요한가요?
이는 비즈니스 사용자에게 묻는 좋은 질문이며 올바른 비즈니스 규칙을 만드는 데 도움이 될 것입니다. 이것의 시각적 표현은 파란색(예방 삭제) 또는 빨간색(계단식 삭제)입니다.
무엇이 가능한지 확인하세요 Mendix