(데이터베이스) 제 3정규화

"기본키(Primary Key)에 의존하지 않고 일반 컬럼에 의존하는 칼럼들을 제거한다."

이를 이전적 함수 종속관계라고하며 이를 해결하는 것이 바로 제 3정규화이다.




위의 주문 테이블에서 키가 아닌 모든 컬럼은 기본키인 주문ID에 종속적인가?


그렇지 않다. 회원명, 전화번호, 회원등급은 회원ID에 종속적이다.

즉 위의 견본데이터에서 회원 ID가 "HONG"임을 알면 회원명은 '홍길동', 전화번호는 222-2222, 회원등급은 '우수'임을 알 수 있다.


그럼 이 설계의 문제점은 무엇인가?

회원이 주문을 할 때마다 동일한 회원에대한 회원명, 전화번호, 회원등급에 대한 데이터가 계속해서 중복되어 쌓일 것이다. 또한 중복되는 데이터들로 인한 데이터 무결성을 유지하는데 문제가 될 수 있다.
만약 홍길동의 전화번호가 222-2222에서 211-1111으로 수정이 되어졌다면 주문 테이블에서 홍길동이란 회원의 모든 전화번호를 수정해 주어야 할 것이다.


제 3정규화란 기본키에 전적으로 의존하지 않고 키가 아닌 일반 칼럼에 의존하는 칼럼을 제거시켜 원래의 제자리에 위치시키는 것이다.

따라서 다음과 같이 새로운 테이블을 구성할 수 있다.



댓글

이 블로그의 인기 게시물

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬

(18장) WebSocekt과 STOMP를 사용하여 메시징하기