Anragesprachen8

Werbung
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.
Herunterladen