2 votes

Une table 6NF peut-elle contenir une clé étrangère ?

Une table satisfait-elle à la norme 6NF lorsque son domaine est une clé étrangère ? Par exemple :

CREATE TABLE authors(
    author_id serial NOT NULL PRIMARY KEY
);

-- other author attributes

CREATE TABLE books(
    book_id serial NOT NULL PRIMARY KEY
);

CREATE TABLE books_author(
    book_id int NOT NULL PRIMARY KEY REFERENCES books (book_id),
    author_id int NOT NULL REFERENCES authors (author_id)
);

Si non, comment le modèle doit-il gérer la relation de clé étrangère ?

Et si la relation était M2M, comment cela doit-il être traité ? La table de jonction doit-elle également être 6NF ?

7voto

sqlvogel Points 12567

6NF signifie qu'une relvar ne satisfait aucune dépendance de jointure non triviale, ce qui signifie qu'elle a une clé candidate et au plus un autre attribut. Il peut y avoir ou non des clés étrangères. Toutes les formes normales ne sont pas liées à la présence ou non de clés étrangères.

Je ne sais pas quelle est votre question sur le M2M. Le moment et l'endroit où vous utilisez 6NF dépendent de votre motivation à l'utiliser en général. Son utilisation principale est pour les entrepôts de données et les modèles de données temporelles.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X