논리적, 물리적 데이터 모델링을 하지 못하면 개념적 데이터 모델링 불가능하다.
1. 개념적 데이터 모델링의 효용
1) 현실에서 개념을 추출하는 필터를 제공해준다.
2) 개념에 대해 다른 사람과 대화하게 해주는 언어로 작용한다.
=> ERD(Entity Relationship Diagram)가 가능하게 해준다.
2. ERD란?
- 엔티티와 이들 간의 관계를 알기 쉽게 약속된 도형을 이용하여 그림으로 표현한 것
- 데이터베이스의 구조를 시각적으로 표현하여 데이터베이스 설계를 돕는 데 사용
- Draw.io : ERD 작성 툴
3. ERD 구성요소
1) 엔티티(Entity)
현실 세계에서 독립적으로 존재하는 실체나 객체
"고객", "제품", "주문"과 같은 것들이 엔터티가 될 수 있다.
2) 관계(Relationship)
해당 엔티티와 관련된 업무가 수행되는 규칙
1:N(1대다), 1:1(1대1), N:M(다대다) 관계 등으로 분류
다대다 관계는 db 테이블로 표현할 수 없어서 중간에 연결 테이블을 만들어서 최종적으로 1대다로 컨버팅한다.
-
Cardinality (기수성)
- 1:N(1대다)
- 1:1(1대1)
- N:M(다대다)
-
Optionality (선택성)
- Mandatory (필수적인)
- Optional (선택적인)
3) 속성(Attribute)
개체 집합의 특성을 설명
"고객" 엔터티의 속성은 "고객ID", "이름", "주소" 등
4) 식별자(Identifier)
엔터티에서 유일하게 식별할 수 있는 속성
각 엔터티는 하나의 기본 키를 가지며, 중복된 값을 가질 수 없다.
- 후보키(candidate key) : 후보가 될만한 식별자들
- 기본키 PK(Primary Key) : 식별자
- 대체키 (Alternate key): 기본키가 아닌 나머지
- 중복키(composite key) : 두 개 이상의 속성을 조합해서 식별할 수 있는 키