티스토리 뷰
1. 엔터티의 개념
▷ Entity ( 엔터티 )
: 업무에 필요하고 유용한 정보를 저장, 관리를 위한 집합적인 어떤 것 ( Thing )
사람, 장소, 물건, 사건, 개념 등의 명사이다.
업무상 관리가 필요한 관심사에 해당한다.
동질성을 지닌 인스턴스들의 행위의 집합이다.
" 엔터티 " , 우리말로 "실체, 객체" 이다.
실무에서 '객체' 보다는 '엔터티' 라고 사용한다.
엔터티는 그 집합에 속하는 개체들의 특성을 설명할 수 있는 속성 (Attribute) 를 갖는다.
속성은 <공통 속성> 과 <개별 속성> 이 있다.
ㄴ<공통 속성> : 엔터티 인스턴스 전체가 공유 가능
ㄴ<개별 속성> : 엔터티 인스턴스 일부만 해당
엔터티 | 인스턴스의 집합 | 과목 |
인스턴스 | 엔터티의 하나의 값 | 국어, 수학, 영어 ... |
눈에 보이는 (Tangible) 한 것과, 눈에 보이지 않는 것 모두 엔터티가 될 수 있다.

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

엔터티는 대부분 ' 사각형 ' 으로 표현된다. 속성의 표현 방법만 조금씩 다르다.

※ 오브젝트 모델링
클래스 (Class) | 여러 개의 오브젝트를 포함하는 집합 |
오브젝트 (Object) | 클래스를 이루는 각 오브젝트 값 |
3. 엔터티의 특징
▷ 엔터티의 특징
1) 반드시 해당 업무에서 필요, 관리하려는 정보
2) 유일한 식별자에 의해 식별 가능
3) 영속적으로 존재하는 인스턴스의 집합 ( 2개 이상 )
4) 업무 프로세스에 의해 이용되야 함
5) 반드시 속성이 있어야 함
6) 다른 엔터티와 최소 한개의 관계가 있어야 함
① 업무에서 필요로 하는 정보
시스템을 구축하고자 하는 업무에서 필요, 관리하고자 하는 정보여야 한다.
시스템 구축 대상인 해당 업무에서 그 엔터티를 필요로 하는가 판단하는 것이 중요하다.
∴ 엔터티를 도출할 때는 업무 영역 내에서 관리할 필요가 있는지 판단해야 한다.
ex. ' 환자 ' 엔터티는 병원시스템에서는 중요하지만, 일반 회사의 인사시스템에서는 필요하지 않다.

② 식별이 가능해야 함
식별자 (Unique Identifier) 에 의해 식별이 가능해야 한다.
인스턴스 구분을 위한 유일한 식별자는 엔터티의 인스턴스만의 '고유' 한 것이다.
2개 이상의 엔터티를 대변하면 잘못 설계 된 식별자이다.
∴ 엔터티를 도출할 때 의미를 가지는 인스턴스가 식별자에 의해 한 개씩만 존재하는지 판단해야 한다.
ex. '직원' 엔터티를 구분하는 '이름' 과 '사원번호' 에서, '이름' 은 동명이인이 생길 수 있으므로 유일한 식별자가 아니다.

③ 인스턴스의 집합
영속적으로 존재하는 인스턴스 집합이 되야한다.
엔터티는 2개 이상인 <집합개념> 인 것이 중요한 특징이다.
2개 이상의 개념은 엔터티간의 관계, 프로세스와의 관계 등 업무 분석, 설계를 위한 개념이다.
∴ 하나의 엔터티는 여러 개의 인스턴스를 포함한다.
ex. '병원' 엔터티에 하나의 인스턴스만 존재한다면, 집합이 아니므로 엔터티가 아니다.

④ 업무프로세스에 의해 이용
업무프로세스 (Bussiness Process) 가 그 엔터티를 반드시 이용해야 한다.
업무프로세스에 의해 이용되지 않는다면, 업무 분석이 정확하게 되지 않아 엔터티가 잘못 선정되었거나 업무프로세스 도출이 정확하지 않다는 것을 의미한다.
데이터 모델링, 상관 모델링을 할 때 문제점이 도출된다.

해결 방법 : 1) 고립된 엔터티를 제거한다. 2) 누락된 프로세스가 존재한지 확인 후 프로세스 추가
⑤ 속성을 포함
엔터티는 반드시 속성 (Attributes) 이 포함되야 한다.
속성 없이 엔터티의 이름만 있는 경우, 관계가 생략 또는 속성 정보가 누락되는 경우이다.
주별식자만 존재하고 일반 속성이 전혀 없는 경우도 적절하지 않은 경우이다.
( 예외 : 관계엔터티 (Associative Entity) 의 경우는 주별식자 속성만 존재해도 엔터티로 인정함 )
ex. '날씨' 엔터티에는 아무런 속성이 없기 때문에 엔터티가 될 수 없다.

⑥ 관계의 존재
엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 존재해야 한다.
도출된 엔터티는 업무적인 연관성을 가지고 다른 엔터티와의 연관의 의미를 가진다.
관계가 없는 엔터티는 부적절한 도출과 관계 누락을 의미한다.

