Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Erste Normalform und Vor- und Nachname

Bei 1NF geht es um Atomarität, nicht um Redundanz (darum geht es bei höheren Normalformen). Wenn alle Attribute atomar sind, befindet sich Ihre Tabelle im Wesentlichen in 1NF.

Ob sich eine Tabelle in 1NF befindet, hängt natürlich davon ab, was Sie als "atomar" definieren. Was "Atomizität" eigentlich bedeutet, ist umstritten, aber ich würde hier einen pragmatischen Ansatz von Fall zu Fall wählen und einfach fragen:

Ist es im Kontext des Problems, das ich zu lösen versuche, jemals sinnvoll, auf einen Teil des Werts zuzugreifen, oder greife ich immer auf den gesamten Wert zu?

Wenn ich immer auf das Ganze zugreife, ist es in diesem bestimmten Kontext atomar.

In Ihrem Beispiel möchten Sie wahrscheinlich auf first_name zugreifen und last_name separat, also full_name wäre nichtatomar und das wäre der Grund für die Verletzung der 1NF. Wenn Sie jedoch wissen, dass Sie nie separat auf den Vor- und Nachnamen zugreifen müssen, dann können Sie nur der full_name und dennoch nicht gegen die 1NF verstoßen.

"Zugreifen" auf den Wert sollte hier ziemlich weit verstanden werden. Es könnte offensichtlich bedeuten, es aus der Datenbank zu lesen, aber es könnte auch bedeuten, es in einer Einschränkung zu verwenden oder es zu indizieren usw....