본문 바로가기
CS/DB

데이터 베이스 정규화

by 배준오 2023. 10. 4.
반응형

데이터베이스 정규화과정

제 1정규형

릴레이션의 모든 도메인이 더 이상 분해될 수 없는 원자 값만으로 구성되어야 함

릴레이션의 속성 값 중에서 한 개의 기본키에 대해 두 개 이상의 값을 가지는 반복 집합이 있다면 제거하는 것을 말함.

https://ko.wikipedia.org/wiki/%EC%A0%9C1%EC%A0%95%EA%B7%9C%ED%98%95

 

제1정규형 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 제1정규형(1NF 또는 최소형)은 데이터베이스 정규화에서 사용하는 정규형중 하나이다. 관계형 데이터베이스의 테이블이 1NF이면 최소한 테이블은 관계[1]이며,

ko.wikipedia.org

 

제 2정규형

릴레이션이 제 1정규형이며 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속된 것을 말

 

제 3정규형

제 2정규형을 만족하고 기본키가 아닌 모든 속성이 기본키에 이행적 함수 종속을 만족하지 않는 상태를 말함

A -> B // B -> C ==> A -> C

BCNF 정규화

보통 하나의 릴레이션에 여러개의 후보키가 존재할 수 있는데 이 경우에 제 3정규형보다 엄격한 기준으로 제약은 건 것

- 삽입 이상 : 새로운 강사가 특정 과목을 담당한다는 새로운 정보를 추가할 수 없다. 적어도 한 명 이상의 수강 학번이 필요하다. 

- 삭제 이상 : 학번 12010이 코딩테스트 과목을 취소하면, 큰돌이 12010 과목을 담당한다는 정보도 삭제된다. 

- 갱신 이상 : 큰돌의 과목이 변경되면 큰돌인 행을 모두 찾아 변경시켜주어야 한다. 

 

 

마무리

정규화 과정은 릴레이션(테이블)을 나누는 과정입니다. 그러나 테이블을 나누게 되면 성능이 좋아질 수도 나빠질 수도 있습니다. 예를 들어 어떤한 쿼리의 경우 테이블을 나눠버린 경우 "조인"을 계속 해야하기 때문에 오히려 느려질 수도  있음

그러므로 서비스에 따라 정규화 또는 비정규화 과정을 진행해야 함.

 

장점 : 

정규화 과정 -> 중복데이터 제거 -> 스토리지에 대한 전체 메모리 요구량 감소

                    -> 테이블 정상적 -> 오류 발생 가능성 낮음

단점 :

비용이 많이 발생하는 조인을 해야

반응형