# 데이터베이스 정규화 (Database normalization)

-       이상문제를 해결하기 위해 속성들 끼리의 종속 관계를 분석하여 여러 개의 릴레이션으로 분해하는 과정.

-       이상문제 : 삽입 이상, 삭제 이상, 갱신 이상.

 

정규화는 데이터베이스의 자료에서 중복성 및 일치하지 않는 종속성을 제거하여 데이터베이스의 유연성을 높이는 동시에 데이터를 보호하도록 설계된 규칙에 따라 테이블을 만들고 해당 테이블 간의 관계를 설정하는 작업이다.

 

데이터가 중복되면 디스크 공간이 낭비되며 유지 관리상의 문제가 발생함. 여러 위치에 있는 데이터를 변경해야 하는 경우에는 모든 위치에서 데이터를 정확히 동일한 방식으로 변경해야 함. 고객 주소 데이터가 Customers 테이블에만 저장되어 있고 데이터베이스의 다른 위치에는 없다면 고객 주소 변경을 구현하기가 훨씬 쉬워질 것임.

 

그렇다면 "일치하지 않는 종속성"이란 무엇일까? 특정 고객의 주소를 찾으려는 사용자는 자연스럽게 Customers 테이블을 확인하지만 해당 고객에게 전화를 거는 직원의 급여를 이 테이블에서 확인하는 것은 적절하지 않을 수 있다. 직원의 급여는 직원에 관련/종속되므로 Employees 테이블로 이동해야 함. 일치하지 않는 종속성이 있는 경우 데이터를 찾을 수 있는 경로가 없거나 끊겨 있을 수 있으므로 데이터를 찾기가 어려울 수 있다. 

 

 

# 정규화를 하는 이유

 - 데이터의 중복성 제거
 - 데이터 모형의 단순화
 - Entity,Attribut의 누락여부
 - 데이터모형의 안전성 검증

 

# 정규화 종류

 

 

 

 

출처 : openwiki.kr/tech/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%EC%A0%95%EA%B7%9C%ED%99%94

+ Recent posts