Übung Datenbanksystem Relationale Algebra 6.11.2002 Übung Datenbanksysteme WS 2002/2003 16.05.2016 Relationales Modell Formal: Algebra mit Trägermenge Kreuzprodukt der Domänen und generischen Operatoren Sprachgebrauch: • Relationen: Tabellen • Spalten • Tupel: Zeilen Wichtig: • Spalten: feste Zahl, geordnet • Tupel: verschiedene Zahl, nicht geordnet Übung Datenbanksysteme WS 2002/2003 16.05.2016 Relationale Operatoren • Mengenoperatoren: , , – Schema muss gleich sein – bei Vereinigung Duplikatelimination • Kreuzprodukt x • Selektion s • Projektion p – Ebenfalls Duplikatelemination • Umbenennung r • Join Übung Datenbanksysteme WS 2002/2003 16.05.2016 Aufgabe 1: Überblick Datenbank • Teile: T (TNR, TBEZ, TGEW) • Lieferant: L (LNR, LNAME, LORT) • Lieferung: LF (TNR, LNR, DATUM, MENGE) • Stückliste: STL (GTNR, KTNR, ANZAHL) • Lagerposition: LP(ORT, TNR, MENGE) Übung Datenbanksysteme WS 2002/2003 • • • • • • • TNR Teilnummer TBEZ Teilbezeichnung TGEW Teilgewicht LNR Lieferantennummer LNAME Lieferantenname LORT Lieferantenort GTNR/KTNR Teilenummer des Gruppen/Komponententeil • ORT Lagerort 16.05.2016 Aufgabe 1a π LNAME ( L π LNR ( σ ( π LNR (σ (TNR = 15) (LF)) – (TNR ≠ 15) (LF)))) ??? Einträge in dieder Tabelle Lieferung, Lieferantennamen Liefernummer der Lieferungen, Lieferungen, Liefernummer der Lieferungen, Lieferungen, Lieferanten in denen zu den nurLieferungen, Teil 15 vorkommt in denen Teil 15 vorkommt. in in denen indie denen nur Teil Teil 15 geliefert vorkommt wurde denen Teil 1515 nicht vorkommt nur Teil 15 enthalten Lieferanten, die nur Teil 15 geliefert haben Übung Datenbanksysteme WS 2002/2003 16.05.2016 Aufgabe 1b • πLNAME ( L σ (DATUM = 17.11.2001 AND ( LF σ (TBEZ=’NAGEL’) (T))) MENGE> 1000) Namen Alle Teile, der Lieferungen Lieferungen Lieferanten, die “Nagel” aller aller die genannt “Nägel” “Nägel” am 17.11.2001 werden am 17.11.2001 mehr als mit 1000 mehr Stück als 1000 Stück von irgendeinem Nagel geliefert haben Übung Datenbanksysteme WS 2002/2003 16.05.2016 Aufgabe 1c π GTNR ( STL (KTNR = TNR) σ (TBEZ = ‘SCHRAUBE’) (T)) Aus derdie Stückliste dieheißen Bauteile, Teile, Schraube in denen Schrauben (direkt) verwendet werden Übung Datenbanksysteme WS 2002/2003 16.05.2016 Aufgabe 1d • π ORT ( LP (TNR = TNR) LF s (LORT=’DARMSTADT’) L) Lagerort der Teile, dieDarmstadt von Lieferanten Lieferungen von Lieferanten aus Darmstadt Lieferanten aus aus Darmstadt geliefert wurden Übung Datenbanksysteme WS 2002/2003 16.05.2016 Aufgabe 2 Schema der Datenbank: • • • • Produkt: PC: Laptop: Drucker: (Hersteller, Modell, Typ) (Modell,Mhz,RAM,HD,OL,Preis) (Modell,Mhz,RAM,HD,Display,Preis) (Modell,Farbe, Druckverfahren ,Preis) Übung Datenbanksysteme WS 2002/2003 16.05.2016 Aufgabe 2a) Welche PC-Modelle haben eine Geschwindigkeit von mindestens 1000? pMODELL s (PC) (MHZ>=1000) Übung Datenbanksysteme WS 2002/2003 16.05.2016 Aufgabe 2b) Welche Hersteller produzieren Laptops mit einer Festplattenkapazität von mindestens zehn Gigabytes? pHERSTELLER (Produkt Produkt Hersteller Hersteller Modell Typ A A B C C s(HD>=10) (Laptop) ) Hersteller TypModell A Modell Mhz RAM Mhz Laptop RAM HD Display HD Display Preis Preis 1200 256 256 20 20 15.1 15.1 2499 2499 C 3456Laptop Laptop3456 C 1200 3456 4711Laptop Drucker8739 C 8739 933 933 128 128 15 1514 141799 1799 C 8739Laptop Laptop1445 1445 866 866 128 128 10 1012 121500 1500 1445 5093 400 64 6 14 Laptop Übung Datenbanksysteme WS 2002/2003 999 16.05.2016 Aufgabe 2c) Finden Sie die Modellnummer und den Preis aller Produkte von Hersteller B Q1: s(Hersteller=“B“)(Produkt) p Modell,Preis(Q1 PC) p Modell,Preis(Q1 p Modell,Preis(Q1 Laptop) Drucker) alternativ (und vermutlich besser) Q1 (p Modell, Preis(PC) p Modell, Preis (Laptop) p Modell,Preis(Drucker)) Übung Datenbanksysteme WS 2002/2003 16.05.2016 Aufgabe 2d) Finden Sie die Modellnummer aller Farblaserdrucker pModells(Druckverfahren=“Laser“ AND Farbe=True)(Drucker) Mehrere Bedingungen werden in einer Selektion kombiniert oder in mehrere einzelne Selektionen getrennt pModells(Druckverfahren=“Laser“) (s(Farbe=True)(Drucker)) Übung Datenbanksysteme WS 2002/2003 16.05.2016 Aufgabe 2e) Finden Sie die Hersteller, die Laptops, aber keine PCs herstellen Lösungsidee: Hersteller Laptops – Hersteller PCs Q1: pHersteller(Produkt Laptop) Hersteller, die Laptops produzieren Q2: pHersteller (Produkt PC) Hersteller, die PCs produzieren Ergebnis: Q1-Q2 Übung Datenbanksysteme WS 2002/2003 16.05.2016 Aufgabe 2f) Finden Sie die Festplattengrößen, die in zwei oder mehr PCs vorkommen. Lösungsidee: Paare mit gleicher Kapazität finden pPC1.HD(rPC1(PC) rPC2(PC)) • • • (PC1.HD=PC2.HD, PC1.Modell≠PC2.Modell) Umbenennung, um „gleiche“ Tabelle getrennt anzusprechen Paar des identischen Modells muss vermieden werden Projektion entfernt Duplikate der Kapazitäten Übung Datenbanksysteme WS 2002/2003 16.05.2016 Aufgabe 2g) Finden Sie die Paare von PC(-Modellen), die sowohl die gleiche Taktfrequenz als auch die gleiche Menge an Hauptspeicher haben. Jedes Paar soll nur einmal aufgeführt werden, also nur(i,j) und nicht auch (j,i) Lösungsidee: wie in der letzten Aufgabe, aber das erste Element im Paar muss immer die größere Modellnummer haben pPC1.Modell, PC.Modell(rPC1(PC) (PC1.Mhz=PC.Mhz AND PC1.RAM=PC.RAM AND PC1.Modell>PC.Modell)(PC) Übung Datenbanksysteme WS 2002/2003 16.05.2016 Aufgabe 2h) Finden Sie die Hersteller, die mindestens zwei verschiedene Computer (PCs und Laptops) mit einer Taktfrequenz größer als 700 herstellen. Lösungsidee: wie in den letzten beiden Aufgaben, aber einiges an „Vorarbeit“ notwendig Q1: pModell(sMhz>=700)(PC) pModell(sMhz>=700)(Laptop) Die Modellnummer alles PCs und Laptops mit mindestens 700Mhz Q2: Q1 Hersteller Hersteller der Produkte finden Q3: Q2 (Q2.Hersteller=Q2a.Hersteller AND Q2.Modell ≠ Q2a.Modell) rQ2aQ2 Selfjoin um Paare zu finden, bei denen der Hersteller gleich ist, aber das Modell unterschiedlich Ergebnis: pQ2.Hersteller (Q3) Übung Datenbanksysteme WS 2002/2003 16.05.2016 Aufgabe 2i) Finden Sie den/die Hersteller des Computers (PC und Laptop) mit der höchsten Taktfrequenz. Problem: In der (normalen) relationalen Algebra hat wir kein max(x) Lösungsidee: alle Computer entfernen, die langsamer als ein anderer sind Q1: pModell,Mhz(PC) pModell,Mhz(Laptop) Modellnummer und Geschwindigkeit von allen PCs und Laptops Q2: rComp2(Q1) (Comp2.Mhz<Q1.Mhz) Q1 Suche nach den allen Computern, die langsamer sind als ein anderer Computer Q3: rComp2(Q1) - pComp2.Modell,Comp2.Mhz(Q2) Entfernen der langsamen Computer pComp2.Hersteller(Q3 Produkt) Finden der Hersteller und Projektion darauf Übung Datenbanksysteme WS 2002/2003 16.05.2016 Aufgabe 2j) Finden Sie die Hersteller, die PCs mit mindestens drei verschiedenen Taktfrequenzen herstellen. Problem: Wir haben auch kein count(x) Lösungsidee: Wir brauchen Tripel vom gleichen Hersteller mit drei verschiedenen Taktfrequenzen Q1: p Hersteller, Mhz (Produkt PC) Hersteller und Taktfrequenzen von allen PCs, ohne Duplikate Q2: rQ1a(Q1) (Q1a.Hersteller=Q1.Hersteller AND Q1a.Mhz≠Q1.Mhz) Q1 Paare von verschiedener Taktfrequenz vom selben Hersteller Q3: rQ1b(Q1) Q2 (Q1b.Hersteller = Q1.Hersteller AND Q1b.Mhz ≠ Q1.Mhz AND Q1b.Mhz ≠ Q1a.Mhz) Erweiterung der Paare zu Tripeln mit drei verschiedenen Taktfrequenzen, aber demselben Hersteller pQ1.Hersteller (Q3) Übung Datenbanksysteme WS 2002/2003 16.05.2016 Aufgabe 2k) Finden Sie die Hersteller, die genau drei verschiedene Modelle von PCs produzieren. Problem: Genau x ist anders als mindestens x Lösungsidee: Von den „mindestens drei“ die „mindestens vier“ entfernen Q1: pHersteller, Modell (Produkt PC) Hersteller und Modellnummer aller PCs Q2: Q1 (Q1.Hersteller=Q1a.Hersteller AND Q1.Modell ≠ Q1a.Modell) rQ1a(Q1) wie h) Paare unterschiedlicher Modelle vom selben Hersteller Q3: Q2 (Q2.Hersteller=Q1b.Hersteller AND Q2.Modell ≠ Q1b.Modell AND Q1a.Modell ≠ Q1b.Modell) rQ1b(Q1) Tripel unterschiedlicher Modelle vom selben Hersteller Q4: Q3 (Q3.Hersteller=Q1c.Hersteller AND Q3.Modell ≠ Q1c.Modell AND Q1a.Modell ≠ Q1c.Modell AND Q1b.Modell ≠ Q1c.Modell ) rQ1c(Q1) Quadrupel unterschiedlicher Modelle vom selben Hersteller Q3-Q4 Übung Datenbanksysteme WS 2002/2003 16.05.2016