Les Clés étrangères vs Partielle de Clés et de leur E-R représentations
Je vais avoir de la difficulté à comprendre la différence entre partielle touches/faible entités et les clés étrangères. Je me sens comme un idiot pour ne pas être en mesure de comprendre ce genre de choses.
Ce que je comprends:
Weak Entity: An entity that is dependent on another entity.
Partial Key: Specifies a key that that is only partially unique. Used for weak entities.
vs
Foreign Key: A key that is used to establish and enforce a relation between data in different tables.
Ces ne semblent pas comme ils sont la même chose, mais je vais avoir de la difficulté à distinguer de leurs utilisations.
Prendre la [très] exemple simple:
We have employees specified by an empid. We also have children specified by name. A
child is uniquely specified by name when the parent (employee) is known.
L'enfant entité, d'une faiblesse de l'identité où l'partielle clé est le nom (en partie unique)? Ou dois-je utiliser une clé étrangère parce que je suis en train de mettre en place un lien entre l'employé et l'enfant? Je sens que je peux justifier à la fois, mais j'ai aussi l'impression que je manque quelque chose ici. Toute réflexion est apprécié, et je m'excuse pour les questions stupides.
OriginalL'auteur prelic | 2011-01-31
Vous devez vous connecter pour publier un commentaire.
Un faible type d'entité est celui dont la clé primaire comprend un attribut(s) qui font référence à une autre entité. En d'autres termes une clé étrangère est un sous-ensemble de la clé primaire. Par conséquent, l'entité ne peut pas exister sans son père.
Un partiel signifie qu'une partie d'une clé appropriée sous-ensemble des attributs clés.
Dans votre exemple, si la clé primaire d'un Enfant a été (Empid, ChildName) avec Empid comme une clé étrangère référençant le Salarié de l'Enfant est d'une faiblesse de l'entité. Si Empid ne faisait pas partie de la clé primaire, puis de l'Enfant serait une entité forte.
Il est important de garder à l'esprit que la faible/forte distinction est purement une ER concept de modélisation. Dans la base de données relationnelle termes, il n'a pas beaucoup de différence. En particulier, le modèle relationnel ne fait aucune distinction entre les clés primaires et les autres candidats touches donc, pour toutes fins pratiques, cela ne fait aucune différence à la clé primaire attributs comme étant un "spécial" cas lorsqu'ils font référence à d'autres tables.
OriginalL'auteur nvogel
Le problème n'est pas vous, c'est que les anciens manuels ou ce que vous utilisez est pur, les excréments, les "définitions" ne sont pas claires, et il y a eu des définitions standard pour les Bases de données Relationnelles en service pendant plus de 30 ans, qui sont beaucoup plus claires. Les "définitions" vous avez posté sont en fait tout à fait le contraire, non-intuitif, et il n'est pas surprenant que les gens se confondre.
Une Clé Étrangère dans une ligne enfant, est la valeur qui fait référence à son parent Clé Primaire (dans la table parent).
À l'aide de IDEF1X de la terminologie. Un Rapport est celui dans lequel le FK (le parent Pk chez l'enfant) est également utilisé pour former l'enfant PK. Il est unique dans le parent, mais pas unique dans l'enfant, vous devez ajouter des colonnes pour le rendre unique. D'où l'stupide terme "Partiel". Soit il s'agit d'une Touche (unique) ou il n'est pas une Clé, le concept de "partiel" est trop stupide pour le contempler.
Correctement Normalisé et conforme à la norme de base de données, il y aura très peu d'entités Indépendantes. Tout le reste va être dépend d'une entité Indépendante. Ces entités ne sont pas des "faibles", sauf dans le sens où ils ne peuvent pas exister sans l'entité qu'ils dépendent de l'.
L'utilisation de l'Identification de Relations (par opposition à la Non-identification), est en réalité fort; il donne à la variable Dépendante ("faible") les entités qui leur Identifiant. Si idiot termes comme "faible" et "forte" ne doit pas être utilisé dans une science qui demande de la précision.
Utilisation des conditions standard.
Mais pour répondre à votre question précise:
Les lecteurs qui ne sont pas familiers avec le Standard pour la Modélisation des Bases de données Relationnelles peuvent trouver ▶IDEF1X Notation◀ utile.
OriginalL'auteur PerformanceDBA