※ 데이터 모델링에서 관계 생략 표현이 가능한 경우
1) 통계성 엔터티 도출
: 업무 진행 엔터티로부터 통계업무 (Read Only) 만을 위해, 엔터티를 다시 정의해야 하므로 엔터티간의 관계 생략
2) 코드성 엔터티 도출
: 코드를 위한 엔터티 이므로 너무 많은 관계 설정으로 인해 읽기효율성 (Readability) 저하로 관계 생략
3) 시스템 처리시 내부 필요에 의한 엔터티 도출
: ' 트랜잭션 로그 테이블 ' 과 같은 시스템 처리시 내부 필요에 의한 엔터티는 업무적인 필요가 아닌,
시스템 내부적인 필요이므로 관계 생략
4. 엔터티의 분류
엔터티는 실체유형에 따라 구분, 업무를 구성하는 모습에 따라 구분이 되는 발생시점에 의해 분류된다.
① 유무(有無)형에 따른 분류
유무형 분류 | 특징 | 예시 |
유형엔터티 (Tangible) | 물리적인 형태, 안정적, 지속적 활용 업무로부터 엔터티 구분에 가장 용이 |
사원, 물품, 강사 |
개념엔터티 (Conceptual) | 물리적인 형태 X 관리해야 할 개념적 정보로 구분 가능 |
조직, 보험상품 |
사건엔터티 (Event Entity) | 업무를 수행함에 따라 발생됨 비교적 발생량이 많음, 통계자료에 이용 |
주문, 청구, 미납 |
② 발생시점에 따른 분류
엔터티의 발생시점에 따라 구분된다.
발생시점 분류 | 특징 | 예시 |
기본엔터티, 키엔터티 (Fundamental, Key) |
업무에 원래 존재 다른 엔터티와 관계 생성 X , 독립적 생성 가능 다른 엔터티의 부모 역할 함 주식별자를 상속 X , 자신의 고유 주식별자 |
사원, 부서, 고객 ,상품, 자재 |
중심엔터티 (Main) | 기본엔터티로부터 발생 업무의 중심적인 역할 많은 양의 데이터 발생 다른 엔터티와의 관계 → 행위엔터티 생성 |
계약, 사고, 예금원장 ,청구,주문,매출 |
행위엔터티 (Active) | 두 개 이상의 부모엔터티로부터 발생 자주 내용이 바뀜, 데이터량 증가 분석초기 단계에서 도출 X 상세 설계단계, 상관모델링에서 도출 O |
주문목록 ,사원변경이력 |
③ 엔터티 분류 방법의 예

유무형에 따라, 발생시점에 따라, 그리고 스스로 생성할 수 있는지 여부에 따라 < 독립엔터티 / 의존엔터티 > 를 구분할 수 있다.
5. 엔터티의 명명
▷ 엔터티 명명 (표기법)
1) 가능한 업계 (현업업무) 용어 사용
2) 가능한 약어 사용 X
3) 단수명사 사용
4) 모든 엔터티에서 유일하게 이름 부여
5) 엔터티 생성 의미대로 이름 부여
" 엔터티 생성 의미대로 이름 부여 " 에서 적절하지 못한 엔터티명이 부여되는 경우가 빈번하다.
업무 목적에 상관없이 임의로 이름을 부여하면, 프로젝트에서 커뮤니케이션 오류로 인한 문제가 발생한다.
ex. 고객이 주문하여 발생한 행위엔터티에 대해 ' 주문목록 ' 과 ' 고객제품 ' 이라고 엔터티명을 정할 수 있다.
' 고객제품 ' 이라면 ' 고객이 주문한 제품 ' 또는 ' 고객의 제품 ' 두 가지로 의미가 애매모호하다.
'SQL > SQLD 1과목' 카테고리의 다른 글
SQLD - 과목1. (6) 성능 데이터 모델링 (0) | 2021.03.18 |
---|---|
SQLD - 과목1. (5) 식별자 (1) | 2021.02.24 |
SQLD - 과목1. (4) 관계 (0) | 2021.02.08 |
SQLD - 과목1. (3) 속성 (0) | 2021.02.07 |
SQLD - 과목1. (1) 데이터 모델링 (0) | 2021.01.30 |
- Total
- Today
- Yesterday
- 백준
- 백준별찍기
- 파이썬
- 파이썬입출력
- 파이썬for문
- SQLD1과목
- 파이썬 입출력
- SUM함수
- SQLD 2과목
- f-string
- 알고리즘
- BAEKJOON
- Python
- Unity GameObject 생성
- 데이터베이스
- 별 찍기
- SQLD 1과목
- 백준 별찍기
- SQLD
- 데이터 모델링
- 네이버클라우드플랫폼
- NaverCloudPlatform
- python별찍기
- 40회 SQLD
- range함수
- python문법
- 백준파이썬
- SQLD40회
- 파이썬sum
- 파이썬문법
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |