Datenbank Theoretische Grundlagen

Jörg Brandeis

(C) Brandeis Consulting

Inhalte

  • Relationale Datenmodelle
  • Entity Relationship Modelle (ERMs)
  • Normalformen
  • Schlüsselbildung, Beziehungen und Notationsformen
  • Kardinalität
  • Datenbanktechnologie (Schema, Tabellen, Views, …)
(C) Brandeis Consulting

Was ist eine Datenbank?

Definition und Bedeutung

  • Eine Datenbank ist eine organisierte Sammlung von Daten, die elektronisch gespeichert und verwaltet wird.
  • Ermöglicht das schnelle Speichern, Abrufen und Verwalten großer Datenmengen.
  • Wird genutzt, um Informationen strukturiert und effizient verfügbar zu machen.

Beispiele aus der Praxis

  • Online-Shops: Speicherung von Kundendaten, Bestellungen und Produktinformationen.
  • Banken: Verwaltung von Kontoständen, Transaktionen und Kundendaten.
  • Gesundheitswesen: Elektronische Patientenakten und Terminverwaltung.
  • Soziale Netzwerke: Speicherung von Nutzerprofilen, Nachrichten und Posts.
(C) Brandeis Consulting

Organisation und Verwaltung von Daten

  • Datenbanksysteme helfen, große Datenmengen zu strukturieren.
  • Sicherstellung von Zugriff auf relevante Daten in kürzester Zeit.
  • Unterstützung bei der Automatisierung von Datenverarbeitung.

Effizienz und Performance

  • Ermöglicht schnelle Abfragen und hohe Verarbeitungsgeschwindigkeit.
  • Optimierung durch Indexierung, Caching und spezialisierte Algorithmen.
  • Skalierbarkeit für große Benutzerzahlen und Datenmengen.

Datensicherheit und Integrität

  • Schutz vor unberechtigtem Zugriff durch Rechte- und Rollensysteme.
  • Sicherstellung der Datenkonsistenz durch Constraints und Transaktionen.
  • Regelmäßige Backups und Wiederherstellungsoptionen.
(C) Brandeis Consulting

Arten von Datenbanken

  • Relationale Datenbanken:
    • Daten werden in Tabellenform gespeichert.
    • Beispiele: MySQL, PostgreSQL, Oracle Database.
  • Dokumentenbasierte Datenbanken:
    • Speicherung von Daten als Dokumente (z. B. JSON).
    • Beispiele: MongoDB, CouchDB.
  • Graph-Datenbanken:
    • Fokus auf Beziehungen zwischen Datenelementen.
    • Beispiele: Neo4j, Amazon Neptune.
(C) Brandeis Consulting

Relationale Datenbanken

Geschichte

  • Edgar F. Codd entwickelte 1970 das Konzept des relationalen Datenmodells.
  • Ziel: Daten konsistent, strukturiert und flexibel speichern.
  • Einführung von:
    • Tabellen (Relationen) zur Datenorganisation.
    • Schlüsseln zur Identifizierung und Verknüpfung von Daten.
    • Integritätsregeln, um die Datenqualität sicherzustellen.
(C) Brandeis Consulting

Merkmale des Relationalen Datenmodells

  • Tabellenstruktur:
    • Daten werden in Tabellen (Relationen) gespeichert.
    • Jede Tabelle repräsentiert eine Entität (z. B. Kunde, Produkt).
  • Zeilen (Tupel):
    • Jede Zeile stellt einen einzelnen Datensatz dar.
    • Beispiel: Ein Kunde mit Name, Adresse und Telefonnummer.
  • Spalten (Attribute):
    • Jede Spalte repräsentiert eine Eigenschaft der Daten.
    • Beispiel: Name, Adresse, KundenID.
(C) Brandeis Consulting

Schlüssel in Datenbanken

Definition:

Schlüssel sind Attribute, die Datensätze eindeutig identifizieren oder Tabellen verknüpfen. Wenn es mehr als ein Attribut ist, so spricht man von einem zusammengesetzten Schlüssel:.

Arten von Schlüsseln:

  1. Primärschlüssel: Eindeutige Identifikation eines Datensatzes.
  2. Fremdschlüssel: Verweist auf den Primärschlüssel einer anderen Tabelle.
  3. Kandidatenschlüssel: Potenzielle Primärschlüssel.
(C) Brandeis Consulting

