Übungsblatt 1 - Informatik

Werbung
Universität Augsburg, Institut für Informatik
Prof. Dr. W. Kießling
Dr. A. Huhn, F. Wenzel, M. Endres
WS 2009/2010
30. Okt. 2010
Lösungsblatt 1
Datenbanksysteme I
Aufgabe 1: Motivation und Terminologie
Antworten:
1. Ein DBS ist derjenige Teil eines computergestützten Informationssystems, der sich mit folgenden Aufgaben beschäftigt:
• Beschreibung vorhandener Daten
• Verwaltung vorhandener Daten
• Zugriffsoperationen auf die Datenbank
• Abgrenzung zu anderen Programmiersystemen: Sichere Verwaltung persistenter Daten,
effiziente Verwaltung sehr großer Datenbestände für vielfältige Aufgaben
2. Probleme bei großen Datenmengen:
• Redundanz und Inkonsistenz: Vermeidung von Duplikaten und Versionsfehler
• Mehrbenutzerbetrieb: Bei DB-Systemen sind Parallelzugriffe durch Sperren möglich
• Datenverlust: DB bietet Backup- und Recoveryverfahren zur Wiederherstellung eines
konsistenten Zustandes
• Integritätsverletzung: Eine DB überprüft die Einhaltung von Integritätsbedingungen
• Sicherheitsprobleme: Datenbanken erlauben Rechtevergabe
• Daten- und Anfrageformate: Datenbanken bieten eine standardisierte Anfragesprache
• Performance: Datenbanken stellen Tuning/Optimierung zur Verfügung
3. Durch das ACID-Transaktionskonzept können mehrere Benutzer effektiv gemeinsam die Datenbank nutzen. Concurrency Control regelt den gleichzeitigen Zugriff.
• atomar: In relationale Datenbanksystemen kann eine Transaktion entweder vollständig
oder gar nicht in einen persistenten Zustand überführt werden. Beispiel: Eine Überweisung
findet nur statt, wenn sowohl das Abbuchen, als auch die Betragsverbuchung auf das neue
Konto korrekt erfolgt ist.
• korrekt: Integritätsbedingungen, festgelegt durch den DB Designer, müssen erhalten bleiben. Beispiel: In einem Buchungssystem einer Bank liefert eine Einzahlung auf ein Konto, unabhängig von der Transaktion, immer das gleiche Ergebnis.
• isoliert: konkurrent ausgeführte Transaktionen führen zum selben Ergebnis wie einzeln
hintereinander ausgeführte Transaktionen. Beispiel: Parallel verlaufende Buchungen führen
zum selben Ergebnis, wie einzeln hintereinander ausgeführte Buchungen.
• dauerhaft: Nach Abschluß einer Transaktion mufl gewährleistet werden, daß auch bei
einem Systemfehler kein Datenverlust eintritt. Beispiel: Nachdem eine Reise gebucht
wurde, sind die Daten des Reiseteilnehmers im jeweiligen Reisebüro dauerhaft gespeichert.
1
4. Der DB-Administrator ist zuständig für:
•
•
•
•
•
•
•
Schema-Definition
Verwaltung von Zugriffsrechten auf die DB
Festlegung der Speicherstrukturen und der Zugriffsmethoden
Modifikation des DB-Schemas und der physikalischen Speicherstrukturen
Spezifikation von Integritätsbedingungen
Backups/Recovery
Tuning, Performance-Monitoring
5. Datenunabhängigkeit
• physikalische Datenunabhängigkeit: Physikalische Organisation der DB kann geändert
werden, ohne das logische Schema oder Anwendungsprogramme ändern zu müssen.
• logische Datenunabhängigkeit: Das logische DB-Schema kann geändert werden, ohne
externe Sichten oder Anwendungsprogramme ändern zu müssen.
• Unterschiede:
– Die beiden Varianten der Datenunabhängigkeit betreffen verschiedene Schnittstellen
des 3-Ebenen-Modells.
– Physikalische Datenunabhängigkeit kann in der Regel erreicht werden. Die logische
Datenunabhängigkeit läßt sich normalerweise nur mit Einschränkung erreichen.
– Die physikalische Datenunabhängigkeit betrifft hauptsächlich den DB-Administrator;
die logische Datenunabhängigkeit betrifft u.U. auch den Anwendungsprogrammierer.
Aufgabe 2: Schichten eines DB-Systems
Antworten:
1. Zuordnung von Aufgaben zu Schichten:
• Anlegen eines neuen Feldes Abteilungsnummer im Mitarbeiter-Schema stellt eine Manipulation des zugrundeliegenden Schemas (mittel DDL) dar und ist somit der konzeptionellen Schicht zuzuordnen.
• Erstellung von Relationen-Schemata für ein neues Warenwirtschaftssystem erfolgt durch
CREATE Statements (DDL) und gehört somit ebenso zur konzeptionellen Schicht.
• Die Optimierung der Festplattenzugriffszeiten des DB-Systems gehört zur Domäne der
physischen DB und somit in die interne Schicht.
• Ein Mindestlohn für neue Mitarbeiter lässt sich über Integritätsbedingungen steuern.
Dies erfolgt in der konzeptionellen Schicht.
• Die Verwaltung von Zugriffsrechten auf die Datenbank wird vom DB-Administrator vorgenommen und betrifft die konzeptionelle Schicht (siehe auch Abbildung Skript Seite
14).
• Eine sofortige Gehaltserhöhung lässt sich mittels eines einfachen UPDATE Statements
erzielen und ist somit Teil der Datenmanipulation (mittels DML). Diese erfolgt idealerweise in der externen Schicht.
• Eine View wird in der Regel vom DB-Administrator mittels des CREATE VIEW Statements erzeugt. Somit ist diese Operation der konzeptionellen Schicht zugehörig. Endanwender greifen dagegen meist nur lesend auf die View durch SELECT Statements zu.
2
2. DML: Abfragen, Einfügen, Ändern, Löschen von Daten (SELECT, INSERT, UPDATE, DELETE)
DDL: Anlegen, Ändern, Löschen von Relationen-Schemata (CREATE, ALTER, DROP)
Aufgabe 3: Transaktionen
Antworten:
1. Grundoperationen für das Transaktionsmanagement:
• COMMIT - erfolgreiches Ende, persistente Änderungen
• ROLLBACK - fehlerhaftes Ende, bisherige Änderungen werden rückgängig gemacht
2. Probleme bei simultaner Ausführung: Bei unzureichender Ablaufsteuerung kann es zu Inkonsistenzen in der Datenbank kommen. Deshalb ist eine konsistente Ablaufsteuerung notwendig. Dabei ist eine Ablaufsteuerung konsistent, wenn die Wirkung der parallelen Ausführung
der Transaktionen gleich derer einer sequentiellen Ausführung einer Permutation der Transaktionsabfolge ist. Transaktionen, die parallel ausgeführt werden sollten also auch mit dem
selben Ergebnis hintereinander ausgeführt werden können. Jede Transaktion muss als Bedingung also so geschrieben werden können, als würde sie allein auf der Datenbank arbeiten.
3. Bewertung der Ablaufpläne:
• Problem a liefert unterschiedliche Werte in serieller und paralleler Ausführung. Für
einen Anfangswert F = 10 ergibt der vorliegende parallele Ablaufplan einen Endwert
von F = 15, bei serieller Ausführung T 1 → T 2 (erste T1, dann T2) bzw. T 2 → T 1 (erst
T2, dann T1) einen Wert von F = 18.
• Problem b liefert sowohl in serieller als auch in paralleler Ausführung für einen Startwert F = 10 einen Endwert F = 11. Dies liegt am ROLLBACK in T2.
Würde T2 stattdessen als Variante mit einem COMMIT enden, so würden sich durchaus unterschiedliche Werte ergeben, nämlich F = 12 für T 1 → T 2 und T 2 → T 1 im
Gegensatz zu F = 11 bei paralleler Ausführung.
• Problem c liefert auch ein inkonsistentes Ergebnis. Dies liegt daran, dass vor dem READ
in T2 ein WRITE in T1 erfolgt, welches anschließend aber wieder durch ein ROLLBACK zurückgezogen wird. Somit geht T2 von einem falschen Wert für F aus. Bei
F = 10 liefert der parallele Ablauf einen Wert F = 21, bei den seriellen Ablaufplänen
T 1 → T 2 und T 2 → T 1 einen Wert von F = 30.
3
Herunterladen