현실 세계의 비즈니스 프로세스와 데이터 요구 사항을 추상적이고 구조화된 형태로 표현하는 과정
엔터티(Entity)
업무로 관리하고자 하는 대상, 데이터를 저장하는 객체
속성(Attribute)
대상들이 가지는 속성
관계(Relationship)
엔터티 간의 연관성
한 개의 엔터티는 2개 이상의 인스턴스의 집합이어야 하며, 2개 이상의 속성을 가진다.
이때 하나의 인스턴스는 각각의 속성들에 대해 1개의 속성값만을 가진다.
1. 개념적 모델링
2. 논리적 모델링
3. 물리적 모델링
데이터를 구조화하고 분해하는 과정
최소한의 데이터 중복, 데이터 일관성, 데이터 이상 현상 방지, 최대한의 데이터의 유연성 확보를 위해 실행
테이블 내 모든 속성이 원자성을 가지도록 테이블을 분해하는 단계
원자성
: 한 속성이 하나의 값을 가지는 특성
e.g) 학생의 이름과 주소를 각각 '이름' 컬럼과 '주소' 컬럼으로 분리하여 원자값 유지
제 1 정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해
완전 함수 종속
: 기본키를 구성하는 모든 컬럼의 값이 다른 컬럼을 결정짓는 상태
→ PK가 2개 이상일 때 발생하며, PK의 일부와 종속되는 관계가 있다면 분리
e.g) '수강 이력' 테이블에서 강의실 컬럼이 강의명에 의해 결정될 경우, 이를 분리하여 완전 함수 종속을 만족
제 2 정규화를 진행한 테이블에 대해 이행적 함수 종속성을 제거하도록 테이블을 분해
이행적 함수 종속성
: A → B → C 의 관계가 성립할 때, A → C 가 성립되는 것.
→ (A, B) 와 (B, C)로 분리
e.g) '고객' 테이블에서 상품명과 가격 컬럼이 고객번호에 대해 이행 함수 종속성을 가진다면, 이를 분리하여 '상품' 테이블 생성