developer-soyun 2024. 11. 6. 14:46

ER 모델의 구성요소로는 엔티티(Entity), 관계(Relationship), 속성 (Attribute) 이 있으며, 속성과 관계 중 하나 이상의 조합으로 구성된 식별자(Identifier)를 포함한다


엔티티(Entity)

  • 실제로 존재하는 실체 (상품, 고객, 직원 etc)
  • 개념적인 것(조직, 서비스, 직업 etc)
  • 업무를 구현하는 데 필요하고 관리해야 하는 주체, 대상, 행위 등의 모든 집합적인 것(Thing)으로 정의할 수 있다
  • 적어도 둘 이상의 인스턴스가 존재할 수 있어야한다
  • 최소한 둘 이상의 속성이 있어야 한다
  • 각 인스턴스를 식별할 수 있는 속성이나 관계가 하나 이상 정의되어야 한다
  • 엔티티 슈퍼타입 엔티티나 서브타입 엔티티로 확장할 수 있다
    • 슈퍼타입
      • 하나 이상의 서브타입 엔티티와 관계된 일반화된 엔티티
      • 서브타입에 공통으로 존재하는 속성을 관리
    • 서브타입
      • 각각의 서브타입에만 존재하는 고유한 속성 관리
      • 슈퍼타입이 모든 특성을 상속받는다

일반화 (Generalization)

  • 엔티티의 일반화는 엔티티 각각이 가지고 있는 고유한 특징을 일반화하여 공통의 속성으로 재정의 한 것
  • 엔티티를 일반화하게 되면 여러 개의 엔티티를 하나의 공통된 엔티티로 만들 수 있다
  • 상향식 접근 방식이다

두 개 이상의 하위 수준(개인고객,법인고객) 을 상위 수준(고객 엔티티)로 통합 (상향식 접근 방식)


일반화의 장단점

  • 장점
    • 업무 관계를 단순하게 정의할 수 있다
    • 업무 변화에 유연하게 적응할 수 있다
  • 단점
    • 고유 속성의 의미가 불분명해질 수 있다
    • 참조 무결성 및 도메인 무결성을 제대로 반영하지 못할 수 있다
      • 해결방안: 데이터 정합성 문제가 발생하지 않도록 응용프로그램에서 업무 규칙을 추가로 설계하고 반영해야 한다

특수화(Specialization)

  • 하나의 상위 수준 엔티티를 두 개 이상의 하위 수준 엔티티로 분할하는 하향식 접근 방식
  • 슈퍼타입을 정의 → 서브타입과 속성을 정의 → 관계 정의


집단화(Aggregation)

  • 기본 ER 모델의 표기법은 다른 관계를 포함하는 관계를 표현할 수 없다
  • 하나의 엔티티로 취급되는 두 개 엔티티 사이에서 나타난다
  • 해당 엔티티와의 관계가 상위 수준 엔티티로 대체 된다

다양한 엔티티 분류

엔티티 관계 앤티티 형태 앤티티 생성 관점 앤티티 유무형
강한(Strong) 독립 (Kernal, Master) 핵심 (Key) 실체 (Tangible)
약한 (Weak) 업무중심 (Transaction) 중요 (Main) 비실체 (Intangible)
- 개념 (Conceptual)
- 사건 (Event)
  종속 (Dependent) 행위 (Action)
  교차 (Associative)  

 


 

독립 (Kernal, master) 엔티티

  • 원래부터 현실에 존재하는 엔티티
  • 고객, 상품, 창고, 조직 등

업무중심(Transaction) 엔티티

  • 업무를 처리하면서 발생하는 데이터에 해당
  • 주제영역에서 가장 랙심이 되는 엔티티
  • 주문, 결제, 배송, 청구 등

종속(Dependent) 엔티티

  • 주로 업무중심 엔티티에서 1차 정규화로 인해 분리된 엔티티에 해당
  • 주문상품, 주문배송 엔티티는 주문 엔티티가 있어야 존재 가능, 주문 엔티티의 종속 엔티티

교차(Associative, Relative) 엔티티

  • 두 개 이상의 엔티티 간에 발생하는 트랜잭션에 의해 생성된다
  • *트랙잭션: 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위

핵심(Key) 엔티티

  • 부모 엔티티를 갖지 않는 독립적이며, 핵심적인 엔티티
  • 고객, 상품, 조직 

중요(Main) 엔티티

  • 핵심 엔티티 간의 거래 관계에 의해 생성되는 엔티티이며, 업무의 핵심이 되는 엔티티
  • 계약은 고객과 상품의 거래 관계에 의해 생성되며, 고객과 상품을 부모로 갖는다

행위(Action) 엔티티

  • 실제 업무 행위에 의해서 지속해서 발생하는 거래 행위에 대한 엔티티
  • 청구내역, 카드승인

관계 (Relationship)

  • 관계수 (Cardinality)
    • 어떤 엔티티의 인스턴스 하나가 다른 엔티티 몇 개(1, n) 인스턴스와 대응될 수 있는지 표한 것
    • 일대일 (1:1), 일대다(1:M), 다대다 (M:N)
  • 선택성(Optionality)
    • 해당 엔티티 인스턴스에 대해 상대 엔티티에 인스턴스가 반드시 존재해야 하는지 (Mandatory), 존재하지 않아도 되는지 (Optional) 표시한다
    • 양쪽 필수, 한쪽 필수, 양쪽 선택
  • 식별성 (Identifier Inheritance)
    • 엔티티의 식별자를 다른 엔티티에서 상속받을 때 식별자로 상속받을 지 (식별관계), 일반 속성으로 상속받을 지 (비식별관계) 표시한다
    • 식별관계 : 참조되는 상위 엔티티 식별자가 참조하는 하위 엔티티 식별자로 상속되는 경우
    • 비식별관계 : 식별자가 아닌 일반 속성으로 상속되는 관계
  • 관계명
    • 관계의 의미나 이름을 표시한다

관계 차원

  • 관계에 참여하는 엔티티의 수
  • 단항 관계: 하나의 엔티티 내에 존재하는 관계
  • 이항 관계: 두 개 엔티티 간의 관계에 해당하며, 가장 일반적인 형태의 관계

속성 (Attribute)

  • 속성은 데이터를 표현하는 가장 작은 단위
  • 속성을 통해 엔티티가 가지고 있는 특성이나 상태를 알 수 있다
  • 단순 속성 : 더 분해할 수 없는 원자 값
  • 복합 속성 : 단순 속성들의 집합
  • 저장 속성 : 원래 존재하는 속성
  • 파생 속성: 저장 속성이나 다른 파생 속성으로부터 파생된 속성
  • 단일 값 속성 : 하나의 값만 가지는 속성
  • 다중 값 속성 : 하나의 속성이 여러 개의 값을 가지는 속성 

식별자 (Identifier)

  • 엔티티에서 인스턴스를 개별적으로 식별할 수 있는 속성(들)
  • 식별자의 특징
    • 유일성 (Uniqueness)
    • 최소성 (Minimum)
    • 불변성 (Stability)
    • 존재성 (Mandatory)