엔터티
엔터티(Entity)의 개념
- 현실 세계에서 독립적으로 식별 가능한 객체나 사물을 나타냄
- 엔터티는 업무상 분석해야 하는 대상(Instatnce)들로 이루어진 집합
- 인스턴스는 엔터티의 특정한 속성 값들로 구성되며, 엔터티의 개념을 현실에서 구체적으로 나타낸 것
예) 엔터티와 속성, 인스턴스 등의 관계
엔터티의(Entity)의 특징
- 유일한 식별자에 의해 식별 가능
- 인스턴스가 식별자에 의해 한 개씩만 존재하는지 검증 필요
- 유일한 식별자는 그 엔터티의 인스턴스만의 고유 이름
ex) 이름은 동명이인이 있을 수 있으므로 사번, 학번 등이 고유 식별자
- 해당 업무에 필요하고, 관리하고자 하는 정보
- 설계하는 업무의 시스템 구축에 필요한 정보여야 함
ex) 학교 시스템 구축 시 학생 정보 필요, 다른 업무엔 학생 정보 불필요
- 설계하는 업무의 시스템 구축에 필요한 정보여야 함
- 인스턴스들의 집합
- 영속적으로 존재하는 2개 이상의 인스턴스의 집합
- 인스턴스가 한 개밖에 없는 엔터티는 집합이 아니므로 성립이 안 됨
- 엔터티는 반드시 속성을 가짐
- 각 엔터티는 2개 이상의 속성을 가짐
- 하나의 인스턴스는 각각의 속성들에 대한 1개의 속성 값만을 가짐
ex) 학생 엔터티에서 한 학생의 데이터(인스턴스)의 이름(속성) 정보에는 반드시 한 값만 저장됨
- 엔터티는 업무 프로세스에 의해 이용
- 업무적으로 필요해 선정했지만 실제 사용되지 않으면 잘못 설계된 것
- 모델링 시 발견하기 어려운 경우 데이터 모델 검증이나 상관 모델링 시 단위 프로세스 교차 점검으로 문제 도출
- 누락된 프로세스의 경우, 추후 해당 프로세스 추가
- 반대로 사용되지 않는 고립 엔터티는 제거 필요
- 다른 엔터티와 최소 1개 이상의 관계 성립
- 엔터티는 업무적 연관성을 갖고, 다른 엔터티와 연관의 의미를 가짐
- 관계가 없는 엔터티 도출은 부적절한 엔터티이거나 적절한 관계를 찾지 못한 것
엔터티의 분류
- 유형과 무형에 따른 분류
- 유형 엔터티
- 물리적 형태가 있음(실체가 있는 대상)
- 안정적이며 지속적으로 활용되는 엔터티
- 업무로부터 구분하기가 가장 용이한 엔터티
ex) 사원, 물품, 감사 등
- 개념 엔터티
- 물리적인 형태 없음
- 관리해야 할 개념적 정보로부터 구분되는 엔터티
ex) 조직, 보험 상품 등
- 사건 엔터티
- 업무를 수행에 따라 발생하는 엔터티
- 발생량이 많고, 각종 통계자료에 이용
ex) 주문, 청구, 미납 등
- 유형 엔터티
- 발생 시점에 따른 분류
- 기본 엔터티
- 그 업무에 원래 존재하는 정보
- 다른 엔터티와 관계에 의해 생성되지 않고, 독립적으로 생성
- 타 엔터티의 부모 역할을 하는 엔터티
- 다른 엔터티로부터 주식별자를 상속받지 않고, 자신의 고유한 주식별자를 가짐
ex) 사원, 부서, 고객, 상품 등
- 중심 엔터티
- 기본 엔터티로부터 발생되고, 그 업무에서 중심적인 역할
- 많은 데이터가 발생되고, 다른 엔터티와의 관계를 통해 많은 행위 엔터티를 생성
ex) 계약, 사고, 청구, 주문, 매출 등
- 행위 엔터티
- 2개 이상의 부모 엔터티로부터 발생
- 자주 내용이 바뀌거나, 데이터 양이 증가
- 분석 초기 단계보다는 상세 설계 단계나 프로세스와 상관 모델링을 진행하면서 도출
ex) 주문(고객과 상품 엔터티로부터 발생하므로 행위 엔터티이기도 함), 사원 변경 이력, 이력 등
- 기본 엔터티
엔터티의 명명
- 현업에서 사용하는 용어 사용
- 가능하면 약자 사용은 자제
- 단수 명사 사용
- 모든 엔터티에서 유일하게 이름 부여
- 엔터티 생성 의미대로 이름 부여
엔터티와 인스턴스 표기법
- 엔터티는 사각형으로 표현, 속성은 DBMS마다 조금씩 다름
- IE 표기법 : PK 값을 최상단에 이름만 작성
- Baker 표기법 : PK는 이름 앞에 #, 그냥 속성은 이름 앞에 ○
'SQL' 카테고리의 다른 글
SQLD - 데이터 모델과 SQL (정규화) (3) | 2024.11.15 |
---|---|
SQLD - 데이터 모델링의 이해 (식별자) (2) | 2024.11.15 |
SQLD - 데이터 모델링의 이해(관계) (0) | 2024.11.15 |
SQLD - 데이터 모델링의 이해(속성) (5) | 2024.11.15 |
SQLD - 데이터 모델링의 이해 (데이터 모델의 이해) (0) | 2024.11.15 |