2010-07-07 2 views
4

ER 다이어그램을 관계형 스키마에 매핑 할 때 내 교과서에 따르면 단계적으로 어떤 것이 든 .. 다중 값 속성에 대해 새로운 관계 S가 만들어 져야합니다. 그러나 다중 값 속성이 R의 기본 키인 경우 ... 기본 키가없는 R과 기본 키가없는 S를 남겨 둡니까?ER-to-Relational Mapping : 다중 값 기본 키

답변

2

"복잡한"유형을 제거하는 방법에 대한 교과서 설명에 대해 항상 궁금한 점이 많습니다.

질문해야 할 질문은 무엇입니까? 값 집합으로 무엇이 식별되고 있습니까? 당신은 무엇을 모델링하려고합니까? SQL로 작업하는 대부분의 데이터베이스 설계자는 아마도 다중 값 속성을 구성했을 가능성이있는 세트를 식별하기 위해 새로운 속성을 고안해야한다고 말할 것입니다.

다른 해결책은 "다중 값"속성이 아니라 "다른 값과 마찬가지로 단일 값으로 변수에 할당 될 수있는 배열 또는 배열"자체 속성에서 "복잡한"유형을 고유 한 특성으로 포함하는 것입니다. Tutorial D 언어는 관계형 타입과 관계를 허용합니다. 예 :

VAR r BASE RELATION {foo RELATION {bar INTEGER} } KEY {foo}; 

여기서 foo는 r 안에 중첩 된 관계가 있습니다.

그러나 SQL은 이와 같은 것을 지원하지 않습니다. 중첩 테이블은 SQL에서 지원되지만 대개 키의 일부가 될 수 없으므로 SQL에서 항상 새로운 식별 속성을 만들어야합니다. 실제 RDBMS에서는 지원되는 유형이 키의 일부가되어야하므로 다른 속성을 만들지 않아도됩니다. 그렇지 않으면 결과에 영향을 미치지 않기 때문에 해당 속성을 투영 할 수 없을 수도 있습니다. 키가 들어 있습니다.