0
votes

Comprendre les clés étrangères

J'ai décomposé la table unique ci-dessous en 3 tables afin de l'obtenir dans 3NF en fonction des dépendances et de la clé composite suivantes (prénom, nom de famille, carrière):

Formulaire normal: P>

People (FirstName, LastName, Career)
Addresses (FirstName, LastName, Address)
Careers (Career, Pay, Managerial)


3 commentaires

Nous ne pouvons pas vous dire si FKK contient à moins que vous ne nous disiez que tout composant CKS ou FDS et à supposer que votre décomposition est correcte. (Même alors, vous pourriez nous donner des informations contradictoires.) En d'autres termes, les FKS qui détiennent dépendent de la définition de FK et non de rien unique à la décomposition de normalisation. PS en SQL "FK" ne signifie pas FK. Il signifie plus ou moins signifie surtout étranger. PS Qu'est-ce que Tag SQL a à voir avec cela de quelque manière que ce soit non impliqué par normalisation de la base de données ?


On a besoin de CKS à décomposer et nécessite une couverture FD, mais vous ne dites pas que c'est un. Re "est ce droit": montrez les étapes de votre travail à la suite de votre référence / manuide, avec la justification - vous trouverez probablement des erreurs qui rendent votre question inutile et que nous voulons vérifier votre travail mais pas le refaire et nous avons besoin de vos choix quand Un algorithme leur permet et sinon, nous ne pouvons pas vous dire où vous avez mal tourné. S'il vous plaît voir Comment demander , hits Googling 'Stackexchange Homework' & the votant Flèche Mousever Textes. La normalisation du PS à la hausse de la technologie NFS par décomposition n'implique pas d'introduire de nouvelles colonnes.


"(Prénom, lastname) est unique ainsi que (carrière)" dans quel (s) tableau (s)?


3 Réponses :


1
votes

Vous êtes incorrect. Je ne suis pas d'accord avec votre schéma, mais personne.career est une référence de clé étrangère à carrières.career . .

De même, il devrait probablement y avoir un identifiant d'adresse et une personne id quelque part dans le schéma.


1 commentaires

Édité pour ajouter "aux fins de cet exemple, nous pouvons supposer que (le nom de famille, le nom de famille) est unique et (carrière) pour éviter de créer des identifiants pour ceux-ci dans les adresses et les tables de carrière."



-2
votes

En fait, vous avez beaucoup à plusieurs relations. Ainsi, une adresse peut être prise par de nombreuses personnes. Une personne peut avoir de nombreuses adresses. Dans ce cas, vous aurez des doublons dans la table des personnes et des dupicats dans le tableau des adresses. Les clés étrangères seront différentes, mais d'autres parties vont répéter. Il est courant d'avoir des tables:

PersonnesAdresses (Person_id, Address_Id, Occasied_from, OCCUPÉD_TILL)

Personnalités (Person_id, Career_id, Employee_from, Employee_Till)

Autre partie est qu'il n'y a pas de RDBMS qui fournissent des touches complexes que vous avez mentionnées, comme cela est décrit dans la théorie de la relation DB


3 commentaires

La table d'origine de la question n'a pas ces colonnes et elle dit spécifiquement prénom, nom de famille -> adresse. La normalisation de la NFS plus élevée n'introduit pas de nouvelles colonnes. Vous mentionnez un tas de choses non pertinentes pour la question et contradictoire.


Ces choses sont pertinentes pour les solutions de vie réelles, en raison de mon expérience. Je leur ai donc mentionné comme une solution commune . Ne pense pas à cela comme un examen scientifique.


Ce n'est pas une réponse à la question.



2
votes

La normalisation à la NFS plus élevée par décomposition remplace une table par d'autres que Natural se joindre à celui-ci qui y sont projections. Donc, deux composants ont le même ensemble de valeurs subordonnées pour toutes les colonnes partagées, car elles sont à la fois des projections de l'original. Donc, il y a une clé FK (clé étrangère) d'une colonne set et une table à une autre colonne Set & Table lorsque / iff La dernière colonne Set forme une CK (clé candidate) dans la dernière table.

ICI Si votre FDS original Formez une couverture: vous avez des gens CKS {{prénom, lastname, carrière}}, adresse cks {{prénom, lastname}} & carrières cks {{carrière}}. Donc, les FKS sont des gens fks {prénom, un nom de famille} aux adresses et {carrière} aux carrières.

ps fréquemment lors de la normalisation Nous réalisons que nous ne voulons pas veux projections d'une table originale, mais nous voulons plutôt des tables avec des en-têtes comme des composants mais qui contiennent plus de lignes. (Parfois, cela est mal représenté dans le cadre de la normalisation.) (Nous détectons et repensez-nous pour les anomalies de suppression et d'insertion Bien que la normalisation ne traite que de mettre à jour les anomalies.) Alors ces différentes tables que nous choisissons ne sont pas en général ont les mêmes CKS ou SUBROW Value Set les composants de normalisation.

NORMALISATION PS À HIGHT NFS n'introduit pas de nouvelles colonnes. Qui comprend des colonnes d'identification.

ps relatinellement "fk" implique généralement une colonne. Mais cela peut signifier une liste de colonnes en référençant une autre. Ou une liste de colonnes où chaque nom apparaît une fois référencé une autre. Mais SQL "FK" ne veut pas dire aucune de ces notions relationnelles de FK - cela signifie plus ou moins signifie surcharge étranger. De même, SQL "PK" plus ou moins signifie une superesse primaire. Voir cette réponse.


0 commentaires