21
Übung Datenbanksysteme 1 WS 2002/03 06/13/22 Übung Datenbanksysteme Tupel- und Domänenkalkül 20.11.2002

Übung Datenbanksysteme Tupel- und Domänenkalkül

  • Upload
    alyn

  • View
    84

  • Download
    1

Embed Size (px)

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

Page 1: Übung Datenbanksysteme Tupel- und Domänenkalkül

Übung Datenbanksysteme 1 WS 2002/03 04/21/23

Übung DatenbanksystemeTupel- und Domänenkalkül

20.11.2002

Page 2: Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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

Page 3: Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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

Page 4: Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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

Page 5: Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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)

Page 6: Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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

Page 7: Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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

Page 8: Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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

Page 9: Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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

Page 10: Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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

Page 11: Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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

Page 12: Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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)))}

Page 13: Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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

Page 14: Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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

Page 15: Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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

Page 16: Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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

Page 17: Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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

Page 18: Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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)}

Page 19: Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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)))}

Page 20: Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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))}

Page 21: Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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“)))}