Datenbank
Eine dauerhaft gespeicherte, geordnete Sammlung von Daten zu einem Thema – zum Beispiel alle Kurse und Lernenden einer Schule.
B01 · Name: ____________________ · Datum: __________
◉ EinstiegPlenum
| ags | name_amtlich | einwohner | flaeche_km2 | plz_verwaltungssitz |
|---|---|---|---|---|
| 05911000 | Bochum, Stadt | 358676 | 145,66 | 44787 |
| 05913000 | Dortmund, Stadt | 603462 | 280,71 | 44135 |
| 05914000 | Hagen, Stadt der FernUniversität | 190384 | 160,45 | 58095 |
| 05915000 | Hamm, Stadt | 179968 | 226,43 | 59065 |
| 05916000 | Herne, Stadt | 155851 | 51,42 | 44623 |
Das Statistische Bundesamt veröffentlicht jedes Jahr ein Verzeichnis aller Gemeinden in Deutschland: Name, Einwohnerzahl, Fläche, Postleitzahl und mehr. In unserer Datenbank stehen daraus 10.957 Datensätze: 10.752 Gemeinden und 205 gemeindefreie Gebiete, zum Beispiel unbewohnte Forsten. Als Tabellenkalkulationsdatei hat das Verzeichnis über 16 000 Zeilen.
Leitfrage: Welche Gemeinden in Nordrhein-Westfalen haben mehr als 100 000 Einwohner – und welche ist die größte?
So arbeitest du in dieser Reihe – mit Datenanfragen: Jemand braucht eine Information. Eine Band plant eine Tour, ein Lieferdienst sein Liefergebiet, eine Zeitung prüft eine Behauptung. Du klärst die Frage mit dem Computer als Werkzeug: Du stellst einer Datenbank die passende Frage und gibst eine Antwort, die stimmt.
Dein Ziel heuteIch kann die Fachbegriffe einer Datenbanktabelle an echten Daten erklären und mit SELECT … FROM genau die Attribute anzeigen, die ich brauche.
Das hältst du fest: deinen Lösungsweg mit einer Tabellenkalkulation und was daran mühsam wäre.
B01 · Name: ____________________ · Datum: __________
▣ Nachholenalleinzusätzlich
Du warst bei Block 01 nicht da oder arbeitest ihn allein zu Hause durch. Diese Seite sagt dir, in welcher Reihenfolge du vorgehst und woran du merkst, dass du fertig bist. Alles, was im Unterricht gemeinsam besprochen wird, steht auch im Heft: Lies es und beantworte die Fragen schriftlich.
Einen Computer, ein Tablet oder ein Handy mit aktuellem Browser (Edge, Chrome, Firefox oder Safari). Für das Folienheft brauchst du kein Konto; zum Abgeben nutzt du dein IServ-Konto. Für Auftrag 2 nimmst du dein eigenes Handy oder denkst dir Kontakte aus.
Erst selbst versuchen. Dann: Wissen nachschlagen → Glossar → Hilfe 1 → Hilfe 2 → nach deinem Prüfversuch die Lösung vergleichen. Eine Lösung abschreiben ist erlaubt, wenn du danach die nächste Aufgabe allein schaffst.
Schreibe im Exit in das Feld „Hier brauche ich noch Hilfe“, an welcher Stelle du hängst. Die Lehrkraft bzw. die Fachansprechperson liest das; du arbeitest im nächsten Block weiter. Block 02 beginnt mit einem Kurzcheck und einer Förderansicht genau zu diesen Inhalten.
B01 · Name: ____________________ · Datum: __________
▣ WissenPlenum
Eine dauerhaft gespeicherte, geordnete Sammlung von Daten zu einem Thema – zum Beispiel alle Kurse und Lernenden einer Schule.
Ein Programm, das die Datenbank speichert, vor Fehlern schützt und Fragen beantwortet. Im SQL-Labor arbeitet das DBMS SQLite. Datenbank und DBMS zusammen heißen Datenbanksystem.
Die Daten stehen in Tabellen (Relationen). Mehrere Tabellen können über Schlüssel miteinander verbunden werden.
Die Sprache, mit der man einer relationalen Datenbank Fragen stellt. Fast alle relationalen DBMS verstehen sie.
| nr | vorname | kurs |
|---|---|---|
| 1 | Ali | BIO |
| 2 | Mia | INF |
| 3 | Ben | INF |
| 4 | Lea | SPA |
| 5 | Tom | INF |
| kuerzel | fach | raum |
|---|---|---|
| BIO | Biologie | R 104 |
| INF | Informatik | R 204 |
| SPA | Spanisch | R 015 |
Hervorgehoben: der Schlüssel jeder Tabelle. Das Kürzel in der Spalte kurs verweist auf genau eine Zeile der Tabelle kurs.
Datenbanken stecken fast überall: Die Schulverwaltung speichert Lernende, Kurse und Noten. Ein Onlineshop speichert Kundschaft, Artikel und Bestellungen. Ein Musikstreamingdienst speichert Nutzerkonten, Songs und jede Wiedergabe. Eine Fahrplan-App fragt bei jeder Suche eine Datenbank ab.
Die meisten dieser Datenbanken sind relational: Die Daten stehen in Tabellen. Meist bekommt jede Art von Gegenstand eine eigene Tabelle – eine für Lernende, eine für Kurse –, und die Tabellen werden über Schlüssel verbunden. Im Beispiel steht bei Mia nur das Kürzel INF; Fach und Raum stehen ein einziges Mal in der Tabelle kurs.
Das hat einen Vorteil: Zieht der Informatikkurs in einen anderen Raum, ändert man genau einen Attributwert. Stünde der Raum bei jeder Person, müsste man ihn dreimal ändern – und vergisst man eine Stelle, widersprechen sich die Daten.
Achtung, Wortfalle: „Relation“ ist der Fachbegriff für eine Tabelle, nicht für die Verbindung zwischen zwei Tabellen.
Unser Gemeindeverzeichnis beginnt mit einer einzigen Tabelle. Auch das ist schon eine relationale Datenbank. Ab Block 05 kommen weitere Tabellen dazu, die über Schlüssel verbunden sind. Das DBMS SQLite verwaltet die Tabellen; mit SQL stellst du ihm Fragen.
Merksatz: Eine relationale Datenbank speichert Daten in Tabellen; mehrere Tabellen können über Schlüssel verbunden werden. Ein DBMS verwaltet sie, mit SQL fragt man sie ab. Datenbank + DBMS = Datenbanksystem.
Das hältst du fest: die Begriffe Datenbank, DBMS, Datenbanksystem, relationale Datenbank, SQL und den Vorteil der Verbindung über Schlüssel.
B01 · Name: ____________________ · Datum: __________
▣ WissenPlenum
Eine Sammlung gleich aufgebauter Einträge. Unsere Tabelle heißt gemeinde.
Eine Zeile: alle Angaben zu genau einem Gebiet – meist einer Gemeinde.
Eine Spalte mit Namen, zum Beispiel einwohner.
Ein einzelner Eintrag: der Wert eines Attributs in einem Datensatz.
Legt fest, welche Art Wert ein Attribut hat: INTEGER (ganze Zahl), REAL (Kommazahl), TEXT.
Ein Attribut (oder eine Kombination von Attributen), dessen Wert jeden Datensatz eindeutig kennzeichnet und nie fehlt. Hier genügt ags, der amtliche Gemeindeschlüssel.
| ags | name | bundesland | einwohner | flaeche_km2 |
|---|---|---|---|---|
| 05911000 | Bochum | Nordrhein-Westfalen | 358676 | 145,66 |
| 05913000 | Dortmund | Nordrhein-Westfalen | 603462 | 280,71 |
| 05914000 | Hagen | Nordrhein-Westfalen | 190384 | 160,45 |
Eine Datenbank speichert Daten in Tabellen. Jede Tabelle hat feste Attribute – bei uns zum Beispiel name, einwohner und flaeche_km2. Jeder Datensatz hat für jedes Attribut genau einen Attributwert. Fehlt ein Wert, steht dort NULL (kein Wert bekannt).
Die Tabelle heißt gemeinde, enthält aber auch gemeindefreie Gebiete wie unbewohnte Forsten. Welche Art ein Datensatz ist, steht im Attribut gebietsart. Wer später Gemeinden zählt, muss das beachten – sonst ist die Rechnung richtig, die Aussage aber falsch.
Für jedes Attribut ist ein Datentyp festgelegt. In einwohner stehen ganze Zahlen (INTEGER), in flaeche_km2 Kommazahlen (REAL), in name Texte (TEXT). Die Datenbank kann deshalb mit Einwohnerzahlen rechnen und sie der Größe nach ordnen.
Damit man einen Datensatz sicher wiederfindet, braucht jede Tabelle einen Primärschlüssel. Der Name eignet sich nicht: 11 Gemeinden heißen „Neuenkirchen“ – zwei davon sogar im selben Kreis. Der amtliche Gemeindeschlüssel ags ist dagegen für jede Gemeinde verschieden. Er besteht aus Ziffern, wird aber als TEXT gespeichert: Er beginnt bei Schleswig-Holstein mit 0, und mit ihm wird nie gerechnet.
Merksatz: Datensatz = Zeile, Attribut = Spalte, Attributwert = Eintrag. Der Primärschlüssel macht jeden Datensatz eindeutig.
Gleiche Gemeindenamen im Verzeichnis:
| ags | name | kreis | bundesland | einwohner |
|---|---|---|---|---|
| 01051075 | Neuenkirchen | Dithmarschen | Schleswig-Holstein | 937 |
| 03251028 | Neuenkirchen | Diepholz | Niedersachsen | 1196 |
| 03352038 | Neuenkirchen | Cuxhaven | Niedersachsen | 1326 |
| 03358017 | Neuenkirchen | Heidekreis | Niedersachsen | 5365 |
| 03359033 | Neuenkirchen | Stade | Niedersachsen | 873 |
| 03459027 | Neuenkirchen | Osnabrück | Niedersachsen | 4640 |
| 05566060 | Neuenkirchen | Steinfurt | Nordrhein-Westfalen | 13915 |
| 13071108 | Neuenkirchen | Mecklenburgische Seenplatte | Mecklenburg-Vorpommern | 1116 |
| 13073059 | Neuenkirchen | Vorpommern-Rügen | Mecklenburg-Vorpommern | 272 |
| 13075101 | Neuenkirchen | Vorpommern-Greifswald | Mecklenburg-Vorpommern | 216 |
| 13075102 | Neuenkirchen | Vorpommern-Greifswald | Mecklenburg-Vorpommern | 2340 |
Das hältst du fest: die sechs Begriffe, je mit einem Beispiel aus der Tabelle gemeinde.
B01 · Name: ____________________ · Datum: __________
✎ Auftrag 1allein
Datenanfrage · Schülerzeitung
„In unserer nächsten Ausgabe erklären wir, wie eine Datenbanktabelle aufgebaut ist. Kannst du prüfen, ob wir die Fachbegriffe richtig zuordnen?“
Du siehst noch einmal den Auszug mit Dortmund. Ordne jedem Teil der Tabelle den passenden Fachbegriff zu.
Legende: Tabelle gemeinde; Attribute ags, name, bundesland, einwohner, flaeche_km2.
Das hältst du fest: sechs richtige Zuordnungen und eine Begründung mit Beleg aus den Daten.
Werkzeug: Auswahllisten mit Prüfknopf.
| ags | name | bundesland | einwohner | flaeche_km2 |
|---|---|---|---|---|
| 05911000 | Bochum | Nordrhein-Westfalen | 358676 | 145,66 |
| 05913000 | Dortmund | Nordrhein-Westfalen | 603462 | 280,71 |
| 05914000 | Hagen | Nordrhein-Westfalen | 190384 | 160,45 |
Beginne mit dem Leichtesten: Was ist eine ganze Zeile, was eine ganze Spalte?
Ein Attributwert ist immer genau ein Eintrag – nicht eine ganze Zeile oder Spalte.
Datensatz – Attribut – Attributwert – eindeutig – kommt mehrfach vor – „Neuenkirchen“
Zeile → Datensatz. Spaltenüberschrift → Attribut. Ein Kästchen → Attributwert. Art der Werte (Zahl, Text) → Datentyp. Spalte, die jede Zeile eindeutig macht → Primärschlüssel. Alles zusammen → Tabelle.
B01 · Name: ____________________ · Datum: __________
✎ Auftrag 2zu zweit oder allein
Auch die Kontaktliste in deinem Handy ist intern eine Tabelle. Allein zu Hause: Öffne einen Kontakt auf deinem eigenen Handy oder denke dir einen aus.
Legende: Ein Kontakt = ein Datensatz. Mögliche Attribute: Vorname, Nachname, Telefonnummer, Geburtstag …
Das hältst du fest: drei Attribute mit Datentyp und ein Urteil zum Primärschlüssel.
Werkzeug: Antwortfeld, danach Vergleich.
Öffne gedanklich einen Kontakt: Welche Felder siehst du?
Telefonnummern beginnen mit 0 – rechnen will man mit ihnen nicht.
Attribut – TEXT – Datum – eindeutig – teilen sich – wechselt
Vorname (TEXT), Telefonnummer (TEXT wegen der führenden 0), Geburtstag (Datum). Gegen die Nummer als Schlüssel: Familien teilen sich Festnetznummern, Nummern wechseln, manche Kontakte haben keine.
B01 · Name: ____________________ · Datum: __________
✎ Auftrag 3allein
Datenanfrage · Datenredaktion der Lokalzeitung
„Wir haben das Gemeindeverzeichnis als Datenbank bekommen. Wie viele Einträge hat es, und welche Angaben stehen darin?“
SQL ist die Sprache, mit der man Datenbanken Fragen stellt. Eine solche Frage heißt Abfrage. Das Labor unten schickt deine Abfrage an die Datenbank und zeigt die Ergebnistabelle.
Legende: Tabelle gemeinde mit 10.957 Datensätzen. Im Kasten „Tabellen“ stehen alle Attribute und Datentypen.
Das hältst du fest: Vorhersage, Ergebnis und die Bedeutung von *.
Werkzeug: SQL-Labor: Kasten „Tabellen“, Eingabefeld, Ausführen, Ergebnistabelle (es werden höchstens 200 Datensätze angezeigt).
gemeindeags | TEXT | Primärschlüssel |
name | TEXT | Pflichtfeld |
zusatz | TEXT | |
name_amtlich | TEXT | Pflichtfeld |
bundesland | TEXT | Pflichtfeld |
kreis | TEXT | Pflichtfeld |
gebietsart | TEXT | Pflichtfeld |
einwohner | INTEGER | |
maennlich | INTEGER | |
weiblich | INTEGER | |
flaeche_km2 | REAL | |
plz_verwaltungssitz | TEXT | |
laengengrad | REAL | |
breitengrad | REAL | |
reisegebiet | TEXT | |
verstaedterung | TEXT |
Ohne Bedingung liefert eine Abfrage alle Datensätze der Tabelle.
Die Zahl der Datensätze steht in der Legende.
alle Attribute – alle Datensätze – Spalten – Zeilen
Vorhersage: so viele Datensätze, wie die Tabelle hat. * zeigt alle Attribute in der Reihenfolge der Tabelle.
B01 · Name: ____________________ · Datum: __________
▣ Wissenallein
Welche Attribute sollen im Ergebnis stehen? Mehrere werden durch Kommas getrennt.
Aus welcher Tabelle? Hier: gemeinde.
Die Attribute erscheinen im Ergebnis in der Reihenfolge, in der du sie schreibst.
Schlüsselwörter groß, Namen klein und genau wie im Kasten „Tabellen“. Eine Klausel pro Zeile, am Ende ein Semikolon.
So kannst du dir die Auswertung vorstellen: Erst wird die Tabelle geholt, dann werden die Spalten ausgewählt. (Wie die Datenbank intern arbeitet, kann davon abweichen.)
Eine Abfrage mit SELECT verändert die Daten nicht. Sie erzeugt eine neue Ergebnistabelle.
SELECT name, einwohner FROM gemeinde; liefert genauso viele Datensätze wie die Tabelle, aber nur zwei Attribute. Das Auswählen von Spalten heißt in der Fachsprache Projektion.
Vorsicht beim Komma: SELECT name einwohner ohne Komma ist kein Fehler für die Datenbank. Sie zeigt dann nur das Attribut name – und schreibt „einwohner“ als Überschrift darüber.
Merksatz: SELECT wählt die Spalten, FROM nennt die Tabelle. Kommas trennen die Attribute.
Handgerechnetes Mini-Beispiel mit drei Datensätzen:
| name | bundesland | einwohner |
|---|---|---|
| A-Stadt | Hessen | 5000 |
| B-Dorf | Bayern | 800 |
| C-Hausen | Bayern | 1200 |
SELECT einwohner, name FROM … ergibt drei Datensätze mit zwei Spalten: 5000 | A-Stadt, 800 | B-Dorf, 1200 | C-Hausen.
Das hältst du fest: den Aufbau SELECT … FROM … ; und die Bedeutung des Kommas.
B01 · Name: ____________________ · Datum: __________
✎ Auftrag 4allein
Datenanfrage · Schülervertretung
„Wir planen ein Quiz „Wie groß ist deine Gemeinde?“. Wir brauchen für jeden Eintrag nur den Namen und die Einwohnerzahl. Später soll noch die Fläche dazu.“
Wozu: Quizkarten mit Name, Einwohnerzahl und Fläche
Bevor du die Liste schreibst, untersuchst du, was eine Abfrage mit zwei Attributen liefert.
Legende: Tabelle gemeinde; Attribute name, einwohner, flaeche_km2.
Das hältst du fest: deine Beobachtung zum Vertauschen und eine geprüfte Abfrage mit drei Attributen.
Werkzeug: SQL-Labor mit Vorhersagefeld; zweites Labor mit Prüfknopf.
Zähle die Attribute nach SELECT – so viele Spalten hat das Ergebnis.
Die Reihenfolge der Attribute nach SELECT bestimmt die Reihenfolge der Spalten.
Spaltenreihenfolge – gleiche Datensätze – Komma – flaeche_km2
Vorhersage: 2 Spalten, so viele Datensätze wie die Tabelle. Vertauscht: andere Spaltenreihenfolge, gleiche Daten. Erweitert: SELECT name, einwohner, flaeche_km2 FROM gemeinde;
B01 · Name: ____________________ · Datum: __________
✎ Auftrag 5allein
Drei Datenanfragen sind eingegangen. Jede braucht andere Attribute – genau die und keine weiteren.
Legende: Tabelle gemeinde. Die genauen Attributnamen stehen im Kasten „Tabellen“.
Das hältst du fest: drei geprüfte Abfragen (c notfalls zu Hause).
Werkzeug: SQL-Labor mit Prüfknopf. Geprüft wird das ganze Ergebnis; die Spaltenreihenfolge ist frei.
gemeindeags | TEXT | Primärschlüssel |
name | TEXT | Pflichtfeld |
zusatz | TEXT | |
name_amtlich | TEXT | Pflichtfeld |
bundesland | TEXT | Pflichtfeld |
kreis | TEXT | Pflichtfeld |
gebietsart | TEXT | Pflichtfeld |
einwohner | INTEGER | |
maennlich | INTEGER | |
weiblich | INTEGER | |
flaeche_km2 | REAL | |
plz_verwaltungssitz | TEXT | |
laengengrad | REAL | |
breitengrad | REAL | |
reisegebiet | TEXT | |
verstaedterung | TEXT |
Datenanfrage · Lena, Klasse 8
„Zu meiner Deutschlandkarte im Erdkunde-Referat gehört ein Ortsverzeichnis. Kannst du mir zu jedem Eintrag den Namen und das Bundesland geben?“
Datenanfrage · Fahrradkurier (Bestellformular)
„In unser Bestellformular kommt eine Auswahlliste. Wir brauchen zu jedem Eintrag des Verzeichnisses – auch zu gemeindefreien Gebieten – den Gemeindeschlüssel, den Namen und die Postleitzahl des Verwaltungssitzes.“
Datenanfrage · Lokalzeitung, Ressort Statistik
„Wir vergleichen Stadt und Land. Bitte schick uns den amtlichen Namen, den Kreis und den Grad der Verstädterung.“
Beginne mit SELECT, schreibe die Attribute mit Kommas, dann FROM gemeinde;
b) Die Postleitzahl heißt in der Tabelle plz_verwaltungssitz. c) Der amtliche Name heißt name_amtlich.
SELECT – Komma – FROM – gemeinde – name_amtlich – plz_verwaltungssitz – verstaedterung
a) SELECT name, bundesland FROM gemeinde; b) SELECT ags, name, plz_verwaltungssitz FROM gemeinde; c) SELECT name_amtlich, kreis, verstaedterung FROM gemeinde;
B01 · Name: ____________________ · Datum: __________
✎ Auftrag 6allein
Datenanfrage · Praktikant im Rathaus
„Ich soll Name und Einwohnerzahl aller Einträge des Verzeichnisses herausziehen, einschließlich der gemeindefreien Gebiete. Ich habe es dreimal versucht – und keiner der Versuche klappt richtig. Kannst du sie reparieren?“
Drei Versuche sind schiefgegangen. Nicht jeder Fehler wird gemeldet.
Legende: Ziel jeder Abfrage: Attribute name und einwohner aus der Tabelle gemeinde.
Das hältst du fest: drei reparierte Abfragen und deine Erklärung.
Werkzeug: SQL-Labor mit Prüfknopf.
Versuch 2 und 3 melden einen Fehler. Versuch 1 nicht – schau dir die Spaltenüberschrift an.
Zähle die Spalten im Ergebnis von Versuch 1.
fehlendes Komma – Tippfehler im Tabellennamen – überflüssiges Komma – Überschrift
Versuch 1: Komma zwischen name und einwohner fehlt. Versuch 2: Tabelle heißt gemeinde. Versuch 3: Komma vor FROM entfernen.
B01 · Name: ____________________ · Datum: __________
◇ Knobelnzusätzlich
Legende: Attribute name, zusatz, name_amtlich, plz_verwaltungssitz.
| name | bundesland | plz_verwaltungssitz |
|---|---|---|
| Dresden | Sachsen | 01067 |
Das hältst du fest: drei kurze Erklärungen.
B01 · Name: ____________________ · Datum: __________
▮ Exitallein
Zeige, was du heute kannst – ohne Hilfen und ohne Nachschlagen.
Das hältst du fest: eine geprüfte Abfrage, eine Erklärung, deine Einstufung.
Brücke: Nächstes Mal zeigen wir nicht mehr alle 10.957 Datensätze, sondern nur die, die wir brauchen – mit WHERE.
B01 · Name: ____________________ · Datum: __________
▣ Nachschlagenzusätzlich
Alle Fachbegriffe der Reihe bis zu diesem Block. neu = in diesem Block eingeführt.
B01 · Name: ____________________ · Datum: __________
▰ Sichern
Sichere deinen Stand. Die JSON-Datei öffnet deinen bearbeitbaren Stand wieder – auch an einem anderen PC.
Dateiname: B01_Nachname_Vorname_Arbeitsstand.json