IT/SQLD(SQL개발자)

[SQLD] 엔터티(Enterty)

pandada 2019. 6. 8. 22:53
반응형

Entity(엔티티)

 

엔터티란?!

  - 사람, 장소, 물건, 사건, 개념 등의 명사.

  - 업무상 관리가 필요한 관심사.

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

 

Therefore. Entitiy란 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것(Things)

  ->업무 활동상 지속적인 관심을 가지고 있어야 하는 대상으로서 그 대상들 간에 동질성을 지닌 인스턴스들이나 그들이 행하는 행위의 집합

  -> 인스턴스의 집합

  -> 엔터티는 그 집합에 속하는 개체들의 특성을 설명할 수 있는 속성을 갖는다. 

<엔터티와 인스턴스>

Features of the entity ( 엔터티의 특징 )

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

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

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

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

  - 엔터티는 반드시 속성이 있어야 한다.(Exception 관계엔터티의 경우 주식별자만 가지고있어도 인정)

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

 

<테이블 예시>

 

 

이와 같이 서로 관계를 가지고 있어야 한다.

위 그림에서 잘못된 점은 로그인 엔터티가 따로 관계가 되어있지 않고 혼자 놀고 있다는 점이다.

위와같이 관계가 없이 혼자 놀고있으면 안되요~~~^^

 

(위 그림은 제가 DB 병원의료정보를 간단하게 프로젝트 한 것입니다.JAVA와 연동해서 ㅎㅎ

이해를 돕기 위해 잠깐 넣었습니다.)

 

Exception(주의)!

  관계를 생략하여 표현하는 경우

    * 통계성 엔터티 도출

      - 통계업무만 별도로 사용하기 위해

    * 코드성 엔터티 도출

      - 관계를 설정하게 되면 데이터 모델의 읽기 효율성이 저하되기 때문에 논리적으로나 문리적으로 관계를 설정할 이유가 없다.

    * 시스템 처리시 내부필요에 의한 엔터티 도출

      - 트랜잭션이 업무적으로 연관된 테이블과 관계 설정이 필요하지만 이 역시 업무적인 필요가 아니고 시스템 내부적인 필요에 의해 생성된 엔터티이므로 관계를 생략하게 된다.

 

 

The classification of the entity (엔터티의 분류)

  * 유무(有無)형에 따른 분류

    - 유형엔터티 -> 물리적인 형태가 있고 안정적이며 지속적으로 활용하는 엔터티

    ex) 사원, 물품, 강사 등

    - 개념엔터티 -> 물리적인 형태는 존재하지 않고 관리해야 할 개념적 정보로 구분되는 엔터티 ex) 조직, 보험상품 등

    - 사건엔터티 -> 업무 시 비교적 발생량이 많으며 각종 통계자료에 이용함.

    ex) 주문, 청구, 미납 등

 

 

 * 발생시점에 따른 분류

  - 기본 엔터티

    -> 다른 엔터티와 관계에 의해 생성되지 않고 독립적으로 생성이 가능하며 타 엔터티의 부모역할을 하는 엔터티 (자신의 고유 주 식별자를 지님)

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

  - 중심 엔터티

    -> 기본엔터티로부터 발생되고 그 업무에 있어서 중심적인 역할을 하는 엔터티 ex) 계약, 사고, 예금원장, 청구, 주문, 매출 등

  - 행위 엔터티

    -> 두 개 이상의 부모엔터티로부터 발생되고 자주 내용이 바뀌거나 데이터양이 증가됨. 분석단계에서 나타나지 않으며 상세 설계단계나 프로세스와 상관모델링을 진행하면서 도출됨 ex) 주문목록, 사원변경이력

<유무형 및 발생시점에 따른 분류>

An entity named(엔터티의 명명) 

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

  - 약어 사용X

  - 단수명사를 사용한다.

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

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

반응형

'IT > SQLD(SQL개발자)' 카테고리의 다른 글

[SQLD] 데이터 모델링관점과 분류  (0) 2019.06.13
[SQLD] 식별  (0) 2019.06.11
[SQLD] 관계(Relationship)  (0) 2019.06.10
[SQLD] 속성(Attribute)  (0) 2019.06.09
[SQLD] 데이터 모델링의 이해  (0) 2019.06.07