10.2 관계와 속성 그리고 엔터티

  • 관계를 속성이(다른 엔터티와 연관성을 알 수 있는 속성, 속성이 존재해야 관계가 성립)
  • 상위(부모) 엔터티의 주 식별자가 하위(자신) 엔터티의 속성 (주 식별자 속성이든 일반 속성이든)으로 관리, 하위 엔터티의 속성으로 관리될 때 만 관계를 표현
  • 속성에 데이터 생성 순서 개념이 존재하는 것이 일반속성과 다른 점, 하위 엔티티 속성의 데이터는 상위 엔티티의 속성(주 식별자)에 데이터로서 존재

  • 사원이 현재 근무하고 있는 부서가 어디인지를 관리
  • 현재근무부서번호 속성이 부서 엔터티와 연관되므로 관계선이 표현(사원 엔티티의 상위 엔티티(사원 엔터티가 참조하는 엔터티)중하나는부서 엔터티)
  • 현재근무부서번호 속성은 (Null)이 허용, 어떤 사원에 대해서는 현재 근무하고 있는 부서를 모른다는 것을 의미
  • 데이터가 생성되는 시점에는 정해지지 않았다는 것을 의미
  • 두 엔티티의 관계는 참조 관계 (Referential Relationships)








  • 하위 엔터티가 관리될 여지가 있는지끼지 고려해 다수의 관계 속성으로 관리할지,하나의 관계 엔터티로 관리할지를 결정
  • 미래의 업무 변화를 정획히 예측할 수 없으므로 유연하게 대비히는 것도 좋은 방법
  • 다수 속성으로 관리하는것 보다는 하나의 엔터티로 관리하는 것이 더욱 유연한 모델
  • 다수 속성으로 관계를 관리하면 인덱스의 숫자가 늘어나는 단점
  • 단순히 반복 속성의 인스스 몇 개만 늘어나는 것이 문제가 아니라 반복 속성이 결합 인덱스에 사용되면 인덱스 관리는 대단히 힘들어진다.
  • 반면에 관계 엔터티를 사용하면 인스턴스 수가 많이 증가히는 것이 단점이 될 수 있다.
  • 다수의 관계 속성으로 관리히는 방법과 하나의 관계 엔터티로 관리히는 방법은 4장(정규화)에서 설명한 1 정규화와 동일한 개념
  • 반복되는 속성은 일대다(1:M) 관계의 새로운 엔터티를 추가 히는 것
  • 때에 따라서 엔터티를 추가히는 대신 반복 속성을 채택해야 할 때도 있음( 필요에 따라서 비정규화를수행)
  • 정규형 엔터티 벙법이 일방적으로 좋아 보이나 앞서 밝혔듯이 가장 기본적인 판단 기준은 반복 속성의 개수와 속성이 늘어날 가능성을 염두에 두는 것.
  • 반복 속성도 적고 업무가 변경될 가능성이 없어 속성이 더는 늘어나지 않으며 성능 이슈기가 존재하면, 정규형 엔터티를 채택히는 것이 비람직하지 않을 수 있다.
  • 하지만 일반적으로 관계형 데이터베이에서는 반복 속성을 채택하는 방법보다 정규형 엔터티를 채택히는 것이 효율적