Zuerst normale Form

Zuerst sind normale Form (1NF oder Minimale Form) eine normale in der Datenbanknormalisierung verwendete Form. Ein Verwandtschaftsdatenbanktisch, der an 1NF klebt, ist derjenige, der einen bestimmten minimalen Satz von Kriterien entspricht. Diese Kriterien sind mit grundsätzlich dem Sicherstellen beschäftigt, dass der Tisch eine treue Darstellung einer Beziehung ist, und dass es frei von sich wiederholenden Gruppen ist.

Das Konzept einer "sich wiederholenden Gruppe" wird jedoch unterschiedlich von verschiedenen Theoretikern verstanden. Demzufolge gibt es keine universale Abmachung, betreffs deren Eigenschaften einen Tisch davon untauglich machen würden, in 1NF zu sein. Am meisten namentlich, 1NF, wie definiert, durch einige Autoren (zum Beispiel, Ramez Elmasri und Shamkant B. Navathe, im Anschluss an den Präzedenzfall, der von Edgar F. Codd gegründet ist), schließt geBeziehungsschätzte Attribute (Tische innerhalb von Tischen) aus; wohingegen 1NF, wie definiert, durch andere Autoren (zum Beispiel, Chris Date) ihnen erlaubt.

1NF Tische als Darstellungen von Beziehungen

Gemäß der Definition des Datums 1NF ist ein Tisch in 1NF, wenn, und nur wenn es zu etwas Beziehung "isomorph ist", was spezifisch bedeutet, dass es die folgenden fünf Bedingungen befriedigt:

Die Übertretung von einigen dieser Bedingungen würde bedeuten, dass der Tisch, und deshalb nicht ausschließlich Verwandtschafts-ist, dass es nicht in 1NF ist.

Beispiele von Tischen (oder Ansichten), der diese Definition 1NF nicht entsprechen würde, sind:

  • Ein Tisch, der an einem einzigartigen Schlüssel Mangel hat. Solch ein Tisch würde im Stande sein, Doppelreihen, in der Übertretung der Bedingung 3 anzupassen.
  • Eine Ansicht deren Definitionsmandate, der resultiert, in einer besonderen Ordnung zurückgegeben werden, so dass die Reihe-Einrichtung ein innerer und bedeutungsvoller Aspekt der Ansicht ist. Das verletzt Bedingung 1. Die Tupel in wahren Beziehungen werden in Bezug auf einander nicht bestellt.
  • Ein Tisch mit mindestens einem Nullable-Attribut. Ein Nullable-Attribut würde in der Übertretung der Bedingung 4 sein, der verlangt, dass jedes Feld genau einen Wert vom Gebiet seiner Säule enthält. Es sollte jedoch bemerkt werden, dass dieser Aspekt der Bedingung 4 umstritten ist. Es kennzeichnet eine wichtige Abfahrt von der späteren Vision von Codd des Verwandtschaftsmodells, das ausführliche Bestimmung für die Null gemacht hat.

Das Wiederholen von Gruppen

Die vierte Bedingung des Datums, die ausdrückt, "woran die meisten Menschen als die Definieren-Eigenschaft 1NF denken", ist mit sich wiederholenden Gruppen beschäftigt. Das folgende Drehbuch illustriert, wie ein Datenbankdesign sich wiederholende Gruppen, in der Übertretung 1NF vereinigen könnte.

Gebiete und Werte

Nehmen Sie an, dass ein Entwerfer die Namen und Telefonnummern von Kunden registrieren möchte. Er definiert einen Kundentisch, der wie das aussieht:

Der Entwerfer wird sich dann einer Voraussetzung bewusst, um vielfache Telefonnummern für einige Kunden zu registrieren. Er schließt, dass die einfachste Weise, das zu tun, ist, dem "Telefonnummer"-Feld in jeder gegebenen Aufzeichnung zu erlauben, mehr als einen Wert zu enthalten:

Wenn sie

jedoch annimmt, dass die Telefonnummer-Säule auf einem einer Telefonnummer ähnlichen Gebiet (z.B das Gebiet von Schnuren 12 Charaktere in der Länge) definiert wird, ist die Darstellung oben nicht in 1NF. 1NF (und, was das betrifft, der RDBMS) hält ein einzelnes Feld davon ab, mehr als einen Wert vom Gebiet seiner Säule zu enthalten.

Das Wiederholen von Gruppen über Säulen

Der Entwerfer könnte versuchen, um diese Beschränkung herumzukommen, indem er vielfache Telefonnummer-Säulen definiert hat:

