DB_RDBMS - 2.개체(Entity) 추출하기

몽구's·2022년 4월 22일
0

DB_RDBMS 모델링

목록 보기
3/8

개체가 뭐고 속성이 뭐죠?

개체 (Entity, 엔티티or엔터티)

  • 엔티티는 우리말로실체, 객체라고 번역하기도 하는데 실무적으로는 엔터티보단 엔티티라 많이 부른다.
    • 엔티티는 사람, 장소, 물건, 사건, 개념 등의 명사에 해당한다.
    • 엔티티는 업무상 관리가 필요한 관심사에 해당한다.
    • 엔티티는 저장이 되기 위한 어떤 것(Thing)이다.

1. 개체(Entity) - 엔티티란?

“업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것(Thing)"으로 설명할 수 있다.
또는, 엔터티는 업무 활동상 지속적인 관심을 가지고 있어야 하는 대상으로서 그 대상들 간에 동질성을 지닌 인스턴스들이나 그들이 행하는 행위의 집합으로 정의할 수 있다.

엔티티는 그 집합에 속하는 개체들의 특성을 설명할 수 있는 속성(Attribute)을 갖는데,
예를 들어 ‘학생’이라는 엔티티는
학번, 이름, 이수학점, 등록일자, 생일, 주소, 전화번호, 전공 등의 속성으로 특징지어질 수 있다.
이러한 속성 가운데에는 엔터티 인스턴스 전체가 공유할 수 있는 공통 속성도 있고, 엔터티 인스턴스 중 일부에만 해당하는 개별 속성도 있을 수 있다.

또한 엔티티는 인스턴스의 집합이라고 말할 수 있고,
반대로 인스턴스라는 것은 엔터티의 하나의 값에 해당한다고 정의할 수 있다.
예를 들어 과목
수학, 영어, 국어가 존재할 수 있는데 수학, 영어, 국어는 각각이 과목이라는 엔터티의 인스턴스들이라고 할 수 있다.

또한 사건이라는 엔터티에는 사건번호2010-001, 2010-002 등의 사건이 인스턴스가 될 수 있다. 엔터티를 이해할 때 눈에 보이는(Tangible)한 것만 엔터티로 생각해서는 안되며 눈에 보이지 않는 개념 등에 대해서도 엔터티로서 인식을 할 수 있어야 한다.

실제 업무상에는 눈에 보이지 않는 것(Thing)이 엔터티로 도출되는 경우가 많기 때문에 더더욱 주의할 필요가 있다.

엔티티를 표현하는 방법은 각각의 표기법에 따라 조금씩 차이는 있지만 대부분 사각형으로 표현된다. 다만 이 안에 표현되는 속성의 표현방법이 조금씩 다를 뿐이다. 엔터티와 엔터티간의 ERD를 구현하면 다음과 같다.

1) 엔티티의 특징

엔터티는 다음과 같은 특징을 가지고 있으며 만약 도출된 엔터티가 다음의 성질을 만족하지 못하면 적절하지 않은 엔터티일 확률이 높다.

  • 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.(예. 환자, 토익의 응시횟수, …)

예를 들어 환자라는 엔터티는 의료시스템을 개발하는 병원에서는 반드시 필요한 엔터티이지만 일반회사에서 직원들이 병에 걸려 업무에 지장을 준다하더라도 이 정보를 그 회사의 정보로서 활용하지는 않을 것이다. 즉 시스템 구축 대상인 해당업무에서 그 엔터티를 필요로 하는가를 판단하는 것이 중요하다.

  • 두 번째는 식별자(Unique Identifier)에 의해 식별이 가능해야 한다는 점이다.

유일한 식별자는 그 엔터티의 인스턴스만의 고유한 이름이다. 두 개 이상의 엔터티를 대변하면 그 식별자는 잘못 설계된 것이다. 예를 들어 직원을 구분할 수 있는 방법은 이름이나 사원번호가 될 수가 있다. 그러나 이름은 동명이인(同名異人)이 될 수 있으므로 유일하게 식별될 수 없다. 사원번호는 회사에 입사한 사람에게 고유하게 부여된 번호이므로 유일한 식별자가 될 수 있는 것이다.

  • 세 번째는 영속적으로 존재하는 인스턴스의 집합이 되어야 한다는 점이다.

엔터티의 특징 중 “한 개”가 아니라 “두 개 이상”이라는 집합개념은 매우 중요한 개념이다. 두 개 이상이라는 개념은 엔터티뿐만 아니라 엔터티간의 관계, 프로세스와의 관계 등 업무를 분석하고 설계하는 동안 설계자가 모든 업무에 대입해보고 검증해?러 개의 인스턴스를 포함한다.

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

업무프로세스에 의해 전혀 이용되지 않는다면 업무 분석이 정확하게 안되어 엔터티가 잘못 선정되거나 업무프로세스 도출이 적절하게 이루어지지 않았음을 의미한다.

  • 다섯 번째는 엔터티에는 반드시 속성(Attributes)이 포함되어야 한다는 점이다.

속성을 포함하지 않고 엔터티의 이름만 가지고 있는 경우는 관계가 생략되어 있거나 업무 분석이 미진하여 속성정보가 누락되는 경우에 해당한다. 또한 주식별자만 존재하고 일반속성은 전혀 없는 경우도 마찬가지로 적절한 엔터티라고 할 수 없다.
단, 예외적으로 관계엔터티(Associative Entity)의 경우는 주식별자 속성만 가지고 있어도 엔터티로 인정한다.

  • 여섯 번째는 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 존재해야 한다는 것이다.

본적으로 엔터티가 도출되었다는 것은 해당 업무내에서 업무적인 연관성(존재적 연관성, 행위적 연관성)을 가지고 다른 엔터티와의 연관의 의미를 가지고 있음을 나타낸다. 그러나 관계가 설정되지 않은 엔터티의 도출은 부적절한 엔터티가 도출되었거나 아니면 다른 엔터티와 적절한 관계를 찾지 못했을 가능성이 크다.

2) 엔티티의 명명(Naming)

엔터티의 이름을 정하는 데에 있어서는 다음과 같은 원칙을 지켜야 합니다.

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

2. 마무리

개체(Entity)
: 저장할 만한 가치가 있는 중요 데이터를 가진 사람이나 사물들을 명사로 정의한 것.

  • 요구사항 문장에서 업무와 관련이 깊은, 의미 있는 명사를 찾아라!

끝.

출처:

profile
"성공"하면 실력이고, "실패"해도 경험인걸요.

0개의 댓글