DB의 정규화

728x90

DB를 관리할 때는 아래 정규화(DB Normalization)을 지켜야 한다.

지키지 않을경우 어긴 테이블을 분리하여야 함!!!

 

1. 원자성 (atomic) : 각각의 값에서 하나의 값만 참조하여야 한다.

 

2. 복합키인 경우, 모든 컬럼의 값은 복합키에 모두 종속되어야 한다.

 - 복합키 중에서 어떤 특정키에 다른 속성이 종속되어서는 안된다.

 

예시로 주민번호를 들어보자. 주민번호를 알면 이름을 유일하게 특정할 수 있는 것처럼 이름은 주민번호에 종속되는 개념이다. 하지만 주민번호는 이름에 종속되지 않는다.

 

또 다른 예시를 들어보면 우리가 항상 예시로 자주 만드는 연락처가 있다.

사번, 이름, 부서번호가 저장된 DB가 있다면, 이 때 이름과 부서번호는 사번에 종속된다. 하지만 사번은 다른 객체에 종속되지 않는다.

 

복합키는 여러개를 지정할 수 있는 키이다. 예를 들자면 PK를 여러개를 지정할 수 있다는 의미이다.

하나의 이름에 여러가지 데이터를 배정할 때, 이름에다가 특정 데이터를 조합해야만 특정 column을 지정할 수 있다. 이 것을 복합키라고 한다. i.e) PRIMARY KEY(name, subject)

 

결론은, 복합키를 다른 속성에 종속시켜버리면 오류가 발생하므로 나중에 테이블을 분리하여 사용하여야 한다.

 

3. 일반 컬럼 사이에 종속관계가 있는 경우

728x90