Database ‐ 개념적 모델링 - dnwls16071/Backend_Summary GitHub Wiki
📚 엔티티
- 엔티티란, 우리가 데이터를 저장하고 관리해야 할 대상을 말한다.
- 구체적으로는 저장할 만한 가치가 있는 정보를 여러 개 가지고 있으면서 다른 것과 명확히 구분되는 유무형의 모든 것을 말한다.
- 데이터의 성격과 증가 추이를 미리 파악하는 습관을 들여야 한다.
기본 엔티티(ex. 회원/상품)
- 데이터 변경이 잦지 않고, 주로 조회(READ) 작업이 많다. 조회 성능에 최적화된 인덱싱 전략이 중요하다.
중심 엔티티(ex. 주문)
- 조회 중심축이자 트랜잭션의 핵심이다.
- 데이터가 꾸준히 증가하며, 조회 뿐만 아니라 INSERT/UPDATE 등도 빈번하게 일어난다.
- 조회 성능을 위해 각각의 쓰임새에 맞는 인덱스를 생성하는 것이 성능 유지의 관건이다.
행위 엔티티(ex. 주문 이력/결제 내역)
- 데이터가 폭발적으로 증가하며, 가장 많은 저장 공간을 차지하게 된다.
- 이런 테이블을 주문일 기준으로 월별 또는 분기별로 분할해두면, 특정 기간 데이터 조회나 삭제 시 성능 저하를 예방할 수 있다.
📚 속성과 식별자
- 속성(Attribute)이란, 엔티티가 가지는 구체적인 특성이나 정보를 말한다.
- 정의된 속성 중에서 특별한 역할을 하는 속성을 식별자(Identifier)라고 한다.
- 이 식별자는 데이터베이스 테이블에서 기본키(Primary Key)가 된다.
📚 카디널리티와 참여도
- 카디널리티(Cardinality)는 하나의 엔티티 인스턴스가 다른 엔티티 인스턴스와 몇 개나 관계를 맺을 수 있는지를 나타내는 수량 제약이다.
- 1:1, 1:N, N:1, M:N이 있다.
- 참여도(Optionality)는 한 엔티티 인스턴스가 관계에 반드시 참여해야 하는지, 아니면 참여하지 않을 수도 있는지를 결정한다.
📚 다대다 관계 해결 방법