728x90
반응형


제 2절 엔티티(Entity)


1. 엔티티의 개념


Peter Chen (1976) : 변별할 수 있는 사물

C.J Data (1986) : 데이터베이스 내에서 변별 가능한 객체

James Martin (1989) : 정보를 저장할 수 있는 어떤 것

Thomas Bruce (1992) : 정보가 저장될 수 있는 사람, 장소, 물건, 사건 그리고 개념 등


위 개념들의 공통점

- 엔티티는 사람, 장소, 물건, 사건 개념 등의 명사

- 엔티티는 업무상 관리가 필요한 관심사

- 엔티티는 저장이 되기 위한 어떤 것(Things)


엔티티란 "업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것(Thing)"이다. 

이 엔티티는 업무 활동상 지속적인 관심을 가지고 있어야 하는 대상으로서

그 대상들 간에 동질성을 지닌 인스턴스들이나 그들이 행하는 행위의 집합으로 정의 할 수 있다.


엔티티는 그 집합에 속하는 개체들의 특성을 설명할 수 있는 속성(Attribute)를 갖고, 인스턴스의 집합이라고 말할 수 있다.

인스턴스는 엔티티 하나의 값에 해당한다. 

예를들어 과목은 수학, 영어, 국어가 존재 할 수 있는데 여기서 엔티티의 인스턴스는 각각의 과목에 해당하는 것이다.


엔티티는 눈에 보이는 것 뿐만 아니라 눈에 보이지 않는 개념들도 엔티티라고 할 수 있다.






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





3. 엔티티의 특징


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


나. 식별이 가능해야 함

식별자(Unique Identifier)에 의해 식별이 가능해야 하고, 인스턴스가 식별자에 의해 한 개씩만 존재하는지 검증해 보아야 한다. 유일한 식별자는 그 인티티의 인스턴스만의 고유한 이름이다. 

예를들어 직원을 구분할 수 있는 방법은 이름이나 사원번호가 될 수 있는데, 이름은 동명이인이 존재할 수 있으므로 유일한 식별자가 될 수 없다.


다. 인스턴스의 집합

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


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

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


마. 속성을 포함

엔티티에는 반드시 속성이 포함되어 있어야 한다. 

예외적으로 관계엔티티의 경우 주식별자 속성만 가지고 있어도 엔티티로 인정하게 된다.


바. 관계의 존재

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

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








4. 엔티티의 분류


가. 유무형에 따른 분류

- 유형엔티티(Tangible Entity) : 물리적인 형태가 있고, 안정적이며, 지속적으로 활용되는 엔티티

- 개념엔티티(Conceptual Entity) : 물리적인 형태는 존재하지 않고 관리해야 할 개념적 정보로 구분이 되는 엔티티로 조직됨

- 사건엔티티(Event Entity) : 업무를 수행함에 따라 발생되는 엔티티로서 비교적 발생량이 많으며 각종 통계자료에 이용 될 수 있음




나. 발생시점에 따른 분류

1) 기본엔티티

업무에 원래 존재하는 정보로서 다른 엔티티와 관계에 의해 생성되지 않고 독립적으로 생성이 가능하고, 

자신은 타 엔티티의 부모의 역할을 하게 된다. 다른 엔티티로부터 주 식별자를 상속받지 않고 자신의 고유한 주식별자를 가지게 된다. 


2) 중심엔티티

기본엔티티로부터 발생되고, 그 업무에 있어서 중심적인역할을 하게 된다. 

데이터의 양이 많이 발생되고 다른 엔티티와의 관계를 통해 많은 행위 엔티티를 생성하게 된다.


3) 행위엔티티

두 개 이상의 부모엔티티로부터 발생되고 자주 내용이 바뀌거나 데이터 양이 증가된다. 

분석초기단계에서는 잘 나타나지 않으며, 상세 설계단계나 프로세스와 상관모델링을 진행하면서 도출 될 수 있다.



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






5. 엔티티의 명명


- 현업업무에서 사용하는 용어를 사용

- 약어를 사용하지 않음

- 단수명사를 사용

- 모든 엔티티에서 유일하게 이름이 부여

- 엔티티 생성의미대로 이름을 부여



 


728x90
반응형

'Computer Science > SQL-D' 카테고리의 다른 글

[SQLD] 6. 성능 데이터 모델링의 개요  (0) 2016.08.04
[SQLD] 5. 식별자(Identifiers)  (0) 2016.08.01
[SQLD] 4. 관계(Relationship)  (0) 2016.08.01
[SQLD] 3. 속성(Attribute)  (0) 2016.08.01
[SQLD] 1. 데이터 모델의 이해  (0) 2016.08.01