NORMALFORMEN bei Datenbanken einfach erklärt (1. bis 3. Normalform) IT & Medien einfach erklärt https://www.youtube.com/watch?v=caMVrHP-SIs Transkript (automatisch erstellt) 0:00 [Musik] wir haben im letzten Video bereits festgestellt dass Datenbanken zwei 0:10 wichtige Voraussetzungen haben Datenkonsistenz und redundanzfreiheit dafür packen wir nicht alle Daten in eine Tabelle sondern 0:20 teilen Sie auf mehrere Tabellen auf das nennt man Normalisierung und man unterscheidet zwischen mehreren Normalformen gehen wir von folg Beispiel 0:30 aus eine Druckerei speichert Aufträge in einer Tabelle mit AUFTRAGSNUMMER Datum Kunde Anschrift und 0:39 Produkten bei dieser Datenbank würden einige Probleme auftauchen möchte ich z.B lokale Werbung machen und deshalb alle Daten nach postlerzahl Filtern ist 0:50 das hier nicht einfach möglich da die komplette Anschrift in einem Datenfeld gespeichert wurde auch das Attribut Produkt weist 0:59 hier möglich erweise mehrere Produkte pro Bestellung auf auch haben wir redondanzen in der Datenbank denn die komplette Anschrift eines Kunden kann 1:08 öfter vorkommen wenn er mehrere Aufträge aufgegeben hat und außerdem steht unter Kunde immer Firma dabei würde sich hier jemand z.B als Betrieb beschreiben wäre 1:20 das ein Problem die Tabelle lässt sich recht einfach in die erste Normalform bringen denn eine Tabelle befindet sich in der 1:27 ersten Normalform wenn jedes Datenfeld nur einen Eintrag enthält wir teilen also die Anschrift in einzelne Attribute auf und Produkte werden auch in einzelne 1:38 Datensätze gespeichert sod dass ich beispielsweise alle Aufträge Filtern könnte in denen ein Flyer bestellt wurde für Straße und Hausnummer machen wir 1:48 hier übrigens eine Ausnahme denn es würde sich in unserem Fall kaum lohnen das Attribut in zwei aufzuteilen viel zu gering wären die Situationen wo wir noch 1:57 Hausnummern oder dem reinen Straßennamen filtern würden problematisch ist diese Tabelle aber trotzdem wir haben sogar mehrere redondanzen als bei der 2:06 vorherigen Tabelle klar denn wir haben ja alle Informationen aufgeteilt außerdem sind die Datensätze nicht mehr konsistent denn wir haben die 2:15 Auftragsnummer die ja vorher dazu diente einen Datensatz eindeutig zu erkennen mehrmals in diesem Beispiel weil mit einem Auftrag mehrere Produkte bestellt 2:25 wurden und wir diese einzeln erfassen wir bring die Tabelle also besser in die zweite Normalform die zweite Normalform setzt alles voraus was die erste 2:35 Normalform vorausgesetzt hat und zusätzlich müssen alle Datenfelder von einem sogenannten Schlüssel funktional abhängig sein was bedeutet nun 2:45 funktional abhängig in unserem Fall teilen wir die bisherige Tabelle in zwei auf Aufträge und Produkte in der produkttabelle weisen wir allen 2:56 verfügbaren Produkten eine Produktnummer zu das ist der Schlüssel für die Produkte statt Flyer schreiben wir in den Auftrag beispielsweise nicht Flyer 3:06 sondern die Produktnummer das Produkt wäre also von der Produktnummer funktional abhängig dann speichere ich dass ein Kunde nicht die ein dann die 3:16 zwei bestellt hat ändert sich auch das bestellte Produkt in der Tabelle Aufträge haben wir also einen kombinierten Schlüssel denn die 3:23 Auftragsnummer kommt in mehreren Datensätzen vor und auch die Produktnummer kommt in mehreren Datensätzen vor aber die Kombination aus 3:31 Auftragsnummer und Produktnummer gibt es hier nur einmal nun haben wir aber immer noch redondanzen denn die Kundendaten sind 3:38 immer noch mehrmals vorhanden etwa dann wenn ein Kunde öfter bzw mehrere Produkte bestellt in der dritten Normalform werden also die restlichen 3:48 Redundanzen beseitigt die dritte Normalform wird erreicht wenn die Voraussetzung der zweiten Normalform erfüllt sind und zusätzlich alle 3:57 Datenfelder die kein Schlüssel sind für nicht funktional abhängig sind klingt kompliziert bedeutet aber einfach nur folgendes in unserer bisherigen Tabelle 4:07 sind Datenfelder voneinander funktional abhängig denn zur Firma Meer gehört die Hauptstraße 4 in 93047 Regensburg Meer ist aber kein seltener Name sobald eine 4:19 andere Firma namens Meer etwas bestellt können wir sie nicht mehr eindeutig unterscheiden deshalb wird nochmals eine neue Tabelle eröffnet die Kunden in 4:28 dieser Tabelle sehen wir jeden einzelnen Kunden mit einer eindeutigen Kundennummer dem Schlüssel für diese Tabelle wir haben nun drei Tabellen die 4:37 Kunden die Aufträge und die Produkte die produkttabelle bleibt gleich denn hier hatten wir keine Redundanzen mehr in der Auftragstabelle speichern wir nur noch 4:48 die Auftragsnummer die Produktnummer das Datum und die Kundennummer warum darf das Datum in der Tabelle stehen bleiben weil es nicht funktional abhängig ist 4:57 wir erinnern uns da Datenfelder die keine Schlüssel sind dürfen nicht funktional abhängig sein ändere ich beispielsweise die 5:05 Kundenadresse oder die bestellten Produkte hat das keine Auswirkungen auf das Datum also noch mal die Zusammenfassung erste Normalform jedes 5:15 Datenfeld hat nur einen Eintrag zweite Normalform erste Normalform plus alle Datenfelder müssen von einem Schlüssel funktional abhängig sein dritte 5:26 Normalform zweite Normalform plus alle Datenfelder außer Schlüssel dürfen nicht funktional abhängig sein übrigens gibt es auch noch weitere Normalform diese 5:38 sind aber schon relativ komplex und würden den Rahmen des Videos sprengen die wichtigsten Normalformen zu wissen sind definitiv 1 bis 5:46 [Musik] 3 FE 6:02 ل