- 좋은 디자인으로 여겨지는 것과 피해야하는 것
- Faithfulness
- Avoiding redundancy
- Simplicity counts
- Choosing the right relationships
- Picking the right kind of element
Faithfulness
- 디자인은 사실에 충실해야 한다
- 엔티티 세트와 그 속성들, 관계 세트는 실제를 반영해야 한다
- Example(attributes)
- Automobiles(number-of-cylinders)
- Exmaple(relationship set - obvious case)
- Example(relationship set - less obvious case)
Avoiding Redundancy
- 중복을 피하자
- 아래 E/R 모델을 보면 Studios의 name을 참조하여 데이터를 얻을 수 있지만 Movies에 StudioName이라는 속성을 만들어 중복이 발생함
- 의도를 가지고 중복을 만드는 경우가 아니라면 중복이 발생하지 않게 설계해야함
Simplicity Counts
- 설계는 가능한 간단하게
- 아래 Holdings는 Movies와 Studios의 중간에서 대리인 역할을 하는 엔티티인데 연결시켜주는 것 외에 다른 기능이 없다면 아래와 같이 간단하게 표현하는 것이 좋은 설계
Choosing the Right Relationship Sets
- 올바른 관계 세트를 선택하자
- Stars와 Movies의 관계에 따라 필요성이 달라짐
- Stars가 만약 영화에 출연하는 게 아니라 투자를 한다면 올바른 설계
- Movies에 Stars가 출연한다면 Contracts는 필요없는 관계
- Stars가 Studios에서 배우로 출연하는 게 아니라 다른 의미로 일한다면 알맞은 설계
- Stars가 Movies에 출연한다면 필요없는 관계
Picking the Right Kind of Element
- 올바른 요소의 종류를 선택하자
- 좌측은 데이터의 중복이 나타나지 않음
- 우측은 데이터 중복이 나타남
- Movies 엔티티를 만들 때 name과 address를 일일이 지정해줘야 함
- 만약 나중에 수정할 일이 생기면 해당하는 데이터를 모두 수정해주어야 함
- 이때 빠뜨리거나 잘못 수정하는 경우 데이터 불일치가 발생함
Uploaded by Notion2Tistory v1.1.0