1 / 21

Übung Datenbanksysteme Tupel- und Domänenkalkül

Ü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

alyn
Download Presentation

Übung Datenbanksysteme Tupel- und Domänenkalkül

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Übung DatenbanksystemeTupel- und Domänenkalkül 20.11.2002

  2. Relationenkalküle „Abfragesprachen“ für das relationale Modell Unterschied zu relationaler Algebra ? Deklarativer Ansatz vs Operationeller Ansatz Anders formuliert: Beschreibung des Ergebnisses vs Beschreibung des Lösungsweges

  3. 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

  4. Aufgabe 1: Finden Sie alle Stationen { s | s  Station } Ergebnisvariable Wird bestimmt durch S kommt aus Relation Station Aufgabe 1:Tupelkalkül Bei der (naiven) Auswertung (einfach Relation durchlaufen): Alle Tupel sind true, Alle Tupel sind im Ergebnis

  5. Aufgabe 1b) Finden sie die Benennung aller Rabatte und Aufschläge { [r.Benennung] | r Î Rabatt_Aufschlag } [] erstellen neues Tupel r.Spalte projiziert auf einzelne Spalte eines Tupel Auswahl wie bei a)

  6. Aufgabe 1c Finden Sie alle Tickets, die mehr als 100 Euro kosten {t | t Î Ticket Ù t.Preis > 100} Variablenbestimmung Relationenauswahl wie bisher Logische Verknüpfung Einschränkung der Werte einer Spalte

  7. 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 Spalten Basisrelation (wie üblich) Festlegung einzelner Einschränkungen Mit logischen undverknüpft

  8. 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 )} Basisrelation Es gibt mindestens ein Element bei Verbindung Einschränkungen in Verbindung Beziehung zwischen Zug und Verbindung => Join

  9. Aufgabe 1f Finden Sie einen Rabatt oder Aufschlag, der von keinem anderen abhängt und keinen anderen ausschließt. • Basisrelation • Einschränkung auf „ist nicht definiert“ • Negative Existenzquantifizierung • Es keine gibt keine Elemente in Schliesst_aus, bei denen das aktuelle Tupel etwas ausschließt {r | r Î Aufschlag_Rabatt Ù r.setzt_voraus = ^ ÙØ$ n Î Schliesst_aus (n.Ausschliessender = r.Benennung)}

  10. Aufgabe 1g Finden 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, Projektion Lokale Einschränkung Verknüpfung mit Wagen Verknüpfung mit Platz Selektion bei Platz

  11. Aufgabe 1h Finden die Zugnummern und die Abfahrtszeiten aller Züge, die von München nach Hamburg fahren. Hilfsannahme: Nur am selben Tag {[z.Zugnummer,v1.Abfahrt] | zÎZug Ù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 Quellen Verknüpfung Lokale Selektion Verknüpfung Lokale Selektion Einschränkung zwischen Relationen

  12. 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)))}

  13. 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 Aufgabe 1:Domänenkalkül

  14. Aufgabe 2b) Finden sie die Benennung aller Rabatte und Aufschläge {[n]| • e,b,s ( [n,e,b,s] Î Rabatt_Aufschlag } • Ergebnis wie bisher • Wir brauchen komplettes Tupel • Gebundene Variablen • Tupel konstruieren • Reihenfolge erhalten

  15. Aufgabe 2c Finden Sie alle Tickets, die mehr als 100 Euro kosten {[p,t]| [p,t] Î Ticket Ù p > 100} Ergebnis & Grundrelation Logische Beschränkung

  16. Aufgabe 2d Finden Sie die Abfahrtzeit und die Zugnummer aller Verbindungen, die vormittags von München nach Augsburg gehen Projektion Gebundene Variablen für komplettes Tupel aus Basisrelation Selektionen {[ab,z] | $ an,d, von, nach ([an,ab,d,von,nach,z] Î Verbindung Ù von=“München“ Ù nach=“Augsburg“ Ù ab < „12:00“ )}

  17. 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 implizitdurch Benutzung der selben Variable

  18. 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 )}

  19. 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,sp ( [z,sp,n] Î Fernzug Ù sp=true Ù$ wn, pos ([wn, z, pos] Î Wagen Ù $ pn, kl, r, f ([wn,pn,kl,r,f] Î Platz Ù kl=1 Ù f=true Ù r=true)))}

  20. 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))}

  21. 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“)))}

More Related