Datenbanknormalisierung

Datenbanknormalisierung ist der Prozess, die Felder und Tische einer Verwandtschaftsdatenbank zu organisieren, um Überfülle und Abhängigkeit zu minimieren.

Normalisierung schließt gewöhnlich sich teilende große Tische in den kleineren (und weniger überflüssig) Tische und Definieren-Beziehungen zwischen ihnen ein.

Das Ziel ist, Daten zu isolieren, so dass Hinzufügungen, Auswischen und Modifizierungen eines Feldes in gerade einem Tisch gemacht und dann durch den Rest der Datenbank über die definierten Beziehungen fortgepflanzt werden können.

Edgar F. Codd, der Erfinder des Verwandtschaftsmodells, hat das Konzept der Normalisierung eingeführt, und was wir jetzt als die Erste Normale Form (1NF) 1970 wissen. Codd hat fortgesetzt, die Zweite Normale Form (2NF) und die Dritte Normale Form (3NF) 1971 zu definieren, und Codd und Raymond F. Boyce haben Boyce-Codd Normal Form (BCNF) 1974 definiert. Höher wurden normale Formen von anderen Theoretikern in nachfolgenden Jahren, dem neusten Wesen die Sechste Normale Form (6NF) eingeführt von Chris Date, Hugh Darwen und Nikos Lorentzos 2002 definiert.

Informell wird ein Verwandtschaftsdatenbanktisch (die computerisierte Darstellung einer Beziehung) häufig, wie "normalisiert", beschrieben, wenn es in der Dritten Normalen Form ist. Meiste 3NF sind Tische frei von der Einfügung, der Aktualisierung und den Auswischen-Anomalien, d. h. in den meisten Fällen 3NF Tische kleben an BCNF, 4NF, und 5NF (aber normalerweise nicht 6NF).

Ein Standardstück der Datenbankdesignleitung ist, dass der Entwerfer ein völlig normalisiertes Design schaffen sollte; auswählender denormalization kann nachher aus Leistungsgründen durchgeführt werden. Jedoch empfehlen einige Modellieren-Disziplinen, wie die dimensionale modellierende Annäherung an das Datenlager-Design, ausführlich nichtnormalisierte Designs, d. h. Designs, die im großen Teil an 3NF nicht kleben.

Ziele der Normalisierung

Ein grundlegendes Ziel der ersten normalen Form, die von Codd 1970 definiert ist, sollte Daten erlauben, gefragt zu werden, und hat das Verwenden einer "universalen Datensubsprache manipuliert, die" in der Logik der ersten Ordnung niedergelegt ist. (SQL ist ein Beispiel solch einer Datensubsprache, obgleich derjenige, den Codd, wie ernstlich rissig gemacht, betrachtet hat.)

Die Ziele der Normalisierung darüber hinaus 1NF (Zuerst Normale Form) wurden wie folgt von Codd festgesetzt:

Die Abteilungen geben unten Details von jedem dieser Ziele.

Befreien Sie die Datenbank von Modifizierungsanomalien

