SQL Erste, zweite und dritte Normalformen

Es gibt drei Quellen von Änderungsanomalien in SQL Diese sind definiert als erste, zweite und dritte Normalformen

(1NF, 2NF, 3NF). Diese Normalformen wirken als Heilmittel Anomalien der Modifikation.

Erste Normalform

Um in der ersten Normalform (1NF), muss eine Tabelle, die die folgenden Eigenschaften haben:

  • Die Tabelle ist zweidimensional mit Zeilen und Spalten.

  • Jede Zeile enthält Daten, die auf irgendeine Sache oder ein Teil einer Sache gehört.

  • Jede Spalte enthält Daten für ein einzelnes Attribut der Sache es beschreibt.

  • Jede Zelle (Schnittpunkt einer Zeile und einer Spalte) der Tabelle muss nur einen einzigen Wert.

  • Einträge in jeder Spalte müssen alle von der gleichen Art sein. Wenn zum Beispiel einen Mitarbeiternamen der Eintrag in einer Zeile einer Spalte enthält, werden alle anderen Zeilen müssen Mitarbeiternamen in dieser Spalte zu enthalten.

  • Jede Spalte muss einen eindeutigen Namen haben.

  • Keine zwei Reihen können identisch sein (das heißt, jede Zeile muss eindeutig sein).

  • Die Reihenfolge der Spalten und die Reihenfolge der Reihen sind nicht signifikant.

Eine Tabelle (Relation) in der ersten Normalform ist auf einige Arten von Änderungsanomalien immun ist aber auf andere noch Thema. Die Tabelle SALES ist in der ersten Normalform, und die Tabelle unterliegt Löschen und Einfügen Anomalien. Erste Normalform kann in einigen Anwendungen nützlich, aber unzuverlässig in anderen beweisen.

bild0.jpg

Zweite Normalform

Um die zweite Normalform schätzen, müssen Sie die Idee der funktionalen Abhängigkeit verstehen. EIN funktionale Abhängigkeit zwischen oder unter Attributen ist eine Beziehung. Ein Attribut ist funktionell abhängig von einem anderen, wenn der Wert des zweiten Attribut den Wert des ersten Attributs bestimmt. Wenn Sie den Wert des zweiten Attribut kennen, können Sie den Wert des ersten Attributs bestimmen.

Nehmen wir beispielsweise, dass eine Tabelle hat Attribute (Spalten) StandardCharge, NumberOfTests, und Gesamtbetrag die Beziehung durch die folgende Gleichung:

TotalCharge = StandardCharge * NumberOfTests

Gesamtbetrag ist funktionell abhängig von sowohl StandardCharge und NumberOfTests. Wenn Sie wissen, die Werte von StandardCharge und NumberOfTests, Sie können den Wert bestimmen Gesamtbetrag.

Jede Tabelle in der ersten Normalform muss einen eindeutigen Primärschlüssel haben. Dieser Schlüssel kann aus einer oder mehreren Spalten bestehen. Ein Schlüssel, bestehend aus mehr als einer Spalte wird als ein Composite-Taste. Um in der zweiten Normalform (2NF), alle Nicht-Schlüsselattribute müssen auf dem gesamten Schlüssel abhängen. So jede Beziehung, die in 1NF mit einem einzigen Attribut Schlüssel ist, ist automatisch in der zweiten Normalform.

Wenn ein Verhältnis eines zusammengesetzten Schlüssel hat, alle Nicht-Schlüsselattribute sind auf alle Komponenten des Schlüssels abhängen. Wenn Sie eine Tabelle, wo einige Nicht-Schlüsselattribute nicht auf alle Komponenten des Schlüssels abhängen, brechen die Tabelle in zwei oder mehr Tabellen, so dass - in jedem der neuen Tabellen - alle nicht-Schlüsselattribute auf alle Komponenten abhängen des Primärschlüssels.

Hört sich verwirrend? Schauen Sie sich ein Beispiel Fragen zu klären. Betrachten Sie die Tabelle SALES. Statt nur für jeden Kunden einen einzigen Kauf von Aufnahme, fügen Sie eine Zeile jedes Mal, wenn ein Kunde einen Artikel zum ersten Mal kauft. Ein weiterer Unterschied besteht darin, dass Charterkunden (die mit Kundennummer Werte von 1001-1007) einen Rabatt auf den Normalpreis.

image1.jpg

Kundennummer nicht eine Zeile eindeutig identifizieren. In zwei Reihen, Kundennummer ist 1001. In zwei anderen Reihen, Kundennummer ist 1010. Die Kombination der Kundennummer Spalte und die Produkt Spalte kennzeichnet eindeutig eine Zeile. Diese beiden Säulen zusammen einen zusammengesetzten Schlüssel.

Wenn da nicht die Tatsache, dass einige Kunden einen Rabatt und andere nicht, würde die Tabelle nicht in der zweiten Normalform sein, denn Preis (Ein Nicht-Schlüsselattribut) nur auf einem Teil des Schlüssels ab (Produkt). Da einige Kunden für einen Rabatt qualifizieren, Preis hängt sowohl von Kundennummer und Produkt, und der Tisch ist in der zweiten Normalform.

Dritte Normalform

Tabellen in der zweiten Normalform sind besonders anfällig für einige Arten von Änderungsanomalien - insbesondere solche, die von transitiven Abhängigkeiten kommen.

EIN transitive Abhängigkeit tritt auf, wenn ein Attribut in einem zweiten Attribut abhängt, die auf einem dritten Attribut abhängt. Löschungen in einer Tabelle mit einer solchen Abhängigkeit kann unerwünschte Informationsverlust verursachen. Eine Beziehung in der dritten Normalform ist eine Beziehung in der zweiten Normalform ohne transitiven Abhängigkeiten.

Schauen Sie noch einmal an den Tisch SALES, die Sie wissen, in der ersten Normalform ist. Solange Sie Einträge einschränken für jede nur eine Zeile zu ermöglichen Kundennummer, Sie haben einen Primärschlüssel Single-Attribut, und die Tabelle in der zweiten Normalform ist. Jedoch ist der Tabelle zu Anomalien nicht abgeschlossen ist. Was, wenn der Kunde 1010 ist unzufrieden mit der Chlorbleiche, zum Beispiel, und liefert den Artikel für eine Rückerstattung?

Sie möchten die dritte Zeile aus der Tabelle zu entfernen, was die Tatsache berichtet, dass Kunden 1010 Chlorbleiche gekauft. Sie haben ein Problem: Wenn Sie diese Zeile entfernen, verlieren Sie auch die Tatsache, dass Chlorbleiche einen Preis von $ 4 hat. Diese Situation ist ein Beispiel für eine transitive Abhängigkeit. Preis kommt drauf an Produkt, die wiederum hängt von der Primärschlüssel Kundennummer.

Breaking the SALES Tabelle in zwei Tabellen löst das transitiven Abhängigkeitsproblem. Die beiden Tabellen machen eine Datenbank, die in der dritten Normalform ist.

Menü