Diese Darstellung macht jedoch von nullable Säulen Gebrauch, und passt sich deshalb der Definition des Datums 1NF (in der Übertretung nicht an, um 4 zu bedingen). Selbst wenn die Ansicht vertreten wird, dass nullable Säulen erlaubt wird, ist das Design nicht in Übereinstimmung mit dem Geist 1NF (in der Übertretung, um 2 zu bedingen). Telefonnummer 1, Telefonnummer 2. und Telefonnummer 3. teilen Sie genau dasselbe Gebiet und genau dieselbe Bedeutung; das Aufspalten der Telefonnummer in drei Kopfstücke ist künstlich und verursacht logische Probleme. Diese Probleme schließen ein:

  • Schwierigkeit, den Tisch zu fragen. Das Antworten auf solche Fragen wie "Welche Kunden haben Telefonnummer X?" und "Welche Paare von Kunden teilen eine Telefonnummer?" ist ungeschickt.
  • Unfähigkeit, Einzigartigkeit des Kunden zur Telefonnummer geltend zu machen, verbindet sich durch den RDBMS. Kunden 789 könnte eine Telefonnummer 2 Wert irrtümlicherweise gegeben werden, der genau dasselbe als ihre Telefonnummer 1 Wert ist.
  • Beschränkung der Zahl von Telefonnummern pro Kunden zu drei. Wenn ein Kunde mit vier Telefonnummern mitkommt, werden wir gezwungen, nur drei zu registrieren und das vierte nicht registrierte zu verlassen. Das bedeutet, dass das Datenbankdesign Einschränkungen auf den Geschäftsprozess, aber nicht auferlegt (wie ideal der Fall sein sollte) umgekehrt.

Das Wiederholen von Gruppen innerhalb von Säulen

Der Entwerfer könnte wechselweise die einzelne Telefonnummer-Säule behalten, aber sein Gebiet verändern, sie eine Schnur der genügend Länge machend, um vielfache Telefonnummern anzupassen:

Dieses Design ist mit 1NF im Einklang stehend, aber präsentiert noch mehrere Designprobleme. Das Telefonnummer-Kopfstück wird semantisch nichtspezifisch, weil es jetzt entweder eine Telefonnummer, eine Liste von Telefonnummern, oder tatsächlich irgendetwas überhaupt vertreten kann. Eine Abfrage solcher als "Welche Paare von Kunden teilen eine Telefonnummer?" ist schwieriger, in Anbetracht der Notwendigkeit zu formulieren, Listen von Telefonnummern sowie individuellen Telefonnummern zu befriedigen. Bedeutungsvolle Einschränkungen auf Telefonnummern sind auch sehr schwierig, im RDBMS mit diesem Design zu definieren.

Ein Design, das 1NF erfüllt

Ein Design, das eindeutig in 1NF ist, macht von zwei Tischen Gebrauch: ein Kundenname-Tisch und ein Kundentelefonnummer-Tisch.

Sich wiederholende Gruppen von Telefonnummern kommen in diesem Design nicht vor. Statt dessen erscheint jede Verbindung des Kunden zur Telefonnummer auf seiner eigenen Aufzeichnung. Mit dem Kundenpersonalausweis als Schlüsselfelder, ein "Elternteilkind" oder one-many (1:M) besteht Beziehung zwischen den zwei Tischen, da eine Kundenaufzeichnung (im "Elternteil"-Tisch, Kundennamen) viele Telefonnummer-Aufzeichnungen haben kann (im "Kinder"-Tisch, der Kundentelefonnummer), aber jede Telefonnummer hat gewöhnlich ein, und nur ein Kunde. Im Fall, wo mehrere Kunden dieselbe Telefonnummer teilen konnten, ist eine zusätzliche Säule im Kundentelefonnummer-Tisch erforderlich, um einen einzigartigen Schlüssel zu vertreten. Es lohnt sich zu bemerken, dass dieses Design den zusätzlichen Anforderungen für die zweite und dritte normale Form (3NF) entspricht.

Atomicity

Einige Definitionen 1NF, am meisten namentlich dieser von Edgar F. Codd, spielen auf das Konzept von atomicity an. Codd stellt fest, dass die "Werte in den Gebieten, auf denen jede Beziehung definiert wird, erforderlich sind, in Bezug auf den DBMS atomar zu sein." Codd definiert einen Atomwert als derjenige, der "in kleinere Stücke durch den DBMS nicht zersetzt werden kann (bestimmter spezieller Funktionen ausschließend)." Bedeutung eines Feldes sollte in Teile mit mehr als einer Art von Daten darin solch nicht geteilt werden, dass, was ein Teil zum DBMS bedeutet, von einem anderen Teil desselben Feldes abhängt.

Hugh Darwen und Chris Date haben vorgeschlagen, dass das Konzept von Codd eines "Atomwerts" zweideutig ist, und dass diese Zweideutigkeit zu weit verbreiteter Verwirrung darüber geführt hat, wie 1NF verstanden werden sollte. Insbesondere der Begriff eines "Werts, der nicht zersetzt werden kann", ist problematisch, weil es scheinen würde anzudeuten, dass wenige, falls etwa, Datentypen atomar sind:

  • Eine Charakter-Schnur würde scheinen, nicht atomar zu sein, weil der RDBMS normalerweise Maschinenbedienern zur Verfügung stellt, um sie in Teilketten zu zersetzen.
  • Eine Festkommazahl würde scheinen, nicht atomar zu sein, weil der RDBMS normalerweise Maschinenbedienern zur Verfügung stellt, um sie in die ganze Zahl und Bruchbestandteile zu zersetzen.

