View
83
Download
1
Category
Preview:
DESCRIPTION
Übung Datenbanksysteme Tupel- und Domänenkalkül. 20.11.2002. Relationenkalküle. „Abfragesprachen“ für das relationale Modell Unterschied zu relationaler Algebra ? Deklarativer Ansatz vs Operationeller Ansatz Anders formuliert: Beschreibung des Ergebnisses vs - PowerPoint PPT Presentation
Citation preview
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Übung DatenbanksystemeTupel- und Domänenkalkül
20.11.2002
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Relationenkalküle„Abfragesprachen“ für das relationale ModellUnterschied zu relationaler Algebra ?
Deklarativer AnsatzvsOperationeller Ansatz
Anders formuliert:Beschreibung des ErgebnissesvsBeschreibung des Lösungsweges
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Tupelkalkül vs. Domänenkalkül
Gemeinsam:Prädikate über Relationen {t|P(t)}
Stark vereinfachte Vorstellung:P(ti) = true => ti ist im Ergebnis
Tupelkalkül:– Verwendet (ganze) Tupel als Basis
Domänenkalkül:– Verwendet Domänen für einzelnen Spalten
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Aufgabe 1:Tupelkalkül
Aufgabe 1: Finden Sie alle Stationen
{ s
|
s Station
}
Ergebnisvariable
Wird bestimmt durch
S kommt aus
Relation Station
Bei der (naiven) Auswertung (einfach Relation durchlaufen):Alle Tupel sind true, Alle Tupel sind im Ergebnis
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Aufgabe 1b)
{
[r.Benennung]
|
r Rabatt_Aufschlag }
Finden sie die Benennung aller Rabatte und Aufschläge
[] erstellen neues Tupel
r.Spalte projiziert auf einzelne Spalte eines Tupel
Auswahl wie bei a)
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Aufgabe 1c
{t | t Ticket
t.Preis > 100}
Finden Sie alle Tickets, die mehr als 100 Euro kosten
VariablenbestimmungRelationenauswahl wie bisher
Logische Verknüpfung
Einschränkung der Werte einer Spalte
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Aufgabe1d
Finden Sie die Abfahrtzeit und die Zugnummer aller Verbindungen, die vormittags von München nach Augsburg gehen
{[v.Abfahrtszeit, v.Zug] v Verbindung v.fährt_von = „München“ v.fährt_nach = „Augsburg“
v.Abfahrt < 12:00}
Auswahl von 2 SpaltenBasisrelation (wie üblich)Festlegung einzelner EinschränkungenMit logischen und verknüpft
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Aufgabe 1e
Finden Sie alle Züge, die eine Verbindung von München nach Augsburg enthalten
{z | z Zug v Verbindung (v.fährt_von = „München“ v.fährt_nach = „Augsburg“v.Zugnummer=z.Zugnummer)}
BasisrelationEs gibt mindestens ein Element bei VerbindungEinschränkungen in VerbindungBeziehung zwischen Zug und Verbindung=> Join
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Aufgabe 1fFinden Sie einen Rabatt oder Aufschlag, der von keinem
anderen abhängt und keinen anderen ausschließt.
{r | r Aufschlag_Rabatt r. setzt_voraus = n Schliesst_aus (n.Ausschliessender = r.Benennung)}
BasisrelationEinschränkung auf „ist nicht definiert“Negative Existenzquantifizierung Es keine gibt keine Elemente in Schliesst_aus,
bei denen das aktuelle Tupel etwas ausschließt
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Aufgabe 1gFinden Sie den Namen der Züge, die sowohl einen
Speisewagen haben, als auch Raucherplätze am Fenster in der ersten Klasse.
{[z.Name] | z Fernzug z.Speisewagen=true w Wagen(w.Zugnummer = z.Zugnummer p Platz(p.Wagennummer=w.Wagennummer p.Raucher=true p.Fenster=true p.Klasse=1))}
Basisrelation, ProjektionLokale EinschränkungVerknüpfung mit Wagen
Verknüpfung mit Platz
Selektion bei Platz
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Aufgabe 1hFinden die Zugnummern und die Abfahrtszeiten aller Züge, die
von München nach Hamburg fahren.Hilfsannahme: Nur am selben Tag
{[z.Zugnummer,v1.Abfahrt] | zZug v1 Verbindung v1.Zugnummer=z.Zugnummer v1.fährt_von=“München“ v2 Verbindung(v2.Zugnummer=z.Zugnummer v2.fährt_nach=“Hamburg“ (v2.Ankunft > v1.Abfahrt v2.Tag = v1.Tag)))}
Projektion aus zwei QuellenVerknüpfung
Lokale SelektionVerknüpfung
Lokale SelektionEinschränkung zwischen Relationen
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Aufgabe 1i)Finden Sie alle freien (nicht reservierten) Plätze mit
Wagennummer auf der Verbindung von Augsburg nach München im ICE (Fernzug) „Berthold Brecht“, Abfahrt 16:37 am Montag, den 2.12.2002.
{[p.Wagennummer, p.Platznummer]}| p Platz w Wagen (w.Wagennummer=p.Wagennummer) z Fernzug(z.Name=“Berthold Brecht“ z.Zugnummer=w.Zugnummer) res reserviert (p.Platznummer=res.Platznummer p.Wagennummer = res.Wagennummer z.Zugnummer=res.Zugnummer res.fährt_von=“Augsburg“ res. fährt_nach=“München“ res.Abfahrt=“16:37“ res.Tag=“2.12.2002)))}
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Aufgabe 1:Domänenkalkül
Aufgabe 1: Finden Sie alle Stationen
{[s]
|
[s] Station
}
Ergebnis muss aus Spaltenvariable aufgebaut werden
S ist Teil eines Tupels,
das Element von Station ist
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Aufgabe 2b)
{[n]| e,b,s (
[n,e,b,s]
Rabatt_Aufschlag
}
Finden sie die Benennung aller Rabatte und Aufschläge
Ergebnis wie bisherWir brauchen komplettes TupelGebundene Variablen Tupel konstruierenReihenfolge erhalten
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Aufgabe 2c
Finden Sie alle Tickets, die mehr als 100 Euro kosten
{[p,t]|
[p,t] Ticket
p > 100}
Ergebnis &Grundrelation
Logische Beschränkung
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Aufgabe 2d
Finden Sie die Abfahrtzeit und die Zugnummer aller Verbindungen, die vormittags von München nach Augsburg gehen
{[ab,z] | an,d, von, nach([an,ab,d,von,nach,z] Verbindung von=“München“ nach=“Augsburg“ ab < „12:00“)}
ProjektionGebundene Variablen fürkomplettes Tupelaus Basisrelation
Selektionen
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Aufgabe 2e
Finden Sie alle Züge, die eine Verbindung von München nach Augsburg enthalten
{[z]| [z] Zug ab,an,d,von,nach([an,ab,d,von,nach,z] Verbindung von=“München“ nach=“Augsburg“)}
Verknüpfung implizit durch Benutzung der selben Variable
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Aufgabe 2f
Finden Sie einen Rabatt oder Aufschlag, der von keinem anderen abhängt und keinen anderen ausschließt.
{[n,e,b,sv]|[n,e,b,sv] Rabatt_Aufschlag sv = ag ([n,ag] Schliesst_aus)}
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Aufgabe 2g
Finden Sie den Namen der Züge, die sowohl einen Speisewagen haben, als auch Raucherplätze am Fenster in der ersten Klasse.
{[n]|z,spz,sp,n] Fernzug sp=true
wn, pos ([wn, z, pos] Wagenpn, kl, r, f ([wn,pn,kl,r,f]Platz kl=1 f=true r=true)))}
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Aufgabe 2h
Finden die Zugnummern und die Abfahrtszeiten aller Züge, die von München nach Hamburg fahren.
{[z,ab1]|[z] Zug an1,d,von1,nach1 (
[an1,ab1, d,von1,nach1,z] Verbindung von1=“München“ an2, ab2, von2,nach2(
[an2,ab2,d,von2,nach2,z] Verbindung nach2 = „Hamburg“
an2 > ab1))}
Übung Datenbanksysteme 1 WS 2002/03 04/21/23
Aufgabe 2i)Finden Sie alle freien (nicht reservierten) Plätze mit
Wagennummer auf der Verbindung von Augsburg nach München im ICE (Fernzug) „Berthold Brecht“, Abfahrt 16:37 am Montag, den 2.12.2002.
{[wn,pn]| kl,f,r ([wn,pn,kl,r,f] Platz zn,pos ([wn,zn,pos]Wagen sp,name,ben[zn,sp,name, ben] FernZug name = „Berthold Brecht“ tn, an, ab,d,von, nach,p[tn,an,ab,d,von,nach,zn,wn,pn,p] reserviert von=„Augsburg“ nach=“München“ ab=“16:37“ d=“2.12.2002“)))}
Recommended