Toujours Confus au Sujet de l'Identification ou Non, l'Identification des Relations
Donc, j'ai lu sur l'identification ou la non-identification des relations dans ma conception de base de données, et un certain nombre de réponses sur DONC sembler contradictoire pour moi. Voici les deux questions que je suis en train de regarder:
- Quelle est la Différence Entre l'Identification et la Non-Identification des Relations
- Difficulté à prendre une décision sur l'Identification ou la Non-Identification de la Relation
Regardant le haut de réponses de chaque question, il semble que je reçois deux idées différentes de ce qu'une identification de relation est.
La première question, la réponse dit que l'identifiant de la relation "décrit une situation dans laquelle l'existence d'une ligne dans la table enfant dépend d'une ligne dans la table parent." Un exemple de ce qui est donné est, "Un auteur peut écrire de nombreux livres (1 à n), mais un livre ne peut exister sans un auteur." Qui fait sens pour moi.
Cependant, quand j'ai lu la réponse à la question deux, je m'embrouille comme il le dit, "si un enfant s'identifie à ses parents, c'est un identifiant de la relation." La réponse va ensuite à donner des exemples tels que Numéro De Sécurité Sociale (est l'identification d'une Personne), mais l'adresse n'est pas (parce que beaucoup de gens peuvent vivre à une adresse). Pour moi, cela sonne plus comme un cas de la décision entre la clé primaire et de clé non primaire.
Ma propre intuition (et d'autres recherches sur d'autres sites) points à la première question et sa réponse est correcte. Cependant, je voulais vérifier avant que je continue d'avancer comme je ne veux pas apprendre quelque chose de mal, comme je suis en train de travailler pour comprendre la conception de base de données. Merci à l'avance.
Vous devez vous connecter pour publier un commentaire.
La définition technique de l'identification de la relation est un enfant de la clé étrangère est une partie de la clé primaire.
Voir?
book_id
est une clé étrangère, mais c'est aussi l'une des colonnes de la clé primaire. Donc, cette table dispose d'un identifiant de la relation avec la table référencéeBooks
. De même, il a une identification relation avecAuthors
.Un commentaire sur une vidéo YouTube a un rapport avec la vidéo correspondante. Le
video_id
devrait être une partie de la clé primaire de laComments
table.Il peut être difficile de comprendre ce parce que c'est pratique courante de nos jours d'utiliser seulement une série de clé de substitution à la place d'un composé clé primaire:
Cela peut masquer les cas où les tables ont une identification de la relation.
Je pas envisager SSN pour représenter un identifiant de la relation. Certaines personnes existent, mais n'ont pas un numéro de sécurité sociale. D'autres personnes peuvent déposer pour obtenir un nouveau numéro de sécurité sociale. Ainsi, le SSN est vraiment juste un attribut, ne fait pas partie de la clé primaire.
Re commentaire de @Niels:
Je crois. J'hésite à dire oui, parce que nous n'avons pas changé le logique relation entre les tables à l'aide d'une clé de substitution. Qui est, vous ne pouvez toujours pas faire un Commentaire sans faire référence à une Vidéo existante. Mais cela signifie simplement video_id doit PAS être NULL. Et la logique aspect est vraiment, pour moi, le point sur l'identification des relations.
Mais il y a un aspect physique de l'identification de relations. Et c'est le fait que la colonne de clé étrangère est une partie de la clé primaire (clé primaire n'est pas nécessairement une clé composite, il pourrait être une seule colonne qui est à la fois la clé primaire de Commentaires ainsi que la clé étrangère de la table de Videos, mais cela voudrait dire que vous pouvez stocker qu'un seul commentaire par vidéo).
À identifier les liens semblent être important uniquement pour le bien de l'entité-relation de création de diagrammes, et cela vient en GUI outils de modélisation de données.
Comments
table, vous pouvez la suppression de "l'obscur" de la partie de l'ajout d'un composé UNIQUE de l'index à l'aide devideo_id
,user_id
etcomment_dt
. Parce qu'une clé primaire n'ses colonnes UNIQUE."comme je ne veux pas apprendre quelque chose de mal".
Enfin, si vous avez vraiment dire que, ensuite, vous pouvez cesser de s'inquiéter ER le jargon et la terminologie. Il est imprécis, confus, déroutant, pas du tout consensus général, et pour la plupart sans importance.
ER est un tas de rectangles et les lignes droites tracées sur une feuille de papier. ER est délibérément destiné à être un moyen pour informel de modélisation. En tant que tel, il est un précieux première étape dans la conception de base de données, mais il est aussi juste que : une première étape.
Jamais un ER diagramme obtenir n'importe où près de la précision, de l'exactitude et de l'exhaustivité de la base de données de conception officiellement écrit à D.
L'identification /la non-identification des relations sont des concepts dans ER la modélisation - une relation d'identification s'il est représenté par une clé étrangère qui fait partie de la table de référence de la clé primaire. C'est généralement de très peu d'importance dans la modélisation relationnelle, parce que les clés primaires dans le modèle relationnel et SQL les bases de données n'ont aucune signification spéciale ou de la fonction comme ils le font dans une salle d'urgence modèle.
Par exemple, supposons que votre table, applique les deux candidats les touches A et B. Supposons que A est aussi une clé étrangère dans la table. La relation ainsi représenté est réputé être "l'identification" si l'Un est désigné pour être le "la primaire" la clé, mais c'est la non-identification si B est la clé primaire. Pourtant, la forme, la fonction et la signification de la table est identique dans tous les cas! C'est pourquoi, à mon avis, je ne pense pas que l'identification /la non-identification concept est vraiment très important.
Je crois que la seule différence entre un identifiant et non de l'identification de la relation est au sujet de la possibilité de valeur null de la clé étrangère. Si un FK ne peut pas être NULLE, la relation qu'il représente est l'identification (l'enfant ne peut pas exister sans parent) sinon c'est la non identification.
partie de la question ici, c'est la confusion de la terminologie. identifier les liens sont utiles pour éviter de longs chemins de jointure.
La meilleure définition que j'ai vu est "une identification relation comprend le PK de la mère à l'enfant PK. En d'autres termes, le PK de l'enfant comprend la FK à la société mère ainsi que le "réel" PK de l'enfant.
Oui, aller avec le premier, mais je ne pense pas que la deuxième est contredit la première. Il est formulé juste un peu de confusion..
Mise à JOUR:
Viens de vérifier - sur la deuxième question la réponse est fausse dans certaines hypothèses,.. livre-l'auteur n'est pas nécessairement de type 1:n relation, car il pourrait être m:n. Dans les bases de données relationnelles qui crée de la table d'intersection de cette m:n relation, et vous obtenez l'identification des relations entre l'intersection de la table et de ces 2 tableaux..
l'identification de la relation de donne un de nombreuses facultatif relation lorsque nous avons à définir un parent à l'enfant de la relation.en outre, il donne à l'un qu'à une seule relation de l'enfant à la mère de flux.depuis entité mère clé primaire sera la partie de la clé primaire de l'entité enfant, de l'enfant de l'instance d'entité permettra d'identifier le parent de l'instance d'entité.elle est représentée par une ligne continue de la er diagramme.
où non l'identification des relations de plusieurs à plusieurs relation.Pour l'existence de l'enfant de l'instance d'entité il devrait y avoir un parent de l'instance d'entité, mais chaque instance d'entité dans l'entité enfant peut être liée à de nombreuses instance d'entité de l'entité mère.c'est la raison pour laquelle la clé primaire de l'entité mère bien être la clé étrangère de l'entité enfant, mais de l'entité enfant ne prendra pas l'entité mère de clé primaire que sa clé primaire.elle a sa propre clé primaire.
beaucoup de beaucoup de relation n'existe pas dans le monde réel er diagramme. donc, il doit être résolu
Une identification de la relation est en effet une disquette de réparation d'urgence concept, car c'est le domaine de la modélisation conceptuelle, la modélisation de notre compréhension de l'univers de discours". C'est une relation parent-enfant en vertu de laquelle nous modélisons le fait que l'identité de chaque objet enfant est (au moins en partie) créé/déterminée par l'identité de l'objet parent. Il est donc obligatoire, et immuable.
Un exemple réel est de par l'éternel défi de l'identification des personnes. Une personne unique de l'identité peut être (en partie) définis par leur relation avec leur mère de naissance et de père. Lorsqu'il est connu, ce sont immuables faits. Donc, la relation entre les parents biologiques et l'enfant est une identification relation dans la mesure où il contribue (immuablement) de la définition de l'identité de l'enfant.
Ce sont ces qualités et l'utilisation de sgbd relationnel constructions qui en résultent dans le PK de l'enfant étant une clé composite qui comprend, par FK, la PK de la société mère. Comme PK, l'identité de l'enfant est obligatoire et immuable (il ne peut pas changer), Un "changement" dans un PK est en fait l'instanciation d'un nouvel objet. Par conséquent, le PK ne doit pas pouvoir être modifié. L'immutabilité d'un PK devrait également être limité. DB contraintes peuvent être utilisés pour mettre en œuvre que la qualité de PKs.