Sommer 2017

HS 5


In [1]:
%load_ext sql

In [2]:
%sql mysql://steinam:steinam@localhost/sommer_2017


Out[2]:
'Connected: steinam@sommer_2017'

Die Bioscan GmbH plant ein System zur Zugangskontrolle. Dazu wurde bereits folgende Datenbank entwickelt und mit Testdaten gefüllt.

a) Liste aller Gebäude mit deren Räumen jeweils aufsteigend sortiert nach Gebäudebezeichnung und Raumtyp


In [3]:
%%sql

select G.*, R.*
from `gebaeude` G
left join Raum R on G.`GebID` = R.`GebID`
order by G.`Bezeichnung`, R.`Typ`


9 rows affected.
Out[3]:
GebID Bezeichnung Strasse PLZ Ort RaumID Typ GebID_1 MerkID
1 Forschung H Heinrich-Hertz-Str. 12 50501 Köln 5 Besprechungsraum 1 1
1 Forschung H Heinrich-Hertz-Str. 12 50501 Köln 3 Labor 1 2
1 Forschung H Heinrich-Hertz-Str. 12 50501 Köln 4 Labor 1 2
3 Forschung I Heinrich-Hertz-Str. 16 50501 Köln 6 Labor 3 2
3 Forschung I Heinrich-Hertz-Str. 16 50501 Köln 7 Labor 3 2
3 Forschung I Heinrich-Hertz-Str. 16 50501 Köln 8 Labor 3 2
2 Forschung U Heinrich-Hertz-Str. 14 50501 Köln 1 Besprechungsraum 2 1
2 Forschung U Heinrich-Hertz-Str. 14 50501 Köln 2 Labor 2 2
4 Verwaltung Transalee 22 50555 Köln None None None None

b) Liste aller Daten, die in der Tabelle Zugang gespeichert sind und die dazugehörigen Personendaten

Hinweis: Die Darstellung entspricht nicht dem erwarteten Ergebnis (redaktioneller Fehler in der Kammerprüfung (Dilettanten :-))


In [ ]:
%%sql

-- b
-- Ausgabe in der Kammerprüfung kann laut Datenbestand nicht ausgegeben werden
select p.*, Z.*
from Zugang Z
 left join Person P on P.`PersID` = Z.`PersID`

c) Anzahl der Räume, die bei derZugangskontrolle das Merkmal "Fingerabdruck prüfen" bzw. das Merkmal Iris prüfen


In [5]:
%%sql

 Select M.Merkmal, COUNT(R.RaumID) as AnzahlRaueme
 from Raum R left join Merkmal m on M.`MerkID` = R.`MerkID`
 group by M.`Merkmal`


2 rows affected.
Out[5]:
Merkmal AnzahlRaueme
Fiingerabdruck 2
Iris 6

d) Liste der Zugangsdaten von Max Müller. Hinweis: Es ist nur der Name, nicht die PersID bekannt


In [6]:
%%sql
select P.`Nachname`, P.`Vorname`, Z.RaumID, Z.`ZeitVon`, Z.`ZeitBis`from Zugang Z
 	left join Person P
    	on P.`PersID` = Z.`PersID`
        where P.`Nachname` = 'Müller' and P.`Vorname` = 'Max'


2 rows affected.
Out[6]:
Nachname Vorname RaumID ZeitVon ZeitBis
Müller Max 1 08:00 10:00
Müller Max 2 14:00 18:00

e) Liste aller Personen aus dem PLZ-Gebiet 5000 bis 5999


In [7]:
%%sql

Select P.*
 from Person P
 where P.`PLZ` like '5%'


2 rows affected.
Out[7]:
PersID Nachname Vorname Strasse PLZ Ort
101 Müller Max Müllerweg 1 52335 Köln
404 Wester Klaus Hauptstr. 13 55667 Köln