[SQLD] Entity 와 Attribute

jiho·2020년 1월 14일
0

SQLD

목록 보기
5/5

Entity는 Thing입니다. 네, 너무 깊이들어가면 모호하니 딱 정의하고 시작하겠습니다.

엔터티(Entity)는 사람, 장소, 사물, 개념, 사건 등의 명사에 해당합니다.
엔터티는 업무상 관리가 필요한 관심사에 해당한다.

Entity의 특징

  • 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야한다.
  • 유일한 식별자에 의해 식별이 가능해야한다.
  • 영속적으로 존재하는 인스턴스의 집합이어야한다.(두 개이상의 인스턴스)
  • 엔터티는 업무 프로세스에 의해 이용되어야한다.
  • 엔터티는 반드시 속성이 있어야한다.
  • 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야한다.

Entity 분류

엔터티는 엔터티 자신의 성격에 의해 실체유형에 따라 구분하거나 업무를 구성하는 모습에 따라 구분이 되는 발생 시점에 의해 분류해 볼 수 있다.

유무형에 따른 분류

일반적으로 엔터니는 유무형에 따라 유형엔터티, 개념엔터티, 사건엔터티로 구분된다.

  • 유형 엔터티(Tangible Entity)는 물리적인 형태가 있고 안정적이며 지속적으로 활용되는 엔터티로 업무로부터 엔터티를 구분하기가 가장 용이하다.
    예를 들면, 사물, 물품, 강사 등등
  • 개념 엔터티(Conceptual Entity)는 물리적 형태는 존재하지 않고 관리해야 할 개념적 정보로 구분되는 엔터티로 조직, 보험상품등이 이에 해당.
  • 사건 엔터티(Event Entity)는 업무를 수행함에 따라 발생되는 엔터티로서 비교적 발생량이 많으며 각종 통계자료에 이용될 수 있다. 주문, 청구, 미납등이 이에 해당합니다.

발생시점에 따른 분류

엔터티의 발생시점에 따라 기본/키엔터티(Fundamental Entity, Key Entity), 중심엔터티(Main Entity), 행위 엔터티(Active Entity)로 구분할 수 있다.

  • 기본 엔터티
    기본 엔터티란 그 업무에 원래 존재하는 정보로서 다른 엔터티와 관계에 의해 생성되지 않고 독립적으로 생성이 가능하고 자신은 타 엔터티의 부모의 역할을 하게된다. 다른 엔터티로부터 주 식별자를 상속받지 않고 자신의 고유한 주식별자를 가지게 된다.예로 사원, 부서, 고객 등이 될 수 있다.
  • 중심 엔터티
    중심엔터티란 기본 엔터티로부터 발생되고 그 업무에 있어서 중심적인 역할을 한다. 다른 엔터티와 의 관계를 통해 많은 행위 엔터티를 생성한다. 예를 들어 계약, 사고, 청구, 주문
  • 행위 엔터티
    두 개 이상의 부모엔터티로부터 발생되고 자주 내용이 바뀌거나 데이터 양이 증가한다. 분석 초기단계에서는 잘 나타나지 않으며 상세 설계단계나 프로세스와 상관모델링을 진행하면서 도출될 수 있다. 예를 들어 주문목록, 사원변경이력 등이 포함된다.

Attribute 속성의 개념

DB의 각 컬럼에 해당하는 값입니다. Class로 따지면 맴버변수가 되겠네요.

데이터 모델링 관점에서 속성을 정의하자면,
"업무에 필요로하는 인스턴스로 관리하고자하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위"
로 정의할 수 있습니다.

profile
Scratch, Under the hood, Initial version analysis

0개의 댓글