Kapitel 1 - Datenbanken Flashcards
Welche drei Kriterien sind bei Datenbanken wichtig?
- Wartung
- Pflege
- Qualität
Wodurch sind Datenbanksysteme gekennzeichnet?
- Datenhaltung länger, als Lebenszeit einer Anwendung
- Änderungen und Ergänzungen ohne große Veränderungen am Bestand
- konsistente Datenhaltung. Keine Widersprüche
- keine Redundanzen
- DBMS Wechsel ohne logisches Datenmodell anzupassen
Worum geht es bei dem Entwurf eines Datenbankschemas?
- sukzessive Annäherung von Definitionen und Objektklassen
- konkrete Ausgestaltung des Datenbankschemas
- Entwurf soll unabhänig vom DBMS sein
Welche Phasen gibt es bei dem Entwurf eines Datenbankschemas?
- Anforderungsanalyse
- konzeptioneller Entwurf
- Verteilungsentwurf
- logischer Entwurf
- Datendefinition
- physischer Entwurf
Datenbankentwurf - Anforderungsanalyse
- Identifizierung bestehender Geschäftsvorfälle
- Herausfinden welche Funktionen benötigt werden
- Erkennung, welche Daten erhoben, gespeichert und verarbeitet werden müssen
- Analyse durch Reviews im Entwicklerteam und Interview mit Auftraggeber
- Kein Overengineering –> Scope of the Product
Datenbankentwurf - Konzeptioneller Entwurf
- Formale Beschreibung des Fachproblems
- Fokus auf speichernde und zu verarbeitende Daten
- Abstrakte Ebene: Objektklassen und Beziehungen dazwischen erkennen
- Namenskonflikte frühzeitig erkennbar
- Beziehungen der Objektklassen auf Konsistenz und Eindeutigkeit prügen –> EER-Modell
Datenbankentwurf - Logischer Entwurf
- Zielsystem wird analysiert und Realisierungsmöglichkeiten geprüft
- Überführung des EER-Modells in relationales Modell
- Normalisierung nach bestimmten Gütekriterien
Datenbankentwurf - Datendefinition
- Erstellung konkreter Datenbankobjekte
- SQL Abfragen
- Konkretes DBMS System
- Informationsstruktur mittels Tabellen, Primär- und Fremdschlüsseln
Datenbankentwurf - Physischer Entwurf
- Anforderung an Dateneffizienz und Performance
- Konkretes DBMS
- Indizies und Partitionen
- Gewünschte Effekte und Effizienzsteigerungen erreichen
- Erfordert gute Kenntnisse über die internen Abläufe des DBMS und das zu erwartende Speicherverhalten der Fachanwendung
Das relationale Modell
- In Phase: logischer Entwurf
- stellt Datenbankobjekte abstrakt dar
- Prüfung von Konsistenz, Konflikt- und Redundanzfreiheit
- Hierbei hilft die Normalisierung
Primärschlüssel
- Ein oder mehrere Attributswerte müssen jederzeit eindeutig identifizierbar sein
- Anzahl der Attribute, die einen PK bilden, sollte möglichst klein sein
- keine zwei Tupel mit denselben Attributswerte
Fremdschlüssel
- Beziehungen bekannt, Objektklassen miteinander verknüpfen
- Abbildung der Beziehungen durch Fremdschlüssel
- nicht nur im Modell, auch durch konkrete Datenbankobjekte
- Konsistenzüberprüfung durch das System
Wie lauten die Regeln, zur Überführung von EER in das relationale Modell?
- Umwandlung der Objektklassen in Relationen mit demselben Namen und Attributen
- Umwandlung der Beziehungsklassen in Relationen mit denselben Namen und Attributen zzgl. der Fremdschlüssel, die alle Schlüsselattribute der abhängigen Objektklassen enthalten müssen
- Zusammenlegung von Relationen
- Normalisierung des Schemas
EER-Modell
Was sind Objektklassen?
- Objekte oder Konzepte, die gleiche Attribute aufweisen, in einer Objektklasse zusammengefasst
- Sie bilden die kleinsten eigenständigen Einheiten eines Datenbankmodells
- Objektklasse beschreibt nur das Attribut, nicht aber konkrete Instanzen der Klasse
EER-Modell
Kardinalität
Gibt an, wie viele Objekte einer Klasse beteiligt sind.
- die maximale Kardinalität 1 wird durch ein unausgefülltes Dreieck dargestellt
- bei maximaler Kardinalität n>1 wird das Dreieck komplett ausgefüllt
- bei der minimalen Kardinalität 0 (optionale Beziehung) wird an der Spitze des Dreiecks ein unausgefüllter Kreis notiert
- Fehlt der Kreis ist die minimale Kardinalität auf 1 festgelegt
EER-Modell
Rekursive Beziehung
- Objektgraphen in Form von Baumstrukturen
- Objekte referenzieren andere Objekte derselben Objektklasse
- wird durch Einführung eines Fremdschlüssels, der auf den Primärschlüssel zeigt
EER-Modell
Generalisierung
- Objektklassen werden zu übergeordneten Objektklassen zusammengeführt und umgekehrt
- wenn Objektklassen sich ein gemeinsames Set an Attributen teilen
- wenn es sich als semantisch sinnvoll erweist, eine Oberkategorie zu bilden
- Man unterscheidet zwischen:
- allemeine Generalisierung (Entitäten können mehreren Teilobjektklassen angehören)
- disjunktive Generalisierung (Entität darf nur einer Teilobjektklasse angehören)
EER-Modell
Generalisierung Eigenschaften
- Attribute, die für alle Teilobjektklassen gelten werden der umfassenden Objektklasse zugeordnet
- Attribute, die exklusiv für eine Teilobjektklasse gelten, werden auch dort notiert
- Teilobjektklassen werden mit der umfassenden Objektklasse durch einen Pfeil verbunden, wobei die Spitze des Pfeiles auf die umfassende Objektklasse gerichtet ist
- bei disjunkten Generalisierung wird ein sog. Klassifikationsattribut eingeführt, die Pfeile führen zum klassifizierenden Attribut und ein Pfeil zur Objektklasse