728x90
반응형
DB를 관리할 때는 아래 정규화(DB Normalization)을 지켜야 한다.
지키지 않을경우 어긴 테이블을 분리하여야 함!!!
1. 원자성 (atomic) : 각각의 값에서 하나의 값만 참조하여야 한다.
2. 복합키인 경우, 모든 컬럼의 값은 복합키에 모두 종속되어야 한다.
- 복합키 중에서 어떤 특정키에 다른 속성이 종속되어서는 안된다.
예시로 주민번호를 들어보자. 주민번호를 알면 이름을 유일하게 특정할 수 있는 것처럼 이름은 주민번호에 종속되는 개념이다. 하지만 주민번호는 이름에 종속되지 않는다.
또 다른 예시를 들어보면 우리가 항상 예시로 자주 만드는 연락처가 있다.
사번, 이름, 부서번호가 저장된 DB가 있다면, 이 때 이름과 부서번호는 사번에 종속된다. 하지만 사번은 다른 객체에 종속되지 않는다.
복합키는 여러개를 지정할 수 있는 키이다. 예를 들자면 PK를 여러개를 지정할 수 있다는 의미이다.
하나의 이름에 여러가지 데이터를 배정할 때, 이름에다가 특정 데이터를 조합해야만 특정 column을 지정할 수 있다. 이 것을 복합키라고 한다. i.e) PRIMARY KEY(name, subject)
결론은, 복합키를 다른 속성에 종속시켜버리면 오류가 발생하므로 나중에 테이블을 분리하여 사용하여야 한다.
3. 일반 컬럼 사이에 종속관계가 있는 경우
728x90
반응형
'국비과정 > DB - mySQL' 카테고리의 다른 글
DB에서 중복행 제거하는 쿼리 (0) | 2022.04.09 |
---|---|
FOREIGN KEY의 사용법, 예제 (0) | 2022.03.31 |
DB - mySQL을 JAVA와 연동하기 (0) | 2022.03.16 |
mySQL 더블쿼리, foriegn key, union, outer join 사용법 (0) | 2022.03.16 |
mySQL - describe, ordered by, length 등 총 함수 설명 (0) | 2022.03.15 |