Rami Swailem FH Gießen-Friedberg Datenbanksysteme Hausübung 1 Name: Swailem Vorname: Rami Matrikelnummer: Testat Datenbanksysteme Hausübung 1 2. Relationale Algebra a 1 3 R 1. R o nS a 1 b 2 c 3 x 1 a 1 2 x 1 2 y 1 2 // alle möglichen Kombinationen. b 2 2 2 2 c 3 1 3 1 S.a 1 1 2 2 DbSysI.Hausuebung1.tex,v,1.6,December 12, 2005 b 2 2 2 b 2 2 x 1 1 2 2 y 1 1 2 2 // nur passende Kombinationen + Bedingung: R.a 6= x. c 1 3 1 4. R o nb=x S R.a 1 3 S y 1 3. R o nR.a6=x S R.a 3 1 3 c 3 1 // nur passende Kombinationen 2. R × S R.a 1 3 1 3 b 2 2 S.a 1 2 2 x 1 2 2 y 1 2 2 // nur passende Kombinationen + Bedingung: b = x. c 3 1 S.a 2 2 Wintersemester 2005/06 x 2 2 y 2 2 1 Rami Swailem FH Gießen-Friedberg Datenbanksysteme Hausübung 1 3. Mauterfassung 1. Erstellen Sie eine Liste aller Halter mit ihren KFZ. Die Liste soll Name, Vorname und Ort des Halters sowie Kennzeichen und Gewicht des jeweiligen KFZ enthalten und alphabetisch nach Name und Vorname sortiert sein. s e l e c t Name, Vorname , Ort , Kennzeichen , Gewicht from H a l t e r j o i n KFZ on H a l t e r . p _ i d =KFZ . p _ i d order by Name, Vorname 2. Welche Kraftfahrzeuge sind noch nie gebührenpflichtig auf einer Autobahn gefahren? Listen Sie die Kennzeichen in alphabetischer Reihenfolge auf. s e l e c t Kennzeichen from KFZ where Kennzeichen not i n ( s e l e c t Kennzeichen from E i n z e l f a h r t ) order by Kennzeichen 3. Erstellen Sie eine Liste aller Personen in der Tabelle Halter, zu denen kein KFZ registriert ist. Die Liste (Name, Vorname und Ort des Halters) soll alphabetisch nach Name und Vorname sortiert sein. s e l e c t Name, Vorname , O r t from H a l t e r where p _ i d not i n ( s e l e c t p _ i d from KFZ ) order by Name, Vorname 4. Gibt es mehrfach vorhandene Namen (Vorname, Nachname) in der Tabelle Halter, bei denen identische Anschriften (PLZ, Ort, Strasse) gespeichert sind? Listen Sie solche Namen mit Anschrift und P_ID auf. s e l e c t a . p_id , a . Name, a . Vorname , a . PLZ , a . Ort , a . S t r a s s e from H a l t e r a , H a l t e r b where a . Name = b . Name and a . Vorname = b . Vorname and a . PLZ = b . PLZ and a . S t r a s s e = b . S t r a s s e and a . p_id < b . p_id 5. Wie groß ist das durchschnittliche Gewicht aller KFZ? s e l e c t avg ( Gewicht ) as D u r c h s c h n i t t from KFZ DbSysI.Hausuebung1.tex,v,1.6,December 12, 2005 6. Erstellen Sie eine statistische Verteilung der Benutzung der einzelnen Mautstellen zur Einfahrt für das Jahr 2005. s e l e c t code , bezeichnung , count ( ∗ ) as ’ Anzahl ’ , count ( ∗ ) ∗ 1 0 0 / ( s e l e c t count ( ∗ ) from E i n z e l f a h r t where year ( datum_e ) = 2005) as Prozent from E i n z e l f a h r t j o i n M a u t s t e l l e on E i n z e l f a h r t . code_e = M a u t s t e l l e . code where year ( datum_e ) = 2005 group by code , bezeichnung Wintersemester 2005/06 2 Rami Swailem FH Gießen-Friedberg Datenbanksysteme Hausübung 1 7. Wie hoch ist die Benutzungsgebühr (Preis je km) für das KFZ mit dem Kennzeichen ’GI-EV 75’? s e l e c t p r ei s _ j e _k m from Gebuehr , KFZ where kennzeichen = ’ GI−EV 75 ’ and g e w i c h t between gewicht_von and g e w i c h t _ b i s alternative Lösung s e l e c t p r ei s _ j e _k m from KFZ j o i n Gebuehr on g e w i c h t between gewicht_von and g e w i c h t _ b i s where Kennzeichen = ’ Gi−Ev 75 ’ 8. Erstellen Sie die Rechnungszeilen für das KFZ mit dem Kennzeichen ’GI-EV 75’ für Juni 2005. Jede Zeile soll enthalten: Datum und Zeit der Einfahrt, den Code der Mautstellen für Ein- und Ausfahrt, die gefahrenen km sowie den zu zahlenden Preis. s e l e c t datum_e as Datum , code_e as E i n f a h r t , code_a as A u s f a h r t , km ∗ ( s e l e c t p r ei s _ j e _k m from gebuehr , Kfz where Kfz . Kennzeichen = ’ GI−EV 75 ’ and g e w i c h t between gewicht_von an g e w i c h t _ b i s ) as PREIS from Kfz n a t u r a l j o i n E i n z e l f a h r t where Kennzeichen = ’ GI−EV 75 ’ and d a t e _ p a r t ( ’ year ’ , datum_e ) = 2005 and d a t e _ p a r t ( ’ month ’ , datum_e ) = 6 order by datum_e ; DbSysI.Hausuebung1.tex,v,1.6,December 12, 2005 Wintersemester 2005/06 3