2016-11-07 3 views
0

Je voudrais faire ces tableaux correspondent à l'approche Inmons 3NF (im travaillant sur la base de données Northwind):Est-ce que ce changement correspond à 3NF sur la base de données northwind?

Before

J'ai remarqué chose d'adresse ne cesse de répéter et de son même pas un peu atomique alors j'ai décidé de mettre un autre tableau dans le diagramme appelé « Adresse » comme ceci:

After

cette approche est-elle valable? En tant qu'adresse de table stocke toutes les adresses, puis-je les partager pour toutes les autres tables?

Merci

Répondre

0

Votre solution est valide et est nettement plus normalisée.

Cependant, il n'est pas encore en 3NF. Strictement parlant, pour qu'une table soit en 3NF, vous ne devez pas avoir d'interdépendances non-clés. Dans votre exemple, il existe de telles dépendances, entre ville et pays par exemple. Donc, chaque fois que quelqu'un entre à Paris, ils doivent aussi entrer en France. Cela pourrait conduire à des anomalies si quelqu'un entre accidentellement à Paris, en Allemagne. Pour 3NF, vous devez créer une table City supplémentaire, qui stocke les villes et leurs pays respectifs. La ville serait la clé, le pays un attribut non-clé. La table d'adresses aurait une clé étrangère à la ville. J'ai omis le code postal et la région pour la brièveté, mais ils devraient également être inclus dans la normalisation. Donc, pour faire ce 3NF vous auriez besoin de quelques entités supplémentaires. Cette complexité est la raison pour laquelle le schéma en étoile de Kimball est plus populaire que l'approche 3NF d'Inmon.