Primärschlüssel

  • Ein Primärschlüssel (Primary Key) identifiziert jede Zeile in einer Tabelle eindeutig.
  • Eigenschaften:
    • Muss eindeutig und nicht leer sein.
    • Beispiel: KundenID in der Tabelle Kunden.
  • Zusammengesetzter Schlüssel:
    • Ein Primärschlüssel, der aus mehreren Spalten besteht.
    • Beispiel: KursID + StudentID in einer Tabelle Kursanmeldungen.
(C) Brandeis Consulting

Fremdschlüssel

  • Ein Fremdschlüssel (Foreign Key) stellt die Beziehung zwischen zwei Tabellen her.
  • Verweist auf den Primärschlüssel einer anderen Tabelle.
  • Beispiel:
    • KundenID in der Tabelle Bestellungen ist ein Fremdschlüssel, der auf Kunden.KundenID verweist.
(C) Brandeis Consulting

Natürliche Schlüssel

Definition

Ein natürlicher Schlüssel ist ein Schlüsselattribut (oder eine Kombination von Attributen), das bereits in den realen Daten existiert und zur eindeutigen Identifikation eines Datensatzes verwendet werden kann. Er basiert auf natürlich vorhandenen Werten und benötigt keine zusätzliche künstliche Spalte.

Eigenschaften eines natürlichen Schlüssels

  1. Natürlich vorhanden: Der Schlüssel stammt aus der realen Welt und ist bereits in den Daten vorhanden.
  2. Eindeutig: Identifiziert jeden Datensatz in einer Tabelle eindeutig.
  3. Aussagekräftig: Der Wert hat eine semantische Bedeutung und ist verständlich.

Beispiele für natürliche Schlüssel

  1. Sozialversicherungsnummer (SSN):
  2. ISBN (International Standard Book Number):
  3. Kfz-Kennzeichen:
(C) Brandeis Consulting

Vorteile eines natürlichen Schlüssels

  1. Keine zusätzliche Spalte erforderlich:
    • Da die Daten bereits existieren, muss kein künstliches Attribut (z. B. eine ID) eingeführt werden.
  2. Lesbarkeit:
    • Natürliche Schlüssel sind oft für Benutzer verständlicher als künstliche Schlüssel.
  3. Einfache Validierung:
    • Werte können durch externe Datenquellen oder Regeln validiert werden (z. B. Formatprüfung der ISBN).
(C) Brandeis Consulting

Künstliche Schlüssel

Definition

Ein künstlicher Schlüssel ist ein Schlüssel, der speziell eingeführt wird, um Datensätze eindeutig zu identifizieren.Er wird nicht aus der realen Welt abgeleitet.
Gründe für künstliche Schlüssel:

  • Es ist kein natürlicher Schlüssel verfügbar
  • Aus Prinzip, also für die Einheitlichkeit
  • Für schnellere Verarbeitung
(C) Brandeis Consulting

Beispiele für künstliche Schlüssel

  1. Auto-Inkrementierende IDs:

    • Beispiel: KundenID, ProduktID.
    • Wird automatisch vom Datenbanksystem generiert.
  2. UUIDs (Universally Unique Identifiers):

    • Beispiel: e8d8f78e-f5b9-4c99-9ed3-2d89cde76543.
    • Globale Eindeutigkeit.
(C) Brandeis Consulting

Vorteile und Nachteile künstlicher Schlüssel

Vorteile:

  1. Eindeutigkeit garantiert: - Einfach, einzigartig und immer konsistent.
  2. Unabhängig von realen Daten: - Änderungen an Daten (z. B. Name, Adresse) beeinflussen den Schlüssel nicht.
  3. Flexibilität: - Gut geeignet für komplexe Beziehungen.

Nachteile:

  1. Keine semantische Bedeutung: - Für Benutzer nicht direkt lesbar, bei GUIDs katastrophal
  2. Zusätzliche Spalte erforderlich: - Muss explizit eingeführt werden.
(C) Brandeis Consulting

Beziehungen zwischen Tabellen

  • 1:1 (Eins-zu-Eins):
    • Jede Zeile in Tabelle A hat genau eine entsprechende Zeile in Tabelle B.
    • Beispiel: Person -> Personalausweis.
  • 1:N (Eins-zu-Viele):
    • Eine Zeile in Tabelle A ist mit mehreren Zeilen in Tabelle B verbunden.
    • Beispiel: Kunde -> Bestellungen.
  • N:M (Viele-zu-Viele):
    • Mehrere Zeilen in Tabelle A können mit mehreren Zeilen in Tabelle B verbunden sein.
    • Modelliert mit einer Zwischentabelle.
    • Beispiel: Studenten -> Kurse.
