SQL Bankraub

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>SQL</language>
[[Bild:Bankeinbruch.jpg|thumb|300px]]

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

<code id="4a9790521b9e5" hidden>

CREATE TABLE Personen (ID INTEGER,Name VARCHAR(255), Vorname VARCHAR(255), Nationalitaet VARCHAR(50), Geburtsdatum VARCHAR(30), Groesse INTEGER, Strasse VARCHAR(200), Hausnummer INTEGER, Vater INTEGER, Mutter INTEGER);

INSERT INTO Personen VALUES (1,'Anderson','George','USA','1932-11-02', 172, 'Corn Road', 104, NULL,NULL);
INSERT INTO Personen VALUES (2,'Anderson','Vivian','England','1936-05-03', 165, 'Corn Road', 104, NULL,NULL);
INSERT INTO Personen VALUES (3,'Smith','Tom','USA','1938-12-07', 181, 'Malven Street', 65, NULL,NULL);
INSERT INTO Personen VALUES (4,'Smith','Sara','USA','1937-07-16', 167, 'Malven Street', 65, NULL,NULL);
INSERT INTO Personen VALUES (5,'Linguini','Hans','USA','1953-10-05', 169, 'St. Luis Road', 12, NULL,NULL);
INSERT INTO Personen VALUES (6,'Anderson','Julia','USA','1956-04-23', 162, 'St. Luis Road', 9, 3,4);
INSERT INTO Personen VALUES (7,'Jones','Eva','USA','1938-12-23', 152, 'Earding Hall', 43, NULL,NULL);
INSERT INTO Personen VALUES (8,'Jones','Sahra','USA','1956-09-16', 154, 'Crossroads', 59, NULL,8);
INSERT INTO Personen VALUES (9,'Watson','Emilie','German','1981-08-02', 161, 'Lancaster Road', 3, NULL,NULL);
INSERT INTO Personen VALUES (10,'Armstrong','Lars','Kanada','1977-09-01', 182, '5th Ave', 176, NULL,NULL);
INSERT INTO Personen VALUES (11,'Anderson','Egon','USA','1976-05-12', 176, 'St. Luis Road', 9, NULL,6);
INSERT INTO Personen VALUES (12,'Faith','Tom','USA','1951-07-22', 176, '12th Ave', 54, NULL,NULL);
INSERT INTO Personen VALUES (13,'Faith','Salma','USA','1954-08-31', 161, '12th Ave', 54, NULL,NULL);
INSERT INTO Personen VALUES (14,'Faith','Larry','USA','1976-11-02', 180, '12th Ave', 88, 12,13);
INSERT INTO Personen VALUES (15,'Thommas','Max','USA','1978-12-07', 182, 'St. George Street', 41, NULL,NULL);
INSERT INTO Personen VALUES (16,'Eddison','Eve','USA','1923-09-21', 148, 'Placa De Toro', 136, NULL,NULL);
INSERT INTO Personen VALUES (17,'Tell','Egon','USA','1973-07-22', 165, '6th Ave', 112, NULL,NULL);
INSERT INTO Personen VALUES (18,'Jang','Lie','China','1982-08-15', 182, '8th Road', 78, NULL,19);
INSERT INTO Personen VALUES (19,'Jang','Chia','China','1971-06-12', 165, 'Bardich Road', 54, NULL,NULL);
INSERT INTO Personen VALUES (20,'La Fe','Largo','France','1978-08-18', 183, 'Bosten Place', 3, NULL,NULL);
INSERT INTO Personen VALUES (21,'La Fe','Morgan','France','1979-06-17', 173, 'Bosten Place', 3, NULL,NULL);
INSERT INTO Personen VALUES (22,'Cook','Lie','USA','1988-02-26', 188, 'Mercury Road', 21, NULL,NULL);
INSERT INTO Personen VALUES (23,'Chong','Lie','China','1954-07-12', 156, 'St Elmar Road', 141, NULL,NULL);
INSERT INTO Personen VALUES (24,'Gandi','Lea','India','1978-12-04', 163, 'Mandara Street', 31, NULL,NULL);
INSERT INTO Personen VALUES (25,'Gandi','Chuan','India','1973-02-23', 183, 'Mandara Street', 31, NULL,NULL);
INSERT INTO Personen VALUES (26,'Urs','Rene','Swizerland','1972-03-04', 182, 'Bold Street', 43, NULL,NULL);
INSERT INTO Personen VALUES (27,'Urs','Lisbet','Swizerland','1975-02-11', 166, 'Bold Street', 43, NULL,NULL);
INSERT INTO Personen VALUES (28,'Urs','Sandra','Swizerland','1993-01-23', 171, 'Bold Street', 43, 26,27);
INSERT INTO Personen VALUES (29,'Clark','Denis','USA','1969-11-08', 173, 'Odessa Street', 87, NULL,NULL);
INSERT INTO Personen VALUES (30,'Talent','Adam','USA','1983-05-17', 193, 'Furca Street', 199, NULL,NULL);
INSERT INTO Personen VALUES (31,'Jeys','Billy','USA','1982-09-21', 187, 'Erding Road', 218, 32,NULL);
INSERT INTO Personen VALUES (32,'Jeys','Egon','USA','1971-11-05', 175, 'Erding Road', 218, NULL,NULL);
INSERT INTO Personen VALUES (33,'Verne','Eddy','USA','1981-07-01', 185, 'Erding Road', 112, NULL,NULL);
INSERT INTO Personen VALUES (34,'Tagar','Loui','France','1982-08-09', 179, 'St Jones Road', 3, NULL,NULL);
INSERT INTO Personen VALUES (35,'Jang','Chia','China','1977-09-07', 165, 'Bardich Road', 32, NULL,NULL);
INSERT INTO Personen VALUES (36,'Jang','Jachi','China','1981-02-21', 185, 'Bardich Road', 32, NULL,NULL);
INSERT INTO Personen VALUES (37,'Thong','Lo','China','1951-01-22', 165, '26th Street', 152, NULL,NULL);
INSERT INTO Personen VALUES (38,'Smith','Thomas','USA','1976-04-11', 185, 'Placa Avante', 19, NULL,NULL);
INSERT INTO Personen VALUES (39,'Jones','Lara','USA','1982-09-01', 161, '2th Ave', 197, NULL,NULL);
INSERT INTO Personen VALUES (40,'Mueller','Hans','German','1952-11-05', 167, 'Erding Road', 134, NULL,NULL);
INSERT INTO Personen VALUES (41,'Delgardo','Lillian','Italy','1981-01-08', 163, 'Erding Road', 122, NULL,NULL);
INSERT INTO Personen VALUES (42,'Delgardo','Luigi','Italy','1977-03-17', 184, 'Erding Road', 122, NULL,NULL);
INSERT INTO Personen VALUES (43,'Cook','Thomas','USA','1978-03-15', 172, 'Lago Street', 81, NULL,NULL);
INSERT INTO Personen VALUES (44,'Cook','Tim','USA','1953-01-04', 171, 'Placa Palace', 55, NULL,NULL);
INSERT INTO Personen VALUES (45,'Cook','Lisa','USA','1955-12-15', 153, 'Placa Palace', 55, NULL,NULL);
INSERT INTO Personen VALUES (46,'Cook','Jack','USA','1932-09-11', 162, 'St George Place', 1, NULL,NULL);
INSERT INTO Personen VALUES (47,'Cook','Elisabeth','USA','1931-08-21', 152, 'St George Place', 1, NULL,NULL);
INSERT INTO Personen VALUES (48,'Rauch','Peter','German','1981-01-22', 182, 'Lago Street', 23, NULL,NULL);
INSERT INTO Personen VALUES (49,'Rauch','Eva','German','1986-08-12', 166, 'Lago Street', 23, NULL,NULL);
INSERT INTO Personen VALUES (50,'Darzzy','Mike','USA','1955-11-21', 182, 'Rose Avenue', 44, NULL,NULL);
INSERT INTO Personen VALUES (51,'Darzzy','Elenore','USA','1960-01-30', 163, 'Rose Avenue', 44, NULL,NULL);
INSERT INTO Personen VALUES (52,'Kingz','Phil','USA','1987-04-22', 197, 'Town Street', 1, 54,53);
INSERT INTO Personen VALUES (53,'Kingz','Carly','USA','1968-09-08', 163, 'Silver Road', 98, NULL,NULL);
INSERT INTO Personen VALUES (54,'Gibson','Sam','USA','1966-03-12', 187, 'Aron Avenue', 11, NULL,NULL);
INSERT INTO Personen VALUES (55,'Soure','Lily','USA','1970-05-24', 158, 'Kline Street', 15, NULL,NULL);
INSERT INTO Personen VALUES (56,'Nealy','Oscar','England','1924-01-01', 172, 'Kensington Road', 43, NULL,NULL);
INSERT INTO Personen VALUES (57,'Nealy','Marlene','England','1930-12-16', 154, 'Kensington Road', 43, NULL,NULL);
INSERT INTO Personen VALUES (58,'Rose','Charlene','England','1962-08-26',165, 'London Street', 5, 56,57);
INSERT INTO Personen VALUES (59,'Nealy','Sam','Irland','1958-07-07', 185, 'Middle Street', 34, 56,57);
INSERT INTO Personen VALUES (60,'Breaker','Fred','USA','1974-11-27', 193, 'City Place', 86, NULL,NULL);
INSERT INTO Personen VALUES (61,'Summer','Aron','USA','1980-09-19', 178, 'Florres Road', 62, NULL,NULL);
INSERT INTO Personen VALUES (62,'Summer','Caroline','USA','1985-11-29', 159, 'Florres Road', 62, NULL,NULL);
INSERT INTO Personen VALUES (63,'Hayden','Luise','USA','1957-12-31', 167, 'Arrlington Road', 94, NULL,NULL);
INSERT INTO Personen VALUES (64,'Hayden','Marcel','USA','1953-04-23', 184, 'Arrlington Road', 94, NULL,NULL);
INSERT INTO Personen VALUES (65,'Runes','Vivianne','German','1980-10-07', 169, 'Seestrasse', 56, 64,63);
INSERT INTO Personen VALUES (66,'Hayden','Loris','USA','1977-05-06', 188, 'Arrow Road', 99, 64,63);
INSERT INTO Personen VALUES (67,'Wild','Mario','USA','1940-02-17', 180, 'Flower Road', 79, NULL,NULL);
INSERT INTO Personen VALUES (68,'Cream','Jonas','USA','1985-06-09', 191, 'Night Avenue', 5, NULL,NULL);
INSERT INTO Personen VALUES (69,'Cave','Marie','Irland','1933-09-21', 160, 'Scot Way', 52, NULL,NULL);
INSERT INTO Personen VALUES (70,'Cave','Linol','Irland','1930-03-25', 186, 'Scot Way', 52, NULL,NULL);
INSERT INTO Personen VALUES (71,'Rinol','Luise','Italy','1951-06-01', 166, 'Wall Way', 9, NULL,NULL);
INSERT INTO Personen VALUES (72,'Meyer','Sina','German','1955-10-16', 181, 'Am Wall', 7, NULL,NULL);
INSERT INTO Personen VALUES (73,'Cave','Gliff','England','1953-01-29', 189, 'Picadilly Circus', 11, 70,69);
INSERT INTO Personen VALUES (74,'Cave','Lisa','England','1957-09-15', 163, 'Picadilly Circus', 11, NULL,NULL);
INSERT INTO Personen VALUES (75,'Cave','Lina','England','1978-01-01', 176, 'Picadily Circus', 104, 73,74);
INSERT INTO Personen VALUES (76,'Crudo','Joel','USA','1979-12-03', 172, '4th Avenue', 34, NULL,NULL);
INSERT INTO Personen VALUES (77,'Birdy','Michael','USA','1958-04-26', 183, 'Circus Road', 354, NULL,NULL);
INSERT INTO Personen VALUES (78,'Lester','Susan','USA','1940-03-30', 167, 'Brook Street', 26, NULL,NULL);
INSERT INTO Personen VALUES (79,'Chester','Larry','USA','1930-12-14', 182, 'Clester Street', 67, NULL,NULL);
INSERT INTO Personen VALUES (80,'Quin','Elia','USA','1956-07-09', 156, 'St Louis Street', 120, NULL,NULL);
INSERT INTO Personen VALUES (81,'Quin','Freddy','USA','1952-03-19', 175, 'St Louis Street', 120, NULL,NULL);
INSERT INTO Personen VALUES (82,'Quin','Eddy','USA','1979-07-09', 182, 'Jefferson Street', 12, 81,80);
INSERT INTO Personen VALUES (83,'Flame','Samanta','USA','1977-04-04', 163, 'Madera Street', 32, NULL,NULL);
INSERT INTO Personen VALUES (84,'Flame','Georg','USA','1980-09-01', 193, 'Madera Street', 32, 85,86);
INSERT INTO Personen VALUES (85,'Flame','Logan','USA','1951-07-26', 181, 'Elmar Street', 176, NULL,NULL);
INSERT INTO Personen VALUES (86,'Flame','Antonia','USA','1955-01-21', 160, 'Elmar Street', 176, NULL,NULL);
INSERT INTO Personen VALUES (87,'Pitt','Lisa','USA','1983-04-22', 163, 'Jefferson Street', 204, NULL,NULL);
INSERT INTO Personen VALUES (88,'Pitt','Joe','USA','1979-09-10', 182, 'Jefferson Street', 204, NULL,NULL);
INSERT INTO Personen VALUES (89,'Lenka','Eddy','USA','1981-12-30', 188, 'Woody Road', 19, NULL,NULL);
INSERT INTO Personen VALUES (90,'Lenka','Gina','USA','1984-05-21', 171, 'Woody Road', 19, NULL,NULL);
INSERT INTO Personen VALUES (91,'Long','Lie','China','1990-05-13', 191, 'Indigo Street', 63, NULL,NULL);
INSERT INTO Personen VALUES (92,'Fray','Paolo','USA','1981-11-09', 186, 'Indigo Street', 103, 93,94);
INSERT INTO Personen VALUES (93,'Fray','William','USA','1961-09-01', 177, 'Tortuga Bay', 10, NULL,NULL);
INSERT INTO Personen VALUES (94,'Fray','Julia','USA','1963-05-09', 161, 'Tortuga Bay', 10, NULL,NULL);
INSERT INTO Personen VALUES (95,'Delaware','Ira','USA','1923-07-07', 143, 'August Street', 132, NULL,NULL);
INSERT INTO Personen VALUES (96,'Honk','Igor','Russland','1976-06-13', 182, 'August Street', 150,NULL,NULL);
INSERT INTO Personen VALUES (97,'Honk','Tatjana','Russland','1979-03-18', 170, 'August Street', 150, NULL,NULL);
INSERT INTO Personen VALUES (98,'Bent','Arthur','USA','1982-02-19', 187, 'St Elmar Street', 201, NULL,NULL);
INSERT INTO Personen VALUES (99,'Bent','Lora','USA','1986-01-18', 171, 'St Elmar Street', 201, NULL,NULL);
INSERT INTO Personen VALUES (100,'Brown','Peter','German','1980-08-31', 180, 'St Elmar Street', 193, NULL,NULL);

