Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/10 Grafische Anfragesprachen Geeignet sind grafische Anfragesprachen für Nutzer, die keine speziellen Kenntnisse der Informatik oder keine Datenbankkenntnisse haben. Textuelle Anfragesprachen sind für beide Gruppen ungeeignet. Vorteil grafischer Anfragesprachen Sie vereinfachen die Formulierung von Anfragen durch die Verwendung grafischer Primitive. Dadurch wird die Bedeutung einer Anfrage hervorgehoben, was wiederum hilft, die Anfrage leichter zu erfassen.. Ein weiterer Vorteil liegt in der Einschränkung der Fehler durch Fehleingabe bei der Formulierung einer Anfrage. Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 2/10 Nachteil grafischer Anfragesprachen Grafische Anfragen können durch den Rechner nicht direkt ausgewertet werden. Durch die textuelle Umsetzung und die anschließende Verarbeitung vergrößert sich die Rechnerleistung und der Speicheraufwand. Durch den fehlenden textuellen Zusammenhang ist der Syntax und die Semantik nicht eindeutig. Das betrifft Anfragesprachen, die rein mit grafischen Elementen arbeiten. Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 3/10 MS Access Die grafische Anfragesprache QBE ist in Reinform kommerziell nicht verfügbar. Verwirklicht wurde eine grafische Anfragesprache mit MS Access. MS Access ist ein Datenbankprogramm unter dem Betriebssystem Windows, in dem Basisrelationen (Tabellen) mit Schlüsseln definiert werden können. Anfragen werden grafisch definiert und in SQL übersetzt (kein Standard SQL). Neben reinen Anfragen können auch Formulare und Berichte interaktiv definiert werden. Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 4/10 Umsetzungsbeispiele Eine Selektion in Kombination mit der Projektion erfolgt in der Auswahlabfrage, wenn man in der Auswahlbox in der Zeile Anzeige das √ in den unrelevanten Bereichen entfernt wurde. Selektionen werden in der Zeile Kriterien mit Konstanten oder Vergleichssymbolen den zugehörigen Spalten zugeordnet. Die Selektionsbedingungen werden mit „und“ verknüpft. Der „between“ Operator und der „like“ Operator von SQL wird in Access mit „zwischen“ und „wie“ ausgedrückt. Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 5/10 Andere grafische Anfragesprachen Nennenswert ist Borlands Paradox und dbase Das System Paradox, wenn auch in einer anderen Hinsicht kein volles RDBMS, bietet als Anfrageschnittstelle einen QBE-Dialekt zum interaktiven Arbeiten mit Tabellen. Für die Anwendungsprogrammierung wird eine linearisierte Form von QBE zusammen mit Kontrollstrukturen imperativer Programmiersprachen eingesetzt. Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 6/10 Schemaunabhängige Sprachen Anfrageformulierungen mittels SQL erfordern die exakte Kenntnis der definierten Relationsschemata. Der Ansatz der Universalrelationen-Anfragen hat das Ziel, dem Anwender diese Notwendigkeit abzunehmen und statt dessen nur zu erwarten, dass er die für die Anfrage relevanten Attribute kennt. Ziel von Universal Anfragesprachen ist die Formulierung von Anfragen ohne explizite Verbunde. Diese Verbunde können in SQL sehr aufwendig sein und fordern genaue Kenntnisse der Relationen und der Fremdschlüsselbedingungen. (Ein Fremdschlüssel [engl. foreign key] ist eine Attributliste X in einen Relationsschema R1, wenn in einem Relationsschema R2 eine kompatible Attributliste Y Primärschlüssel ist und die Attributwerte zu X in der Relation r1 (R1) auch in den entsprechenden Spalten Y r2(R2) enthalten sind.) Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 7/10 Der Benutzer stellt sich eine „Universalrelation“ mit allen in der Datenbank vorhandenen Attributen vor. Zur eigentlichen Anfragenformulierung werden dann im wesentlichen nur noch Projektierung und Selektierung benötigt. Beispiele einer Universal Anfrage Gegeben sein ein Datenbankschema mit drei Relationen [Prüfer], [Studenten] und [Prüfungen]. In SQL müsste eine die drei Relationen übergreifende Anfrage wie folgt formuliert werden: select from where and and Name Studenten, Prüfer, Prüfungen Studenten, Matrnr = Prüfungen.Matrnr Prüfungen.Prüfernr = Prüfer.Prüfernr Prüfername = ´Meier-Schulze-Lehmann`` Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 8/10 Im Universalrelationensatz könnte man die entsprechende Anfrage wie folgt formulieren select where Name Prüfername = ´Meier-Schulze-Lehmann`` Die zugehörigen Relationen und notwendigen Verbunde sind nun vom System selbst zu bestimmen. Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 9/10 Interpretation Diese genannte detaillierte Anfrage lässt sich bezüglich einer Universalrelation [ r (U )] wie folgt formulieren: π Name ( σ Prüfername = `Meier-Schulze-Lehmann´´ (r (U ))) Ebenso kann diese Relation durch den Verbund aller Basisrelationen (1-3) ausgedrückt werden, was folgender Ausdrucksweise entspricht. π Name (σ Prüfername = `Meier-Schulze-Lehmann´ (r (Prüfer) r (Prüfungen) r (Studenten))) Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 10/10 Intern erfolgt eine eventuelle Umformung. Voraussetzung für diese Methode ist ein sinnvoller DB-Entwurf, der eine eindeutige Umsetzung der Anfrage ermöglicht. Wichtig ist dabei die Eindeutigkeit globaler Attributnamen. Das Schema muss zudem azyklisch sein, d.h. die Verbindung über Fremdschlüsseln von einem Attribut zu einem anderen muss eindeutig bestimmt sein.