Wenn ein Versuch gemacht wird (Aktualisierung, Einsatz zu modifizieren in, oder von zu löschen), ein Tisch, können unerwünschte Nebenwirkungen folgen. Nicht alle Tische können unter diesen Nebenwirkungen leiden; eher können die Nebenwirkungen nur in Tischen entstehen, die nicht genug normalisiert worden sind. Ein ungenügend normalisierter Tisch könnte ein oder mehr von den folgenden Eigenschaften haben:

  • Dieselbe Information kann auf vielfachen Reihen ausgedrückt werden; deshalb können Aktualisierungen zum Tisch auf logische Widersprüchlichkeiten hinauslaufen. Zum Beispiel könnte jede Aufzeichnung in "die Sachkenntnisse von Angestellten" Tisch einen Mitarbeiterpersonalausweis, Mitarbeiteradresse und Sachkenntnis enthalten; so wird eine Änderung der Adresse für einen besonderen Angestellten auf vielfache Aufzeichnungen (ein für jede seiner Sachkenntnisse) potenziell angewandt werden müssen. Wenn die Aktualisierung erfolgreich nicht durchgeführt wird — wenn, d. h. die Adresse des Angestellten auf einigen Aufzeichnungen, aber nicht anderen — dann aktualisiert wird, wird der Tisch in einem inkonsequenten Staat verlassen. Spezifisch stellt der Tisch widerstreitende Antworten auf die Frage dessen zur Verfügung, wie die Adresse dieses besonderen Angestellten ist. Dieses Phänomen ist als eine Aktualisierungsanomalie bekannt.
  • Es gibt Verhältnisse, in denen bestimmte Tatsachen überhaupt nicht registriert werden können. Zum Beispiel könnte jede Aufzeichnung in einer "Fakultät und Ihren Kursen" Tisch einen Fakultätspersonalausweis, Fakultätsnamen, Fakultätsmiete-Datum und Kurs-Code enthalten — so können wir die Details jedes Fakultätsmitgliedes registrieren, das mindestens einen Kurs unterrichtet, aber wir können die Details eines kürzlich angestellten Fakultätsmitgliedes nicht registrieren, das noch nicht damit beauftragt worden ist, irgendwelche Kurse außer durch das Setzen des Kurs-Codes auf die Null zu unterrichten. Dieses Phänomen ist als eine Einfügungsanomalie bekannt.
  • Es gibt Verhältnisse, in denen das Auswischen von Daten, die bestimmte Tatsachen vertreten, das Auswischen von Daten nötig macht, die völlig verschiedene Tatsachen vertreten. Die "Fakultät und Ihre Kurse" im vorherigen Beispiel beschriebener Tisch leiden unter diesem Typ der Anomalie, weil, wenn ein Fakultätsmitglied provisorisch aufhört, irgendwelchen Kursen zugeteilt zu werden, wir die letzte von den Aufzeichnungen löschen müssen, auf denen dieses Fakultätsmitglied erscheint, effektiv auch das Fakultätsmitglied löschend. Dieses Phänomen ist als eine Auswischen-Anomalie bekannt.

Minimieren Sie Umgestaltung, wenn Sie die Datenbankstruktur erweitern

Wenn eine völlig normalisierte Datenbankstruktur erweitert wird, um ihm zu erlauben, neue Typen von Daten anzupassen, können die vorher existierenden Aspekte der Datenbankstruktur größtenteils oder völlig unverändert bleiben. Infolgedessen werden Anwendungen, die mit der Datenbank aufeinander wirken, minimal betroffen.

Machen Sie das Datenmodell informativer Benutzern

Normalisierte Tische und die Beziehung zwischen einem normalisiertem Tisch und einem anderen, Spiegel wirkliche Konzepte und ihre Wechselbeziehungen.

Vermeiden Sie Neigung zu jedem besonderen Muster des Fragens

Normalisierte Tische sind für das Mehrzweckfragen passend. Das bedeutet irgendwelche Abfragen gegen diese Tische einschließlich zukünftiger Abfragen, deren Details nicht vorausgesehen werden können, werden unterstützt. Im Gegensatz leihen Tische, die nicht normalisiert werden, sich zu einigen Typen von Abfragen, aber nicht anderen.

Denken Sie zum Beispiel einen Online-Buchhändler, dessen Kunden wishlists von Büchern aufrechterhalten, die sie gern haben würden. Für die offensichtliche, vorausgesehene Abfrage — was wollen Bücher dieser Kunde? — es ist genug, den wishlist des Kunden im Tisch als, sagen wir, eine homogene Reihe von Autoren und Titeln zu versorgen.

Mit diesem Design aber kann die Datenbank nur dass eine einzelne Abfrage antworten. Es kann auf interessante, aber unvorausgesehene Abfragen nicht allein antworten: Wie ist das Buch, das "für am meisten gewünscht ist"? Welche Kunden interessieren sich für die WWII Spionage? Wie Stapel von Lord Byron gegen seine zeitgenössischen Dichter in Ordnung bringt? Antworten auf diese Fragen müssen aus speziellen anpassungsfähigen von der Datenbank völlig getrennten Werkzeugen kommen. Ein Werkzeug könnte Software geschrieben besonders sein, um solche Abfragen zu behandeln. Diese spezielle anpassungsfähige Software hat gerade einen einzelnen Zweck: Tatsächlich das nichtnormalisierte Feld zu normalisieren.

Auf ungeahnte Abfragen kann trivial, und völlig innerhalb des Datenbankfachwerks mit einem normalisierten Tisch geantwortet werden.

Beispiel

Das Fragen und die Manipulierung der Daten innerhalb einer unnormalisierten Datenstruktur, wie die folgende non-1NF Darstellung der Kreditkartentransaktionen von Kunden, sind mit mehr Kompliziertheit verbunden, als wirklich notwendig ist:

| -

| Wilkins

||

| -

| Stevens

||

| }\

