필드 정밀 조정
- 이름이 설명적이고, 전체 조직에서 의미가 있는가?
- 필드 이름이 명확하고 명료한가?
- 필드이름으로 두문자어 또는 약어를 사용하고 있는가?
- 수정해야지 된다. 필드 이름이 후ㅞ손된 상태이다.
- 한가지 특성이상의 특성을 가지고 있는가?
- 수정 사항이다. 두개 이상의 필드로 나누는 것을 고려해본다.
필드의 구조 조정
- 필드가 테이블 조제의 특별한 특성을 나타내는지 확인한다.
- 테이블과 밀접한 관계가 없는 경우 제거한다.
- 필드가 단일 값을 가지고 있는지 확인한다.
- 필드가 계산이나 연결 결과를 저장하지 않는지 확인한다.
- 계산된 필드는 잘 설계된 데이터베이스에서 허용되지 않는다.
- 계산을 하는 경우에는 이를 SELECT 문에 넣는 것을 권장한다.
- 필드가 전체 데이터베이스에서 단 한번만 나타나도록 한다.
- 이 규칙의 예외는 외래키로서 이용되는 단 두번의 표현 뿐이다.
- 다중 부분 필드 해결하기
- 데이터 무결성을 파괴하기 때문에 문제 발생을 피하기 위해서 해결해야지 된다.
- "이 필드의 값을 뽑아서 더 작고 확실한 부분으로 분할 할 수 있을까?" 라는 질문에 답으로서 필드를 설계해야지 된다.
- 다중값 필드 해결하기
- 다중 값의 경우, 예외 없이 여러개의 쉼표를 통해서 여러개의 값으로서 사용된다.
- 데이터베이스에서 다른 다대다 관계와 같이 다대다 관계의 연결 테이블로 해결 할 수 있다.
- 주 필드의 복사본을 새 테이블을 위한 기초로 사용한다.[외래키로 사용한다.]
테이블 정밀 조정
- 테이블은 단일 주제를 나타내야지 된다.
- 이름이 고유하고, 전체 조직에서 의미가 있을 만큼 충분히 설명적인가?
- 이름이 정확하고 모호하지 않게 테이블의 주제를 식별하는가?
- 이름이 물리적인 특성을 나타내는 단어를 포함하는가?
- 테이블의 이름이 두문자어나 약어를 사용했는가?
- 암시적 또는 명시적으로 하나 이상의 주제를 식별하는 이름을 사용했는가?
- 테이블이 단일 주제를 나타내는지 확인한다.
- 각 테이블이 주 키를 가지고 있는지를 확인한다.
- 테이블이 다중 부분 또는 다중 값 필드를 포함하지 않는지 확인한다.
- 테이블에 계산된 필드가 없는지 확인한다.
- 테이블에 불필요한 이중 필드가 없는지 확인한다.
- 다른 테이블로서 이중 필드를 포함시키는 경우에는 설계가 잘못된 것이다.
- 이중 필드의 제거는 다른 Table을 key로 연결하는 방법으로 해결을 한다.
키값의 이용
- Primary Key는 각 레코드를 유일하게 식별하는 하나의 필드 또는 필드 그룹
- Simple Primary Key : 하나의 필드로 구성된 주 Key
- Composite Primary Key : 하나 이상의 필드로 구성된 주 Key
- 필드가 테이블 내의 각 레코드를 유일하게 식별 가능한가?
- 필드가 고유값을 가지게 되는가?
- 필드가 미지의 값을 포함할 수 있는가?
- 미지의 값을 사용하게 될 경우에는 Primary Key로서 사용이 불가능하다.
- 필드의 값이 선택적일 수가 있는가?
- 만약에 선택적인 값이 들어갈 수 있다면 Primary Key로서 사용이 불가능하다.
- 부분 다중 필드가 아니여야 된다.
- 필드값은 언제나 고정되어야지 된다. 임의로 바뀔 여지가 없는 값이여야지 된다.
견실한 관계의 설정
- 일대일 관계 설정
- 외래키가 종속테이블의 Primary Key가 된다.
- Primay 테이블의 Primary key를 종속 테이블에 넣음으로서 설정한다.
- 일대다관계 설정
- 일(one)측 테이블의 Primary Key를 다(many)측 테이블에 삽입함으로서 일대다 관계를 설정
- 종속 테이블에서는 Primary Key가 따로 존재하고, foregien Key로서 Primary 테이블의 key가 사용된다.
- 다대다관계 설정
- 관계가 맺어진 각테이블의 Primary키들을 새 테이블의 구조를 만들기 위해 사용한다.
- 외래키와 주키로서 이어지는 연결 테이블을 구성한다.