CREATE TABLE KFZ (Kennzeichen VARCHAR(20), Fahrzeughalter INTEGER, Farbe VARCHAR(255), Automarke VARCHAR(255));

INSERT INTO KFZ VALUES ('V325634',43,'grau','BMW');
INSERT INTO KFZ VALUES ('E405AD3',12,'blau','GM');
INSERT INTO KFZ VALUES ('E4D4557',15,'weiss','Opel');
INSERT INTO KFZ VALUES ('24553DF',23,'rot','BMW');
INSERT INTO KFZ VALUES ('3D35G53',30,'blau','BMW');
INSERT INTO KFZ VALUES ('4055559',28,'schwarz','BMW');
INSERT INTO KFZ VALUES ('X4455F3',96,'braun','Lada');
INSERT INTO KFZ VALUES ('593FDNS',8,'lila','Opel');
INSERT INTO KFZ VALUES ('4576557',9,'weiss','Toyota');
INSERT INTO KFZ VALUES ('X54S435',38,'lila','Peugot');
INSERT INTO KFZ VALUES ('X566435',40,'rot','VW');
INSERT INTO KFZ VALUES ('D34D442',42,'weiss','VW');
INSERT INTO KFZ VALUES ('L343KD3',43,'grün','Opel');
INSERT INTO KFZ VALUES ('3D34VN9',45,'blau','Mercedes');
INSERT INTO KFZ VALUES ('445DSS3',46,'rot','Toyota');
INSERT INTO KFZ VALUES ('445D557',47,'blau','Toyota');
INSERT INTO KFZ VALUES ('4KE8965',48,'schwarz','Porsche');
INSERT INTO KFZ VALUES ('495DDF3',50,'weiss','Opel');
INSERT INTO KFZ VALUES ('X345557',6,'blau','BMW');
INSERT INTO KFZ VALUES ('4334DDD',52,'gelb','Ford');
INSERT INTO KFZ VALUES ('Y65478D',53,'schwarz','Peugot');
INSERT INTO KFZ VALUES ('L49210F',55,'silber','Mercedes');
INSERT INTO KFZ VALUES ('L344DF3',57,'rot','BMW');
INSERT INTO KFZ VALUES ('X3332SD',59,'rot','VW');
INSERT INTO KFZ VALUES ('X4440AQ',60,'braun','VW');
INSERT INTO KFZ VALUES ('U743DE2',68,'gelb','Toyota');
INSERT INTO KFZ VALUES ('R405553',72,'blau','VW');
INSERT INTO KFZ VALUES ('A47V394',76,'rot','Ford');
INSERT INTO KFZ VALUES ('Y453557',76,'gelb','BMW');
INSERT INTO KFZ VALUES ('A19324D',84,'blau','BMW');
INSERT INTO KFZ VALUES ('64E23F4',81,'silber','GM');
INSERT INTO KFZ VALUES ('A435D25',89,'gelben','Ford');
INSERT INTO KFZ VALUES ('A59225E',90,'blau','Mercedes');
INSERT INTO KFZ VALUES ('D459634',90,'rot','Porsche');
INSERT INTO KFZ VALUES ('F34053D',98,'rot','Mercedes');

