저번시간에 배워봤던 정규화에 대해서 알아봤고 이제는 제 3정규형에 대해 알아보자.
제 3정규형 : 엔터티의 일반속성 간에는 서로 종속적이지 않는다.
앞서 말씀 드린대로 정규형은 이제 조금씩 조금씩 다듬는 것이다.
여기서 제 3 정규형에 대한 말은 "이행적 종속" 과 연관이 있다.
예를 들면 요런 테이블이 있다고 가정해보자. 이럴 경우에 봤을 때 몇가지 문제가 생긴다.
* 데이터 갱신 이상 문제
예를 들면, 고객이 이름을 바꿔 고객명을 바꿀 때 모든 주문 상세 테이블의 고객명을 따로따로 업뎃을 해주어야한다.
예를 들면, 에이미가 베이미로 바꾼다고 하면 -> 두 번의 작업을 해주어야하는 것이다.
요렇게 되면 주문과는 전혀 연관 없는 트랜잭션이므로 이를 확인해주어야한다. 이럴 경우 두번의 쓸데없는 작업이 생기므로 "정규화"는 정말 중요하다~
여기까지 봤을 때,, 나는 제2정규형과 제 3정규형이 조금 혼동이 오기 시작했다. 둘다 종속적인 관계를 띄어내는 그런 작업이라고 보여졌다.
그래서 요기저기를 찾아봤는데..! 나와 같은 질문을 한 사람이 있었다.
데이터 중복
* 데이터 갱이상 문제
* 데이터 갱신* 데이터 갱신 이상 문제 이상 문제
제 2정규형과 제 3정규형이 약간 헷갈렸지만..! 가장 중요한건 우선 PK 컬럼
우선 제 3정규형은 먼저 제 2정규형이 모두 수행되고 나서 설정된다. A(FK), B, C, D, E 라는 컬럼을 가진 테이블이 있다고 가정을 해보자.
먼저, 제 2정규형을 진행한다고 가정을 해볼때, B 컬럼이 -> C 컬럼에 종속적인 영향을 미치는 것을 파악했다. 또한, 이럴 경우, C 의 컬럼은 A 의 컬럼에 영향을 받지 않는다.
이럴 경우 진행되는 것이 제 2정규형이다 .
이렇게 진행되고 나면 이제 테이블이 A,B, D, E 테이블 하나 그리고 B,C 테이블 하나로 나누어질 것이다. 이제 진행하는 것이 제 3정규형인데, 이럴 경우에 해당 테이블을 확인해볼 수 있도록 한다.
이럴 경우에는 이미 B, D, E 컬럼의 경우는 A 컬럼에 종속적인 관계임이 확인이 된 것이다. 하지만 이행적 종속관계라는 것은 그 안에 또 내부적으로 종속되는지에 대한 것이다 .
따라서 B,D, E 컬럼의 경우 A 와도 종속적이지만 내부에 B 의 컬럼이 D 의 컬럼 에서 결정자 역할을 하므로 이의 경우는 제 3정규형의 과정이라고 볼수 있따.
'이유's Programming > DBMS' 카테고리의 다른 글
[ 식별자 ] 본질식별자와 인조식별자 (0) | 2021.03.18 |
---|---|
[ 2 -1 ] 관계와 조인의 이해 (0) | 2021.03.16 |
2-1. 정규화 ( 제 1 정규형, 제 2 정규형 ) (0) | 2021.03.08 |
1-4. 관계, 식별자 (0) | 2021.03.05 |
1-2. 엔터티 entity (0) | 2021.03.04 |