Was für Probleme bringt Datenhaltung ohne Datenbanken mit sich?
Daten und Funktionalität sind redundant, es kommt zu Inkonsistenzen.
Transaktionseigenschaften (Atomarität, Isolation) gefährdet, parallele Arbeit auf gleichen Daten von mehreren Benutzern/Anwendungen i. Allg. nicht störungsfrei möglich (Nebenläufigkeit - „Concurrency“), keine physische Datenunabhängigkeit, Datenschutz/-sicherheit nicht gewährleistet.
Wie profitiert ein Anwendungsentwickler von der Verwendung von Datenbank- Technologie?
Weniger Aufwand, Entwicklung neuer Anwendungen ohne DB-Technologie wäre zu komplex, muss sich aus (Problemen aus Frage 1) weniger Gedanken machen
Redundanz
Daten mehrfach gespeichert, Probleme: Verschwendung von
Speicherplatz, „Vergessen“ von Änderungen
Inkonsistenz
keine zentrale, „genormte“ Datenhaltung
Atomarität
Programm wird entweder ganz oder gar nicht ausgeführt
Isolation
keine inkonsistenten Zwischenzustände werden sichtbar
Transaktion
Programm oder Folge von Kommandos, die in Interpreter
eingegeben werden
Was versteht man unter Datenbank-Schema?
Menge von Relationenschemata + globale Integritätsbedingungen
Erklären Sie den Unterschied zwischen „Datenbank“ und „DBMS“
DBMS: Datenbank-Management-System (ist Software zur Datenverwaltung, ein DBMS, aber mehrere (viele) Datenbanken)
DBS: Datenbanksystem (DBMS + Datenbank)
DB: Datenbank sind die eigentlichen Daten
Arten von Integritätsbedingungen, die DBMSe unterstützen
Lokale und globale Integritätsbedingungen
Was ist eine Sicht
Häufig vorkommende Datenbankabfragen (Queries) können unter einem „Sichtnamen“ als „virtuelle“ Tabelle gespeichert werden. (Sicht = Query (+ Name))
Was ist die relationale Algebra? Wozu braucht man sie?
Geben Sie Beispiele für Algebra-Ausdrücke, die nicht identisch, aber äquivalent sind?
Was leistet der Anfrageoptimierer einer Datenbank?
Er findet einen Relationenalgebra-Ausdruck, der äquivalent ist („das gleiche Ergebnis liefert“) zum gegebenen, aber effizienter auszuwerten ist.
Erklären Sie: Drei-Ebenen Architektur
Externe Sicht: Unterschiedliche Ausschnitte der Daten für unterschiedliche Benutzer
Konzeptionelles Schema: Was ist mein Diskursbereich? Welche Entitäten der realen Welt interessieren uns
Internes Schema: physische Repräsentation der Daten
(Vorgehen beim Entwurf: Erst konzeptuelles Schema, dann internes.)
Erklären Sie: physische Datenunabhängigkeit
Physikalische Organisation der DB kann geändert werden, ohne das logische Schema oder Anwendungsprogramme ändern zu müssen. (Man muss interne (physische) Repräsentation der Daten nicht kennen)
Erklären Sie: logische Datenunabhängigkeit
Das logische DB-Schema kann geändert werden, ohne externe Sichten oder Anwendungsprogramme ändern zu müssen
Konsistenz
Grad an Bedeutungstreue einer Datenbasis
Schema-Konsistenz
Legitime Zustände durch Ausführen der Operatoren mit
Interpretation des Schemas, Einhaltung vorgegebener
Konsistenzbedingungen
Datenbasis-Konsistenz
Idealfall konsistenter Zustände: volle, aktuelle
Übereinstimmung von Datenbasis und Miniwelt
Was ist das Data Dictionary
Menge von Tabellen und Ansichten, die bei Abfragen gelesen werden. Enthält keine Anwendungsdaten, sondern Metadaten, welche die Struktur der Anwendungsdaten beschreiben (und nicht den Inhalt selbst).
Warum sollte man sich die Mühe machen, Integritätsbedingungen als Teil des Datenbank-Schemas zu formulieren?
Da Schemakonsistenz vom DBMS überprüfbar ist und dadurch höhere Bedeutungstreue erreicht werden kann
Sind Integritätsbedingungen Bestandteil des internen oder des konzeptuellen Schemas? Begründen Sie Ihre Antwort.
Lokale/globale Integritätsbedingungen als Teil der Relationen- bzw. Datenbankschema sind konzeptionellem Schema zuzuordnen
Wieso sind Indices Bestandteil des internen und nicht des konzeptuellen Schemas?
Weil der Bestandteil der physischen Ebene ist, welche dem internen Schema
zuzuordnen ist
Geben Sie Beispiele für Datenbank-Features, anhand derer sich zeigt, dass Datenbank-Systeme physische Datenunabhängigkeit nicht vollständig realisieren.
Die Möglichkeit, Wertebereiche in create Table anzugeben (bspw. Entscheidung zwischen char(n) und varchar(n)) sollte streng genommen nicht dem Anwendungsentwickler obliegen und steht somit im Gegensatz zu physischer Datenunabhängigkeit.
Wie ist die Semantik von Datenmodellen definiert?
Geben Sie ein sinnvolles Beispiel für mehrstellige Beziehungen. Erläutern Sie, warum Sachverhalt nicht mit mehreren zweistelligen Beziehungen korrekt darstellbar.
Welche semantischen Beziehungen aus dem EER-Kontext kennen Sie? Erläutern Sie die Unterschiede. Geben Sie jeweils Beispiele an.
Datenbankentwurf Relation
endliche Menge von Tupeln (= Menge von Zeilen einer Tabelle
(Instanz eines Relationenschemas))
Relationenschema Datenbankentwurf
Menge von Attributen (Tabellenkopf))
Integritätsbedingung
Warum gibt es im ER-Modell keine Fremdschlüssel?
Fremdschlüsselbedingung ist Teil der Schema-Definition. Attribute tauchen im ER-Modell nur einmal auf.
Was bedeutet „kapazitätserhaltende Abbildung“? Geben Sie Beispiele.
genauso viele Instanzen in beiden Fällen darstellbar
In welchen Fällen lässt sich das Schema „optimieren“? Was bedeutet Optimierung hier?
Optimieren = Verschmelzen von Relationenschemata. Bei zwingenden Beziehungen [1, _] möglich
Wie lassen sich mengenwertige Attribute abbilden?
Doppelte Umrahmung
Warum ist Abbildung der folgenden Konstrukte vom ER-Modell ins Relationenmodell problematisch? Rekursive Beziehungen, Partitionierung, Generalisierung
Rekursive Beziehungen: Kardinalitäten der referenzierten Entitäten sind schwer darstellbar
Partitionierung, Generalisierung: Generalisierung und Disjunktheitsbedingungen mit Schlüsseln und Fremdschlüsseln nicht ausdrückbar
Was ist eine Umbenennung im SQL-Kontext? Wann wird sie gebraucht?
Umbennenung von Attributen und Relationen.
Wichtig, um folgendes zu ermöglichen: § Joins von unterschiedlichen benannten Relationen,
§ kartesische Produkte, wo es gleiche Attributnamen gibt, insbesondere
auch mit der gleichen Relation, und
§ Mengenoperationen zwischen Relationen mit unterschiedlichen
Attributen
Geben Sie ein sinnvolles Beispiel für eine Anfrage, die eine HAVING-Klausel enthält.
SELECT Region, count(*) AS Anzahl
FROM Erzeuger
NATURAL JOIN Weine
GROUP BY Region
HAVING count(*) > 1
Erläutern Sie, warum im SQL-Kontext „A == A“ keine Tautologie ist.
A=A ist bei Vorliegen von Nullwerten keine Tautologie, sondern ergibt unknown
Funktionale Abhängigkeit
In Relation R(X,Y) ist Y von X funktional abhängig, falls zu jedem Wert von X genau ein Wert von Y gehört.
Verbundtreue
die Originalrelationen können durch Verbund der
Basisrelationen wiedergewonnen werden
Abhängigkeitstreue
nur semantisch sinnvolle und konsistente Anwendungsdaten können dargestellt werden können (Menge der erfassten Abhängigkeiten äquivalent zur Menge der im System darstellbaren Abhängigkeiten (etwa Schlüssel und Fremdschlüssel))
Minimalität
minimale Anzahl von Relationenschemata, die die anderen Eigenschaften erfüllt.
Welche Anomalien kennen Sie? Erläutern Sie für jede dieser Anomalien, warum sie störend ist.
Einfügeanomalie: Null-Werte bei unvollständigem Eintrag möglich.
Updateanomalie: Ändern mehrerer Einträge erforderlich – aufwendig, fehleranfällig.
Löschanomalie: Mehr Information als gewünscht kann verloren gehen.
Welche Normalformen kennen Sie? Sagen Sie umgangssprachlich, wie sie definiert sind.
1NF: nur atomare Attribute
2NF: keine partielle Abhängigkeit eines Nicht-Primattributes von einem Schlüssel
3NF: keine transitive Abhängigkeit eines Nicht-Primattributes von einem Schlüssel
4NF: keine nichttrivialen MVDs zulassen. (d.h. Relation soll aufgespalten werden)
BCNF: alle FDs sind durch Schlüssel impliziert
Was ist der Zusammenhang zwischen Isolation und Serialisierbarkeit?
Unkontrollierte nicht-serielle Ausführung führt zu Problemen, insbesondere Inkonsistenz.
Welche Probleme können bei unkontrollierter nebenläufiger Ausführung von Transaktionen auftreten?
Inkonsistenz, Lost Updates, inkonsistente Lesezugriffe („non-repeatable read“), Dirty Reads, d. h. Reads von Updates, die noch nicht committet sind. Phantome
Warum ist es wichtig, dass unser Korrektheitskriterium für Histories prefix commit closed ist?
Wenn wir eine Ausführung haben, die korrekt ist, aber diese Ausführung aufgrund eines Systemabsturzes nicht korrekt zu Stande kommt, bleibt die commited projection übrig. Wenn das Korrektheitskriterium die Eigenschaft prefix commit closedness hat bedeutet das, dass das, was übrig bleibt, auch diese Korrektheitseigenschaft hat, ist also korrekt in unserem Sinne.
Wenn wir wissen, dass unser Korrektheitskriterium prefix commit closed ist, dann ist automatisch gegeben, dass die Korrektheit auch nach einem Systemausfall weiterhin gegeben ist.
Erklären Sie, warum Konflikt-Serialisierbarkeit prefix commit closed ist.
Wenn es für eine History möglich ist, eine äquivalente, serielle Ausführung zu finden, dann ist das für ein Präfix auch möglich. (Das finden einer seriellen Ausführung ist im Fehlerfall nach Zurücksetzen unvollständiger Transaktionen sogar einfacher)
Ist eine gegebene History serialisierbar/recoverable?
Serialisierbarkeit: H ist serialisierbar, wenn C(H) zu serieller History HS äquivalent ist.
Warum verwendet man i. d. R. nicht den Serialisierbarkeitsgraphen, um Serialisierbarkeit sicherzustellen?
Serialisierbarkeit von Schedules nur im nachhinein überprüfbar.
Administrativer Overhead ist zu hoch: Abhängigkeiten zu bereits terminierten Transaktionen müssen ebenfalls berücksichtigt werden.
Bei Deadlocks wird i. d. R. eine Transaktion zurückgesetzt. Kann es vorkommen, dass die gleiche Transaktion (a) mehrmals (b) beliebig oft zurückgesetzt wird? Wenn ja, was kann man jeweils dagegen tun?
Sowohl (a) und (b): ja. Bspw. Zählen, wie oft eine Transaktion schon zurückgesetzt wurde.
Geben Sie ein Beispiel für eine serialisierbare Ausführung bestehend aus drei Transaktionen mit folgender Eigenschaft:
Die zeitliche Reihenfolge der Commits ist c1 vor c2 vor c3, die der äquivalenten seriellen Ausführung jedoch c3 vor c2 vor c1.
Um ein Deadlock aufzulösen, muss eine der beteiligten Transaktionen zurückgesetzt werden. Welche Kriterien sind Ihres Erachtens sinnvoll, um diese Auswahl zu treffen?
Kriterien bspw. Transaktionen mit Priorität versehen, Zeitstempel, ..., beliebige Kriterien möglich
Geben Sie die Anforderungen an eine relationale Algebra aus der LV wieder und erklären Sie sie.
Optimierbarkeit: Bestehend aus wenigen Operationen, für die es Optimierungsregeln gibt
Effizienz: Jede Operation ist effizient ausführbar (Im Relationenmodell hat jede Operation eine Komplexität ≤ O(n2) mit n Anzahl der Tupel einer Relation)
Mengenorientiertheit: Jede Operation soll auf Mengen von Daten gleichzeitig arbeiten, nicht navigierend nur auf einzelnen Elementen (one-tuple-at-atime)
Was versteht man unter Join-Reihenfolge? Erläutern Sie die Wichtigkeit dieses Konzepts.
Die Reihenfolge, nach der zwei Relationen miteinander verbunden werden. Reihenfolge ist wichtig, da (1) das Ergebnis davon abhängt und (2) die Reihenfolge Einfluss auf die Zeit zur Berechnung hat. Gute Join-Reihenfolge ist abhängig von den Daten in den Relationen und schwierig zu erkennen. Keine Festlegung der Join-Reihenfolge in SQL
Was bedeuten Vollständigkeit und Unabhängigkeit im Kontext der relationalen Algebra?
Angenommen, ich bin Datenbankadministrator und habe Zeit. Was kann ich tun/versuchen zu tun, um Anfragen auf der Datenbank meines Arbeitgebers zu beschleunigen?
Algorithmen des logical/physical/cost-based optimization anwenden.
Erläutern Sie die Dimensionen des Raums der Möglichkeiten des Zugriffs auf Datenbanken aus Anwendungen heraus.
Anwendungslogik
Implementierung der anwendungsspezifischen Funktionen, Bereitstellung von „Geschäftsobjekten“
Cursor
Iterator
Call-Level Interface
ist Datenbankschnittstellen-Spezifikation für den Zugriff auf relationale Datenbanken aus anderen Anwendungen heraus.
Host Variablen
Variablen einer Host-Sprache (hier bspw. Java) die in SQL-
Anweisungen auftreten können
Kann man mit Embedded SQL sicherstellen, dass keine Schema-spezifischen Fehler auftreten? Wenn ja, wie geht es?
Vorübersetzung der eingebetteten SQL-Anweisung in echten JAVA Code durch Übersetzer sqlj erlaubt Syntax- und Semantik-Check der Statements zur Übersetzungszeit. Es gibt jedoch keine Garantie, dass sich das Schema zur Laufzeit nicht geändert hat.
Was sind die Vorteile von Stored Procedures? Erläutern Sie das Konzept.
Optimierung durch DBMS einfacher möglich, da Prozeduren nur vom DBMS abhängig sind
zentrale Kontrolle der Prozeduren ermöglicht eine redundanzfreie Darstellung relevanter Aspekte der Anwendungsfunktionalität
Konzepte und Mechanismen der Rechtevergabe des DBMS können auf Prozeduren erweitert werden
Prozeduren können in der Integritätssicherung verwendet werden (etwa als Aktionsteil von Triggern)
Zuletzt geändertvor einem Jahr