CREATE TABLE Strafzettel (Kennzeichen VARCHAR(20), Datum VARCHAR(255),Zeit VARCHAR(255), Strasse VARCHAR(255));

INSERT INTO Strafzettel VALUES ('F34053D','2009-07-06','10:41','St Jones Road');
INSERT INTO Strafzettel VALUES ('495DDF3','2009-09-07','06:43','St Jones Road');
INSERT INTO Strafzettel VALUES ('Y65478D','2009-08-15','12:52','St Jones Road');
INSERT INTO Strafzettel VALUES ('D34D442','2009-09-14','14:23','Placa Avante');
INSERT INTO Strafzettel VALUES ('D34D442','2009-09-10','12:13','August Street');
INSERT INTO Strafzettel VALUES ('X4440AQ','2009-08-26','16:07','St Jones Road');
INSERT INTO Strafzettel VALUES ('4334DDD','2009-08-15','18:15','St Jones Road');
INSERT INTO Strafzettel VALUES ('4055557','2009-07-04','09:20','Elmar Street');
INSERT INTO Strafzettel VALUES ('4055557','2009-08-08','12:20','Clester Street');
INSERT INTO Strafzettel VALUES ('X345557','2009-05-21','12:04','St Jones Road');
INSERT INTO Strafzettel VALUES ('X345557','2009-08-12','18:02','Jefferson Street');
INSERT INTO Strafzettel VALUES ('495DDF3','2009-08-12','11:26','St Jones Road');
INSERT INTO Strafzettel VALUES ('X345557','2009-08-17','17:54','Jefferson Street');
INSERT INTO Strafzettel VALUES ('R405553','2009-09-01','09:19','St Jones Road');
INSERT INTO Strafzettel VALUES ('X345557','2009-08-22','18:45','Jefferson Street');
INSERT INTO Strafzettel VALUES ('445DSS3','2009-08-16','10:41','St Jones Road');
INSERT INTO Strafzettel VALUES ('Y65478D','2009-07-17','06:43','Scot Way');
INSERT INTO Strafzettel VALUES ('Y65478D','2009-09-05','12:52','Brook Street');
INSERT INTO Strafzettel VALUES ('L344DF3','2009-08-04','14:23','Brook Street');
INSERT INTO Strafzettel VALUES ('D34D442','2009-08-00','12:13','Picadilly Circus');
INSERT INTO Strafzettel VALUES ('X4440AQ','2009-09-16','16:07','Madera Street');
INSERT INTO Strafzettel VALUES ('495DDF3','2009-09-25','18:15','St Jones Road');
INSERT INTO Strafzettel VALUES ('L49210F','2009-07-14','09:20','Elmar Street');
INSERT INTO Strafzettel VALUES ('495DDF3','2009-06-18','12:20','Clester Street');
INSERT INTO Strafzettel VALUES ('L344DF3','2009-07-01','12:04','Madera Street');
INSERT INTO Strafzettel VALUES ('Y65478D','2009-08-02','18:02','Picadilly Circus');
INSERT INTO Strafzettel VALUES ('495DDF3','2009-08-22','11:26','St Jones Road');
INSERT INTO Strafzettel VALUES ('4KE8965','2009-09-27','17:54','St Louis Street');
INSERT INTO Strafzettel VALUES ('D34D442','2009-09-11','09:19','St Jones Road');
INSERT INTO Strafzettel VALUES ('445DSS3','2009-08-12','18:45','Am Wall');

