본문 바로가기
데이터베이스/SQLD

[SQLD 과목1 1장-2절] 엔터티(Entity)

by kgvovc 2021. 2. 26.
반응형

1. 엔터티의 개념

엔터티란?

 
  • DB 내에서 변별 가능한 객체
  • 정보가 저장될 수 있는 사람, 장소, 물건, 사건 그리고 개념 등

 

엔터티업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것(Thing)으로 설명할 수 있다. 엔터티는 그 집합에 속하는 개체(인스턴스)들의 특성을 설명할 수 있는 속성(Attribute)을 갖는다. 이러한 속성 가운데에는 엔터티 인스턴스 전체가 공유할 수 있는 공통 속성도 있고, 엔터티 인스턴스 중 일부에만 해당하는 개별 속성도 있을 수 있다.

 

2. 엔터티와 인스턴스에 대한 내용과 표기법

 

 

3. 엔터티의 특징

가. 업무에서 필요로 하는 정보

 

나. 식별이 가능해야 함

식별자(Unique Identifier)에 의해 식별이 가능해야 한다. 엔터티를 도출하는 경우에 각각의 업무적으로 의미를 가지는 인스턴스가 식별자에 의해 한 개씩만 존재하는지 검증해 보아야 한다.

 

다. 인스턴스의 집합

엔터티는 영속적으로 존재하는 인스턴스의 집합이 되어야 한다. 엔터티의 특징 중 "한 개"가 아니라 "두 개 이상"이라는 집합개념은 중요하다. 하나의 엔터티는 여러 개의 인스턴스를 포함한다.

 

라. 업무프로세스에 의해 이용

업무프로세스(Business Process)가 그 엔터티를 반드시 이용해야 한다.

 

마. 속성을 포함

엔터티에는 반드시 속성(Attributes)이 포함되어야 한다. 주식별자만 존재하고 일반속성은 전혀 없는 경우도 적절한 엔터티라고 할 수 없다. 단, 예외적으로 관계엔터티(Associative Entity)의 경우는 주식별자 속성만 가지고 있어도 엔터티로 인정한다.

 

바. 관계의 존재

엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 존재해야 한다.

 

 

단, 데이터 모델링을 하면서 관계를 생략하여 표현해야 하는 경우는 다음과 같은 통계성 엔터티 도출, 코드성 엔터티 도출, 시스템 처리시 내부 필요에 의한 엔터티 도출과 같은 경우이다.

 

  • 통계를 위한 엔터티의 경우 업무진행 엔터티로부터 통계업무만(Read Only)을 위해 별도로 엔터티를 다시 정의하게 되므로 엔터티간 관계가 생략되는 경우에 해당한다.
  • 코드를 위한 엔터티의 경우 너무 많은 엔터티와 엔터티간의 관계 설정으로 인해 데이터 모델의 읽기효율성(Readability)이 저하되어 모델링 작업을 진행할 수 없게 된다. 또한 코드성 엔터티는 물리적으로 테이블과 프로그램 구현 이후에도 외부키에 의한 참조무결성을 체크하기 위한 규칙을 데이터베이스 기능에 맡기지 않는 경우가 대부분이기 때문에 논리적으로나 물리적으로 관계를 설정할 이유가 없다.
  • 시스템 처리시 내부 필요에 의한 엔터티(예를 들어, 트랜잭션 로그 테이블 등)의 경우 트랜잭션이 업무적으로 연관된 테이블과 관계 설정이 필요하지만 이 역시 업무적인 필요가 아니고 시스템 내부적인 필요에 의해 생성된 엔터티이므로 관계를 생략한다.

 

4. 엔터티의 분류

가. 유무형에 따른 분류

  • 유형 엔터티(Tangible Entity): 물리적인 형태O, 안정적·지속적으로 활용되는 엔터티

    ex) 사원, 물품, 강사 등

     

  • 개념 엔터티(Conceptual Entity): 물리적인 형태X, 관리해야 할 개념적 정보로 구분되는 엔터티

    ex) 조직, 보험상품 등

     

  • 사건 엔터티(Event Entity): 업무를 수행함에 따라 발생되는 엔터티

    ex) 주문, 청구, 미납 등

 

나. 발생시점에 따른 분류

  • 기본 엔터티(Fundamental Entity): 업무에 원래 존재하는 정보로서 다른 엔터티와 관계에 의해 생성되지 않고 독립적으로 생성이 가능하고 자신은 타 엔터티의 부모 역할을 하는 엔터티. 다른 엔터티로부터 주식별자를 상속받지 않고 자신의 고유한 주식별자를 가진다.

    ex) 사원, 부서, 고객, 상품, 자재 등

     

  • 중심 엔터티(Main Entity): 기본 엔터티로부터 발생되고 그 업무에 있어서 중심적인 역할을 한다. 데이터의 양이 많이 발생되고 다른 엔터티와의 관계를 통해 많은 행위 엔터티를 생성한다.

    ex) 계약, 사고, 예금원장, 청구, 주문, 매출 등

     

  • 행위 엔터티(Active Entity): 두 개 이상의 부모엔터티로부터 발생되고 자주 내용이 바뀌거나 데이터량이 증가된다. 분석 초기 단계에서는 잘 나타나지 않으며 상세 설계단계나 프로세스와 상관모델링을 진행하면서 도출될 수 있다.

    ex) 주문목록, 사원변경이력 등

 

다. 엔터티 분류 방법의 예

 

 

5. 엔터티의 명명

  • 현업업무에서 사용하는 용어 사용
  • 약어는 되도록 사용하지 않는다
  • 단수명사 사용
  • 모든 엔터티에서 유일하게 이름이 부여되어야 함
  • 엔터티 생성의미대로 이름을 부여한다

 

반응형

댓글