Jedem Kunden dort entspricht eine sich wiederholende Gruppe von Transaktionen. Die automatisierte Einschätzung jeder Abfrage in Zusammenhang mit den Transaktionen von Kunden würde deshalb mit zwei Stufen weit gehend verbunden sein:

  1. Das Auspacken der Gruppen der eines oder mehr Kunden von Transaktionen, die die individuellen Transaktionen in einer Gruppe erlauben, und untersucht zu werden
  2. Das Abstammen eines Anfragenergebnisses, das auf den Ergebnissen der ersten Stufe gestützt ist

Zum Beispiel, um die Geldsumme aller Transaktionen herauszufinden, die im Oktober 2003 für alle Kunden vorgekommen sind, würde das System wissen müssen, dass es zuerst die Transaktionsgruppe jedes Kunden auspacken, dann die Beträge aller so erhaltenen Transaktionen summieren muss, wo das Datum der Transaktion im Oktober 2003 fällt.

Einer der wichtigen Einblicke von Codd war, dass diese Strukturkompliziertheit immer völlig entfernt werden konnte, zu viel größerer Macht und Flexibilität in der Weise führend, wie Abfragen (von Benutzern und Anwendungen) formuliert und (durch den DBMS) bewertet werden konnten. Die normalisierte Entsprechung von der Struktur würde oben wie das aussehen:

Jetzt vertritt jede Reihe eine individuelle Kreditkartentransaktion, und der DBMS kann die Antwort von Interesse, einfach durch die Entdeckung aller Reihen mit einem Datum erhalten, das im Oktober fällt, und ihre Beträge summiert. Die Datenstruktur legt alle Werte auf einem gleichen Stand, jeden zum DBMS direkt ausstellend, so kann jeder direkt an Abfragen potenziell teilnehmen; wohingegen in der vorherigen Situation einige Werte in Strukturen der niedrigeren Ebene eingebettet wurden, die besonders behandelt werden mussten. Entsprechend leiht das normalisierte Design sich zur Mehrzweckanfragenverarbeitung, wohingegen das unnormalisierte Design nicht tut.

Hintergrund zur Normalisierung: Definitionen

Funktionelle Abhängigkeit: In einem gegebenen Tisch, wie man sagt, hat ein Attribut Y eine funktionelle Abhängigkeit von einer Reihe von Attributen X (schriftlich X  Y), wenn, und nur wenn jeder X Wert mit genau einem Y-Wert vereinigt wird. Zum Beispiel in einem "Mitarbeiter"-Tisch, der die Attribute "Mitarbeiterpersonalausweis" und "Mitarbeitergeburtsdatum", die funktionelle Abhängigkeit {Mitarbeiterpersonalausweis}  {einschließt, würde Mitarbeitergeburtsdatum} halten. Es folgt aus den vorherigen zwei Sätzen, dass jeder {Mitarbeiterpersonalausweis} mit genau ein {Mitarbeitergeburtsdatum} vereinigt wird.

Triviale funktionelle Abhängigkeit: Eine triviale funktionelle Abhängigkeit ist eine funktionelle Abhängigkeit eines Attributes auf einer Obermenge von sich. {Mitarbeiterpersonalausweis Mitarbeiteradresse}  {ist Mitarbeiteradresse} trivial, wie {Mitarbeiteradresse}  {Mitarbeiteradresse} ist.

Volle funktionelle Abhängigkeit: Ein Attribut ist von einer Reihe von Attributen X völlig funktionell abhängig, wenn es ist:

:* funktionell abhängig von X, und

:* nicht funktionell abhängig von jeder richtigen Teilmenge X. {hat Mitarbeiteradresse} eine funktionelle Abhängigkeit {Mitarbeiterpersonalausweis, Sachkenntnis}, aber nicht eine volle funktionelle Abhängigkeit an, weil es auch von {Mitarbeiterpersonalausweis} abhängig ist.

Transitive Abhängigkeit: Eine transitive Abhängigkeit ist eine indirekte funktionelle Abhängigkeit, diejenige in der XZ nur auf Grund von XY und YZ.

Mehrgeschätzte Abhängigkeit: Eine mehrgeschätzte Abhängigkeit ist eine Einschränkung, gemäß der die Anwesenheit bestimmter Reihen in einem Tisch die Anwesenheit bestimmter anderer Reihen einbezieht.

Schließen Sie sich Abhängigkeit an: Eine Tabelle T ist einer Verbindungslinie-Abhängigkeit unterworfen, wenn T immer durch das Verbinden vielfachen Tischen jeder erfrischt werden kann, eine Teilmenge der Attribute von T habend.

