728x90
01. 엔터티(Entity)
현실 세계에서 다른 모든 것들과 구분되는 유형, 무형의 것을 엔터티라고 정의하며 업무 수행을 위해서 알아야 될 대상이 되는 유형, 무형의 것을 엔터티라고 정의한다.
즉, 데이터로 관리되어야 하는 항목을 엔터티로 정의한다.
엔터티 특징
- 유일한 식별자에 의해 식별 가능해야 한다. (e.g. 주민번호 / 성별 같은 식별자는 중복성이 커서 불가능함)
- 2개 이상의 인스턴스(속성)의 집합이어야 한다.
- 엔터티는 반드시 업무 프로세스에 의해 이용된다.
- 반드시 속성을 가져야 한다. 그리고 1개의 엔터티는 무조건 2개 이상의 속성을 가진다.
- 엔터티는 다른 엔터티와 최소한 1개 이상의 관계를 맺는다.
- 엔터티 명은 약어를 지양해야 한다.
엔터티 분류
유무(有無)형에 따른 분류
명칭 | 설명 |
유형 엔터티(Tangible Entity) | 물리적 형태가 있음 (e.g. 사원, 물품, 감사) |
개념 엔터티(Conceptual Entity) | 물리적 형태가 없음(e.g. 조직, 보험상품) |
사건 엔터티(Event Entity) | 업무 수행에 따라 발생(e.g. 주문, 청구, 미납) |
발생시점에 따른 분류
명칭 | 설명 |
기본 엔터티 | 원래 존재하는 정보(e.g. 사원, 부서, 고객, 상품) |
중심 엔터티 | 기본엔터티로부터 발생하고 다른 엔터티와 관계를 통해 많은 행위 엔터티를 발생 (e.g. 계약, 사고, 청구, 주문) |
행위 엔터티 | 두 개 이상 부모 엔터티로 부터 발생. 내용이 자주 바뀌거나 데이터량이 증가(e.g. 주문목록, 로그인 이력) |
02. 속성(Attribute)
업무에서 필요로 하는 인스턴스에서 더 이상 분리되지 않는 최소 데이터 단위
- 한 개의 속성은 반드시 한 개의 속성값만 가진다
- 한 개의 엔터티는 최소 2개 이상의 속성을 가진다
- 한 개의 엔터티는 최소 1개 이상의 다른 엔터티와 관계를 가진다
- 한 개의 엔터티는 최소 2개 이상의 인스턴스 집합이어야 한다
속성의 분류
특성에 따른 분류
명칭 | 설명 |
기본속성 | 업무로 부터 추출한 값(e.g. 이름, 전화번호, 성별) |
설계속성 | 규칙화를 위해 변형/새로 정의한 값(e.g. 과목코드, 지역코드) |
파생속성 | 다른 속성에 영향을 받아 발생한 값(e.g. 예금이자, 평균성적) |
💡 은행에 적금을 들고자 합니다. 그래서 우리는 원금을 통장에 입금했습니다. 이자율은 5%라서 연 이자는 원금의 *0.05를 기대하면 되겠습니다.
원금, 이자율 → 기본속성
이자 → 파생속성
* 위의 예시에서 설계속성은 예금분류에 해당 될 수 있다
계산이라는 키워드가 들어가면 파생속성
엔터티 구성방식에 따른 분류
명칭 | 설명 |
PK(Primary Key) | 엔터티를 식별할 수 있는 속성 |
FK(Foreign Key) | 다른 엔터티와의 관계에서 포함된 속성 |
일반속성 | PK, FK에 포함 되지 않은 속성 |
명칭 | 설명 |
단순형 | 원자값 속성 |
복합형 | 여러 세부 속성으로 나뉠 수 있는 속성 |
도메인(Domain)
각각의 속성이 가질 수 있는 값의 범위
💡 주문이라는 엔터티가 있을 때 단가라는 속성 값의 범위는 100 ~ 10000 사이의 실수 값이며 제품명이라는 속성의 길이가 20자리 이내의 문자열로 정의가 가능하다.
범위가 언급되면 도메인에 대한 이야기
03. 관계(Relationship)
존재에 의한 관계
관계의 페어링
엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것
페어링의 집합: 관계
관계의 표기법
- 관계명(Membership): 관계의 이름
- 관계차수(Cardinality): 1:1, 1:M, M:N
- 관계선택사양(Optionality): 필수관계(not null), 선택관계(nullable, O를 표시)
💡 동사(Verb)는 관계를 서술하는 업무기술서의 가장 중요한 사항
📌 참고자료
728x90
'자격증 > SQLD' 카테고리의 다른 글
[SQLD] 데이터 모델과 성능 - 대용량 데이터에 따른 성능, DB 구조와 성능, 분산DB 데이터에 따른 성능 (0) | 2023.08.30 |
---|---|
[SQLD] 데이터 모델과 성능 - 정규화와 성능, 반정규화와 성능 (0) | 2023.08.29 |
[SQLD] 데이터 모델링의 이해 - 식별자 (Identifiers) (0) | 2023.08.29 |
[SQLD] 데이터 모델링의 이해 - 데이터 모델의 이해 (1) | 2023.08.29 |
SQL 개발자(SQLD) 자격증 안내, 합격 기준, 응시 자격, 응시료 (0) | 2023.08.29 |