(C) Brandeis Consulting

Constraints - Konsistenzregeln

  • UNIQUE:
    • Verhindert doppelte Werte in einer Spalte.
    • Beispiel: Eine Spalte Email darf keine doppelten Einträge enthalten.
  • NOT NULL:
    • Stellt sicher, dass eine Spalte immer einen Wert enthält.
    • Beispiel: KundenID darf nicht leer sein.
  • FOREIGN KEY:
    • Stellt sicher, dass ein Wert in einer Spalte mit einem Eintrag in einer anderen Tabelle übereinstimmt.
  • CHECK:
    • Beschränkt Werte in einer Spalte.
    • Beispiel: Alter >= 18.

Die Constraints können auch für die Kombination von Spalten definiert werden. Um beispielsweise in einer Tabelle die Eindeutigkeit von den Spalten Belegnummer und Belegposition zu garantieren.

(C) Brandeis Consulting

Unterschiedliche Arten von Tabellen in einem ERP System

  • Anwendungsdaten - Entstehen bei der Nutzung einer Anwendung
    • Bewegungsdaten - Werden laufend erfasst und ändern sich meistens nicht. z.B. Belege, Positionen
    • Stammdaten - Werden von Bewegungsdaten referenziert und ändern sich gelegentlich. Zum Beispiel Eigenschaften von Dingen, z.B. von Material, Kunden, Kostenstellen
    • Texttabellen - Sprachabhängige Daten
  • Logging - Aufzeichnung von Fehlern, Meldungen, Zustandsänderungen etc.
  • Customizing - Der Kunde kann hier Einträge vornehmen bzw. ändern. Diese bewirkt eine Änderung des Systemverhaltens. Beispiele: Ländertabellen, Währungen, ...
  • Systemtabellen - Steuert das Systemverhalten, wird aber vom Softwarehersteller ausgeliefert und darf vom Kunden nicht verändert werden.
(C) Brandeis Consulting

Zeitabhängigkeit

  • Lokalzeit - ist die Zeit in der jeweiligen Zeitzone. Für das Verarbeiten von Daten eher unpraktisch. Für die Kommunikation mit dem Benutzer aber sinnvoll.
  • Systemzeit - Einheitliche Zeit für alle. Meistens UTC, also Weltzeit ohne Sommer/Winterzeit. Damit für alle technischen Aufgaben am besten
  • Zeitstempel - Kombination aus Datum, Uhrzeit und Sekundenbruchteile - Perfekt für Logs & Protokolle
  • Datum und Uhrzeit - Ähnliche Information wie ein Zeitstempel.
  • Erfassungszeitpunkt - Wann wurden die Daten bzw. die Datenänderung erfasst.
  • Gültigkeitszeitraum - Von wann bis wann sind die Datensätze gültig?
Materialnummer VALID_FROM VALID_TO Beschreibung Preis Einheit
1001 2023-01-01 2023-06-30 Kunststoffgehäuse 15.50 Stück
1001 2023-07-01 2024-01-31 Kunststoffgehäuse 16.00 Stück
1002 2023-01-01 2023-12-31 Metallrahmen 25.00 Stück
1003 2023-04-01 2023-12-31 Elektronikmodul 47.00 Stück
1004 2023-01-01 2023-12-31 Dichtung 2.50 Meter
(C) Brandeis Consulting

ER Modelle

Das Entity-Relationship-Modell (ER-Modell) ist ein konzeptionelles Datenmodell, das verwendet wird, um die logische Struktur von Daten und deren Beziehungen zu modellieren. Es dient dazu, die Anforderungen an eine Datenbank zu erfassen und grafisch darzustellen, bevor die physische Implementierung erfolgt. Das ER-Modell ist ein wichtiger Schritt in der Datenmodellierung und wird häufig bei der Planung von relationalen Datenbanken eingesetzt.

Fokus liegt darauf, wie die Dinge zusammenhängen. Es entspricht nicht unbedingt 1:1 den Datenbanktabellen!

(C) Brandeis Consulting

Bestandteile des ER-Modells

Das ER-Modell besteht aus Entitäten, Attributen und Beziehungen, die mit spezifischen Symbolen in einem ER-Diagramm dargestellt werden.

