Uni DB1 Notes

Notes for the DB1 (databases) course at HdM Stuttgart

Felicitas Pojtinger

2022-02-01

“The true courage is to admit that the light at the end of the tunnel is probably the headlight of another train approaching” - Slavoj Žižek, The Courage of Hopelessness

Mehr Details unter https://github.com/pojntfx/uni-db1-notes.

1.1 Aufbau eines DBMS

1.1.1 Typen von Daten

1.1.2 Programmaufbau

Applikation → DBMS → Datenbank

1.1.3 Erweitertes Programm-Modell

1.1.4 Definition DBMS

1.1.5 Effizienz-Typen

Entwickler:

Admins:

1.1.6 Services

SMARASTD:

1.1.7 Metadaten

1.1.8 Interne Dateistruktur

1.1.9 Hintergrundprozesse

1.1.10 Logging

Notwendig für …

Log-Dateien sind …

→ Round-Robin-Prozess mit Archiv-Prozess

1.1.11 Datenbank vs. Schema

1.1.12 Verwendungszwecke für Views

→ Am besten immer nur via Views auf Daten zugreifen

1.2 Keys

1.2.1 Definition Candidate Key

Ein Key is eine Menge von Spalten.

1.2.2 Definition Primary Key

Ein gewählter Candidate Key (oft der mit der kleinsten Anzahl von Spalten).

1.2.3 Definition Foreign Key

Es werden zwei Tabellen A und B betrachtet.

Der Foreign Key, welcher B aus A referenziert, ist ein Candidate Key von B (meist der Primary Key).

1.3 Skripte

1.3.1 Restartfähige Skripte

  1. Löschen Constraints
  2. Löschen Objekte
  3. Anlegen Objekte
  4. Anlegen Constraints

1.3.2 Delta-Skripte

Bei einer Erweiterung des Modells dürfen bestehende Daten nicht ungültig werden.

1.4 Mengenoperationen

1.4.1 Typen von Multi-Tabellen-Abfragen:

1.4.2 Optimierung von Additiven Mengenoperationen

Wenn Abfragen über mehrere Tabellen gemacht werden, so müssen alle Abfragen fertig sein, damit verglichen werden kann. Deshalb union all verwenden (Vorsicht: Duplikate werden nicht entfert!)

1.4.3 Inner- vs Outer-Join

1.4.4 Weitere Joins

1.5 Modellierung

1.5.1 Datenbankentwurfsablauf

  1. Input: Reale Welt
  2. Anforderungen analysieren
  3. Entwurf (konzeptionell) erstellen
  4. Entwurf (logischen) erstellen
  5. Implementieren
  6. Output: System

Dabei wird nebenläufig kontinuierlich getestet.

1.5.2 Abbildungsprozess

1.5.3 Grundsätze der Modellbildung

SSRWKV:

1.5.4 Anforderungsdokument

Ein gutes Anforderungsdokument sollte die Eigenschaften haben …

Ein gutes Anforderungselement sollte bestehen aus …

1.5.5 ER-Modell

+-------------+                        +----------------------+
|             |                        | |                  | |
|   Entität   +----+ < Beziehung > +---+ | Schwache Entität | |
|             |                        | |                  | |
+-------------+                        +----------------------+

1.5.6 Redundanz-Anomalien

Folgende Anomalien treten durch Redundanzen auf:

1.5.7 Normalformen

1.5.8 Ablauf des Schemaentwurfs

  1. Erheben von Infos
  2. Identifikation der Attribute
  3. Formalisierung von Infos
  4. Gruppierung der Attribute

1.5.9 Indizierung

1.5.9.1 Problemfelder von Indizes

1.5.9.2 Spaltenwahl für Indizes

Bei der Erstellung eines Indexes sollte immer die Spalte mit der höchsten Selektivität (> 0,8) zuerst angeben werden, welche sich mit folgender Formel berechnen lässt:

Selektivität = 1 - \frac{n - distinct(n)}{n}

n: Anzahl von Elementen

distinct(n): Anzahl von eindeutigen Elementen

1.6 Weitere Services

1.6.1 Authorisierungsdienst

Nutzt eine Allowlist.

1.6.2 Mehrnutzerbetrieb

1.6.3 Zuverlässigkeit

Daten dürfen weder physisch noch semantisch fehlerhaft sein, weshalb folgende Dinge existieren müssen:

1.6.4 Transaktionen/ACID

Aktionen werden entweder vollständig oder gar nicht ausgeführt.

1.6.5 Transaktionskontrolle

1.6.6 Konsistenzsicherung

1.6.7 Parallelitätssteuerung

Verhindern von …

Umsetzung durch …

→ Z.B. durch select ... for update of ...

1.6.8 Möglichkeiten der Einbindung

1.6.9 Impedance Mismatch

1.6.10 Definition Cursor

Ergebnis einer Abfrage wird in einer Tabelle abgelegt, von welcher dann n-mal gefetched werden kann.