ㄴ제2절 엔티티(Entity)


  1. 엔티티의 개념

우리말로 실체, 객체라고 함

 
 

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

 
 

위 정의들의 공톰점은 다음과 같다

  • 엔티티는 사람, 장소, 물건, 사건, 개념 등의 명사에 해당한다.
  • 엔티티는 업무상 관리가 필요한 관심사에 해당한다.
  • 엔티티는 저장이 되기 위한 어떤 것(Thing)이다.

 
 

엔티티란 “업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것(Thing)”으로 설명할 수 있다.

 
 

  • 엔티티는 그 집합에 속하는 개체들의 특성을 설명할 수 있는 속성(Attribute)을 갖는데, 예를 들어 ‘학생’이라는 엔티티는 학번, 이름, 이수학점, 등록일자, 생일, 주소, 전화번호, 전공 등의 속성으로 특징지어질 수 있다.
  • 엔티티는 인스턴스의 집합이라고 말할 수 있고, 반대로 인스턴스라는 것은 엔티티의 하나의 값에 해당한다고 정의할 수 있다. 예를 들어 과목은 수학, 영어, 국어가 존재할 수 있는데 수학, 영어, 국어는 각각이 과목이라는 엔티티의 인스턴스들이라고 할 수 있다.
  • 엔티티를 이해할 때 눈에 보이는(Tangible)한 것만 엔티티로 생각해서는 안되며 눈에 보이지 않는 개념 등에 대해서도 엔티티로서 인식을 할 수 있어야 한다.

 
 

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

     
     

     
     

  2. 엔티티의 특징
  • 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.(환자, 토익의 응시 횟수 등)
  • 유일한 식별자에 의해 식별이 가능해야 한다.
  • 영속적으로 존재하는 인스턴스의 집합이어야 한다.(‘한 개’가 아니라 ‘두 개 이상’)
  • 엔티티는 업무 프로세스에 의해 이용되어야 한다.
  • 엔티티는 반드시 속성이 있어야 한다.
  • 엔티티는 다른 엔티티와 최소 한 개 이상의 관계가 있어야 한다.

 
 

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

  • 환자라는 엔티티의 경우 의료시스템을 개발하는 병원에서는 반드시 필요한 엔티티이지만 일반회사에서는 직원들이 병에 걸려 업무에 지장을 준다하더라도 이 정보를 그회사의 정보로서 활용하지는 않을 것이다.
  • 엔티티를 도출할 때는 업무영역내에서 관리할 필요가 있는지를 먼저 판단하는 것이 중요하다.

나. 식별이 가능해야 함

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

다. 인스턴스의 집합

  • 영속적으로 존재하는 인스턴스의 집합이 되어야 한다는 점, 하나의 엔티티는 여러 개의 인스턴스를 포함해야 한다.

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

  • 업무프로세스가 그 엔티티를 반드시 이용해야 한다는 점, 업무에서 반드시 필요하다고 생각하여 엔티티로 선정하였는데 업무프로세스에 의해 전혀 이용되지 않는다면 업무 분석이 정확하게 안되어 엔티티가 잘못 선정되거나 업무프로세스 도출이 적절하게 이루어지지 않았음을 의미한다.

마. 속성을 포함

  • 엔티티에는 반드시 속성(Attributes)이 포함 되어야 한다는 점, 속성을 포함하지 않고 엔티티의 이름만 가지고 있는 경우는 관계가 생략되어 있거나 업무 분석이 미진하여 속성정보가 누락되는 경우에 해당됨

바. 관계의 존재

  • 엔티티는 다른 엔티티와 최소 한 개 이상의 관계가 존재해야 한다는 것, 관계가 설정되지 않은 엔티티의 도출은 부적절한 엔티티가 도출 되었거나 아니면 다른 엔티티와 적절한 관계를 찾지 못했을 가능성이 크다.
  • 데이터 모델링을 하면서 관계를 생략하여 표현해야 하는 경우는 통계성 엔티티 도출, 코드성 엔티티 도출, 시스템 처리시 내부 필요에 의한 엔티티 도출과 같은 경우이다.
  1. 엔티티의 분류

    가. 유무형에 따른 분류

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

나. 발생시점에 따른 분류

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

다. 엔티티 분류 방법의 예

  1. 엔티티의 명명
  • 가능하면 현업업무에서 사용하는 용어를 사용한다
  • 가능하면 약어를 사용하지 않는다
  • 단수명사를 사용한다
  • 모든 엔티티에서 유일하게 이름이 부여되어야 한다
  • 엔티티 생성의미대로 이름을 부여한다.

     
     


Comments

comments

haisins

오라클 DBA 박용석 입니다. haisins@gmail.com 으로 문의 주세요.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다