1. Entitäten (Entities)

  • Eine Entität ist ein Objekt oder Konzept, das in einer Datenbank gespeichert werden soll.
  • Starke Entitäten: Können eigenständig existieren (z. B. Kunde, Produkt).
  • Schwache Entitäten: Abhängig von einer starken Entität und ohne diese nicht eindeutig identifizierbar (z. B. Belegposition gibt es nicht ohne Beleg).

2. Attribute

  • Attribute sind Eigenschaften einer Entität oder Beziehung.
  • Attributstypen:
    • Einfache Attribute
    • Zusammengesetzte Attribute
    • Mehrwertige Attribute
    • Schlüsselattribute

3. Beziehungen (Relationships)

  • Beziehungen beschreiben, wie Entitäten miteinander in Verbindung stehen.
  • Jede Beziehung hat eine Kardinalität , die den Zusammenhang zwischen den Entitäten beschreibt
(C) Brandeis Consulting

Kardinalität

Kardinalitäten definieren die Anzahl der Entitäten, die an einer Beziehung beteiligt sind.

  • 1:1 (eins zu eins): Eine Entität in A ist mit genau einer Entität in B verbunden.
  • 1:N (eins zu viele): Eine Entität in A ist mit mehreren Entitäten in B verbunden.
  • N:M (viele zu viele): Mehrere Entitäten in A sind mit mehreren Entitäten in B verbunden.

In Diagrammen werden die Kardinalitäten oft an den Entitäten dargestellt, die minimale und maximale Beteiligung angeben:

  • Minimale Kardinalität: Gibt an, ob die Teilnahme optional oder verpflichtend ist.
  • Maximale Kardinalität: Gibt die maximale Anzahl von Entitäten an, die beteiligt sein können.
(C) Brandeis Consulting

Darstellung von ER-Diagrammen - Mermaid.js

(C) Brandeis Consulting

ER Diagramm (Chen)

(C) Brandeis Consulting

Vorteile des ER-Modells

  1. Klarheit: Bietet eine visuelle Darstellung der Datenstruktur.
  2. Flexibilität: Einfach anpassbar, bevor eine physische Datenbank erstellt wird.
  3. Effizienz: Ermöglicht eine effiziente Datenbankplanung und -design.
  4. Kommunikation: Verständlich für Entwickler, Datenbankadministratoren und Endbenutzer.
(C) Brandeis Consulting

Normalformen in Datenbanken

  • Strukturierung von Tabellen für Konsistenz und Effizienz.
  • Ziel: Redundanzen und Anomalien minimieren.
  • Fokus: 1NF, 2NF, 3NF.
(C) Brandeis Consulting

1. Normalform (1NF)

Definition:

  • Jede Zelle enthält nur einen atomaren Wert.
  • Primärschlüssel ist definiert.

Beispiel:

Vorher (nicht in 1NF):

KundenID Name Telefonnummern
1 Max Müller 12345, 67890

Nachher (in 1NF):

KundenID Name Telefonnummer
1 Max Müller 12345
1 Max Müller 67890

Nutzen:

  • Klarere Datenstruktur.
  • Einfachere Abfragen und Verarbeitung.
(C) Brandeis Consulting

2. Normalform (2NF)

Definition:

  • 1NF ist erfüllt.
  • Keine partielle Abhängigkeit (Nicht-Schlüssel-Attribute hängen vollständig vom Primärschlüssel ab).

Beispiel:

Vorher eine Tabelle, nicht in 2NF

KursID StudentID Kursname Professor
1 101 Mathematik Dr. Schmidt
1 102 Mathematik Dr. Schmidt

Nachher zwei Tabellen in 2NF

KursID Kursname Professor
1 Mathematik Dr. Schmidt
KursID StudentID
1 101
1 102

Nutzen:

  • Verhindert Redundanzen.
  • Minimiert Speicherbedarf.
(C) Brandeis Consulting

3. Normalform (3NF)

  • 2NF ist erfüllt.
  • Keine transitiven Abhängigkeiten (Nicht-Schlüssel-Attribute dürfen nur vom Primärschlüssel abhängen).

Beispiel:

Vorher (nicht in 3NF):

MitarbeiterID Name AbteilungID Abteilungsname
1 Anna Müller 101 IT
2 Max Mustermann 102 HR

Nachher (in 3NF):

MitarbeiterID Name AbteilungID
1 Anna Müller 101
2 Max Mustermann 102
AbteilungID Abteilungsname
101 IT
102 HR

