SQL Bankraub
Inhaltsverzeichnis |
Was ist passiert?
Ein Gängstertrio hat letzte Woche die Central Bank in New York ausgeräumt. Es waren Profis wie der Polizeichef bestätigte: "Hier waren ganz klar Kenner mit Erfahrung am Werk. Sie haben den Coup sicher schon über Wochen im Vorfeld geplant. Wir sind sicher, wir finden die Täter."
Du bist frisch gebackener FBI-Ermittler und sollst mit Hilfe des FBI-Computers die Räuber ausfindig machen - ganz bequem vom Schreibtisch aus :-)
Die Hinweise
Von den Augenzeugen haben wir nur zwei Hinweise auf die drei männliche Täter erhalten:
1. Hinweis: Ein Täter bedrohte die Angestellten und wurde von einem Komplizen “Lie“ gerufen. Er soll mindestens 1'80 groß gewesen sein, zwischen 20 und 30 Jahre alt und trug auffallend chinesische Kleidung.
2.Hinweis: Eine Augenzeugin erinnert sich an das Fluchtfahrzeug. Es ist ein blauer oder schwarzer BMW gewesen sagt sie und das Kennzeichen soll auf 557 geendet haben.
Dein Kollege hat bereits eine erste Vorauswahl von 100 möglichen Personen getroffen, die als Täter in Frage kommen könnten. Du hast Zugriff auf folgende Tabellen der FBI-Datenbank:
Die Spalten Vater, Mutter, Fahrzeughalter und Person sind Fremdschlüssel auf die Spalte ID der Tabelle Personen.
Dein Werkzeug: Die FBI-Datenbank
Informationen speichert man heute oft in elektronischen Datenbanken und nicht mehr in dicken Ordnern auf Papier. Ob Facebook oder die Führerscheinstelle, alle verwenden Datenbanken in denen zum Beispiel der Name, Adresse und vielleicht ein Foto jedes Kunden gespeichert wird. Die Datensätze (ein Eintrag in der Datenbank) haben immer den gleichen vorgegebenen Aufbaue - auch wenn einige Felder (Angaben) vielleicht mal leer sind, weil der Kunde seine Adresse noch nicht eingegeben hat oder noch kein Foto hochgeladen hat.
Eine Datenbank besitzt in der Regel mehrere Tabellen. Zum Beispiel gibt es in der FBI-Datenbank eine Tabelle "Personen" in der alle Einwohner aufgelistet sind - immer eine Person pro Zeile der Tabelle. Die Spalten sind einzelne Angaben wie Name, Vorname, Geburtsdatum und so weiter. Der Computer verwendet eine spezielle Sprache, um mit der Datenbank zu sprechen und genau die Informationen für uns heraus zu suchen, die wir haben möchten. Diese Sprache heisst SQL. Klicke auf "ausführen" um den folgenden Befehl an die Datenbank zu schicken. Es werden alle 100 Personen aufgelistet. Übersetzt heisst der Befehl so viel wie: SUCHE ALLES (*) VON Personen und zeig uns das Ergebnis an.
Wenn wir bereits wissen, wie die einzelnen Spalten heissen, können wir die Ausgabe einschränken zum Beispiel:
Nun bekommen wir nur den Vorname und Name aller Personen in der Datenbank angezeigt.
Wir können aber auch ganz gezielt suchen, indem wir der Datenbank genau sagen, nach was wir suchen möchten. Dies erfolgt über den Zusatz "WHERE" wie im folgenden Beispiel:
Nach den Hinweisen hieß einer der Täter "Lie" mit Vornamen. Kannst du den Befehl so umschreiben, dass der Computer alle Lie's findet? Vermutlich gibt es mehr als einen Lie in der Personendatenbank. Vielleicht können uns die anderen Hinweise weiterhelfen. Der Täter soll recht gross gewesen sein, 1,80 oder mehr. Mit "AND" können wir mehrere Suchkriterien gleichzeitig verwenden. Wir müssen einfach jedes Mal ein "AND" einfügen. Zum Beispiel können wir nach allen Lie's suchen, die grösser als 180 cm sind. Dazu verwenden wir wie in der Mathematik ein grösser-als Zeichen:
Wir können immer noch nicht genau sagen, wer der Täter gewesen ist. Suchen wir also nach weiteren Informationen in den Hinweisen. Das Alter des Täters soll zwischen 20 - 30 Jahren gewesen sein. In der Datenbank haben wir keine Angabe zum Alter, jedoch haben wir das Geburtsdatum. Im nachfolgenden Beispiel suchen wir alle Personen, die zwischen dem 1.1.1970 und dem 31.12.1980 geboren wurden:
Wann müsste Lie in etwa geboren sein, wenn er heute zwischen 20 und 30 Jahre alt ist? Kannst du den Befehl so umschreiben und erweitern, dass alle Lie's mit passendem Geburtsdatum gesucht werden? Wenn du alles richtig eingegeben hast, wird nur noch eine Person als Täter übrig bleiben.
Weitere Tabellen in der Datenbank
Unser zweiter Hinweis bezieht sich auf das Fluchtauto. Die Zulassungsstelle arbeitet mit dem FBI zusammen, weshalb wir auch Informationen zu Autos und Nummernschilder in der Datenbank finden können. Damit wir nicht tausende von Autos durchsuchen müssen, hat uns die Behörde nur die Tabelle der Autos gegeben, die zum Tatzeitpunkt in Frage kommen könnten. Die Tabelle heisst "KFZ":
Kannst du den Befehl so abändern, dass nur Einträge mit der Automarke BMW herausgesucht werden?
Hier kannst du einen Blick in die Datenbank werfen. Es werden jeweils 10 Datensätze angezeigt. Öffne dazu die Anzeige unterhalb dieses Textes und klicke dann auf ausführen.
Ersten 10 Datensätze
Die Aufgabe
Als FBI-Ermittler sollst du die Datenbank verwenden, um den Tätern auf die Spur zu kommen. Du kannst davon ausgehen, dass alle Täter in der Datenbank erfasst sind und eindeutig nach dem Ausschlussprinzip bestimmt werden können. Wie bereits vom Polizeichef erwähnt handelt es sich um Profis. Du kannst davon ausgehen, dass jeder Täter eine oder mehrere Vorstrafen besitzt.
Vorgehen:
- Skizziere dir zunächst ein Datenbankschema auf einem Blatt Papier und kennzeichne die Beziehungen zwischen den einzelnen Tabellen.
- Verwende geeignete SQL Anfragen, um die Datenbank zu durchsuchen.
- Notiere dir die Namen der drei Täter und Begründe deine Entscheidung. Durch logische Schlussfolgerungen kannst du den Täterkreis einengen.
Gib hier deine SQL Befehle ein, um die 3 Täter zu bestimmen:
Lösung
1. Täter: Lie Jang (Er ist der einzige mit dem Vornamen "Lie" und dem passendem Alter.)
2. Täter: Egon Anderson (Seine Mutter ist Halterinn des Fluchtautos und er ist die einzige männliche Person in der Familie Anderson mit Vorstrafe.)
3. Täter: Eddy Quin (Er wohnt als einziger Vorbestrafter auf der Jefferson Street, wo das Fluchtauto die Wochen vor dem Einbruch mehrere Strafzettel bekommen hat.)

