coding base/DataBase
[DB] 엔티티
ddo04
2024. 4. 14. 23:16
엔티티 (entity)
- 현실세계를 데이터 관점에서 모델링할 때 사용되는 핵심적인 개념
엔티티란
- 업무의 관심 대상이 되는 정보를 갖고 있거나 그에 대한 정보를 관리할 필요가 있는 유형, 무형의 사물을 말함
- 예를 들어 회원제 인터넷 쇼핑 사이트에서 정보를 관리해야 할 필요가 있는 회원, 상품, 쇼핑카드와 같은 사물을 엔티티라고 함
- 회원이나 상품은 실제로 존재하는 유형의 사물이지만 쇼핑카트는 인터넷상에만 존재하는 무형의 사물
- 눈에 보이지 않는 무형의 사물도 정보를 관리해야 할 필요가 있다면 엔티티
- 객체지향의 개념에 익숙한 독자라면 엔티티가 클래스에 해당하고 엔티티의 인스턴스는 객체에 해당한다는 것을 알 수 있다
- 모델링 단계에서는 인스턴스는 크게 중요하지 않음
- 물리적 설계 단계에서 엔티티와 인스턴스는 각각 테이블과 튜플로 대응
- 엔티티는 ERD에서 박스로 표현
엔티티 (entity)의 분류
- 명확한 분류기준은 없으나, 그 특성에 따라 다음과 같이 분류할 수 있음
- 유형 엔티티 - 물리적인 형태가 있고 쉽게 엔티티임을 알 수 있음
- 무형 엔티티 - 물리적인 형태가 없고 개념적으로 존재하는 엔티티
- 문서 엔티티 - 업무 절차상에서 사용되는 문서나 장부, 전표에 대한 엔티티
- 이력 엔티티 - 업무상 반복적으로 이루어지는 행위나 사건의 내용을 일자별, 시간별로 저장하기 위한 엔티티
- 코드 엔티티 - 무형 엔티티의 일종으로 각종 코드를 관리하기 위한 엔티티
- 실제 모델링에서 엔티티들을 일부러 분류할 필요는 없지만 알고 있으면 엔티티를 찾아내는 데 도움이 되고 엔티티의 특징을 이해하는 데 도움이 됨
- 예) 이력 엔티티는 설계 과정상 내용에 변화가 많으므로 지속적인 관심의 대상이 됨
엔티티 (entity)의 성질
- 현실세계의 업무를 모델링할 때 어떤 사물이 엔티티인지 아닌지를 결정해야 하는 시점
- 다음과 같이 엔티티가 가져야 할 성질을 만족하는지 알아보면 됨
1. 업무에서의 필요성
- 엔티티는 엔티티의 정의에 나와 있는 바와 같이 업무의 관심 대상이 되는 사물이어야 함
- 그 사물이 관리해야 할 정보를 가지고 있다 하더라도 업무의 관심 대상이 아니거나 업무 절차상에서 사용하지 않는다면 엔티티로 표현할 필요 없음
2. 두 개 이상의 인스턴스 소유
- 엔티티가 의미 있기 위해서는 두 개 이상의 인스턴스를 갖는 것이 확인되어야 함
- 인스턴스가 하나라면 이를 굳이 데이터베이스에 저장해 놓고 프로그램에서 불러서 사용할 이유가 없음
3. 속성의 소유
- 엔티티는 다음 절에서 설명할 속성을 가지고 있어야 함
- 만일 어떤 엔티티에 대해 마땅한 속성을 찾을 수 없다면 업무 분석을 제대로 하지 못했거나 속성으로 분류해야 할 것을 엔티티로 분류한 것
사용한 책 : 데이터베이스 설계 및 구축