SQL Bankraub

Aus ProgrammingWiki
Archivierte Version vom 2015-06-30T13:08:30+00:00. Aktuelle Version

Inhaltsverzeichnis

Bankeinbruch.jpg

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 Werkzeug: Die FBI-Datenbank

Informationen speichert man heute oft in elektronischen Datenbanken und nicht mehr in 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 eine oder mehrere Tabellen. In einer Tabelle steht immer eine Art von Information. 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. Ein Beispiel:

Klicke auf "ausführen" um den oben angegebenen Befehl an die Datenbank zu schicken. Es werden die ersten 10 Personen aufgelistet. Übersetzt heisst der Befehl so viel wie: SUCHE ALLES (*) VON Personen UND GIB maximal 10 Zeilen aus.

Wenn wir bereits wissen, wie die einzelnen Spalten heissen, können wir die Ausgabe einschränken zum Beispiel:

Nun bekommen wir nur Vorname und Name von den ersten 20 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. Wir können versuchen über das Alter des Täters von 20 - 30 Jahren (siehe Hinweis 1) die Auswahl weiter einzuengen. In der Datenbank haben wir jedoch keine direkte Angabe zum Alter, jedoch haben wir das Geburtsdatum. Im nachfolgenden Beispiel suchen wir alle Personen, die zwischen dem 1.1.1985 und dem 31.12.1995 geboren wurden:

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:


Die Datenbank

Als FBI-Ermittler und Datenbank-Spezialist bist du für diesen Fall zuständig. Du hast bereits 100 Personen herausgesucht, 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.

Bankraub_ERD.png


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