Normalisierung einer relationalen Datenbank - Normalformen 1 bis 3

Поделиться
HTML-код
  • Опубликовано: 9 июл 2024
  • Aufzeichnung eines Lehrgesprächs mit meinen Azubis (Fachinformatiker:in Anwendungsentwicklung) zur Normalisierung einer relationalen Datenbank. Das Thema ist insb. relevant für die IHK-Abschlussprüfung Teil 2 für Anwendungsentwickler:innen.
    00:00 Einführung
    00:35 Einleitung
    01:35 Warum normalisiert man Datenbanken?
    02:48 Redundanzen vermeiden
    03:03 Anomalien
    04:18 Änderungsanomalie
    05:43 Methodik der Normalisierung
    07:23 Nicht-Atomarität & Wiederholungsgruppen
    09:45 Wiederholungsgruppen
    10:26 Nicht-atomare Werte
    12:27 1. Normalform
    13:44 Redundanz einführen
    14:38 1. Normalform prüfen
    15:22 Vorteile der 1. Normalform
    16:07 Primärschlüssel
    19:52 2. Normalform
    21:26 Abhängigkeit von Teilschlüsseln
    22:35 Definition der 2. Normalform
    24:04 Ergebnis der 2. Normalform
    25:36 m:n-Zuordnungstabellen
    28:38 Kontrolle der 2. Normalform
    30:31 m:n-Beziehungen auflösen
    31:25 Definition der 2. Normalform
    32:21 Fremdschlüssel
    34:26 3. Normalform
    36:24 Transitive Abhängigkeiten
    39:55 Ergebnis der 3. Normalform
    41:51 1:n-Beziehungen auflösen
    43:40 Review des Ergebnisses
    44:54 Antwort auf Frage nach Normalisierung
    45:43 Normalisierung üben
    46:54 Speicher sparen durch Normalisierung?

