"Nullable les colonnes peuvent être en 1FN par 5NF, mais pas dans 6NF selon ce que j'ai lu."
Seulement si vous savez mieux que Chris Date "quelle est la première forme normale signifie vraiment". Si x et y sont deux nullable, et en effet, dans un certain nombre de lignes x et y sont tous deux nuls, alors ", OÙ x=y" ne cède pas "vrai". Cela prouve au-delà de tout doute raisonnable que null n'est pas une valeur (parce que la valeur réelle est toujours égal à lui-même). Et depuis le RM prescrit qu'il doit y avoir une valeur dans chaque cellule d'un tableau", quelque chose qui peut-être contiennent des valeurs null, n'est pas un relationnel chose, et donc la question de 1FN ne même pas se poser.
"J'ai entendu dire que les valeurs null dans les colonnes général de briser le premier degré de la normalisation."
Voir ci-dessus pour la bonne raison sous-jacente de cet argument.
"Mais dans la pratique il est très pratique."
Seulement si vous êtes immunisé contre les maux de tête qu'il provoque généralement dans le reste du monde. L'un de ces maux de tête (et c'est seulement une mineure, comparativement à d'autres null phénomènes) est le fait que "x=y" dans SQL signifie en réalité "OÙ x est non nul, et y n'est pas nul et x=y", mais que la plupart des programmeurs ne sont tout simplement pas conscients de ce fait et il suffit de lire sur elle. Parfois, sans aucun dommage, d'autres fois non.
En fait, nullable colonnes de violer l'une des plus fondamentaux de la conception de la base de règles : ne pas combiner des informations distinctes des éléments dans une seule colonne. Les valeurs null ne exactement ce que parce qu'ils combinent la valeur booléenne "ce champ est/n'est pas vraiment" avec la valeur réelle.