CREATE TABLE Vorstrafen (Person INTEGER, Grund VARCHAR(255));

INSERT INTO Vorstrafen VALUES (2,'Ladendiebstahl');
INSERT INTO Vorstrafen VALUES (8,'Erpressung');
INSERT INTO Vorstrafen VALUES (11,'Raub und schwerer Einbruch');
INSERT INTO Vorstrafen VALUES (12,'Raub');
INSERT INTO Vorstrafen VALUES (18,'Raub und Erpressung');
INSERT INTO Vorstrafen VALUES (22,'Ladendiebstahl');
INSERT INTO Vorstrafen VALUES (24,'Raub und schwerer Einbruch');
INSERT INTO Vorstrafen VALUES (26,'Körperverletzung');
INSERT INTO Vorstrafen VALUES (28,'Raub und Ladendiebstahl');
INSERT INTO Vorstrafen VALUES (29,'Ladendiebstahl');
INSERT INTO Vorstrafen VALUES (30,'Körperverletzung');
INSERT INTO Vorstrafen VALUES (32,'Steuerhinterziehung');
INSERT INTO Vorstrafen VALUES (38,'Raub und schwerer Einbruch');
INSERT INTO Vorstrafen VALUES (40,'Raub und Ladendiebstahl');
INSERT INTO Vorstrafen VALUES (43,'schwerer Einbruch');
INSERT INTO Vorstrafen VALUES (48,'Ladendiebstahl');
INSERT INTO Vorstrafen VALUES (49,'Raub');
INSERT INTO Vorstrafen VALUES (52,'Körperverletzung');
INSERT INTO Vorstrafen VALUES (56,'Raub');
INSERT INTO Vorstrafen VALUES (60,'Ladendiebstahl');
INSERT INTO Vorstrafen VALUES (63,'Steuerhinterziehung');
INSERT INTO Vorstrafen VALUES (66,'Körperverletzung');
INSERT INTO Vorstrafen VALUES (69,'Steuerhinterziehung');
INSERT INTO Vorstrafen VALUES (73,'Ladendiebstahl');
INSERT INTO Vorstrafen VALUES (75,'Erpressung');
INSERT INTO Vorstrafen VALUES (80,'Raub');
INSERT INTO Vorstrafen VALUES (82,'Raub und Ladendiebstahl');
INSERT INTO Vorstrafen VALUES (90,'Ladendiebstahl');
INSERT INTO Vorstrafen VALUES (98,'Steuerhinterziehung');
</code>

