Relationale Datenbanken

  • bestehen aus Tabellen
  • Tabelle hat Einträge (in Zeilen)
  • Tabelle speichert Auswahl an Eigenschaften für jeden Eintrag (in Spalten)
  • jeder Eintrag hat einen eindeutigen Schlüssel (einzelne Eigenschaft, oder Kombination aus Eigenschaften) = Primary Key
  • Schlüssel ist oft eine fortlaufende ID
  • Tabellen können über den Schlüssel miteinander verbunden sein (Schlüssel als Eigenschaft in anderer Tabelle) = Foreign Key

Beispiel (Schlüssel unterstrichen):

Student

MatrikelNrVornameNachnameStudiengangSemester
123456KlausMeng22
234567VerenaRist16

Veranstaltung

IDNameFakultät
1C#2
2Zeichnen1

Studiengang

IDNameFakultät
1MIB1
2OMB1
3MKB1

Fakultät

IDName
1DM
2IN

Belegung

StudentVeranstaltung
1234561
1234562

Normalisierung

  • Datensätze auf mehrere Tabellen aufteilen, um Redundanzen zu vermeiden und daraus resultierende Inkonsistenzen (ungleiche Angaben zur gleichen Information)
  • erste Normalform:
    • Spalte soll immer nur Einzelwert beinhalten
    • z. B. Name in Vorname, Nachname aufteilen
  • zweite Normalform:
    • Tabelle soll immer nur einen Sachverhalt abbilden
    • Nichtschlüssel müssen von allen Schlüsseln abhängig sein
    • z. B. Student und Veranstaltung in getrennte Tabellen,
      • da Name, Studiengang, Fakultät, Semester nur von MatrikelNr abhängig, nicht von VeranstaltungsId
      • und VeranstName, VeranstFakultät nur von VeranstaltungsId abhängig, nicht von MatrikelNr
    • Verbindung der getrennten Tabellen durch Fremdschlüssel, z. B. weitere Tabelle für Belegung (MatrikelNr + VerantaltungsId)
  • dritte Normalform:
    • Tabellen sollen nur direkte Abhängigkeiten beinhalten
    • Nichtschlüssel dürfen nicht voneinander abhängig sein
    • z. B. Studiengang und Fakultät in eigene Tabelle, da MatrikelNr -> Studiengang und Studiengang -> Fakultät
      Transitive Abhängigkeit: aus der Abhängigkeit a -> b und b -> c folgt, dass auch a -> c
  • gibt noch vierte und fünfte Normalform, um weitere Redundanzen zu vermeiden

Nicht normalisierte Tabelle:

Student

MatrikelNrNameStudiengangFakultätSemesterVeranstaltungsIdVeranstNameVeranstFakultät
123456Klaus MengOMBDM21C#IN
123456Klaus MengOMBDM22ZeichnenDM
234567Verena RistMIBDM6