Datenbanken KE3 Flashcards
Prozeduale Sprachelemente bilden eine Erweiterung von SQL. In der Datenbank gespeicherte Prozeduren bieten neben den Operationen zum Einfügen, Ändern und Löschen an das Anwendungsgebiet angepasste Operationen an.
Welche Vorteile besitzen Prozeduren gegenüber einer Folge von generischen SQL-Anweisungen?
- einmalige Definition und Mehrfachausführung.
- Ein- und Ausgabeparameter
- Datenbank kann eine Prozedur vorverarbeiten
- Reduktion der Übertragungszeit
- Ersparnis von Bandbreite
- Vorteile bei der Zugriffskontrolle
- Erleichterung für Konsistenzprüfungen
Wann werden Prozeduren in SQL eingesetzt?
- wenn die Operationen (UPDATE, INSERT) nur in Kombination mit weiteren Befehlen aufgerufen werden sollen
- wenn eine Beschleunigung bei wiederkehrender Benutzung gewünscht ist.
Zeichne den Syntax von Prozeduren.
CREATE PROCEDURE ()
IS
BEGIN
END
Die Definition von Funktionen unterscheidet sich nur in einer Zeile von der der Prozeduren, welche?
RETURN
Ein Trigger ist einer Prozedur sehr ähnlich, da beide Sprachelemente eine Folge von Anweisungen darstellen, die als Einheit ausgeführt werden.
Was ist also der Unterschied zwischen Porzeduren und Triggern?
Im Gegensatz zu einer Prozedur wird ein Trigger nicht explizit aufgerufen, sondern in der Definition des Triggers wird zusätzlich angegeben, bei welchen Ereignissen der Trigger ausgeführt werden soll.
Wie lautet der Syntax von Trigger?
CREATE TRIGGER [BEFORE|AFTER]
[INSERT, UPDATE, DELETE] ON
[FOR EACH ROW]
BEGIN
END;
Was ist Cursor?
Cursor sind ein Hilfsmittel, um bei der imperativen Programmierung, welche tupel-orientiert ist, einen Zugriff auf die Ergebnisse der SQL-Queries, welche mengenorientiert sind, zu erhalten.
Die Art der Abarbeitung einer Abfrage ist entscheidend für den notwenigen Aufwand. Eine günstige Ausführungsstrategie kann gegenüber einer naiven Vorgehensweise erheblich Auführungszeit einsparen.
Welcher Teil des DBMS kann hier Abfrageoptimierung betreiben?
Der Query-Prozessor (für die Abfrageverarbeitung zuständig)
Abfrageoptimierung ist ein sehr komplexes Problem. Allerdings ist der Begriff irreführend, da die Systeme in Wirklichkeit nicht optimieren.
Was können sie stattdessen nur?
Sie ermitteln lediglich eine mit großer Wahrscheinlichkeit gute Ausführungsstrategie
Welche faktoren sind bei der Optimierung zu berücksichtigen?
- Wie kann die Abfrage umformuliert werden, sodass sie äquivalent zur ursprünglichen Abfrage ist?
- Welche statistischen Daten liegen vor?
- Sind die Tupel einer Relation sortiert?
- Welche Zugriffspfade gibt es?
Im Kurstext werden zwei Möglichkeiten zur Optimierung genannt - welche?
- Algebraische Optimierung
- Optimierung auf der physischen Ebene
Welches sind die heuristischen Regeln für die algebraische Optimierung?
- Selektionen auf dem gleichen Operanden werden zu komplexen Selektionen zusammengefasst
- Selektionen werden möglichst früh ausgeführt
- Projektionen, die keine Eliminierung von Duplikaten erfordern, werden so früh wie möglich, jedoch nicht vor einer Selektion durchgeführt.
- Projektionen, die eine Eliminierung von Duplikaten erfordern, sind soweit als möglich zur Wurzel des Operatorbaumes zu verschieben.
- Suche gemeinsame Teilbäume de Operatorbaums. Wenn Ergebnis des gemeinsamen Teilausdrucks eine Relation ist, die vom Sekundärspeicher in sehr viel kürzerer Zeit gelesen werden kann, als zu ihrer Berechnung notwendig ist, so lohnt es sich , diese Zwischenrelation nur einmal zu berechnen und abzuspeichern
Was ist ein Operatorbaum?
Ein Operatorbaum einer Abfrage zeigt:
- zu bearbeitende Relationen (Rechteck, Blätter)
- auszuführenden Operationen (Ellipse)
- Präzedenzen zwischen den Operatoren (Gerichtete Kanten)
Wie kann auf der physischen Ebene optimiert werden?
- Ausnutzung von Sekundärindexen
- Sortierung von R nach A und von S nach B (ausnutzen von Sortierverfahren)
Was sind die Softwareschichten eines DBMS?
- Datenmanager
- Zugriffsmanager
- Systempuffer-Manager
Was ist die Aufgabe des Systempuffer-Managers im DBMS?
Der Systempuffer-Manager stellt den höheren Schichten des DBMS die Seiten zur Verfügung, auf denen sich die benötigten Daen befindne.
Befindet sich eine benötigte Seite noch nicht im Systempuffer, so ruft er sie vom Betriebssystem ab und platziert sie im Systempuffer
Die Seitenverwaltung in Datenbanksystemen muss zusätzliche Anforderungen erfüllen, welche?
- bei Recovery dürfen die Seiten nicht beliebig in die Datenbank geschrieben werden (pinned pages)
- bei Recovery müssen Seiten gelegentlich auf den Externspeicher zurückgeschrieben werden, obwohl der Platz im Systempuffer gar nicht benötigt wird (forced output)
Was ist der Zugriffsmanager?
Der Zugriffsmanager stellt eine Schnittstelle zur Verfügung, n der einzelne Tupel und logische Zugriffspfade angesprochen werden können. (ein-Tupel-Schnittstelle mit Tupel und Indexe).
Wie die Zugriffspfade physisch implementiert sind und wie Tupel intern als Sätze dargestellt werden, weiß nur der Zugriffsmanager.
Welche Operatoren stellt der Zugriffsmanager zur Verfügung?
- Zugriff auf Tupel mit gegebenen Attributwerten
- Zugriff auf Tupel aufgrund ihrer Position in einem Zugriffspfad
- Bereitstellen eines Tupels in einem Übergabebereich
- Einfügen, Löschen eines Tupels
- Verändern von Attributwerten eines Tupels
- Operatoren für Schemata
- Operatoren für das Transaktionsmanagement
Was ist die Aufgabe des Datenmanagers?
- Anweisungen der relationalen Sprache in entsprechende Aufrufe des Zugriffsmanagers umzusetzen
- Zugriffsberechtigungen der Benutzer zu allen in den Anweisungen referenzierten Daten überprüfen
- Integritätskontrolle durchführen.