coding base/DataBase

[DB] 엔티티

ddo04 2024. 4. 14. 23:16

엔티티 (entity)

  • 현실세계를 데이터 관점에서 모델링할 때 사용되는 핵심적인 개념
엔티티란
- 업무의 관심 대상이 되는 정보를 갖고 있거나 그에 대한 정보를 관리할 필요가 있는 유형, 무형의 사물을 말함
  • 예를 들어 회원제 인터넷 쇼핑 사이트에서 정보를 관리해야 할 필요가 있는 회원, 상품, 쇼핑카드와 같은 사물을 엔티티라고 함
  • 회원이나 상품은 실제로 존재하는 유형의 사물이지만 쇼핑카트는 인터넷상에만 존재하는 무형의 사물
  • 눈에 보이지 않는 무형의 사물도 정보를 관리해야 할 필요가 있다면 엔티티
  • 객체지향의 개념에 익숙한 독자라면 엔티티가 클래스에 해당하고 엔티티의 인스턴스는 객체에 해당한다는 것을 알 수 있다
  • 모델링 단계에서는 인스턴스는 크게 중요하지 않음
  • 물리적 설계 단계에서 엔티티와 인스턴스는 각각 테이블과 튜플로 대응

  • 엔티티는 ERD에서 박스로 표현

 

 

엔티티 (entity)의 분류

  • 명확한 분류기준은 없으나, 그 특성에 따라 다음과 같이 분류할 수 있음
  1. 유형 엔티티 - 물리적인 형태가 있고 쉽게 엔티티임을 알 수 있음
  2. 무형 엔티티 - 물리적인 형태가 없고 개념적으로 존재하는 엔티티
  3. 문서 엔티티 - 업무 절차상에서 사용되는 문서나 장부, 전표에 대한 엔티티
  4. 이력 엔티티 - 업무상 반복적으로 이루어지는 행위나 사건의 내용을 일자별, 시간별로 저장하기 위한 엔티티
  5. 코드 엔티티 - 무형 엔티티의 일종으로 각종 코드를 관리하기 위한 엔티티
  • 실제 모델링에서 엔티티들을 일부러 분류할 필요는 없지만 알고 있으면 엔티티를 찾아내는 데 도움이 되고 엔티티의 특징을 이해하는 데 도움이 됨
  • 예) 이력 엔티티는 설계 과정상 내용에 변화가 많으므로 지속적인 관심의 대상이 됨

 

엔티티 (entity)의 성질

  • 현실세계의 업무를 모델링할 때 어떤 사물이 엔티티인지 아닌지를 결정해야 하는 시점
  • 다음과 같이 엔티티가 가져야 할 성질을 만족하는지 알아보면 됨

1. 업무에서의 필요성

- 엔티티는 엔티티의 정의에 나와 있는 바와 같이 업무의 관심 대상이 되는 사물이어야 함

- 그 사물이 관리해야 할 정보를 가지고 있다 하더라도 업무의 관심 대상이 아니거나 업무 절차상에서 사용하지 않는다면 엔티티로 표현할 필요 없음

 

2. 두 개 이상의 인스턴스 소유

- 엔티티가 의미 있기 위해서는 두 개 이상의 인스턴스를 갖는 것이 확인되어야 함

- 인스턴스가 하나라면 이를 굳이 데이터베이스에 저장해 놓고 프로그램에서 불러서 사용할 이유가 없음

 

3. 속성의 소유

- 엔티티는 다음 절에서 설명할 속성을 가지고 있어야 함

- 만일 어떤 엔티티에 대해 마땅한 속성을 찾을 수 없다면 업무 분석을 제대로 하지 못했거나 속성으로 분류해야 할 것을 엔티티로 분류한 것

 

사용한 책 : 데이터베이스 설계 및 구축