Nutzen:

  • Verhindert Update-Anomalien.
  • Bessere Datenintegrität.
(C) Brandeis Consulting

Höhere Normalformen (optional)

Boyce-Codd-Normalform (BCNF):

  • Jede Determinante ist ein Kandidatenschlüssel.

4. Normalform (4NF):

  • Verhindert mehrwertige Abhängigkeiten.

Nutzen:

  • Beseitigt seltene Abhängigkeitsprobleme.
  • Nützlich für komplexe Datenstrukturen.
(C) Brandeis Consulting

Kennzahlenmodell vs. Kontenmodell im Reporting

Kennzahlenmodell und Kontenmodell sind zwei Ansätze zur Speicherung und Analyse von Daten mit Kennzahlen.

Kennzahlenmodell

Zeitraum Region Umsatz Kosten Gewinn
2024-Q1 Europa 10.000 7.000 3.000
2024-Q1 Asien 15.000 10.000 5.000

Kontenmodell

Zeitraum Region Konto Wert
2024-Q1 Europa Umsatz 10.000
2024-Q1 Europa Kosten 7.000
2024-Q1 Europa Gewinn 3.000
2024-Q1 Asien Umsatz 15.000
2024-Q1 Asien Kosten 10.000
2024-Q1 Asien Gewinn 5.000
(C) Brandeis Consulting

Kennzahlenmodell

Jede Kennzahl (z. B. Umsatz, Kosten, Gewinn) wird als eigene Spalte gespeichert.

  • Festes Schema
  • Spalten für die Dimensionen (z. B. Zeit, Organisationseinheiten, Kunden, Material, ...)
  • Mehrere Spalten für mehrere Kennzahlen
  • Erweiterung um weitere Kennzahlen erfordert Remodellierung
  • Die Anzahl der Zeilen ist geringer, das Datenvolumen meistens ebenfalls
  • Die Abfragen sind relativ schnell, weil weniger Zeilen vorhanden sind

Beispiel:

Zeitraum Region Umsatz Kosten Gewinn
2024-Q1 Europa 10.000 7.000 3.000
2024-Q1 Asien 15.000 10.000 5.000
(C) Brandeis Consulting

Kontenmodell

Aufbau

  • Spalten für die Dimensionen (z. B. Zeit, Organisationseinheiten, Kunden, Material, ...)
  • Eine Spalte definiert das "Konto". Der Begriff sollte nicht zu wörtlich genommen werden. Das können auch Monate oder andere Begriffe sein.
  • Alle Kennzahlen werden in eine Wert-Spalte geschrieben. Manchmal sind es auch mehrere, z.B. eine für Mengen und eine für Beträge, jeweils mit entsprechenden Einheiten und Währungen.

Beispiel:

Zeitraum Region Konto Wert
2024-Q1 Europa Umsatz 10.000
2024-Q1 Europa Kosten 7.000
2024-Q1 Europa Gewinn 3.000
2024-Q1 Asien Umsatz 15.000
2024-Q1 Asien Kosten 10.000
2024-Q1 Asien Gewinn 5.000
(C) Brandeis Consulting

Vergleich Kontenmodell vs. Kennzahlenmodell

Kontenmodell Kennzahlenmodell Kommentar
Speicherplatz Mehr Weniger Bei einer sog. Dünnbesetzten Matrix Matrix sieht das anders aus.
Geschwindigkeit Schlechter Besser Die Anzahl der Datensätze ist größer beim Kontenmodell. Entsprechend muss mehr verarbeitet werden. Bei kleinen und mittleren Datenmengen aber nicht so relevant.
Flexibilität Besser Schlechter Das Datenmodell muss beim Kontenmodell für weitere Kennzahlen nicht mehr angepasst werden.
Komplexität Schlechter Besser Die manuelle Analyse von Daten ist im Kennzahlenmodell einfacher und intuitiver

Auch wenn es hier 3:1 steht, ist das Kontenmodell sehr beliebt, weil die Flexibilität enorm wichtig ist.

(C) Brandeis Consulting

Datenbankschema

Ein Datenbankschema enthält Tabellen, Views, Prozeduren und andere Datenbankobjekte.

Aufgaben eines Datenbankschemas

  • Namensraum - Strukturierung von Objekten (Schubladen)
  • Berechtigungssteuerung

Jeder Benutzer hat ein eigenes Datenbankschema.

(C) Brandeis Consulting