2017-01-25 1 views
1

Je cherche à expliquer comment les données artiste maquette/bande sonore (première image ci-dessous) peut être normalisée de 1FN à 2FN à 3NF, étape par étape pour obtenir le résultat que je pense est le meilleur pour la base de données. C'est presque comme si la normalisation entravait ce que je voulais faire, mais est-ce que je ne comprends pas quelque chose dans le processus de normalisation? Je peux définitivement voir comment ces données peuvent être normalisées à 1NF en rendant chaque ligne unique et en supprimant les doublons, mais à quel stade, par exemple, est-ce qu'on nous dit d'assigner Composer ID comme clé étrangère pour la table des pistes ou la table des films? Est-ce juste quelque chose que nous faisons par expérience? N'y a-t-il pas de bon ou de mauvais?tables de base de données via Normalization vs Experience/Avis

En bref, ma question est, peut-on montrer ou expliquer comment les données simulées ici ...

enter image description here a été transformé en cela en utilisant tous les 3 premières étapes de la normalisation?

enter image description here

+1

La normalisation n'introduit pas de nouveaux attributs tels que "Composer ID". Cela ne signifie pas non plus que vous pouvez normaliser une relation à 2NF * et pas plus haut *, puis à 3NF * et pas plus haut *. –

+1

Aussi, on ne normalise pas en passant par des formes normales inférieures pour atteindre des formes supérieures. De plus, la normalisation vers des formes normales supérieures est par * dépendances fonctionnelles *. Puisque vous ne les mentionnez pas, vous ne semblez même pas comprendre ce qu'est la normalisation. Quelle référence utilisez-vous? PS En supposant que vous voulez que votre 1NF ait une piste de type titre de piste, sous des hypothèses de FD raisonnables, cela est déjà en 5NF. – philipxy

+0

@philipxy Je suppose que par la normalisation, je veux dire la réduction de la redondance, de sorte que, par exemple si on nous a donné deux valeurs dans une cellule dans la première table, nous pourrions trouver un moyen, par la normalisation, pour définir la place de données dans les tableaux correctement. Je cherche simplement des conseils sur la façon dont nous pourrions prendre une table de données comme celle show maquette et la transformer en une série de tableaux fonctionnels dans une base de données –

Répondre

1

Eh bien votre 1FN serait d'avoir un dossier distinct pour chaque nom de piste pour l'essentiel les données fictives avec le premier enregistrement divisé en 2 ...

2FN est de prendre les clés répétées ce qui à mon avis est ce que vous avez affiché comme les 3 tables séparées, et potentiellement cela pourrait être aussi loin que vous devez aller. Vous pouvez ajouter un autre tableau pour permettre à une piste de figurer dans plusieurs films, par exemple créer une table de pistes de film référençant respectivement l'identifiant de la piste et l'ID de la vidéo (et supprimer l'ID de la table des pistes).

De même, vous pouvez aller à l'extrême de permettre des compositions de collaboration en ayant aussi une table piste de compositeurs, mais qui est sans doute pas suffisamment commun pour faire l'effort vaut la peine

Normalization est quelque chose qui devient certainement plus facile avec l'expérience et peut être pris dans la mesure où convient à l'objectif des données, comme on peut le voir dans l'exemple.

+0

Merci Dave! Cela aide –

+0

@VictorEliasRodriguez Cette réponse est un désordre de notions confuses et d'écriture pauvres. "clés répétées" ne signifie rien. (L'auteur montre qu'ils le savent via "essentiellement" & "...".) "divisé en deux" n'est pas clair. La normalisation à des FN plus élevées n'introduit pas d'identifiants. La conception actuelle permet déjà "pour une piste de figurer dans plus d'un film" et "composition collaborative". "suffisamment commun" est hors de propos, c'est jamais ou jamais. – philipxy