1. 모델링의 특징
모델링은 복잡한 "현실 세계"를 데이터 모델을 통해 단순화켜 표현하는 것이다. 따라서 모델링은 아래와 같은 3가지 특성을 지닌다.
- 추상화 : 현실세계를 특정한 형식에 맞춰서 개념적으로 표현한다.
- 단순화 : 현실세계를 정의한 규칙이나 표기법이나 언어로 간단명료하게 표현한다.
- 명확화 : 애매모호한 표현은 제하고 누구나 이해할 수 있도록 정확하게 현상을 기술한다.
데이터 모델링은 현실세계 -> 개념적구조 -> 논리적구조 -> 물리구조 (데이터베이스) 의 flow를 가지는데 아래와 같이 그림으로 이해하면 보다 더 쉽게 이해할 수 있다.
- 개념적 데이터 모델링은 현실 세계를 추상적인 개념으로 바꾸는 모델링이다. 추상화 수준이 높고 포괄적인 수준으로 모델링을 진행한다.
- 논리적 데이터 모델링은 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 보다 정확하게 표현해 놓는 단계이다.
- 물리적 데이터 모델링은 실제로 데이터베이스에 값을 넣을 수 있도록 성능, 저장 등을 고려하여 설계하는 단계이다.
2. Entity
우선 아래 표를 눈에 익히고 들어가면 좋을 것 같다.
엔터티는 저장이 되기 위한 어떠한 '것' 이다. (사람, 장소, 물건, 사건, 개념 등)
- 엔터티는 2개 이상의 인스턴스를 가져야 한다.
- 속성이 반드시 포함되어 있어야 한다.
- 다른 엔터티와 최소 1개 이상의 관계가 있어야 한다.
- 의미있는 식별자에 의해 인스턴스는 중복배제하여 존재해야 한다.
Entity 분류
- 유무형에 따른 분류
- 유형 엔터티 : 물리적 형태가 있음 ex) 강사, 사원, 물건
- 개념 엔터티 : 물리적 형태가 없음 ex) 조직, 보험상품
- 사건 엔터티 : 업무 수행에 따라 발생 ex) 주문, 청구, 미납
- 발생시점에 따른 분류
- 기본 엔터티 : 원래 존재하는 정보 ex) 사원, 부서, 고객, 상품
- 중심 엔터티 : 본엔터티로부터 발생되고 그 업무에 있어서 중심적인 역할을 한다. ex) 계약, 사고, 예금원장, 청구, 주문, 매출
- 행위 엔터티 : 두 개 이상의 부모엔터티로부터 발생되고 자주 내용이 바뀌거나 데이터량이 증가한다. ex) 주문목록, 사원변경이력
3. 속성
성별, 나이 연락처 등 인스턴스의 구성요소가 되는 값이다.
- 업무에서 필요로 한다.
- 의미상 더 이상 분리되지 않는다.
- 엔터티를 설명하고 인스턴스의 구성요소가 된다.
속성의 분류
- 특성에 따른 분류
- 기본속성 : 업무분석을 통해 바로 정의한 속성 ex) 제품번호, 제품명, 제조일시, 제조원가
- 설계속성 : 원래 업무상 존재하진 않지만 설계를 하면서 도출해내는 속성 ex) 제조사코드
- 파생속성 : 다른 속성으로부터 게산이나 변형이 되어 생성되는 속성 ex) 판매금액, 이익
- 엔터티 구성방식에 따른 분류
- PK 속성 : 엔터티를 식별할 수 있는 속성
- FK 속성 : 다른 엔터티와의 관계에서 포함된 속성
- 일반 속성 : PK, FK에 포함되지 않은 속성
'자격증 공부📖 > SQLD' 카테고리의 다른 글
[SQLD] DML (Data Manipulation Language) (0) | 2021.06.02 |
---|---|
[SQLD] DDL ( DATA DEFINITION LANGUAGE ) (0) | 2021.05.16 |
[SQLD SQL 기본] SQL문의 종류 (0) | 2021.05.16 |
[SQLD 데이터 모델과 성능] 정규화와 성능 (0) | 2021.05.13 |
[SQLD] #0 SQL공부를 위한 데이터베이스 사전 지식 (0) | 2021.05.03 |