www.wikidata.de-de.nina.az
Normalisierung ist ein Entwurfsansatz fur relationale Datenbanken mit dem Zweck redundante Speicherung von Informationen und damit Inkonsistenz und Anomalien zu vermeiden Die Methode strukturiert die Daten anhand einer Folge von Regeln Normalformen genannt die aufeinander aufbauen und formale Anforderungen an das Schema bestimmen Die vorgenannten Regeln konnen bereits beim Entwurf beachtet werden auch unterstutzt z B durch Werkzeuge fur die semantische Datenmodellierung Zunachst nach Gutdunken entworfene Relationen konnen in einem nachfolgenden Schritt unter Beachtung der Normalformen jeweils in eine normalisierte Gestalt uberfuhrt werden dafur gibt es Algorithmen wie etwa den Synthesealgorithmus 3NF den Zerlegungsalgorithmus BCNF usw welche automatisiert werden konnen Hierbei werden die Relationen bei Bedarf anhand ihrer funktionalen Abhangigkeiten in einfachere zerlegt bis keine weitere Zerlegung ohne Verlust an Information mehr moglich ist Mit dem Satz von Delobel kann man fur einen Zerlegungsschritt formal nachweisen bzw prufen welche Zerlegung keine Datenverluste mit sich bringt Es gibt verschiedene Ausmasse in denen ein Datenbankschema gegen Anomalien gefeit sein kann In diesem Zusammenhang spricht man davon dass es in erster zweiter dritter usw Normalform vorliege Inhaltsverzeichnis 1 Vorgehen 1 1 Ziel Konsistenzerhohung durch Redundanzvermeidung 1 2 Beispiel 2 Normalformen 2 1 Erste Normalform 1NF 2 1 1 Erlauterung 2 1 2 Praktischer Nutzen 2 1 3 Alternative Formulierungen 2 1 4 Negativbeispiel 1NF verletzt 2 1 5 Losung 2 2 Zweite Normalform 2NF 2 2 1 Erlauterung 2 2 2 Praktischer Nutzen 2 2 3 Negativbeispiel 2NF verletzt 2 2 4 Probleme die sich daraus ergeben 2 2 5 Losung 2 3 Dritte Normalform 3NF 2 3 1 Erlauterung 2 3 1 1 Praktischer Nutzen 2 3 1 2 Alternative Formulierung 2 3 2 Negativbeispiel 3NF verletzt 2 3 3 Losung 2 4 Boyce Codd Normalform BCNF 2 4 1 Erlauterung 2 4 2 Negativbeispiel BCNF verletzt 2 4 3 Losung 2 4 4 Zerlegungsalgorithmus 2 4 5 Unterschied zur 3NF 2 5 Vierte Normalform 4NF 2 5 1 Erlauterung 2 5 2 Negativbeispiel 4NF verletzt 2 5 3 Losung 2 5 4 Hinweis 2 6 Funfte Normalform 5NF 2 6 1 Erlauterung 2 6 2 Negativbeispiel 5NF verletzt 2 6 3 Losung 2 6 4 Hinweis 3 Bemerkungen 4 Merkregeln 5 Literatur 6 Weblinks 7 EinzelnachweiseVorgehen BearbeitenZiel Konsistenzerhohung durch Redundanzvermeidung Bearbeiten nbsp Aufspaltung der Tabelle TBL AdressenAllesBei der Normalisierung werden zunachst Spalten synonyme Begriffe Felder Attribute von Tabellen innerhalb von Bereichen der Datenschemata in neue Spalten aufgeteilt z B Adressen in Postleitzahl Ort und Strasse Anschliessend werden Tabellen aufgeteilt zum Beispiel eine Tabelle tbl AdressenAlles mit den Feldern Firma Strasse PLZ und Ort in diese Tabellen tbl Adressen mit den Feldern AdressID Firma Strasse und PLZ tbl PLZOrt mit den Feldern PLZ und OrtSiehe Bild Aufspaltung der Tabelle tbl AdressenAlles wobei die Tabelle tbl Adressen noch den eindeutigen Primarschlussel AdressID erhalt Hinweis In diesem Beispiel wird angenommen dass es zu jeder Postleitzahl nur jeweils einen Ortsnamen gibt was in Deutschland jedoch sehr oft nicht zutrifft bspw in landlichen Gebieten wo sich mitunter bis zu 100 Orte eine Postleitzahl teilen Die Normalisierung hat den Zweck Redundanzen mehrfaches Festhalten des gleichen Sachverhalts zu verringern und dadurch verursachte Anomalien z B infolge Anderung an nicht allen Stellen zu verhindern um so die Aktualisierung einer Datenbank zu vereinfachen Anderungen lediglich an einer Stelle sowie die Konsistenz der Daten zu gewahrleisten Beispiel Bearbeiten Ein Beispiel dazu Eine Datenbank enthalt Kunden und deren Adressen sowie Auftrage die den Kunden zugeordnet sind Da es mehrere Auftrage vom selben Kunden geben kann wurde eine Erfassung der Kundendaten womoglich mit Adressdaten in der Auftragstabelle dazu fuhren dass sie dort mehrfach vorkommen obwohl der Kunde immer nur einen Satz gultiger Daten hat Redundanz Beispielsweise kann es dazu kommen dass in einem Auftrag fehlerhafte Adressdaten zum Kunden eingegeben werden im nachsten Auftrag werden die korrekten Daten erfasst So kann es in dieser Tabelle oder auch gegenuber anderen Tabellen zu widerspruchlichen Daten kommen Die Daten waren dann nicht konsistent man wusste nicht welche Daten korrekt sind Womoglich sind sogar beide Adressen nicht korrekt weil der Kunde umgezogen ist Losung siehe unten Bei einer normalisierten Datenbank gibt es fur die Kundendaten nur einen einzigen Eintrag in der Kundentabelle mit der jeder Auftrag dieses Kunden verknupft wird ublicherweise uber die Kundennummer Im Falle des Umzugs eines Kunden ein anderes Beispiel ist die Anderung der Mehrwertsteuer gabe es zwar mehrere Eintrage in der entsprechenden Tabelle die aber zusatzlich durch die Angabe eines Gultigkeitszeitraums unterscheidbar sind und im obigen Kundenbeispiel uber die Kombination Auftragsdatum Kundennummer eindeutig angesprochen werden konnen Ein weiterer Vorteil von Redundanzfreiheit der bei Millionen Datensatzen einer Datenbank auch heute noch eine wichtige Rolle spielt ist der geringere Speicherbedarf wenn der Datensatz einer Tabelle zum Beispiel tbl Auftrag auf einen Datensatz einer anderen Tabelle z B tbl Kunde verweist anstatt diese Daten selbst zu enthalten nbsp Aufspaltung von Tabellen zur NormalisierungDieses sind die Empfehlungen die ausgehend von der Theorie der Normalisierung bei der Datenbankentwicklung gegeben werden um vor allem Konsistenz der Daten und eine eindeutige Selektion von Daten zu gewahrleisten Die hierzu angestrebte Redundanzfreiheit steht allerdings in speziellen Anwendungsfallen in Konkurrenz zur Verarbeitungsgeschwindigkeit oder zu anderen Zielen Es kann daher sinnvoll sein auf eine Normalisierung zu verzichten oder diese durch eine Denormalisierung ruckgangig zu machen um die Verarbeitungsgeschwindigkeit Performance zu erhohen oder Anfragen zu vereinfachen und damit die Fehleranfalligkeit zu verringern oder Besonderheiten von Prozessen zum Beispiel Geschaftsprozessen abzubilden In diesen Fallen sollten regelmassig automatische Abgleichroutinen implementiert werden um Inkonsistenzen zu vermeiden Alternativ konnen die betreffenden Daten auch fur Anderungen gesperrt werden Normalformen BearbeitenZurzeit gebrauchliche Normalformen sind 1 Normalform 1NF 2 Normalform 2NF 3 Normalform 3NF Boyce Codd Normalform BCNF 4 Normalform 4NF 5 Normalform 5NF Zum einen dienen sie der Beurteilung der Qualitat eines betrachteten Datenbankschemas zum anderen helfen sie Fehler beim Erzeugen neuer Schemata zu vermeiden Ausserdem konnen mit Hilfe der Normalisierung Datenstrukturen aus nichtrelationalen Quellen gewonnen werden die im Sinne des Normalisierungskonzepts formal korrekt sind und die Daten aus ihren jeweiligen nichtrelationalen Quellen aus denen sie entstanden sind zum Beispiel Formulardaten oder Spreadsheets aufnehmen konnen Nachfolgend werden die Kriterien der jeweiligen Normalformen erklart Dabei ist zu beachten dass jede Normalform die Kriterien der vorhergehenden Normalformen mit einschliesst d h fur die folgenden Kriterienmengen gilt 1NF 2NF 3NF BCNF 4NF 5NF displaystyle text 1NF subseteq text 2NF subseteq text 3NF subseteq text BCNF subseteq text 4NF subseteq text 5NF nbsp Erste Normalform 1NF Bearbeiten Erlauterung Bearbeiten Jedes Attribut der Relation muss einen atomaren Wertebereich haben und die Relation muss frei von Wiederholungsgruppen sein Anm statt atomar wird auch die Bezeichnung atomisch verwendet Atomar heisst dass zusammengesetzte mengenwertige oder geschachtelte Wertebereiche also Relationen wertige Attributwertebereiche nicht erlaubt sind In einer Relation die sich in 1NF befindet gibt es kein Attribut dessen Wertebereich in weitere sinnvolle Teilbereiche aufgespaltet werden kann Beispiel Die Adresse darf nicht als einzelnes Attribut verwendet werden sondern muss sofern es der zugrunde liegende Prozess erfordert und erlaubt in PLZ Ort Strasse Hausnummer etc aufgeteilt werden Frei von Wiederholungsgruppen bedeutet dass Attribute die gleiche oder gleichartige Information enthalten in eine andere Relation ausgelagert werden mussen Ein Beispiel fur eine Wiederholungsgruppe ware eine Spalte Telefon die mehrere Telefonnummern enthalt oder auch eine Spaltengruppe Telefon1 Telefon2 Telefon3 wobei im letzteren Fall anzumerken ist dass es sich dabei nicht notwendigerweise um eine Wiederholungsgruppe handeln muss siehe Alternative Formulierungen Praktischer Nutzen Bearbeiten Abfragen der Datenbank werden durch die 1NF erleichtert bzw uberhaupt erst ermoglicht wenn die Attributwertebereiche atomar sind So ist es beispielsweise in einem Feld das einen ganzen Namensstring aus Titel Vorname und Nachname enthalt schwierig bis unmoglich nach Nachnamen zu sortieren Alternative Formulierungen Bearbeiten Alle Attribute enthalten atomare Inhalte und die Relation hat eine feste Breite Diese Formulierung bezieht sich darauf dass es niemals notig sein darf weitere Attribute in die Relation aufzunehmen weil die Wiederholungszahl der Wiederholungsgruppe zu klein wird z B es wird bei drei Attributen Telefon1 3 eine 4 Telefonnummer fur eine Person bekannt Sie ist insofern interessant als sie helfen kann zu entscheiden ob tatsachlich eine Wiederholungsgruppe vorliegt Obwohl z B Telefon1 Telefon2 Telefon3 sehr stark das Vorhandensein einer Wiederholungsgruppe impliziert konnte es bei lediglich anderen Attributnamen klar werden dass freilich unter dem Licht der Anwendung dem nicht so sein muss Telefon Fax Mobil Eine weitere Variante entsteht durch folgenden Zusatz und die Relation einen Primarschlussel hat Obwohl diese Formulierung so nicht bei Codd nachgelesen werden kann handelt es sich um eine Erweiterung die zu ausgesprochen praxistauglichen Datenstrukturen fuhrt Negativbeispiel 1NF verletzt Bearbeiten CD Lied CD ID Album Grundungsjahr Erscheinungsjahr Titelliste4711 Anastacia Not That Kind 1999 2000 1 Not That Kind 2 I m Outta Love 3 Cowboys amp Kisses 4712 Pink Floyd Wish You Were Here 1965 1975 1 Shine On You Crazy Diamond 4713 Anastacia Freak of Nature 1999 2001 1 Paid my Dues Das Feld Album enthalt die Attributwertebereiche Interpret und Albumtitel Das Feld Titelliste enthalt eine Menge von Titeln Dadurch hat man ohne Aufspaltung folgende Probleme bei Abfragen Zur Sortierung nach Albumtitel muss das Feld Album in Interpret und Albumtitel aufgeteilt werden Die Titel konnen mit einfachen Mitteln nur alle gleichzeitig als Titelliste oder gar nicht dargestellt werden Losung Bearbeiten CD Lied CD ID Albumtitel Interpret Grundungsjahr Erscheinungsjahr Track Titel4711 Not That Kind Anastacia 1999 2000 1 Not That Kind4711 Not That Kind Anastacia 1999 2000 2 I m Outta Love4711 Not That Kind Anastacia 1999 2000 3 Cowboys amp Kisses4712 Wish You Were Here Pink Floyd 1965 1975 1 Shine On You Crazy Diamond4713 Freak of Nature Anastacia 1999 2001 1 Paid my DuesDie Attributwertebereiche werden in atomare Attributwertebereiche aufgespalten Das Feld Album wird in die Felder Albumtitel und Interpret gespalten Das Feld Titelliste wird in die Felder Track und Titel gespalten sowie auf mehrere Datensatze aufgeteilt Da jetzt jeder Attributwertebereich atomar ist sowie die Tabelle einen eindeutigen Primarschlussel Verbundschlussel aus den Spalten CD ID und Track besitzt befindet sich die Relation in 1NF Zweite Normalform 2NF Bearbeiten Erlauterung Bearbeiten Eine Relation ist genau dann in der zweiten Normalform wenn die erste Normalform vorliegt und kein Nichtprimarattribut Attribut das nicht Teil eines Schlusselkandidaten ist funktional von einer echten Teilmenge eines Schlusselkandidaten abhangt Anders gesagt Jedes nicht primare Attribut nicht Teil eines Schlussels ist jeweils von allen ganzen Schlusseln abhangig nicht nur von einem Teil eines Schlussels Wichtig ist hierbei dass die Nichtschlusselattribute wirklich von allen Schlusseln vollstandig abhangen Somit gilt dass Relationen in der 1NF deren Schlusselkandidat en nicht zusammengesetzt sind sondern lediglich aus jeweils einem einzelnen Attribut en bestehen automatisch die 2NF erfullen In einer Relation R A B ist das Attribut B von dem Attribut A funktional abhangig falls zu jedem Wert des Attributs A genau ein Wert des Attributs B gehort In einer Relation R S1 S2 B ist das Attribut B von den Schlusselattributen S1 und S2 voll funktional abhangig wenn B von den zusammengesetzten Attributen S1 S2 funktional abhangig ist nicht aber von einem einzelnen Attribut S1 oder S2 Diese informelle Definition kann wie folgt prazisiert werden Eine Relation ist genau dann in zweiter Normalform wenn sie in der ersten Normalform ist und fur jedes Attribut a displaystyle a nbsp der Relation gilt a displaystyle a nbsp ist Teil eines Schlusselkandidaten oder a displaystyle a nbsp ist von einem Schlusselkandidaten abhangig unda displaystyle a nbsp ist nicht von einer echten Teilmenge eines Schlusselkandidaten abhangig a displaystyle a nbsp ist voll funktional abhangig von jedem Schlusselkandidaten wobei die Schlusselkandidaten KC auch durch die Kombination mehrerer Attribute gebildet werden konnen Die 2NF eliminiert alle partiellen funktionalen Abhangigkeiten d h kein Nichtschlusselattribut ist funktional abhangig von Teilen des Schlusselkandidaten Falls ein Schlusselkandidat zwei Attribute besitzt konnen bei der Zerlegung in die 2NF hochstens drei Relationen entstehen Falls ein Schlusselkandidat drei Attribute besitzt konnen bei der Zerlegung in die 2NF hochstens sieben Relationen entstehen Das sind jeweils die Anzahl der Teilmengen einer gegebenen Menge minus 1 leere Menge und entspricht der Anzahl der Elemente der Potenzmenge 2 n displaystyle 2 n nbsp als Obergrenze Praktischer Nutzen Bearbeiten Die 2NF erzwingt wesentlich monothematische Relationen im Schema jede Relation modelliert nur einen Sachverhalt Dadurch werden Redundanz und die damit einhergehende Gefahr von Inkonsistenzen reduziert Nur noch logisch sachlich zusammengehorige Informationen finden sich in einer Relation Dadurch fallt das Verstandnis der Datenstrukturen leichter Jedoch wird beim Planen eines Datenmodelles die 2 Normalform meistens ubersprungen daher kommt sie verglichen mit der 1 und 3 Normalform eher selten vor Negativbeispiel 2NF verletzt Bearbeiten CD Lied CD ID Albumtitel Interpret Grundungsjahr Erscheinungsjahr Track Titel4711 Not That Kind Anastacia 1999 2000 1 Not That Kind4711 Not That Kind Anastacia 1999 2000 2 I m Outta Love4711 Not That Kind Anastacia 1999 2000 3 Cowboys amp Kisses4712 Wish You Were Here Pink Floyd 1965 1975 1 Shine On You Crazy Diamond4713 Freak of Nature Anastacia 1999 2001 1 Paid my DuesDer Primarschlussel der Relation ist aus den Feldern CD ID und Track zusammengesetzt Grundsatzlich darf ein Primarschlussel aus mehreren Attributen bestehen jedoch entsteht daraus im genannten Beispiel ein Konflikt Die Felder Albumtitel Interpret und Erscheinungsjahr sind vom Feld CD ID abhangig aber nicht vom Feld Track Dieser Punkt 2 verletzt die 2 Normalform da die drei nicht primaren Attribute nicht nur von einem Teil des Schlussels hier CD ID abhangen durfen Ware der Schlussel nicht zusammengesetzt siehe Punkt 1 so konnte dies nicht passieren Probleme die sich daraus ergeben Bearbeiten Die Informationen aus diesen drei Feldern sind wie am Beispiel der CD Not That Kind zu erkennen mehrfach vorhanden d h redundant Dadurch besteht die Gefahr dass die Integritat der Daten verletzt wird So konnte man den Albumtitel fur das Lied Not That Kind in I Don t Mind andern ohne jedoch die entsprechenden Eintrage fur die Titel I m Outta Love und Cowboys amp Kisses zu andern Update Anomalie CD Lied inkonsistent CD ID Albumtitel Interpret Grundungsjahr Erscheinungsjahr Track Titel4711 I Don t Mind Anastacia 1999 2000 1 Not That Kind4711 Not That Kind Anastacia 1999 2000 2 I m Outta Love4711 Not That Kind Anastacia 1999 2000 3 Cowboys amp Kisses4712 Wish You Were Here Pink Floyd 1965 1975 1 Shine On You Crazy Diamond4713 Freak of Nature Anastacia 1999 2001 1 Paid my DuesIn diesem Fall ware ein Zustand erreicht den man als Dateninkonsistenz bezeichnet Uber die komplette Tabelle betrachtet passen die Daten nicht mehr zusammen Losung Bearbeiten Die Daten in der Tabelle werden in zwei Tabellen aufgeteilt CD und Lied Die Tabelle CD enthalt nur noch Felder die voll funktional von CD ID abhangen hat also CD ID als Primarschlussel Auch der Albumtitel allein sei eindeutig also ein Schlusselkandidat Da keine weiteren zusammengesetzten Schlusselkandidaten existieren liegt die Tabelle damit automatisch in der 2 Normalform vor Die Tabelle Lied enthalt schliesslich nur noch Felder die voll funktional von CD ID und Track abhangen liegt also auch in der 2 Normalform vor Mit Hilfe dieser verlustfreien Zerlegung sind auch die genannten Redundanzen der Daten beseitigt CD CD ID Albumtitel Interpret Grundungsjahr Erscheinungsjahr4711 Not That Kind Anastacia 1999 20004712 Wish You Were Here Pink Floyd 1965 19754713 Freak of Nature Anastacia 1999 2001 Lied CD ID Track Titel4711 1 Not That Kind4711 2 I m Outta Love4711 3 Cowboys amp Kisses4712 1 Shine On You Crazy Diamond4713 1 Paid my DuesDas Attribut CD ID aus der Tabelle Lied bezeichnet man als Fremdschlussel der auf den Primarschlussel der Tabelle CD verweist Zugleich stellen die Attribute CD ID und Track den zusammengesetzten Primarschlussel der Tabelle Lied dar Dritte Normalform 3NF Bearbeiten Erlauterung Bearbeiten Eine Relation befindet sich in der 3 Normalform wenn sie die 2 NF erfullt und keine funktionalen Abhangigkeiten der Nichtschlussel Attribute hellgraue Zellen in der Tabelle untereinander bestehen Solche Abhangigkeiten bezeichnet man auch als transitive Abhangigkeiten Weiterhin mussen alle Nichtschlussel voll funktional abhangig vom Schlusselattribut sein Ein Attribut A 2 displaystyle A 2 nbsp ist vom Schlusselkandidaten P 1 displaystyle P 1 nbsp transitiv abhangig wenn es eine Attributmenge A 1 displaystyle A 1 nbsp gibt sodass P 1 A 1 displaystyle P 1 rightarrow A 1 nbsp und A 1 A 2 displaystyle A 1 rightarrow A 2 nbsp Hierbei handelt es sich um eine Abhangigkeit bei der ein Attribut A 2 displaystyle A 2 nbsp uber eine Attributmenge A 1 displaystyle A 1 nbsp von einem Schlusselkandidaten P 1 displaystyle P 1 nbsp der Relation abhangig ist ohne dass zugleich auch P 1 displaystyle P 1 nbsp direkt von A 1 displaystyle A 1 nbsp abhangig also A 1 displaystyle A 1 nbsp ein Schlusselkandidat ist Das heisst Wenn die Attributmenge A 1 displaystyle A 1 nbsp von der Attributmenge P 1 displaystyle P 1 nbsp abhangt und Attribut A 2 displaystyle A 2 nbsp von A 1 displaystyle A 1 nbsp dann ist A 2 displaystyle A 2 nbsp transitiv abhangig von P 1 displaystyle P 1 nbsp Formal ausgedruckt P 1 A 1 A 1 A 2 P 1 A 2 displaystyle P 1 rightarrow A 1 wedge A 1 rightarrow A 2 Rightarrow P 1 rightarrow A 2 nbsp Einfach gesagt Ein Nichtschlusselattribut darf nicht von einer Menge aus Nichtschlusselattributen abhangig sein Ein Nichtschlusselattribut darf also nur direkt von einem Primarschlussel bzw einem Schlusselkandidaten abhangig sein Siehe auch Transitive Relation Synthesealgorithmus Praktischer Nutzen Bearbeiten Transitive Abhangigkeiten sind sofort ersichtlich ohne dass man die Zusammenhange der Daten kennen muss Sie sind durch die Struktur der Relationen wiedergegeben Ausserdem werden verbliebene thematische Durchmischungen in der Relation behoben nach der 3NF sind die Relationen des Schemas zuverlassig monothematisch Alternative Formulierung Bearbeiten Die dritte Normalform ist erreicht wenn sich das Relationenschema in 2NF befindet und kein Nichtschlusselattribut hellgraue Zellen in der Tabelle Determinante ist Oder Die dritte Normalform ist erreicht wenn sich das Relationenschema in 2NF befindet und kein Nichtschlusselattribut hellgraue Zellen in der Tabelle von einem anderen Nichtschlusselattribut funktional abhangig ist Negativbeispiel 3NF verletzt Bearbeiten CD CD ID Albumtitel Interpret Grundungsjahr Erscheinungsjahr4711 Not That Kind Anastacia 1999 20004712 Wish You Were Here Pink Floyd 1965 19754713 Freak of Nature Anastacia 1999 2001Offensichtlich lasst sich der Interpret einer CD aus der CD ID bestimmen das Grundungsjahr der Band Interpreten hangt wiederum vom Interpreten und damit transitiv von der CD ID ab Das Problem ist hierbei wieder Datenredundanz Wird zum Beispiel eine neue CD mit einem existierenden Interpreten eingefuhrt so wird das Grundungsjahr redundant gespeichert Losung Bearbeiten CD CD ID Albumtitel Interpret Erscheinungsjahr4711 Not That Kind Anastacia 20004712 Wish You Were Here Pink Floyd 19754713 Freak of Nature Anastacia 2001 Kunstler Interpret GrundungsjahrAnastacia 1999Pink Floyd 1965 Lied CD ID Track Titel4711 1 Not That Kind4711 2 I m Outta Love4711 3 Cowboys amp Kisses4712 1 Shine On You Crazy Diamond4713 1 Paid my DuesDiese Losung gilt nur wenn man davon ausgeht dass der Interpret weltweit eindeutig ist Ansonsten musste man eine synthetische ID in der Tabelle Kunstler hinzufugen die dann den Fremdschlussel in der Tabelle CD stellt wie folgt CD CD ID Albumtitel Interpret ID Erscheinungsjahr4711 Not That Kind 311 20004712 Wish You Were Here 312 19754713 Freak of Nature 311 2001 Kunstler Interpret ID Interpret Grundungsjahr311 Anastacia 1999312 Pink Floyd 1965 Lied CD ID Track Titel4711 1 Not That Kind4711 2 I m Outta Love4711 3 Cowboys amp Kisses4712 1 Shine On You Crazy Diamond4713 1 Paid my DuesDie Relation wird aufgeteilt wobei die beiden voneinander abhangigen Daten in eine eigene Tabelle ausgelagert werden Der Schlussel der neuen Tabelle muss als Fremdschlussel in der alten Tabelle erhalten bleiben An der Tabelle Lied wurden keine Anderungen bei der Ubertragung in die 3 Normalform vorgenommen Sie ist hier nur der Vollstandigkeit halber gelistet Boyce Codd Normalform BCNF Bearbeiten Erlauterung Bearbeiten Ein Relationenschema ist in der Boyce Codd Normalform wenn es in der 3NF ist und jede Determinante Attributmenge von der andere Attribute funktional abhangen ein Schlusselkandidat ist oder die Abhangigkeit ist trivial Die BCNF nach Raymond F Boyce und Edgar F Codd verhindert dass Teile zweier aus mehreren Feldern zusammengesetzten Schlusselkandidaten voneinander abhangig sind Die Uberfuhrung in die BCNF ist zwar immer verlustfrei moglich aber nicht immer abhangigkeitserhaltend Die Boyce Codd Normalform war ursprunglich als Vereinfachung der 3NF gedacht fuhrte aber zu einer neuen Normalform die diese verscharft Eine Relation ist automatisch frei von transitiven Abhangigkeiten wenn alle Determinanten Schlusselkandidaten sind Negativbeispiel BCNF verletzt Bearbeiten In diesem Beispiel gibt es eine einfache Datenbank in der die Vereinszugehorigkeit von Sportlern gespeichert wird Es sollen die folgenden Bedingungen gelten jeder Verein bietet nur eine Sportart an ein Sportler kann in verschiedenen Vereinen spielen aber nur wenn diese Vereine unterschiedliche Sportarten anbieten Damit wird sichergestellt dass der Sportler nie gegen einen Verein spielt in dem er selbst Mitglied ist Sportler Name Sportart VereinSchuster Fussball FC MusterhausenLeitner Fussball FC MusterhausenLeitner Eishockey EC BeispielstadtAus den oben genannten Bedingungen folgt dass das Attribut Sportart funktional abhangig vom Attribut Verein ist Verein Sportart d h Verein ist eine Determinante Jedoch ist Verein kein Schlusselkandidat Mogliche Schlusselkandidaten sind Name Verein und Name Sportart Eine Konvertierung in BCNF ist moglich indem Name Verein als Primarschlussel verwendet und die Relation aufgeteilt wird Losung Bearbeiten Sportler Name VereinSchuster FC MusterhausenLeitner FC MusterhausenLeitner EC Beispielstadt Verein Verein SportartFC Musterhausen FussballEC Beispielstadt EishockeyZerlegungsalgorithmus Bearbeiten Es existiert ein Algorithmus der relationale Schemata durch Zerlegung engl decomposition in die Boyce Codd Normalform uberfuhrt Alle Schemata werden dabei solange aufgespalten bis keines mehr die BCNF bricht Jede Aufspaltung erfolgt anhand einer die BCNF verletzenden funktionalen Abhangigkeit Die Attribute der verletzenden Abhangigkeit bilden das erste neue Schema und die restlichen Attribute plus die Determinante ein weiteres Schema Die beiden neuen Schemata enthalten von den ursprunglichen funktionalen Abhangigkeiten lediglich solche welche nur Attribute des jeweiligen Schemas nutzen der Rest geht verloren Folgender Pseudocode beschreibt den Zerlegungsalgorithmus 1 1 Gegeben ist ein relationales Schema R R F displaystyle R overline R mathcal F nbsp mit der Menge aller Attribute R displaystyle overline R nbsp und der Menge der funktionalen Abhangigkeiten F displaystyle mathcal F nbsp uber diesen Attributen 2 Die Ergebnismenge Dekomposition bestehend aus den zerlegten Schemata wird mit R displaystyle R nbsp initialisiert 3 Solange es ein Schema S displaystyle S nbsp in der Menge Dekomposition gibt das nicht in der BCNF ist fuhre folgende Zerlegung aus 4 Sei X Y S displaystyle overline X overline Y subseteq overline S nbsp eine Attributmenge fur die eine funktionale Abhangigkeit X Y displaystyle overline X rightarrow overline Y nbsp definiert ist welche der BCNF widerspricht 5 Ersetze S displaystyle S nbsp in der Ergebnismenge Dekomposition durch zwei neue Schemata S 1 X Y F 1 displaystyle S 1 overline X overline Y mathcal F 1 nbsp ein Schema bestehend nur aus den Attributen der Abhangigkeit welche die BCNF ursprunglich verletzt hat und S 2 S Y X F 2 displaystyle S 2 overline S overline Y cup overline X mathcal F 2 nbsp ein Schema mit allen Attributen ausser denen die nur in der abhangigen Menge Y displaystyle overline Y nbsp und nicht in der Determinante X displaystyle overline X nbsp enthalten sind Die Menge der funktionalen Abhangigkeiten F 1 displaystyle mathcal F 1 nbsp enthalt nur noch die Abhangigkeiten welche lediglich Attribute aus X Y displaystyle overline X overline Y nbsp enthalten entsprechendes gilt fur F 2 displaystyle mathcal F 2 nbsp Damit fallen alle Abhangigkeiten weg welche Attribute aus beiden Schemata benotigen 6 Ergebnis Dekomposition eine Menge von relationalen Schemata welche in der BCNF sind Durchlauf des Algorithmus am obigen Beispiel ohne Darstellung aller trivialen Abhangigkeiten 1 R Name Sportart Verein Name Sportart Verein Verein Sportart Name Verein Name Verein 2 Dekomposition R 3 da R aus Dekomposition nicht die BCNF erfullt mache folgendes 4 5 Verein Sportart ist die Abhangigkeit die die Verletzung der BCNF bedingt damit ist S 1 displaystyle S 1 nbsp Verein Sportart Verein Sportart und S 2 displaystyle S 2 nbsp Name Verein Name Verein Name Verein 6 Ergebnis Dekomposition S 1 S 2 displaystyle text Dekomposition S 1 S 2 nbsp Unterschied zur 3NF Bearbeiten Die BCNF Normalform ist strenger hinsichtlich der erlaubten funktionalen Abhangigkeiten in Relationsschemata in 3NF konnen einige Informationen doppelt vorkommen in der BCNF jedoch nicht Vierte Normalform 4NF Bearbeiten Erlauterung Bearbeiten Ein Relationenschema ist dann in der 4 Normalform wenn es in der BCNF ist und nur noch triviale mehrwertige Abhangigkeiten MWA enthalt Einfach ausgedruckt Es darf innerhalb einer Relation nicht mehrere 1 n oder m n Beziehungen zu einem Schlusselwert geben die thematisch inhaltlich nichts miteinander zu tun haben Gehort etwa zu einem Schlusselwert i mal Attribut a aber davon unabhangig auch j mal Attribut b ist die 4NF verletzt Anschaulich ausgedruckt Die 4NF untersucht n are Beziehungen mehr als zwei Tabellen stehen gleichzeitig in Beziehung und ob diese korrekt modelliert wurden Negativbeispiel 4NF verletzt Bearbeiten Besitzt Personnummer Haustier Fahrzeug1 Katze Volkswagen1 Katze Ferrari1 Hamster Volkswagen1 Hamster Ferrari2 Hund PorscheZu einer Personennummer gibt es mehrere Haustiere und Fahrzeuge Haustiere und Fahrzeuge einer Person haben aber prinzipiell nichts miteinander zu tun man sagt sie sind voneinander unabhangig Als Primarschlussel kommt nur eine Kombination aus allen drei Attributen in Frage somit ist die Tabelle in 3NF Personnummer Haustier ist dabei eine mehrwertige Abhangigkeit Personnummer Fahrzeug auch Da diese beiden MWAs unabhangig voneinander sind ist die 4NF verletzt nbsp Beispiel 4NFDie Beispielgrafik zeigt die fehlerhafte Modellierung der mehrwertigen Abhangigkeiten und die korrekte Losung Zwischen Haustier und Fahrzeug besteht keine Beziehung somit war die Beziehung besitzt falsch modelliert Losung Bearbeiten Futtert Personnummer Haustier1 Katze1 Hamster2 Hund Fahrt Personnummer Fahrzeug1 Volkswagen1 Ferrari2 PorscheHinweis Bearbeiten Folgendes Relationsschema erfullt die 4NF obwohl auch hier mehrere MWAs vorliegen Elternschaft Person Partner Kind1 2 Gabi1 88 Peter1 99 Hilbert2 1 Gabi2 77 HansPerson Partner und Person Kind sind zwar zwei MWAs aber diese beiden sind auch untereinander abhangig Partner Kind Solche untereinander abhangigen MWAs werden erst in 5NF gelost Funfte Normalform 5NF Bearbeiten Erlauterung Bearbeiten Eine Relation ist in 5NF wenn sie in der 4NF ist und keine mehrwertigen Abhangigkeiten enthalt die voneinander abhangig sind Einfach ausgedruckt Es darf innerhalb einer Relation nicht mehrere 1 n oder m n Beziehungen zu einem Schlusselwert geben die thematisch inhaltlich miteinander verknupft sind Gehort etwa zu einem Schlusselwert i mal Attribut a aber davon abhangig auch j mal Attribut b ist die 5NF verletzt Die 5NF verlangt also vereinfachte Relationen aus denen aber durch Projektions und Verbundoperationen alle Informationen der ursprunglichen Relation wiederherstellbar sein mussen Sie ist somit sehr generell gehalten und dadurch vorerst die letzte Normalform So konnen Relationen in einzelne Abfragen aufgeteilt werden und durch spatere Verbundsoperationen wieder zusammengefugt werden wobei eine Teilmenge des so genannten kartesischen Produkts entsteht Die 5NF unterstutzt in soweit die Konsistenz als dass sich durch das Aufteilen auch neue Kombinationen ergeben konnen falls beim Hinzufugen einer Information sich theoretisch auch andere Kombinationen ergeben wurden die aber nicht berucksichtigt werden wenn alle Attribute in einer einzigen Tabelle der Relation stehen Negativbeispiel 5NF verletzt Bearbeiten Die folgende Relation zeigt welche Lieferanten welche Bauteile an welches Projekt liefern konnen Lieferant Teil ProjektMuller Schraube Projekt 1Muller Nagel Projekt 2Maier Nagel Projekt 1Die Relation muss weiter zerteilt werden denn es ist auch vom Projekt abhangig welche Teile bei diesem benotigt werden Wichtig ist auch dass sich die Relation aufteilen lasst ohne dass Informationen verloren gehen Losung Bearbeiten Um diese Relation in die 5 Normalform umzuwandeln mussen drei Relationen erstellt werden Lieferant Teil Teil Projekt und Lieferant Projekt Welche Teile kann welcher Lieferant liefern Lieferant Teil Lieferant TeilMuller SchraubeMuller NagelMaier NagelWelche Teile werden von welchem Projekt benotigt Teil Projekt Teil ProjektSchraube Projekt 1Nagel Projekt 2Nagel Projekt 1Welche Projekte konnen von welchem Lieferanten beliefert werden Lieferant Projekt Lieferant ProjektMuller Projekt 1Muller Projekt 2Maier Projekt 1Hinweis Bearbeiten Anders als bei der Umformung zwischen den bisherigen Normalformen wird durch diese Umwandlung etwas anderes durch die neuen Relationen ausgedruckt als zuvor in der 4 Normalform Das merkt man leicht wenn man die drei Relationen aus dem Beispiel oberhalb wieder vereinigt Lieferant Teil ProjektMuller Schraube Projekt 1Muller Nagel Projekt 2Muller Nagel Projekt 1Maier Nagel Projekt 1Neu ist das Tupel Muller Nagel Projekt 1 Denn Muller konnte theoretisch das Projekt 1 mit Nageln beliefern da er auch Projekt 2 mit Nageln beliefert und Projekt 1 auch Nagel benotigt die jedoch bisher von Maier geliefert wurden Die Uberfuhrung in 5NF ist also nur dann moglich wenn man die Moglichkeiten der Verbindungen aus drei Beziehungen ausdrucken mochte und nicht eine konkrete Verbindung zwischen den dreien haben mochte Diese Aufteilung ergibt bei der richtigen Anwendung neue Informationen wie hier dass Muller Projekt 1 auch mit Nageln beliefern konnte Bemerkungen BearbeitenSchwachen im Datenmodell aufgrund fehlender Normalisierung konnen neben den typischen Anomalien einen hoheren Aufwand bei einer spateren Weiterentwicklung bedeuten Andererseits kann beim Datenbankentwurf aus Uberlegungen zur Performance bewusst auf Normalisierungsschritte verzichtet werden Denormalisierung Typisches Beispiel dafur ist das Sternschema im Data Warehouse Die Erstellung eines normalisierten Schemas wird durch automatische Ableitung aus einem konzeptuellen Datenmodell gestutzt hierzu dient in der Praxis ein erweitertes Entity Relationship Modell ERM oder ein Klassendiagramm der Unified Modeling Language UML als Ausgangspunkt Das aus dem konzeptionellen Entwurf abgeleitete Relationenschema kann dann mit Hilfe der Normalisierungen uberpruft werden es existieren jedoch Formalismen und Algorithmen die diese Eigenschaft bereits sicherstellen konnen Statt des ursprunglichen von Peter Chen 1976 entwickelten ER Modells werden heute erweiterte ER Modelle verwendet Das Structured ERM SERM das E3R Modell das EER Modell sowie das von der SAP AG verwendete SAP SERM Befindet sich ein Relationenschema nicht in der 1NF so nennt man diese Form auch Non First Normal Form NF oder Unnormalisierte Form UNF Der Prozess der Normalisierung und Zerlegung einer Relation in die 1NF 2NF und 3NF muss die Wiederherstellbarkeit der ursprunglichen Relation erhalten das heisst die Zerlegung muss verbundtreu und abhangigkeitstreu sein Merkregeln BearbeitenIst die Relation in 1 Normalform und besteht der Primarschlussel aus nur einem Attribut und gibt es keinen anderen Schlussel der aus mehreren Attributen besteht so liegt automatisch die 2 Normalform vor Ist eine Relation in 2 Normalform und besitzt sie ausser dem Primarschlussel hochstens ein weiteres Attribut das nicht Teil eines Schlussels ist so liegt die Tabelle in 3 Normalform vor Literatur BearbeitenRamez Elmasri Shamkant B Navathe Grundlagen von Datenbanksystemen Pearson Studium 2002 ISBN 3 8273 7021 3 Alfons Kemper Andre Eickler Datenbanksysteme Eine Einfuhrung Oldenbourg Munchen 2004 ISBN 3 486 27392 2 Stefan M Lang Peter C Lockemann Datenbankeneinsatz Springer Berlin u a 1995 ISBN 3 540 58558 3 Weblinks BearbeitenDer Konigsweg Normalisierung Hochschule der Medien Stuttgart Grundlagen der Datenbanknormalisierung Microsoft Hilfe und Support Normalisierung von Datenbanken Richard Wossidlo Gymnasium Ribnitz Damgarten Erklarung der Normalformen Ziemer s InformatikEinzelnachweise Bearbeiten Philip M Lewis Arthur Bernstein Michael Kifer Databases and transaction processing an application oriented approach Addison Wesley 2002 ISBN 0 201 70872 8 S 232 Abgerufen von https de wikipedia org w index php title Normalisierung Datenbank amp oldid 237637698