관계형 데이터 모델링 프리미엄 가이드 DB구축 (2014년)
엔터티 종류 0 0 38,746

by 구루비스터디 엔터티 Entity [2018.06.10]


엔터티 종류

  • 엔터티의 성격을 파악하거나, 현행 데이터베이스가 존재할 때 작업순서를 정하는데 도움을 주기위해서, 엔터티를 분류한다.
  • 프로젝트에서 엔터티를 정확하게 분류하는 것은 현실적으로 어렵다. 이상적인 순서는 먼저 현행 엔터티 전체를 분류하고 실체 엔터티로 분류된 핵심적인 엔터티를 대상으로 개념모델링을 진행하는 것이다.


  • 실체 엔터티 : 실제 물체(보이는 실상)에 대한 본질적인 데이터를 관리하는 엔터티
  • 행위 엔터티 : 행위나 활동에 의해서 발생된 원천 데이터를 관리하는 엔터티
  • 가공 엔터티 : 원천 데이터를 추출, 집계한 데이터를 관리하는 엔터티
  • 기준 엔터티 : 실체나 행위 데이터의 기준이 되는 데이터를 관리하는 엔터티


실체 엔터티

  • 실체의 본질적인 데이터를 관리하므로 도출이 용이한 반면, 잘못 도출하면 업무 전반적으로 심각한 상황이 발생하게 된다.
  • 카드, 계좌, 직업등과 같이 관점에 따라서 다른 엔터티로 분류가능한 애매한 엔터티들이 존재한다.
  • 실체엔터티는 대부분 부모엔터티가 존재하지 않으며, 다른 엔터티와의 관계에서 최상위에 위치하므로 주식별자를 단순하게 구성하는 것이 좋다.
  • 또한 주식별자값에는 어떠한 체계도 존재하지 않는 것이 바람직하다.
  • 통합된 모델은 확장성이 좋아지므로, 실체엔터티는 다른 엔터티에 비해 과감한 통합이 필요하다.


행위 엔터티

  • 어떤 실체의 업무 행위나 활동에 의해서 발생된 원천 데이터를 관리하는 엔터티
  • 계약, 주문, 신청, 입금
  • 발생부터 소멸에 이르는 명확하고 짧은 라이프사이클이 있으며, 행위에 따른 발생순서가 존재
  • 관리하는 속성수가 많으며, 주식별자가 복잡하다.
  • 데이터 발생량도 많으며, 통계, 집계 등 가공 데이터으이 원천이 된다.
  • 행위엔터티는 업무식별자를 제대로 파악하는 것이 매우 중요하다.
  • 다수의 행위엔터티는 많은 하위엔터티가 존재하지 않아서, 굳이 인조식별자를 사용해 주 식별자를 단순화시킬 필요가 없으며 가능하면 업무에서 가장 많이 사용하는 업무식별자를 사용하는 것이 바람직하다
  • 행위엔터티의 데이터 생성기준은 누가(Who), 무엇을(What), 언제(What), 어떻게(How) 이다. 이 요소중 '누가'와 '무엇을'에 해당하는 것이 실체 엔터티 이며, 이 엔터티의 교차 엔터티가 행위엔터티가 된다.
  • 실체와 행위가 일대일 관게일지라도 성격이 다르므로 별개의 엔터티로 설계하는 것이 바람직 하다.


가공 엔터티

  • 원천데이터가 아닌 데이터를 관리하는 엔터티. 집계, 요약, 임시테이터
  • 가공 엔터티의 대부분 속성은 중복속성이므로, 가능한한 사용하지 않는 것이 바람직하며, 불가피할 경우만 사용하야 한다.
  • 다른 집계와 관계가 존재하면 잘못된 관계가 아닌지 주의해야 한다.
  • 집계를 하려는 기준이 주 식별자가 된다.


기준 엔터티

  • 코드와 같이 업무기준이 되는 데이터를 관리하는 엔터티. 참조 엔터티
  • 기준 엔터티를 사용할 때는, 기준 데이터를 관리하는 기준 엔터티와 기준 데이터를 사용하는 엔터티의 관계를 심도 있게 고려해봐야 한다.
  • 기준엔터티는 타 엔터티와 관계가 존재할 수 있어, 인조식별자를 적절히 사용해야 단순한 모델이 될수있다.
  • 기준엔터티의 통합은 적극적으로 고려해야 한다
  • 기준엔터티를 정비하면 데이터 품질이 좋아진다.
"구루비 데이터베이스 스터디모임" 에서 2014년에 "관계형 데이터 모델링 프리미엄 가이드" 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/3612

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입