== 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.  
<run id="559293c2a092f">
SELECT * FROM Personen
</run>

Wenn wir bereits wissen, wie die einzelnen Spalten heissen, können wir die Ausgabe einschränken zum Beispiel:
<run id="559293c2a09cc">
SELECT Vorname, Name FROM Personen
</run>
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:
<run id="559293c2a0a5b">
SELECT Vorname, Name FROM Personen WHERE Vorname = "Eva"
</run>

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:
<run id="559294ce166aa" >
SELECT Vorname, Name, Groesse FROM Personen WHERE Vorname = "Lie" AND Groesse > "180" 
</run>

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. Datenbanken verwenden häufig die umgekehrte englische Schreibweise Jahr-Monat-Tag also 2015-10-23 statt 23.10.2015 für ein Datum. Im nachfolgenden Beispiel suchen wir alle Personen, die zwischen dem 1.1.1970 und dem 31.12.1980 geboren wurden: 

<run id="5592a4616686a">
SELECT Vorname, Name, Geburtsdatum FROM Personen WHERE Geburtsdatum > "1970-01-01" AND Geburtsdatum < "1980-12-31"
</run>

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":
<run id="55929beaa0ec2">
SELECT * FROM KFZ
</run>

Kannst du den Befehl so abändern, dass nur Einträge mit der Automarke BMW herausgesucht werden? Kannst du mit Hilfe der weiteren Hinweisen das Fluchtauto herausfinden?

