2017-11-20 30 views
0

여기에 설명 된 관계를 매핑하려고합니다 :약한 엔티티는 항상 상위 엔티티의 ID 종속성을 의미합니까?

"팀은 게임을합니다. 팀은 한 시즌에 최대 40 개의 게임을합니다. 각 게임은 2 개 팀으로 진행되며 각 팀의 점수를 추적해야합니다 팀은 결코 게임을 할 수 없지만, 게임이 예정되어 있다면 팀은 2 팀이 있어야합니다. "

엔티티는 팀 및 게임입니다. 둘 다 엔티티와 관련된 ID, 즉 teamID 및 gameID를 가지고 있습니다. 상식적으로 말하면 팀이 없으면 게임이 불가능하기 때문에 게임은 약한 존재 여야한다고합니다. 그러나 게임에 고유 한 ID가 있으면 이것이 약한 엔티티가 아니라는 것을 의미합니까?

엔티티 게임에 대한 관계형 테이블은 어떻게 만들 수 있습니까? 게임에서 정확하게 2 팀이 있다면 게임의 외래 키는 무엇입니까? 테이블에 teamOneID *와 teamTwoID *가 있습니까?

답변

0

약한 엔티티 집합은 존재하는 다른 엔티티 집합에 종속되어 결정되지 않습니다. 약한 엔티티 집합은 자체 속성으로 식별 할 수없는 엔티티 집합이며, 해당 엔티티 집합과의 관계에 따라 달라집니다. Game에 자체 대리 식별자가있는 경우 정규 엔티티 집합입니다.

존재 관계에 의존하는 개념을 전체 참여라고합니다. 자세한 내용은 is optionality (mandatory, optional) and participation (total, partial) are same?에 대한 내 대답을 참조하십시오.

외래 키 열의 이름을 지정하는 경우, 두 팀이 홈 필드에서 멀리 떨어져 있으면 역할 할당이 임의로 지정되지만 많은 디자인에서 homeTeamIDawayTeamID을 사용하는 것을 보았습니다. 대칭 관계는 데이터베이스 설계에 어려움을 야기 할 수 있습니다. 대칭을 깨는 규칙이 없으면 쿼리는 주어진 teamID에 대해 두 필드를 모두 확인해야하므로 쿼리가 복잡해지고 비효율적 일 수 있습니다. 이전에 사용한 한 가지 방법은 더 낮은 값을 teamOneID에 저장하고 더 높은 값을 teamTwoID에 저장하는 것입니다.

+1

엔티티 유형 W에는 두 개의 대체 식별자 (키 A와 B를 호출 함)가 있다고 가정합니다. 키 A는 다른 엔티티와의 관계에 의존하는 속성으로 구성됩니다. 키 B는 다른 엔티티에 종속되지 않는 속성으로 구성됩니다. 그러므로 W *는 그 자체의 속성 (B)으로 식별 될 수있다. 내가 아는 한 W는 A가 "기본"식별자로 간주되는 경우에만 W가 "약"이라고합니다. B가 1 차로 간주되면 W는 약하 지 않습니다. 이러한 상황에서 나는 약점의 구별이 임의적이라고 생각하고 W가 그 자체의 속성에 의해 식별 가능한지 여부와 직각을 이룬다. – sqlvogel

+1

@sqlvogel ER 모델은 대체 키가 아닌 기본 키에만 주로 관련됩니다. 기본 키를 선택하는 것에 대한 몇 가지 문장 외에도, 'Entity-Relationship Model : 데이터의 통합 된 뷰를 향하여'의 모든 내용은 기본 키에만 중점을 둡니다. 관계형 관점에서 볼 때, 약한 개체와 일반적인 개체 세트 간의 구분은 임의적 인 것처럼 보이지만, 개체 설정과 값 집합, 또는 특성과 관계 사이의 구분도 마찬가지입니다. – reaanb