본문 바로가기

기타/관계형 데이터 모델링

관계형 데이터 모델링 정규화 Atomic columns와 No partial dependencies

728x90

오늘은 관계형 데이터 모델링 정규화에 대해 공부해 보려 합니다.

Atomic columns와 No partial dependencies(부분 종속성)에 대해 알아보도록 하겠습니다.

 

(1)Atomic columns

예를들어 이런 표가 있다고 합시다.

우리가 데이터 베이스에서 데이터를 가져올 때 특정 열의 값들이 두개 이상이라면 가져와서 제대로 처리할 수 있을까요?

관계형 데이터 베이스에서는 힘듭니다.

때문에 값들이 한가지 여야 합니다.(Atomic해야 합니다.)

그런데 위의 표를 보면 광고 부분의 값들이 두개씩 들어 있습니다.

이를 한가지 값만 갖도록 바꿔줘야 합니다.

이러한 상황은 주로 N:M관계에서 나옵니다. 즉 선수들은 여러개의 광고를 할 수 있고 광고주는 여러 선수를 후원할 수 있죠.

이러한 문제를 해결하기 위해서는 매핑 테이블이 필요합니다.

가운데 보시면 선수광고와 광고주 테이블이 새로 추가되었습니다.

여기서 선수광고 테이블은 나머지 두 테이블을 이어주는 매핑 테이블입니다.

광고주 아이디와 선수이름을 연결 해줍니다.

이렇게 N:M관계에서는 매핑 테이블을 이용하여 Atomic 정규화를 할 수 있습니다.

 

(2)No partial dependencies(부분 종속성)

만약 아래 표처럼 손흥민 선수의 행이 포지션 때문에 두개로 분리되다면 테이블의 효율성이 떨어지겠죠.

달리기, 이적료,에이전트, 소속사 열에서 중복이 발생합니다.

이러한 문제를 해결하기 위해서는 아래와 같이 분리해서 따로 테이블을 만들어 주면 중복을 제거할 수 있습니다.

728x90