2010-12-10 21 views
4

Il existe deux dépendances fonctionnelles dans les bases de données SQL.Dépendances fonctionnelles dans les bases de données SQL Formulaires normaux

a) Dépendance fonctionnelle partielle: une colonne non-clé dépend de certaines colonnes d'une clé primaire composite, mais pas toutes.

b) Dépendances fonctionnelles transitives: Toute colonne non-clé dépend d'autres colonnes non clés.

Pour une bonne base de données SQL.

Règle 1: Les colonnes ne contiennent que des valeurs atomiques

Règle 2: groupes n répétitifs de données

Règle 3: Vous avez pas de dépendances partielles

Règle 4: ne contenant pas de dépendances transitives

J'ai compris les exigences des règles 1 et 2, pourquoi avons-nous besoin des 3ème et 4ème règles, au lieu de dire que la colonne non ne doit pas dépendre des autres colonnes. Pourquoi y a-t-il deux règles distinctes (3 et 4)?

Source: Head First SQL

Merci d'avance!

+0

"aucune colonne ne doit pas dépendre d'autres colonnes" -vous voulez dire quelque chose comme "les colonnes non-clés ne doivent dépendre que de l'ensemble des clés"? Les doubles négatifs en anglais sont difficiles. – outis

+0

@outis: Merci de clarifier la question, je veux dire, au lieu d'avoir des règles séparées, ne pouvons-nous dire que "Les colonnes d'une base de données ne doivent pas dépendre d'autres colonnes que la colonne clé primaire. est une colonne composite, alors, je veux dire, il sera considéré comme une seule colonne pour ce problème de dépendance " –

+0

Oui, bien sûr, il existe différentes façons d'expliquer la même chose. Votre définition n'est pas parfaite cependant. La dépendance à UNE seule touche ("clé primaire") n'est pas suffisante. Chaque attribut doit dépendre de TOUTES les clés de la table. – sqlvogel

Répondre

7

Bonne question. C'est uniquement pour des raisons historiques et pédagogiques que ces deux-là sont souvent séparés.

La deuxième forme normale (2NF) consiste à éliminer uniquement les dépendances de touches partielles. 2NF seul n'est normalement pas particulièrement important car la troisième forme normale, la forme normale de Boyce Codd et les formes normales supérieures éliminent également ces mêmes dépendances de clé partielles et ces NFs (> 2NF) sont généralement l'objectif souhaité dans la conception de base de données. Cependant, il est courant d'enseigner la normalisation en utilisant un processus de décomposition . Par la méthode de décomposition, les dépendances de clé partielles sont généralement considérées en premier. En réalité, cela est rarement fait par la plupart des praticiens qui considèrent souvent toutes les dépendances à la fois.

Les définitions de formes normales supérieures à 2NF ne mentionnent pas nécessairement les dépendances de touches partielles comme cas particulier. Boyce Codd Normal Form peut être brièvement résumé en signifiant que tout déterminant fonctionnel non-trivial est une super-clé - en d'autres termes, aucun FD non-trivial (d'aucune sorte) sur autre chose que des clés.