본문 바로가기

데이터베이스(Database)/Data Modeling

[DB] 데이터 모델링(3) - 엔티티(Entity)

 

이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다.

추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요.

 


 

엔티티의 정의

  • Peter Chen(1976) : 변별할 수 있는 사물
  • C.J Date(1986) : 데이터베이스 내에서 변별 가능한 객체
  • James Martin(1989) : 정보를 저장할 수 있는 어떤 것
  • Thomas Bruce(1992) : 정보가 저장될 수 있는 사람, 장소, 물건, 사건 그리고 개념 등

    - 업무에 필요한 정보를 저장하고 관리하기 위한 집합적인 어떤 것(Thing)
    - 유형 혹은 무형 정보의 대상
    - 인스턴스의 집합

  • 엔티티의 분류
    유형(Tangible) 엔티티
    - 물리적인 형태가 있고 안정적이며 지속적으로 활용됨

    개념(Conceptual) 엔티티
    - 물리적인 형태는 존재하지 않지만 관리해야할 개념적 정보

    사건(Event) 엔티티
    - 업무 수행 과정에서 발생
    - 비교적 발생량이 많음
    - 각종 통계 자료에 이용

 

엔티티의 특징

  • 해당 업무에서 필요하고 관리하고자 하는 정보여야 함
    - 업무에서 관리되는 집합임
    - 업무에서 관리하고자 하는 관심 영역(Business Boundry)에 따라 달라짐
  • 식별자에 의해 식별이 가능해야 함
  • 영속적으로 존재하는 둘 이상의 인스턴스의 집합이 되어야 함

  • 업무 프로세스에 의해 이용되어야 함
    - 업무 프로세스에 의해 CREATE, READ, UPDATE, DELETE가 발생해야 함
    - 그렇지 않으면 부적절한 엔티티가 선정되거나, 적절한 업무 프로세스가 도출되지 않음

  • 엔티티는 반드시 속성을 가져야 함
    - 속성이 없는 엔티티는 존재할 수 없음

  • 주식별자만 존재하고 일반 속성이 전혀 없는 경우도 부적절한 엔티티임
    - 예외로, 관계엔티티(또는 연관엔티티, Association Entity)의 경우는 주식별자 속성만 가지고 있어도 인정됨
  • 다른 엔티티와 최소 하나 이상의 관계를 가져야 함
    - 고립 엔티티가 발생하면 부적절한 엔티티가 도출되었거나 관계가 누락되었을 가능성이 큼

  • 단, 통계성 엔티티, 코드성 엔티티, 시스템 처리용 내부 엔티티(트랜잭션 로그 테이블 등)의 경우는 고립 엔티티를 인정
    - 통계성 엔티티 : 통계업무만(Read Only)을 위해 엔티티를 별도로 다시 정의하기 때문에 생략
    - 코드성 엔티티 : 코드의 효율성을 높이기 위한 엔티티이므로 관계 생략
    - 시스템 처리용 내무 엔티티 : 시스템 내부적인 필요에 의해 생성된 엔티티이므로 관계 생략

 

엔티티 명명법

  • 엔티티 생성 의미 그대로, 실제 업무에서 사용하는 용어 사용
  • 약어는 사용하지 않음
  • 단수 명사 사용
  • 이름이 동일한 엔티티가 중복으로 존재할 수 없음