Datum weist darauf hin, dass "der Begriff von atomicity keine absolute Bedeutung hat": Ein Wert kann atomar zu einigen Zwecken betrachtet werden, aber kann als ein Zusammenbau von grundlegenderen Elementen zu anderen Zwecken betrachtet werden. Wenn diese Position akzeptiert wird, 1NF kann bezüglich atomicity nicht definiert werden. Säulen jedes denkbaren Datentyps (von Schnur-Typen und numerischen Typen, um Typen und Tabellentypen zu ordnen), sind dann in 1NF Tisch annehmbar — obwohl vielleicht nicht immer wünschenswert (Zum Beispiel würde es wünschenswerter sein, ein Kundenname-Feld in zwei getrennte Felder als Vorname, Nachname zu trennen). Datum behauptet, dass geBeziehungsschätzte Attribute, mittels deren ein Feld innerhalb eines Tisches einen Tisch enthalten kann, in seltenen Fällen nützlich sind.

Normalisierung darüber hinaus 1NF

Jeder Tisch, der in der zweiten normalen Form (2NF) ist oder höher, definitionsgemäß, auch in 1NF ist (jede normale Form hat strengere Kriterien als sein Vorgänger). Andererseits kann ein Tisch, der in 1NF ist, oder kann nicht in 2NF sein; wenn es in 2NF ist, kann es oder kann nicht in 3NF und so weiter sein.

Normale Formen höher als 1NF sind beabsichtigt, um sich mit Situationen zu befassen, in denen ein Tisch unter Designproblemen leidet, die die Integrität der Daten innerhalb seiner in Verlegenheit bringen können. Zum Beispiel ist der folgende Tisch in 1NF, aber ist nicht in 2NF und ist deshalb für logische Widersprüchlichkeiten verwundbar:

Der Schlüssel des Tisches ist {Unterzeichneter-Personalausweis, E-Mail-Adresse}.

Wenn Carol Robertson ihren Nachnamen durch die Ehe ändert, muss die Änderung auf zwei Reihen angewandt werden. Wenn die Änderung nur auf eine Reihe angewandt wird, resultiert ein Widerspruch: Die Frage "Wer ist Kunde 252 Name?" hat zwei widerstreitende Antworten. 2NF richtet dieses Problem. Bemerken Sie, dass die Aufzeichnung von Carol Robertson im Tisch zweimal erscheint, weil es mehr als eine damit verbundene E-Mail-Adresse hat.

Eine praktische Weise, 1NF im obengenannten Tisch zu denken, soll eine Reihe von Fragen über die Beziehungen fragen, die Rekord(Reihen) zwischen Entitäten (Tische) oder Attribute (Säulen) haben können, die auf gegebenen Geschäftsregeln oder Einschränkungen gestützt sind. Zum Beispiel konnte sich eine Unterzeichneter-Aufzeichnung auf viele E-Mail-Adresse-Aufzeichnungen beziehen? Konnte sich eine E-Mail-Adresse-Aufzeichnung auf viele Unterzeichneter-Aufzeichnungen beziehen? Im obengenannten Tisch können wir sehen, dass Carol Robertson mehr als eine E-Mail-Adresse hat. Wir konnten auf die Fragen antworten, indem wir gesagt haben, dass es eine one-many Beziehung (1:M) zwischen Unterzeichnetem und E-Mail-Adresse im obengenannten Tisch gibt, da ein Unterzeichneter viele E-Mail-Adressen haben kann, und eine E-Mail-Adresse gewöhnlich ein, und nur ein Unterzeichneter hat. Wir würden dann einen getrennten Tisch genannt Unterzeichnete schaffen und die Unterzeichneter-Vorname- und Unterzeichneter-Nachname-Säulen vom Unterzeichneter-E-Mail-Adresse-Tisch in den neuen Unterzeichneter-Tisch bewegen, einen dritten Säulenunterzeichneter-Personalausweis als der primäre Schlüssel hinzufügend. So besteht eine one-many Beziehung zwischen dem Unterzeichneter-Tisch (mit dem Unterzeichneter-Personalausweis als der primäre Schlüssel) und dem Unterzeichneter-E-Mail-Adresse-Tisch (mit dem Unterzeichneter-Personalausweis als der Auslandsschlüssel). Die Tische würden sich 2NF zusätzlich zu 1NF anpassen.

Siehe auch

Weiterführende Literatur


Normale Form / Die zweite normale Form
Impressum & Datenschutz