Erstellung relationaler Datenbanken Flashcards
Welche Aktivitäten werden zum Entwurf von relationalen Datenbanken durchgeführt?
- Entitäten identifizieren
- Beziehungen festlegen
- Primärschlüssel festlegen
- Umwandlung in physikalisches Datenmodell
- Attribute festlegen und normalisieren
- Konsistenzbedingungen festlegen
Womit könnte man den Schritt “Entitäten identifizieren” vergleichen?
- Identifikation der Klassen
Womit könnte man den Schritt “Beziehungen festlegen” vergleichen?
- Modellierung von Beziehungen zwischen Klassen
Was ist ein konzeptionelles Datenmodell?
- zu Beginn des Datenbankentwurfs
- beinhaltet alle relevanten Entitäten und deren Beziehungen
- enthält keine datenbankspezifischen Informationen
- idR. ein Netzwerk aus Entitäten
Was ist ein physikalisches Datenmodell?
- berücksichtigt alle Einschränkungen und Eigenschaften relationaler Datenbanken
- Struktur entspricht der der Datenbank, konkrete Tabellenstruktur kann damit erstellt werden
Was für Möglichkeiten gibt es Vererbungsbeziehungen im physikalischen Datenmodell abzubilden?
- Single Table (per Class Hierarchy Strategy)
- Joined Subclass Table
- Table per Class
Was ist die Single Table (per Class Hierarchy Strategy)?
- ganze Klassenhierarchie auf einer Tabelle abgebildet
- (optional) mit Diskriminator kann zu jedem Datensatz der Typ (Name der Klasse) gespeichert werden
Was sind die Vorteile von Single Table (per Class Hierarchy Strategy)?
- schnell lesender u. schreibender Zugriff
- effizienter Zugriff auf Beziehungen
Was sind die Nachtiele von Single Table (per Class Hierarchy Strategy)?
- Performanceverluste bei komplexen Vererbungshierarchien
- enthält eventuell viele NULL-Elemente: reservierter Speicherplatz wird damit nicht effizient genutzt
Was ist Joined Subclass Table?
- jede Klasse wird in eigener Tabelle gespeichert
- Unterklassen enthalten Fremdschlüssel zu Datensätzen der Attribute ihrer Oberklasse
Was sind die Vorteile von Joined Subclass Table?
- geringste Redundanz
- hinzufügen von weiteren Unterklassen leichter möglich
- Daten aus Oberklassen leicht mit Datenbankmitteln (FK, Join) ladbar
Was sind die Nachteile von Joined Subclass Table?
- langsamste Abbildung von Vererbung
- zum lesen und schreiben müssen immer mehrere Tabellen angefragt werden
Was ist Table per Class?
- jede Klasse bekommt eigene Tabelle
- (nur konkrete, nicht abstrakte Klassen)
Was sind Vorteile von Table per Class?
- effiziente Zugriffe auf Datenbank möglich
- hinzufügen von weiteren Klassen leicht möglich
Was sind Nachteile von Table per Class?
- Beziehungen manchmal schwierig umzusetzen
- falls Unterklasse nicht bekannt: Datensatz kann nicht gefunden werden
- Auswertungen über gesamte Oberklasse benötigen Vielzahl von SQL-Befehlen