Superschlüssel: Ein Superschlüssel ist eine Kombination von Attributen, die verwendet werden können, um eine Datenbankaufzeichnung einzigartig zu identifizieren. Ein Tisch könnte viele Superschlüssel haben.

Kandidat-Schlüssel: Ein Kandidat-Schlüssel ist eine spezielle Teilmenge von Superschlüsseln, die keine fremde Information in ihnen haben: Es ist ein minimaler Superschlüssel.

Beispiele:

Stellen Sie sich einen Tisch mit den Feldern vor

Nichthauptattribut: Ein Nichthauptattribut ist ein Attribut, das in keinem Kandidat-Schlüssel vorkommt. Mitarbeiteradresse würde ein Nichthauptattribut in den Sachkenntnissen der "Angestellten" Tisch sein.

Hauptattribut: Ein Hauptattribut ist umgekehrt ein Attribut, das wirklich in einem Kandidat-Schlüssel vorkommt.

Primärer Schlüssel: Die Meisten DBMSs verlangen, dass ein Tisch definiert wird als, einen einzelnen einzigartigen Schlüssel, aber nicht mehrere mögliche einzigartige Schlüssel zu haben. Ein primärer Schlüssel ist ein Schlüssel, den der Datenbankentwerfer für diesen Zweck benannt hat.

Normale Formen

Die normalen Formen (abbrev. NF) der Verwandtschaftsdatenbank Theorie stellen Kriterien zur Verfügung, für einen Grad eines Tisches der Verwundbarkeit gegenüber logischen Widersprüchlichkeiten und Anomalien zu bestimmen. Je höher die normale auf einen Tisch anwendbare Form, desto weniger verwundbar es zu Widersprüchlichkeiten und Anomalien ist. Jeder Tisch hat eine "höchste normale Form" (HNF): Definitionsgemäß entspricht ein Tisch immer den Anforderungen seines HNF und aller normalen Formen tiefer als sein HNF; auch definitionsgemäß scheitert ein Tisch, den Anforderungen jeder normalen Form höher zu entsprechen, als sein HNF.

Die normalen Formen sind auf individuelle Tische anwendbar; um zu sagen, dass eine komplette Datenbank in der normalen Form ist, soll n sagen, dass alle seine Tische in der normalen Form n sind.

Neulinge zum Datenbankdesign nehmen manchmal an, dass Normalisierungserlös auf eine wiederholende Mode, d. h. 1NF Design zuerst zu 2NF, dann zu 3NF und so weiter normalisiert wird. Das ist nicht eine genaue Beschreibung dessen, wie Normalisierung normalerweise arbeitet. Ein vernünftig bestimmter Tisch wird wahrscheinlich in 3NF auf dem ersten Versuch sein; außerdem, wenn es 3NF ist, wird es überwältigend wahrscheinlich einen HNF 5NF haben. Das Erzielen der "höheren" normalen Formen (oben 3NF) verlangt keinen Extraverbrauch an der Anstrengung seitens des Entwerfers gewöhnlich, weil 3NF Tische gewöhnlich keine Modifizierung brauchen, um den Anforderungen dieser höheren normalen Formen zu entsprechen.

Die normalen Hauptformen werden unten zusammengefasst.

Denormalization

Datenbanken, die für die Online-Transaktion beabsichtigt sind, die (OLTP) bearbeitet, werden normalerweise mehr normalisiert als Datenbanken, die für die analytische Online-Verarbeitung (OLAP) beabsichtigt sind. OLTP Anwendungen werden durch eine Großserie von kleinen Transaktionen wie das Aktualisieren einer Verkaufsaufzeichnung an einer Supermarkt-Kasse charakterisiert. Die Erwartung besteht darin, dass jede Transaktion die Datenbank in einem konsequenten Staat verlassen wird. Im Vergleich werden für OLAP Operationen beabsichtigte Datenbanken in erster Linie größtenteils" Datenbanken "gelesen. OLAP Anwendungen neigen dazu, historische Daten herauszuziehen, der im Laufe eines langen Zeitraumes der Zeit angewachsen hat. Für solche Datenbanken können überflüssige oder "denormalized" Daten Geschäftsnachrichtendienstanwendungen erleichtern. Spezifisch enthalten dimensionale Tische in einem Sterndiagramm häufig denormalized Daten. Der denormalized oder die überflüssigen Daten müssen während des Extrakts sorgfältig kontrolliert werden, sich, Last (ETL) Verarbeitung verwandeln, und Benutzern sollte nicht erlaubt werden, die Daten zu sehen, bis es in einem konsequenten Staat ist. Die normalisierte Alternative zum Sterndiagramm ist das Schneeflocke-Diagramm. In vielen Fällen hat das Bedürfnis nach denormalization abgenommen, weil Computer und RDBMS Software stärker geworden sind, aber da Datenumfänge allgemein zusammen mit der Hardware und Softwareleistung zugenommen haben, verwenden OLAP Datenbanken häufig noch denormalized Diagramme.

