데이터 모델링
데이터베이스를 구축할 땐 복잡한 개념을 단순화, 추상화하고 이를 구체화한 설계하는 과정이 필요하다. 이 과정은 개념적 모델링, 논리적 모델링, 물리적 모델링이라는 세 단계로 나뉜다.
I. 데이터 모델링 과정
- 개념적 모델링: 업무의 핵심 개념을 구분하고 관계 정의. ERD 그리기.
- 논리적 모델링: 핵심 개체와 개체의 속성을 구체화, 기본키 지정, 정규화 수행
- 물리적 모델링: SQL을 작성해 실행, 데이터베이스 생성
II. ER 모델
ER 모델은 개체와 개체간의 관계를 표현한 다이어그램으로 표현한다. 다이어그램은 개체, 속성, 관계로 구성된다.
개체 타입
개체의 특징을 정의한 것으로 사각형으로 나타낸다.
- 강한 개체: 다른 개체 없이도 독립적으로 존재 가능. 한 줄 사각형
- 약한 개체: 다른 개체가 있어야 존재 가능. 두줄 사각형
속성
속성은 동그라미로 표현된다.
- 밑줄: 키 속성
- 점선 밑줄: 약한 개체의 키 속성
- 두줄 동그라미: 다중값 속성
- 점선 동그라미: 유도 속성
- 자식 동그라미: 복합 속성
관계 타입
관계 타입은 마름모 모양으로 나타낸다.
관계 유형 - 차수
개체들이 몇대 몇으로 관께를 맺는지에 따른 유형이다.
- 1진 관계: 한 개체가 스스로 관계를 맺음. 예: 학생들끼리 멘토링 관계를 맺음
- 2진 관계: 두 개체가 관계를 맺음. 예: 학생과 학과가 소속이라는 관계를 맺음
- 3진 관계: 세 개체가 관계를 맺음.
관계 유형 - 대응 수
개체들이 몇대 몇으로 관계를 맺을 수 있는지에 따른 유형이다.
- 1:1 : 개체들이 서로 하나씩만 관계를 맺을 수 있다. 예: 사원과 사원증
- 1:N : 한 개체가 다른 여러 개체와 관계를 맺을 수 있다. 예: 학과와 학생
- N:M : 여러 개체와 여러 개체가 복합적인 관계를 맺을 수 있다. 예: 학생과 수강
대응수의 최소값(min): 관계에 참여하는 개체수가 적어도 min 이상은 되어야 함. 대응수의 최대값(max): 관계에 참여하는 개체수가 max를 넘어선 안됨.
min = 0: 반드시 참여할 필요가 없음 max = *: 임의의 수만큼 참여할 수 있음
ISA 관계
개체 간 상하관계를 표시하는 관계로, 역삼각형으로 표시한다.
- 상위 개체 타입(슈퍼클래스): 학생
- 하위 개체 타입(서브클래스): 휴학생, 재학생, 졸업생
참여 제약조건
개체 집합 내 모든 개체가 관계에 참여하는지에 따라 전체 참여와 부분 참여로 구분
- 전체 참여: 모든 개체가 참여. 두 줄로 표시. 최소값 1 이상
- 부분 참여: 한 줄로 표시. 최소값 0