Weitere Datenbanksprachen Die Sprache QUEL Anfragen in QUEL

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