Anragesprachen7

Werbung
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg
1/7
Anfrage Kalküle
Basiert auf der Idee, dass Datenbankinhalte Belegungen von Prädikaten einer
Logik entsprechen und Anfragen abgeleiteten Prädikaten. Derartige
Anfrageformalismen werden als Kalküle bezeichnet. Da bei der Definition
abgeleiteter Prädikate angegeben wird, was zum Ergebnis gehören soll und nicht,
wie es berechnet wird, spricht man auch von deskriptiven Anfragen.
Ein Kalkül kann [nach Heuer/Saake] als formale logische Sprache zur
Formulierung von Aussagen betrachtet werden.
Im Bereich des Relationenmodells sind zwei Kalküle verbreitet, die sich in den
erlaubten Wertebereichen der Variablen unterscheiden.
Der Bereichskalkül ist dadurch gekennzeichnet, dass Variablen Werte
elementarer Datentypen (Bereiche) annehmen.
Im Tupelkalkül hingegen variieren Variablen über Tupelwerte (entsprechend den
Zeilen einer Relation).
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg
2/7
Der Bereichskalkül lässt als Variablen nur Variablen zu den Basis-Datentypen der
Relationsmodells zu, die sogenannten Bereichsvariablen. Die Bausteine für
Anfragen sind somit Terme, atomare Formeln und Formeln.
• Terme können Konstanten, Variablen zu Datentypen, Funktionsanwendungen
sein
• Atomare Formeln werden durch Konstruktionen basierend auf
Prädikatanwendungen gebildet.
• Formeln werden mit den prädikatlogischen Operatoren gebildet.
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg
3/7
Vergleich SQL mit 3GL
Vergleich:
Abfrage aller Autoren und Titel von ausleihbaren Büchern aus der Beispieltabelle
buecher.
Prozedurale Sprache (3GL)
open (buecher);
while (not EOF (buecher))
{
read (buch);
If (buch.leihfrist > 0)
print (buch.autor,buch.titel);
}
close (buecher);
SQL (4GL)
select autor, titel
from buecher
where leihfrist > 0
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg
4/7
Datenbanksprachen
• SQL (Structured Query Language) ist die Normendatenbanksprache für
relationale Datenbanken
• SQL enthält mehrere Teilsprachen
• DDL (Data Definition Language) zur Definition eines konzeptuellen
Datenbankschemas
• SSL (Storage Structure Language) zum Einrichten von internen
Zugriffspfaden
• IQL (Interactive Query Language) zur Formulierung von Anfragen
• DML (Data Manipulation Language) zur Anfrage und zur Änderung des
Datenbestandes
• SQL hat weiterhin noch eingebettete Befehle zur Sichtdefinition,
Transaktionsdefinition , Rechtvergabe und Integritätssicherung
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg
5/7
Weitere Datenbanksprachen
• QUEL
• QBE
• MS Access
QUEL
• Diese Sprache beruht auf dem Tupelkalkül
• QUEL ist im Zusammenhang mit dem System INGRES entwickelt worden und
wird nur dort eingesetzt
• Bekannt geworden als DDL/DML des oben genannten Systems
• Auf Grund des orthogonalen Sprachenentwurfs lange Zeit ernster Konkurrent
von SQL
• Anfragen in QUEL wird unterschieden in Kern Anteil (angelehnt am Tupelkalkül)
und den Erweiterungen (z.B. Aggregierung)
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg
6/7
Spalten ausblenden:
Diese Operation heißt Projektion, in Zeichen π. Als Parameter werden in eckigen
Klammern […] (oder als tiefgestellter Index) die Spalten definiert, die erhalten
bleiben sollen, in runden Klammern (…) die Relation, auf die die Operation
angewendet werden soll.
Zeilen heraussuchen:
Diese Operation heißt Selektion, in Zeichen σ. Als Parameter werden in […] die
Bedingungen definiert, unter denen die Zeilen im Ergebnis erhalten bleiben
sollen, in (…) die Relation, auf die die Operation angewendet werden soll.
Tabellen verknüpfen:
Hierfür ist der Verbund (oder: Join) zuständig, in Zeichen
. Dabei werden Tupel
zweier Relationen über gleichbenannten Spalten und Werten aneinandergehängt.
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg
7/7
Tabellen vereinigen:
Diese Operation ist die Vereinigung, in Zeichen U. Tupel aus den beiden
beteiligten Relationen werden zusammengesammelt, doppelte Tupel entfernt.
Tabellen voneinander abziehen:
Dies ist die Differenz, in Zeichen -. Tupel aus der ersten Relation werden
herausgenommen, falls sie auch in der zweiten Relation vorkommen.
Spalten umbenennen:
Diese Operation heißt Umbenennung, in Zeichen ß. Hierbei werden
Attributnamen in andere umbenannt, was für Operationen wie
werden wird, da diese von den Namen der Attribute abhängen.
, U, - wichtig
Herunterladen