////
Search
Duplicate

정규화 과정 - 현구

정규화란?

정의
데이터베이스 정규화는 데이터 중복성을 줄이고, 데이터 무결성을 향상시키기 위해 데이터를 구조화하는 과정
목적
중복 제거 : 데이터 중복을 줄여 저장 공간을 효율적으로 사용
데이터 무결성 향상 : 데이터베이스 내의 데이터 정확성, 일관성을 유지
업데이트 이상 최소화 : 데이터 수정, 삭제, 삽입 시 발생할 수 있는 문제점들을 줄임
효과
저장 공간의 효율적 사용데이터 무결성 및 일관성 유지 데이터베이스 수정 시 발생할 수 있는 오류 감소
제1 정규화, 제2 정규화, 제3 정규화, 보이스/코드 정규형이 있음

제1 정규화

모든 필드의 값이 원자값을 가지도록 테이블을 구조화하는 것 즉, 각 필드에는 반복되는 그룹이나 리스트가 없어야 함

제2 정규화

모든 테이블이 제1 정규형을 만족하며, 기본 키가 아닌 모든 필드가 기본 키에 완전 함수적으로 종속되는 상태

제3 정규화

모든 테이블이 제2정규형을 만족하며, 기본 키가 아닌 모든 필드가 이행적 종속을 만족하지 않는 상태 즉, 기본 키가 아닌 모든 필드가 기본 키에만 종속되어야 함
이행적 종속

보이스/코드 정규화

제3 정규형
테이블이 이미 제3 정규형(3NF)에 있어야 함
모든 결정자가 후보 키여야 함 즉, 비후보 키 속성이 다른 속성을 결정하지 않아야 함
결정자
데이터 중복을 줄이고, 업데이트 이상 현상을 방지하여 데이터베이스의 무결성을 보장
특히, 후보 키가 아닌 결정자에 의한 종속성을 제거함으로써 보다 엄격한 데이터 구조를 유지할 수 있음
성능이 100% 좋아지는 것은 아님, 테이블이 나뉘기 때문에 조인을 해야하는 경우도 발생할수 있음