3. 엔터티 (Entity)
1) 엔터티
- 업무에서 관리해야 하는 데이터 집합. 저장되고 관리되어야 하는 데이터
- 현실세계에서의 객체. 물리적 설계 단계에서는 하나의 릴레이션이 됨
- 명사!
2) 엔터티 도출
- 고객의 비즈니스 프로세스에서 관리되어야 하는 정보를 추출하여 도출
3) 엔터티의 특징
식별자 |
유일한 식별자가 있어야 함 |
인스턴스 집합 |
2개 이상의 인스턴스가 있어야 함 |
속성 |
속성을 반드시 가짐 |
관계 |
다른 엔터티와 최소 1개 이상 관계 있어야 함 |
업무 |
업무에서 관리되어야 하는 집합 ,업무프로세스(Business Process)가 그 엔터티를 반드시 이용 |
4) 엔터티의 종류
- 유형과 무형에 따른 엔터티 종류
유형 엔터티 |
- 물리적 형태 有 / 안정적이며 지속적으로 활용됨 - 업무에서 도출되며 지속적으로 사용되는 엔터티 - 고객, 사원 등.. |
개념 엔터티 |
- 물리적 형태 無 - 개념적으로 사용되는 엔터티 / 관리해야 할 개념적 정보로 구분이 되는 엔터티 - 거래소 종목, 코스닥 종목, 상품 등.. |
사건 엔터티 |
- 비즈니스 프로세스를 실행하면서 생성되는 엔터티 - 물리적 형태 無 / 업무를 수행함에 따라 발생되는 엔터티. 비교적 발생량이 많으며 각종 통계자료에 이용 - 주문, 체결, 수수료 청구 등.. |
- 발생 시점에 따른 엔터티 종류
기본 엔터티 (Basic Entity) |
- 키 엔터티 - 그 업무에 원래 존재하는 정보 - 다른 엔터티로부터 영향을 받지 않고 독립적으로 생성되는 엔터티 / 타 엔터티의 부모 역할 - 고객, 상품, 부서 등 |
중심 엔터티 (Main Entity) |
- 기본 엔터티와 행위 엔터티 간 중간에 위치 - 기본엔터티로부터 발생되고 있는 행위 엔터티를 생성하는 엔터티 - 데이터의 양이 많이 발생 - 계좌, 주문, 취소, 체결 등 |
행위 엔터티 (Active Entity) |
- 두 개 이상의 부모엔터티로부터 발생 - 자주 내용이 바뀌거나 데이터량이 증가 / 상세 설계단계나 프로세스와 상관모델링을 진행하면서 도출 - 주문 이력, 체결 이력 등.. |
4. 엔터티 식별자 (Entity Identifier)
- 식별자 : 유일성을 만족하는 속성
1) 주식별자(기본키 Primary key)
- 유일성과 최소성을 만족시키는 키
- 엔터티를 대표할 수 있는 키
- 엔터티의 인스턴스를 유일하게 식별
- 자주 변경되지 않는 속성
* 주식별자의 특징
유일성 |
주식별자에 의해 엔터티내에 모든 인스턴스들을 유일하게 구부누함 |
최소성 |
주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함 |
불변성 |
주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함 |
존재성 |
주식별자가 지정되면 반드시 |
- 키의 종류
기본키 (Primary key) |
후보키 중에서 엔터티를 대표할 수 있는 키 |
후보키 (Candidate Key) |
유일성과 최소성을 만족하는 키 |
슈퍼키 (Super key) |
유일성은 만족하지만 최소성(not null)은 만족하지 않는 키 |
대체키 (Alternate Key) |
여러 후보키 중에서 기본키를 선정하고 남은 |
2) 식별자의 종류
(1) 식별자의 대표성
주식별자 |
- 유일성과 최소성을 만족하면서 엔터티를 대표하는 식별자 - 다른 엔터티와 참조 관계로 연결 될 수 있음 |
보조 식별자 |
- 유일성과 최소성은 만족하지만 대표성을 만족하지 못하는 식별자 |
(2) 생성 여부
내부 식별자 |
- 엔터티 내부에서 스스로 생성되는 식별자 (부서코드, 주문번호, 종목코드 등) |
외부 식별자 |
- 다른 엔터티와의 관계로 인해 만들어지는 식별자 (계좌 엔터티에 회원ID 등) |
(3) 속성의 수
단일 식별자 |
- 하나의 속성으로 구성 됨 |
복합 실별자 |
- 두 개 이상의 속성으로 구성됨 |
(4) 대체 여부
본질 식별자 |
- 비즈니스 프로세스에서 만들어지는 식별자 |
인조 식별자 |
- 인위적으로 만들어지는 식별자 (원조식별자가 복잡한 구성을 가지고 있어서 인위적으로 만드는 것) |
'[자격증] SQLD (SQL Developer)' 카테고리의 다른 글
[SQLD][책없이 공부]1과목 02. 데이터 모델과 성능_03 분산 데이터베이스 (0) | 2019.11.13 |
---|---|
[SQLD][책없이 공부]1과목 02. 데이터 모델과 성능_02 반정규화 (0) | 2019.11.13 |
[SQLD][책없이 공부]1과목 02. 데이터 모델과 성능_01 성능데이터모델링, 정규화 (0) | 2019.11.13 |
[SQLD][책없이 공부]1과목 01. 데이터 모델링 (Data Modeling)_03 (0) | 2019.11.12 |
[SQLD][책없이 공부]1과목 01. 데이터 모델링 (Data Modeling)_01 (0) | 2019.11.12 |