Wenn du das richtige Auto gefunden hast müssen wir den Halter des Fahrzeugs ermitteln. In der Spalte Fahrzeughalter steht aber nur eine Zahl. Solche Zahlen werden in Datenbanken häufig verwendet, wenn auf Einträge in einer anderen Tabelle verwiesen werden soll. Schauen wir erneut in die Tabelle Personen (mit LIMIT 10 können wir die Ausgabe auf 10 Zeilen beschränken):

<run id="55929f0014074">
SELECT * FROM Personen LIMIT 10
</run>

Die erste Spalte heisst "ID". Jede Person wurde fortlaufend mit einer Zahl durchnummeriert. Wenn ein Auto also auf Person 28 zugelassen wurde, können wir in der Tabelle Personen danach suchen:
<run id="55929f00141c8">
SELECT * FROM Personen WHERE ID = "28"
</run>

Versuche den Fahrzeughalter vom Fluchtauto auf diese Weise zu ermitteln. Solche Verweise funktionieren auch innerhalb der gleichen Tabelle. Schau dir die Spalten Vater und Mutter an. Kannst du von Person 28 herausfinden wer ihr Vater ist? Hast du eine Idee, wie du den Fahrer des Fluchtautos herausfinden könntest? Vielleicht gehört das Auto ja jemanden aus seiner Familie?

== Die Informationen in den Tiefen der Datenbank ==

Schau dir die weiteren Tabellen der FBI-Datenbank an:

<run id="4a9790521c4f2">
SELECT * FROM Personen AS Ausschnitt LIMIT 10;
SELECT * FROM Vorstrafen AS Ausschnitt LIMIT 10;
SELECT * FROM KFZ AS Ausschnitt LIMIT 10;
SELECT * FROM Strafzettel AS Ausschnitt LIMIT 10;
</run>

Die Zusammenhänge kann man in Diagrammen wie dem Folgenden darstellen:

[[Bild:Bankraub_ERD.png]]

Um den dritten Täter zu ermitteln musst du dich wirklich anstrengen!

<popup label="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.)
</popup>