Lors de la mise en correspondance d'un diagramme ER avec un schéma relationnel, mon manuel indique qu'à l'étape .. quelle que soit .. une nouvelle relation S doit être créée pour les attributs multivalués. Mais si l'attribut multivalué est la clé primaire de R ... qui laisse le R sans clé primaire et S sans clé primaire?Mappage ER-to-relationnel: clé primaire multi-valu
Répondre
Ceci est une excellente question et quelque chose qui m'a toujours dérangé au sujet des explications de manuel sur la façon d'éliminer les types "complexes".
La question que vous devez vous poser est: Qu'est-ce qui est identifié par les ensembles de valeurs? Qu'essayez-vous de modéliser? La plupart des architectes de bases de données travaillant avec SQL diraient probablement que vous devriez inventer un nouvel attribut pour identifier les ensembles de choses qui auraient constitué votre attribut à valeurs multiples. Une autre solution consiste à inclure les types "complexes" en tant qu'attributs de première classe - non des attributs "multivalués" mais des ensembles ou des tableaux qui peuvent être affectés à une variable comme une valeur unique comme n'importe quelle autre valeur. Le langage Tutorial D permet des relations relationnelles avec des types relationnels. par exemple:
VAR r BASE RELATION {foo RELATION {bar INTEGER} } KEY {foo};
où foo est une relvar imbriquée dans r. SQL ne supporte cependant rien de ce genre. Les tables imbriquées sont prises en charge dans SQL, mais ne sont généralement pas autorisées à faire partie des clés. Dans SQL, vous devez donc toujours créer un nouvel attribut d'identification. Dans un vrai SGBDR, vous ne devriez sans doute pas avoir à créer un autre attribut car tout type supporté devrait supporter de faire partie d'une clé - si ce n'était pas le cas, vous ne seriez même pas capable de projeter sur cet attribut car le résultat ne le serait pas t contient une clé.
- 1. nhibernate: mappage vers une colonne autre que la clé primaire
- 2. Mappage d'une clé primaire de type binaire (16)
- 3. varchar() clé primaire ou clé primaire int?
- 4. Subsonic erreur clé primaire
- 5. Clé primaire d'importation DataMapper
- 6. Clé primaire composée
- 7. recherche par clé primaire
- 8. PostgreSQL bytea Clé primaire
- 9. Clé primaire vs. RRN
- 10. Clé primaire et étrangère
- 11. Clé primaire Django
- 12. Clé primaire Croissant et décroissant
- 13. Beaucoup-plusieurs sans clé primaire
- 14. jpa, plus d'une clé primaire
- 15. Clé primaire et concept d'index
- 16. hibernate Requête par clé primaire
- 17. php et clé primaire mysql
- 18. Clé primaire GUID non créée
- 19. Clé primaire sur une colonne
- 20. Scénario de clé primaire composite
- 21. Comment réorganiser la clé primaire?
- 22. Linq et récupération clé primaire
- 23. Clé primaire invalide datatype [int]
- 24. Linq DBML Mappage d'une table avec une clé primaire qui s'étend sur deux colonnes
- 25. Mappage NHibernate fluide - Clé composite
- 26. Mappage de clé étrangère Hibernate?
- 27. jpa hibernate composite mappage de clé étrangère
- 28. Problème de mappage de clé composite Hibernate
- 29. Fluid nHibernate: Comment mapper 2 tables sans clé primaire
- 30. besoin d'aide dans la clé primaire et la clé étrangère