Denormalization wird auch verwendet, um Leistung kleinere Computer als in computerisierten Registrierkassen und beweglichen Geräten zu verbessern, da diese die Daten für den Blick nur (z.B Preis lookups) verwenden können. Denormalization kann auch verwendet werden, wenn kein RDBMS für eine Plattform (wie Palme) besteht, oder keine Änderungen mit den Daten vorgenommen werden sollen und eine schnelle Antwort entscheidend ist.

Nichtzuerst normale Form (NF ² oder N1NF)

In der Anerkennung, dass denormalization absichtlich und nützlich sein kann, ist die nichterste normale Form eine Definition von Datenbankdesigns, die sich der ersten normalen Form nicht anpassen, indem sie "Sätzen und Sätzen von Sätzen erlaubt wird, Attribut-Gebiete" (Schek 1982) zu sein. Die Sprachen, die verwendet sind, um Daten im Modell zu fragen und zu manipulieren, müssen entsprechend erweitert werden, um solche Werte zu unterstützen.

Eine Weise, darauf zu schauen, ist, solche strukturierten Werte als seiend spezialisierte Typen von Werten (Gebiete) mit ihren eigenen bereichsspezifischen Sprachen zu betrachten. Jedoch, was gewöhnlich durch non-1NF Modelle gemeint wird, ist die Annäherung, in der das Verwandtschaftsmodell und die Sprachen, die verwendet sind, um es zu fragen, mit einem allgemeinen Mechanismus für solche Struktur erweitert werden; zum Beispiel unterstützt das verschachtelte Verwandtschaftsmodell den Gebrauch von Beziehungen als Bereichswerte, durch das Hinzufügen von zwei zusätzlichen Maschinenbedienern (Nest und Unnest) zur Verwandtschaftsalgebra, die schaffen und flach werden kann, hat Beziehungen beziehungsweise verschachtelt.

Denken Sie den folgenden Tisch:

Nehmen Sie an, dass eine Person mehrere Lieblingsfarben hat. Offensichtlich bestehen Lieblingsfarben aus einer Reihe von durch den gegebenen Tisch modellierten Farben. Um sich 1NF zu einem NF zu verwandeln, legen ² einen "Nest"-Maschinenbediener auf den Tisch ist erforderlich, der die Verwandtschaftsalgebra der höheren normalen Formen erweitert. Wenn er den "Nest"-Maschinenbediener auf 1NF anwendet, gibt Tisch den folgenden NF ² Tisch nach:

| -

|Jane ||

| }\

Um diesen NF ² Tisch zurück in 1NF umzugestalten, ist ein "Unnest"-Maschinenbediener erforderlich, der die Verwandtschaftsalgebra der höheren normalen Formen erweitert. Das Unnest würde in diesem Fall "Farben" in seinen eigenen Tisch machen.

Obwohl "Unnest" das mathematische Gegenteil ist, um "zu nisten", ist der Maschinenbediener "Nest" nicht immer das mathematische Gegenteil "des Unnestes". Eine andere erforderliche Einschränkung ist für die Maschinenbediener, um bijektiv zu sein, der von Partitioned Normal Form (PNF) bedeckt wird.

Siehe auch

  • Aspekt (Informatik)
  • Geschäftsregel
  • Kanonische Form
  • Querschneiden-Sorge
  • Datenbank, die prüft
  • Optimierung (Informatik)
  • Wiederfactoring
  • Universale Beziehungsannahme

Zeichen und Verweisungen

  • Papier: "Nicht Zuerst Normale Form-Beziehungen" durch G. Jaeschke, H.-J Schek; IBM Heidelberg Scientific Center.-> Papier, das Normalisierung und denormalization Maschinenbediener-Nest und Unnest, wie mild beschrieben, am Ende dieser wiki Seite studiert.

Weiterführende Literatur

Links


Tür / Desmothoracid
Impressum & Datenschutz