6-2. 디자인 원칙

2021. 5. 2. 20:14Computer Sciences/Database

  • 좋은 디자인으로 여겨지는 것과 피해야하는 것
    • 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를 일일이 지정해줘야 함
      • 만약 나중에 수정할 일이 생기면 해당하는 데이터를 모두 수정해주어야 함
      • 이때 빠뜨리거나 잘못 수정하는 경우 데이터 불일치가 발생함

'Computer Sciences > Database' 카테고리의 다른 글

6-4. Weak Entity Sets  (0) 2021.05.02
6-3. 제약조건  (0) 2021.05.02
6-1. E/R 모델  (0) 2021.05.02
5. Bags and Extended Relational Algebra  (0) 2021.05.02
4. Relational Algebra  (0) 2021.05.02