데이터베이스 모델링(1) - ERD
📘데이터베이스 생명주기
1) 요구사항 수집 및 분석
2) 설계
3) 구현
4) 운영
5) 테스트 및 유지보수
📖 요구사항 수집 및 분석
사용자와 데이터베이스 용도의 식별 및 사용자의 요구 등을 정리하고 분석하여 데이터베이스의 구축 범위를 정하는 단계
📖 설계
1) 개념적 설계
요구사항을 수집하고 분석한 결과를 바탕으로 전체적인 뼈대를 만드는 과정으로, 개체들 간의 관계를 정의하여 ER 다이어그램을 만드는 과정이다.
ERD(Entity Relationship Diagram)
데이터와 각 개체 간의 관계를 사람이 이해할 수 있는 형태로 표현하는 개념적 설계의 대표적인 도구
예시
표기법
관계
- 1 : 1
- 1 : N
- N : M
이상 현상 (Anomaly)
1) 삭제 이상: 튜플 삭제 시 같이 저장된 다른 정보까지 연쇄적으로 삭제
2) 삽입 이상: 튜플 삽입 시 특정 속성 해당하는 값이 없어 Null 삽입
3) 수정 이상: 튜플 수정 시 중복 데이터 일부만 삭제되어 데이터 불일치
정규화
릴레이션 간의 잘못된 종속 관계로 인한 데이터베이스 이상 현상을 해결하거나 효율을 위해 릴레이션을 분리하는 것
정규화에 대해 알기 전 필요한 사전 지식을 정리해보았다.
함수적 종속 (Functional Dependency)
1) 완전 함수 종속
종속자가 기본키에만 종속되며, 기본키가 여러 속성으로 구성되어 있을 경우, 종속자가 기본키 전체에 의존적인 경우를 말한다.
2) 부분 함수 종속
종속자가 기본키가 아닌 속성에 종속되거나, 기본키를 구성하는 속성의 일부에만 종속되는 경우를 말한다.
3) 이행적 함수 종속
X→Y, Y→Z 라는 종속 관계가 있을 때, X→Z가 성립되는 경우를 이행적 함수 종속이라고 한다.
제 1 정규형
모든 속성 값은 원자 값이어야 한다.
제 2 정규형
부분 함수 종속성을 제거한 형태
ex)
- {사번, 프로젝트 번호}로 구성되어 있는 기본키에 부서 필드가 부분 함수 종속을 이루고 있다. 따라서 사번, 부서로 이루어진 테이블로 따로 분리를 해주어야 한다.
제 3 정규형
모든 속성이 이행적 함수 종속을 만족하지 않는 형태
ex)
- 고과율은 기본키에 관계없이 프로젝트 역할에 따라 결정되는 이행적 함수 종속의 형태이므로 프로젝트 역할, 고과율로 이루어진 테이블로 따로 분리를 해주어야 한다.
BCNF(Boyce-code Normal Form)
결정자가 후보키가 아닌 함수 종속 관계를 제거하여, 모든 결정자가 후보키인 형태
제 4 정규형
다치 종속을 제거한 형태
제 5 정규형
조인 종속을 제거한 형태, 테이블을 분했다가 다시 조인을 했을 때 발생할 수도 있는 불필요한 튜플을 제거
참고
댓글남기기