Die Sprache QUEL Beispiel für QUEL-Anfrage “Welche Lieferanten liefern von Weiß bestellte Waren?”: # $ ! ! " DML an Tupelkalkül angelehnt is is ■ range of range of retrieve where DDL analog zu SQL ■ DDL / DML des INGRES-Systems ■ & & and # $ ! # ( $ ! ' # !% ) # $ + * . . - $ $ # # ( # , , , / 10-2 ' % Andreas Heuer, Gunter Saake – Datenbanken I Andreas Heuer, Gunter Saake – Datenbanken I Weitere Datenbanksprachen 10-4 Anfragen in QUEL range of is retrieve into where is ➠ Query by Example range of ➠ QUEL [ unique Andreas Heuer, Gunter Saake – Datenbanken I 10-1 Andreas Heuer, Gunter Saake – Datenbanken I Variablen Relationennamen Attributnamen (optional) Datenterme Selektionsformel mit freien Variablen ohne Quantoren und ohne Prädikate 10-3 Anfragen in QBE Änderungsoperationen in QUEL “Alle für das Fach Informatik angebotenen Vorlesungen ab dem 7ten Semester.” is $ range of ' $ # ' $ ' $ ! ! replace where append to where delete where ' $ , / + Andreas Heuer, Gunter Saake – Datenbanken I Ausdrucksfähigkeit von QUEL 10-8 Die Sprache QBE Der QUEL-Kern ist nicht streng relational vollständig. Nur Anfragen des Tupel-Kalküls der Form , , ■ “Query by Example” ■ Anfragen in QBE: Einträge in Tabellengerüsten ■ Intuition: Beispieleinträge in Tabellen ■ Vorläufer verschiedener tabellenbasierter Anfrageschnittstellen kommerzieller Systeme / + * (oder äquivalente Anfragen) lassen sich durch (je) eine QUEL-Anfrage darstellen. Andreas Heuer, Gunter Saake – Datenbanken I & & $ * 10-6 Andreas Heuer, Gunter Saake – Datenbanken I 10-5 Andreas Heuer, Gunter Saake – Datenbanken I 10-7 Anfragen in QBE III Anfragen in QBE IV “Welche Vorlesungen werden für die Studiengänge Informatik und Mathematik angeboten?” “Welche Vorlesungen werden in einem Fach im selben Semester gehört?” $ $ ' $ # # ' ' $ ' ' $ $ ! ! ! ' $ ! $ ! ' $ ' $ $ $ , / + * & & & & - - ' ' $ $ , / + * Andreas Heuer, Gunter Saake – Datenbanken I 10-10 Andreas Heuer, Gunter Saake – Datenbanken I 10-12 Anfragen in QBE II Anfragen in QBE III — Alternative Lösung “Für welche Vorlesungen mit mehr als 2 Semesterwochenstunden ist ‘Datenbanken I’ Voraussetzung?” “Welche Vorlesungen werden für die Studiengänge Informatik und Mathematik angeboten?” ' $ ' $ ' $ ' $ # # ' $ ' ! ! ! ! ' ' ! ! $ ' $ $ & & & & - - & & ' ' $ $ , / + * $ $ $ , , / + * Andreas Heuer, Gunter Saake – Datenbanken I 10-9 Andreas Heuer, Gunter Saake – Datenbanken I 10-11 Anfragen in QBE VI Aggregierung in QBE ' $ # ' $ ' $ ! ! ! “Drucke Vorlesungen mit maximaler Anzahl von Semesterwochenstunden.” ' $ # ' $ ' ! ' . . . . . . . . . $ $ , , / + * Andreas Heuer, Gunter Saake – Datenbanken I 10-14 Andreas Heuer, Gunter Saake – Datenbanken I Anfragen in QBE V 10-16 Sortierung in QBE ' $ # ' $ “Drucke alle Vorlesungen für Informatik mit den Voraussetzungen!” ! ! ! ' $ ' $ # ' $ $ ' $ ' $ $ $ $ # $ $ $ ' $ ! & & $ $ ' $ $ , / + * Andreas Heuer, Gunter Saake – Datenbanken I 10-13 Andreas Heuer, Gunter Saake – Datenbanken I 10-15 Formale Semantik von QBE Ausdrucksfähigkeit von QBE , , / + * Rest ohne Quantoren / + * Jede Zeile in einer Relation entspricht Teilformel ■ Analog ‘ ’-Symbolen im Kalkül entsprechen “leere Spalteneinträge” paarweise verschiedenen Bereichsvariablen. leere Spalten: alle Positionen, an ) denen keine Bereichsvariable steht (auch ■ QBE-Anfragen können nur Kalkülausdrücken der folgenden Form entsprechen: Beispielelemente von QBE entsprechen Bereichsvariablen des Bereichskalküls ■ Der QBE-Kern ist relational vollständig. , Konjunktion der jewei- wobei Konstanten oder Bereichsvariablen und ligen Zeilenbedingungen Andreas Heuer, Gunter Saake – Datenbanken I 10-18 Andreas Heuer, Gunter Saake – Datenbanken I Aggregierung in QBE II 10-20 Formale Semantik von QBE II ■ $ $ allgemeine QBE-Anfrage, (positive, negierte Zeilen, Einträge in der Condition Box), entspricht dem folgendem Bereichskalkül-Ausdruck: ! ! ! ! + * -te positive Zeile , -te negierte Zeile , -te Bedingung in Condition Box / ! Variablen mit restliche Variablen in positiven Zeilen sind die restliche implizite Variablen in der -ten negierten Zeile ◆ ◆ ◆ 10-17 Andreas Heuer, Gunter Saake – Datenbanken I Andreas Heuer, Gunter Saake – Datenbanken I 10-19 Änderungen in QBE Änderungen in QBE III “Einfügen eines konkreten Kunden.” “Löschen aller schlechten Kunden.” % $ % % % % $ % % % ! ! ! $ ! Andreas Heuer, Gunter Saake – Datenbanken I 10-22 Andreas Heuer, Gunter Saake – Datenbanken I Relationenalgebra und QBE Änderungen in QBE II QBE mit markierte Spalten 1. Vergleiche als Spalteneinträge 2. explizite Ausgabetabelle Verbindung zweier Tabellen mittels Beispielelementen (Bereichsvariablen) “Einfügen aller Lieferanten als Kunden.” ! Relationenalgebra Projektion Selektion 10-24 % $ % % % ' ' $ ! $ Umbenennung Verbund ' $ # $ $ $ $ Andreas Heuer, Gunter Saake – Datenbanken I 10-21 Andreas Heuer, Gunter Saake – Datenbanken I 10-23 Access: Projektion und Selektion Änderungen in QBE V Alternative Formulierung: % $ % % % $ $ # $ ' $ ' $ $ ! # $ $ $ $ # # Andreas Heuer, Gunter Saake – Datenbanken I 10-26 Andreas Heuer, Gunter Saake – Datenbanken I QBE in MS-Access Änderungen in QBE IV ■ “110.- DM von Meiers Konto abziehen.” MS-Access: Datenbankprogramm für Windows ◆ % $ % % % $ ! $ ' ◆ # ◆ Verkürzte Form der folgenden Änderung: ◆ ■ % $ % % % Basisrelationen mit Schlüsseln Fremdschlüssel ber graphische Angabe von Beziehungen graphische Definition von Anfragen (SQL-ähnlich) interaktive Definition von Formularen und Berichten Unterstützung von QBE # $ $ ' $ $ ' ! # Andreas Heuer, Gunter Saake – Datenbanken I 10-28 10-25 Andreas Heuer, Gunter Saake – Datenbanken I 10-27 Access: Verbund Access: Ungewißheitsselektion Andreas Heuer, Gunter Saake – Datenbanken I 10-30 Access: Projektion und Selektion II Andreas Heuer, Gunter Saake – Datenbanken I Andreas Heuer, Gunter Saake – Datenbanken I 10-32 Access: Selektion mit Disjunktion 10-29 Andreas Heuer, Gunter Saake – Datenbanken I 10-31