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