Notice
Recent Posts
Recent Comments
05-20 20:45
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

-

[SQLD] #002 데이터 모델링의 이해 - 엔터티 본문

SQLD

[SQLD] #002 데이터 모델링의 이해 - 엔터티

choiht 2021. 4. 16. 16:21
반응형

목차

1. 엔터티의 개념

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

3. 엔터티의 특징

4. 엔터티의 분류

5. 엔터티의 명명

 


 

 

 

1. 엔터티의 개념

엔터티란?

- 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것 (Thing)

- 엔터티는 그 집합에 속하는 개체들의 특성을 설명할 수 있는 속성 (Attribute)을 가진다. 

- 엔터티는 인스턴스의 집합이라고 할 수 있고, 반대로 인스턴스라는 것은 엔터티의 하나의 값에 해당한다고 할 수 있다. 

 

 

 

 

 

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

엔터티와 엔터티간의 ERD를 그리면 다음과 같다. 

 

 

 

 

3. 엔터티의 특징

엔터티는 다음과 같은 특징을 가지고 있다.

- 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야한다. 

- 유일한 식별자에 의해 식별이 가능해야 한다. 

- 영속적으로 존재하는 인스턴스의 집합이어야 한다. (한개가 아니라 두개 이상)

- 엔터티는 업무 프로세스에 의해 이용되어야 한다. 

- 엔터티는 반드시 속성이 있어야 한다. 

- 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다. 

 

 

 

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

엔터티 특징의 첫번째는 반드시 시스템을 구축하고자 하는 업무에서 필요로 하고 관리하고자 하는 정보여야 한다는 점이다. 

다시 말해, 엔터티를 도출할 때는 업무 영역 내에서 관리할 필요가 있는지를 먼저 판단해야 한다. 

ex) 환자 정보는 병원에 필요하지만 기업 인사시스템에는 필요가 없다. 

 

 

 

2. 식별이 가능해야 함

두번째는 식별자 (Unique Identifier)에 의해 식별이 가능해야 한다는 점이다. 어떤 엔터티이건 임의의 식별자(일련번호)를 부여하여 유일하게 만들 수는 있지만, 엔터티를 도출하는 경우에 각각의 업무적으로 의미를 가지는 인스턴스가 식별자에 의해 한 개씩만 존재하는지 검증해야 한다. 

하나의 식별자가 두개 이상의 엔터티를 대변하면 그 식별자는 잘못 설계된 것이다. 

ex) 학번은 올바른 식별자

 

 

 

3. 인스턴스의 집합

세 번째는 영속적으로 존재하는 인스턴스의 집합이 되어야 한다는 것이다. 하나의 엔터티는 여러 개의 인스턴스를 포함한다. 

 

 

 

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

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

첫번째 정의에서처럼 업무에서 필요하다고 생각하여 엔터티로 선정하였는데 업무 프로세스에 의해 전혀 이용되지 않는다면, 업무 분석이 정확하게 안되어 엔터티가 잘못 선정되거나, 업무 프로세스 도출이 적절하게 이뤄지지 않았음을 의미한다. 

 

업무 프로세스에 의해 CREATE, READ, UPDATE, DELETE 등이 발생하지 않는 고립된 엔터티의 경우는 엔터티를 제거하거나 아니면 누락된 프로세스가 존재하는지 살펴보고 해당 프로세스를 추가해야 한다. 

 

 

 

 

5. 속성을 포함

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

속성을 포함하지 않고 엔터티의 이름만 가지고 있는 경우는 관계가 생략되어있거나 업무 분석이 미진하여 속성 정보가 누락되는 경우에 해당한다. 

 

 

 

6. 관계의 존재

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

엔터티가 관계가 없으면 잘못된 엔터티이거나 관계가 누락되었을 가능성이 크다. 단, 데이터 모델링을 하면서 관계를 생략하여 표현해야 하는 경우는 통계성 엔터티 도출, 코드성 엔터티 도출, 시스템 처리시 내부 필요에 의한 엔터티 도출과 같은 경우이다. 

 

 

 

 

 

 

 

 

 

 

 

4. 엔터티의 분류

1. 유무형에 따른 분류

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

- 유형 엔터티 (Tangible Entity) : 물리적인 형태가 있고 안정적이며 지속적으로 활용되는 엔터티. 업무로부터 엔터티를 구분하기가 가장 용이하다. 

ex) 사원, 물품, 강사

 

- 개념 엔터티 (Conceptual Entity) : 물리적인 형태가 없고 관리해야 할 개념적 정보로 구분이 되는 엔터티. 

ex) 조직, 보험상품

 

- 사건 엔터티 (Event Entity) : 업무를 수행함에 따라 발생되는 엔터티이며 통계자료에 이용된다. 

ex) 주문, 청구, 미납

 

 

 

2. 발생시점에 따른 분류

- 기본 엔터티 (Fundamental Entity) : 그 업무에 원래 존재하는 정보. 다른 엔터티와 관계에 의해 생성되지 않고 독립적으로 생성이 가능하고 자신은 타 엔터티의 부모의 역할을 하게 된다. 

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

 

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

ex) 계약, 사고, 청구, 주문, 매출

 

- 행위 엔터티 (Active Entity) : 두 개 이상의 부모엔터티로부터 발생되고, 자주 내용이 바뀌거나 데이터량이 증가한다. 

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

 

 

 

 

3. 엔터티 분류 방법의 예

 

이 밖에도 엔터티가 스스로 생성될 수 있는지 여부에 따라 독립엔터티인지 의존엔터티인지를 구분할 수 있다.

 

 

 

 

 

 

 

 

 

 

5. 엔터티의 명명

1. 가능하면 현업 업무에서 사용하는 용어를 사용한다. 

2. 가능하면 약어를 사용하지 않는다. 

3. 단수명사를 사용한다. 

4. 모든 엔터티에서 유일하게 이름이 부여되어야 한다. 

5. 엔터티의 생성의미대로 이름을 부여한다. 

 

 

 

 

 


출처
이 글의 내용은 모두 한국데이터베이스진흥원이 출판한 SQL 전문가 가이드 2013 Edition을 기본으로 한다.

 

 

 

반응형
Comments