Bottom-up Design
- 속성부터 시작, 엔티티를 만들고, 엔티티의 관계를 만들고, 데이터베이스를 디자인 한다.
Top-down Design
- 속성들의 그룹으로 시작해 이를 쪼개어 나가 데이터베이스를 디자인 한다.
- 점진적으로 디자인해나간다.
- Normalization of relations using normal forms
Relation Schema 가이드라인
- 속성의 문법을 확실히 할것
- 튜플의 중복값을 줄일것
- 튜플의 NULL값을 최대한 줄일것
- 올바르지 않은 튜플이 생성되지 않게 할것
속성의 문법을 확실히
- Relation 의 각 튜플은 하나의 엔티티/Relation 에서만 쓰여야 한다.
- 다른 엔티티의 속성은 FK로 쓰이는 경우가 아니면 쓰여선 안된다.
튜플의 중복값을 줄인다.
- 중복값은 저장공간을 낭비한다.
- 갱신, 수정, 삭제 이상을 일으킨다.
- 이상이 일어나지 않게 디자인 해야 한다.
NULL값을 최대한 줄인다.
NULL의 사용 예
- 속성이 적용 불가능한 경우 : EX. 한국사람은 SSN이 없다.
- 속성이 알려지지 않은 경우 : EX. 아직 아무 부서에도 소속되지 않은 직원
- 속성이 사용 가능하지 않은 경우 : EX. 데이터베이스에 기록되지 않은 속성
Lossless Join condition 을 지킬것
- JOIN 시 PK-FK 쌍을 지켜야 한다.
- 제대로 지키지 않으면 제대로 된 JOIN이 일어나지 않게 된다.