Комментарии • 75

  • @User-fc7iw
    @User-fc7iw Месяц назад

    Ich kommentiere selten, aber das ist mir ein Bedürfnis. Wirklich super erklärt, mit wichtigem Inhalt und aufs Wesentliche fokussiert, Vielen Dank!

  • @BadRix90
    @BadRix90 4 месяца назад +6

    ich hab in 50 Minuten hier mehr gelernt als in 1 1/2 Jahren Umschulung. Vielen Dank! 👌

    • @StefanMacke
      @StefanMacke  4 месяца назад

      Das freut mich sehr! 😄

  • @marcelleusch5915
    @marcelleusch5915 9 месяцев назад +7

    Mega, dass du uns das hier kostenlos zur Verfügung stellst! Hilft mir sehr für unsere Azubis!

    • @StefanMacke
      @StefanMacke  9 месяцев назад

      Gern geschehen! Freut mich, wenn ich helfen kann.

  • @emmarosscyubahiro5943
    @emmarosscyubahiro5943 2 месяца назад +1

    Die beste Erklärung zur Normalisierung, die ich je gehört habe. Top! 👌.Danke

  • @Livy2964
    @Livy2964 20 дней назад

    Wunderbare Video ich hab 2 mal geschaut und notizen gemacht supi erklärkt danke danke danke!

  • @CTSB99
    @CTSB99 2 месяца назад

    Morgen ist die Prüfung, wenn ich bestehe dann haben deine Videos auf jeden Fall mehr dazu beigetragen als viele vergeudete Stunden in der Berufsschule, dankechön

    • @StefanMacke
      @StefanMacke  2 месяца назад

      Ich wünsche dir viel Erfolg!

  • @Qahnung
    @Qahnung 9 месяцев назад +2

    Schreibe in einem Jahr meine Prüfungen und bin ihnen sehr dankbar für ihre Videos. Freue mich auf mehr :D

    • @StefanMacke
      @StefanMacke  9 месяцев назад +1

      Ich drücke dir die Daumen! :-)

  • @Le_M_Le_M
    @Le_M_Le_M 7 месяцев назад +2

    Sehr unterschätztes Video, meine Lehrerin hat dieselbe Tabelle benutzt, aber sie hat es nicht so gut erklärt wie du. Möge Gott dich segnen.

    • @StefanMacke
      @StefanMacke  7 месяцев назад

      Danke, das freut mich sehr!

  • @masonatkinson2682
    @masonatkinson2682 6 месяцев назад +1

    Hallo Herr Macke. Vielen Dank für die zahlreichen informativen Videos zum Thema IT! Diese haben mir bisher sehr weitergeholfen. Man darf dabei aber eines nicht vergessen: Chuck Norris bekommt bei Praktiker 20 Prozent auf alles. Auch auf Tiernahrung!

    • @StefanMacke
      @StefanMacke  6 месяцев назад +1

      Hehe 😄 Ich werde beim nächsten Mal dran denken!

  • @Kl3XY_DEV
    @Kl3XY_DEV 5 месяцев назад

    DANKE, du bist der erste wo ich es tatsächtlich verstehen konnte
    wünschte meine lehrer wären nur so gut -.-

    • @StefanMacke
      @StefanMacke  5 месяцев назад

      Danke für das Feedback. Gern geschehen! 😊

  • @justinwiebe8171
    @justinwiebe8171 7 месяцев назад

    Du hast mir bisher so sehr geholfen, deine Videos und deine Tipps in deinem Podcast sind der Hammer, ich empfehle allen die eine IHK Prüfungen abgelegen wollen den Podcast, die Website, diese Videos und einen vorbereitungskurs der IHK. Danke für diese Tipps und deine Erfahrungen ❤

    • @StefanMacke
      @StefanMacke  7 месяцев назад +1

      Danke für dein Feedback. Das freut mich sehr. 😊

  • @KarMa-ws3ll
    @KarMa-ws3ll 6 месяцев назад

    Vielen Dank, habe es jetzt endlich verstanden, statt nur auswendig gelernt!

  • @rebornyamada9324
    @rebornyamada9324 5 месяцев назад

    Schreibe morgen meine Klausur in datenbanken und das hat mir sehr gut geholfen es besser zu verstehen.

    • @StefanMacke
      @StefanMacke  5 месяцев назад

      Dann wünsche ich dir viel Erfolg!

  • @dironin2363
    @dironin2363 6 месяцев назад

    Vielen Dank, Herr Macke, alles sehr gut erklärt!

    • @StefanMacke
      @StefanMacke  6 месяцев назад

      Danke für das Feedback. Das freut mich.

  • @timaya6
    @timaya6 5 месяцев назад

    Stefan du bist der beste danke vielmals

  • @Ohykha
    @Ohykha 5 месяцев назад

    Krass gut erklärt, vor allem der part mit Normalisierung der Datenbanken

    • @StefanMacke
      @StefanMacke  5 месяцев назад

      Freut mich, dass ich helfen kann! 😊

  • @aaronkatzmann2992
    @aaronkatzmann2992 7 месяцев назад

    Mega Video

    • @StefanMacke
      @StefanMacke  7 месяцев назад

      Danke, das freut mich! :-)

  • @nicohunger2729
    @nicohunger2729 9 месяцев назад

    heißt das, dass wenn die tabellen in der 3. Normalform vorliegen, dann bestehen nur noch 1:1 Beziehungen? hab das jetzt so verstanden, dass m:n bei der umstellung auf die 2. NF aufgelöst wird und 1:n bei der umstellung auf die 3. NF. sehe ich das richtig? danke für die wirklich sehr guten videos und podcasts.

    • @StefanMacke
      @StefanMacke  9 месяцев назад +1

      Nein, die Kardinalitäten zwischen den Entitäten ändern sich nicht durch die Normalformen, nur ihre Abbildung in Tabellen. Aus einer m:n-Beziehung wird keine 1:1-Beziehung, sondern quasi zwei 1:n-Beziehungen.
      Und ja, die m:n-Beziehungen werden auf NF2 aufgelöst und 1:n auf NF3. Es können aber auch mal 1:n in der NF2 dabei sein, wie @carnaqe1154 schon schrieb.

  • @awoolf
    @awoolf 8 месяцев назад

    Gibt es irgendwo einen Ort, wo die Themen und evtl sogar m;glichen aufgaben stehen?

    • @StefanMacke
      @StefanMacke  8 месяцев назад

      it-berufe-podcast.de/GAP1

  • @christopher_deer
    @christopher_deer 4 месяца назад

    Vielen Dank für dieses Video! Das hat mir sehr geholfen!
    Ich habe eine Frage, welche bei mir auf einem Übungsblatt vorkommt. Welche Redundanzen sind denn jeweils noch in der 1. und 2. NF, vor der Überführung in die 3. NF möglich?
    Sind nicht tatsächlich alle 3 Anomalien noch möglich vor der 3. NF? (Einfüge-, Update-, Löschanomalie)

    • @StefanMacke
      @StefanMacke  4 месяца назад +1

      In der 1. NF sind die Tabellen quasi voll mit Redundanzen. Die wurden ja sogar explizit eingeführt, um Wiederholungsgruppen aufzulösen. Und in der 2. NF führen die transitiven Abhängigkeiten zu Redundanzen. Beispiel: Mehrere Artikel haben die gleiche Artikelgruppe mit dem gleichen Namen/Rabatt, die mehrfach identisch in der Tabelle stehen.

    • @christopher_deer
      @christopher_deer 4 месяца назад

      Vielen Dank! :) @@StefanMacke

  • @carnaqe1154
    @carnaqe1154 9 месяцев назад

    wurde nicht in der 2. Normalform auch schon eine 1 : N Beziehung aufgelöst mit Kunde und Bestellung? Fremdschlüssel in Bestellung?

    • @StefanMacke
      @StefanMacke  9 месяцев назад +1

      Ja, das stimmt. Nur die Begründung ist eine andere (Abhängigkeit vom Teilschlüssel statt transitiver Abhängigkeit).

  • @schlachs4hn316
    @schlachs4hn316 3 месяца назад

    Ist es in der 3. Normalform nicht theoretisch auch richtig, eine neue Tabelle für PLZ & Ort zu schaffen? Da diese ja theoretisch auch redundant auftreten können, da mehrere Kunden aus z.B. Köln kommen können.

    • @StefanMacke
      @StefanMacke  3 месяца назад +1

      Wie würde diese Tabelle denn deiner Meinung nach aussehen? Denk daran, dass PLZ Ort eine m:n-Kardinalität hat.

    • @schlachs4hn316
      @schlachs4hn316 3 месяца назад

      Quasi dass Kunde die selben Attribute hat wie bisher, nur dass PLZ in Kunde ein FK ist und in der neuen Tabelle, ich nenne sie mal "Ort" PLZ der PK ist und Ort somit davon abhängig ist. An sich macht das ja keinen großen Unterschied. Aber wäre das auch richtig für die dritte Normalform oder wäre dies nicht gültig?@@StefanMacke

    • @StefanMacke
      @StefanMacke  3 месяца назад +1

      @@schlachs4hn316 Das geht leider so nicht. PLZ kann kein PK werden, weil sie nicht eindeutig ist. Es gibt mehrere Orte, die die gleiche PLZ haben und umgekehrt. Wie gesagt: m:n

  • @thacreepwalk
    @thacreepwalk Месяц назад

    Müste die 1NF nicht heißten: atomare Werte, keine wdh-Gruppen und Bestimmung eines Primärschlüssels? Weil es könnte ja sein, dass die Tabelle in der 0.ten NF, die vorliegt, keinen Primärschlüssel hat. Oder liege ich da falsch?

    • @StefanMacke
      @StefanMacke  Месяц назад +1

      Den Primärschlüssel solltest du festlegen, das stimmt. Das ist aber nicht direkt Teil der Normalisierung, bei der es ja um die Vermeidung von Redundanzen geht. Und Schlüssel einzuführen verringert nicht die Redundanz. Dennoch ist das ein logischer Schritt, den du in der Praxis in der 1. NF durchführst.

    • @thacreepwalk
      @thacreepwalk Месяц назад

      @@StefanMacke Ah ok, danke 🙂👍

  • @fightForYourExistence
    @fightForYourExistence 3 месяца назад

    asserta = am Anfang & oben auf der Datenhalde vs. assertz = zuhinterst und ganz unten des Daten Heaps
    ... : Normalisierung wäre eine Vereinheitlichung der Datenspeicherung

    • @StefanMacke
      @StefanMacke  3 месяца назад

      Sorry, keine Ahnung was du damit sagen willst.

  • @tanero6922
    @tanero6922 9 месяцев назад

    Danke für das tolle Video. Was mich bei solchen Beispielen nur etwas stört, ist, dass sie nicht ganz praxistauglich sind. Was ist z.B. wenn der Kunde umzieht und eine neue Adresse hat. Wenn ich das in deinem Beispiel im Kundenstamm ändere, habe ich die Adressen von allen bereits bestehenden und abgeschlossenen Bestellungen auch geändert. Ich komm dann nie wieder an die alte Adresse. Was macht man da?

    • @StefanMacke
      @StefanMacke  9 месяцев назад +1

      Für eine Einführung muss das Beispiel etwas einfacher sein. :-) Die von dir geschilderte Anforderung ist eine "Adresshistorie", bei der du eine m:n-Beziehung zwischen Kunde und Adresse hast. Die wird dann meist über eine Zuordnungstabelle mit zusätzlichen Informationen wie "gültig ab" und "gültig bis" ergänzt. Die Details kann ich hier jetzt nicht im Kommentar darlegen.

  • @gamernicky4808
    @gamernicky4808 4 месяца назад

    Wäre dann nicht "KundenNr->PLZ->Ort" auch noch transitiv? Wenn ich zwei Kunden aus einem Ort hätte, hätte ich somit weiterhin Redundanz... (oder Fahrradkette ;?)

    • @StefanMacke
      @StefanMacke  4 месяца назад +1

      Ui, klassische Fehlannahme! PLZ/Ort ist eine m:n-Beziehung. Du kannst aus der PLZ nicht direkt auf den Ort schließen und auch nicht umgekehrt.

    • @Voidyz
      @Voidyz 2 месяца назад

      @@StefanMacke In einer Prüfung des U-Form verlages war genau dies der Fall. Dort wurde erwartet, eine weitere Tabelle "Ort" zu erstellen in welcher man die Spalten "OrtID" "PLZ" und "Ort" hat. Wäre das denn richtig? Außerdem zu dem Thema speichersparen: Auch dazu war eine Frage im U-Form Heft. Da war die "Lösung" dass die Normalisierung zu einem Höheren speicherverbrauch führt, da man mehrere Tabellen hat.

    • @StefanMacke
      @StefanMacke  2 месяца назад

      In dieser Tabelle wäre ja die OrtID der eindeutige PK, also richtig so. Mehr Speicherplatz wegen mehr Tabellen!? Quatsch meiner Meinung nach. Nicht die Tabellen kosten Speicher, sondern die enthaltenen Daten.

    • @Voidyz
      @Voidyz 2 месяца назад

      @@StefanMacke Aber die OrtID könnte man ja auch in Ihrer Tabelle anlegen oder nicht? In der aufgabe des U-Form war diese auch nicht von Anfang an gegeben sondern man sollte diese selbst erstellen

    • @StefanMacke
      @StefanMacke  2 месяца назад

      @@Voidyz Ja, aber was soll das bringen? Dadurch sparst du ja keine Redundanz!?

  • @saftladentv4366
    @saftladentv4366 9 месяцев назад

    Sie haben anfänglich erwähnt, dass es manchmal sinnvoll ist, Datenbanken nicht zu normalisieren.
    Haben Sie dafür noch ein Bsp.?
    Abgesehen von dem Aufwand, der durch eine Normalisierung entstehen könnte

    • @StefanMacke
      @StefanMacke  9 месяцев назад

      Durch die Normalisierung werden oft bereits bei "simplen" Abfragen viele Tabellen gejoint, da die Daten auf mehrere Tabellen verteilt und wieder verknüpft werden müssen. Diese Operationen sind recht teuer. Wenn man eine schnelle Massenverarbeitung braucht, kann es sinnvoll sein, die Datenbank zu denormalisieren und dann mit einfachen SELECTs ohne JOIN zu arbeiten. Beispiel: Data Warehouse.

    • @saftladentv4366
      @saftladentv4366 9 месяцев назад

      @@StefanMacke Viel Dank für die schnelle Antwort!

  • @dereine7193
    @dereine7193 4 месяца назад

    also ehrlich jetzt, das waren 20% auf tiernahrung früher ;)

  • @snakecaseofficial
    @snakecaseofficial 2 месяца назад

    "atomar" kommt etymologisch vom altgriechischen Wort "atomos", was "unteilbar" bedeuted...

    • @StefanMacke
      @StefanMacke  2 месяца назад

      Da hast du recht! Hier steht es auch nochmal: de.wikipedia.org/wiki/Atom

  • @ramon2282
    @ramon2282 2 месяца назад

    Ich bin sad. Du hast für die 3. NF PLZ und Ort vergessen. Und bei der 1. NF Straße und Hausnummer.🥲

    • @StefanMacke
      @StefanMacke  2 месяца назад

      Ich bin sad, dass du PLZ/Ort nicht als m:n erkennst. :-P Und Straße/Hausnummer habe ich im Video begründet (glaube ich).

    • @ramon2282
      @ramon2282 2 месяца назад

      @@StefanMacke Ok, hat bisschen gedauert bis ich mich richtig in die Aufgabe hinein gedacht habe. Ja, du hast recht man braucht keine aufteilung, weil entweder nimmt man einen Zusammengesetzten Primärschlüssel aus PLZ und Ort und dann wird die Tabelle überflüssig oder man nimmt eine PLZ_Ort_Nummer.
      Zu zweiterem: kann sein, hab nur durchgeskippt.

    • @ramon2282
      @ramon2282 2 месяца назад

      @@StefanMacke Finde aber echt erschreckend, dass ich das insgesamt 3 Mal im Unterricht hatte und es niemandem aufgefallen ist. 1 mal im Informaik Abi und 2 mal in der Ausbildung.

    • @StefanMacke
      @StefanMacke  2 месяца назад

      @@ramon2282 So sieht es aus! :-) Aber du bist nicht der erste, der PLZ/Ort so nicht auf dem Schirm hatte.