2017-10-18 13 views
-1

Je m'interroge sur ces questions d'examen sur les formes normales de la base de données relationnelle. Il me semble que le premier devrait être 3NF, et le second 2NF (c'est-à-dire que la réponse sur le premier devrait être fausse).Forme normale du schéma relationnel abstrait

Question 9. [...] C int, D int NOT NULL, UNIQUE (B,C) [...]

Mon raisonnement est que, puisque C est unique, il est aussi une clé candidate et donc un attribut principal. Aussi, c'est donc aussi une super-clé, correspondant ainsi à la description de 3NF.

Définition de 3NF: Un schéma de relation R se trouve dans la troisième forme normale (3NF) si, à chaque fois une dépendance fonctionnelle non triviale X → A détient dans R, soit (a) X est un super-clé de R, ou (b) a est un attribut principal de R.

databasequestion

+0

semble que j'ai besoin de plus de points pour pouvoir poster directement img, désolé à ce sujet ... – Krilliminell

+0

Que voulez-vous dire par "C is unique"? PS [S'il vous plaît poster en utilisant du texte tout ce qui peut être - à savoir, tout ce lien/image.] (Https://meta.stackoverflow.com/a/285557/3404097) Donne également sa source à son auteur. Expliquez aussi les cases sombres, ne nous forcez pas à comprendre si c'est eux ou vous. Aussi s'il vous plaît modifier "ajustant ainsi la description de 3NF" pour dire réellement ce que vous essayez de dire, puisque les schémas [[pas attributs, superkey ou CKs - "fit" NF, et ce que vous avez écrit n'a pas de sens. – philipxy

Répondre

1

La première question ne dit pas que C est unique, il est dit "uNIQUE (b, C)", ce qui signifie que (b , C) les valeurs de sous-liste sont uniques dans la table. D n'est pas NULL donc vraisemblablement, B & C sont éventuellement NULL. Mais la théorie relationnelle n'a pas de valeur NULL. Il n'est donc pas clair ce que vous ou votre cours/manuel entendez par {C} étant un déterminant. Or by "FD" (functional dependency), "superkey", "CK" (candidate key), "PK" (primary key), any of the "NFs" (normal forms) or any other relational terms. Aussi dans SQL PRIMARY KEY signifie en fait UNIQUE NOT NULL, et UNIQUE utilise 3VL, donc aucun de ces termes n'a de sens relationnel non plus. Donc, vous devez nous dire ou donner une référence. (Bien que cela ne règle probablement pas le problème, le test & l'utilisation de ces mots sur des tables SQL pouvant avoir la valeur NULL n'a aucun sens.)

De toute façon, si {C} était unique et que NULL n'était pas impliqué, " puisque C est unique, c'est aussi une clé candidate "ce n'est pas du son. C'est seulement un CK si {} ne l'est pas, c'est-à-dire si la table n'est pas contrainte à avoir au plus une ligne.

Aussi, juste parce que certains FD non trivial qui détient satisfait (a) ou (b) ne signifie pas qu'ils tous faire, de sorte que votre raisonnement re 3NF est faux.