TigerJython4Kids
HomeTurtlegrafikRobotikDatenbanken
db

2. WOZU DATENBANKEN?

 

 

DU LERNST HIER...

 

wie du Datenbanken als digitale Informationsspeicher verwenden kannst und das Computersysteme mehr als nur Rechenmaschinen sind, denn sie können Daten gemäss bestimmter Kriterien millionenfach schneller verarbeiten als der Mensch und die Grösse des Datenspeichers ist praktisch unbegrenzt.

Da in unserer digitalen Gesellschaft täglich enorme Mengen von Information in Datenbanken gesammelt und weiter verarbeitet werden, sind  grundlegende Kenntnisse über Datenbanken auch für dich wichtig, damit du beispielsweise verstehst, wie  soziale Medien und  personalisierte Werbung funktionieren, und wie du dich vor dem Missbrauch von deinen eigenen Personendaten schützen kannst.

 

 

MUSTERBEISPIEL

 

Viele Informationen werden in Form von Tabellen strukturiert. Gegenüber einer Beschreibung als Text können die so strukturierten Daten viel effizienter gespeichert und weiter verarbeitet werden. Aus diesem Grund sind Tabellen das Basiselement vieler Datenbanken.

Im folgenden typischen Beispiel werden Titel und Künstler von aktuell weltberühmten Songs zusammen mit ihrem Rang in einer Hitliste (eines Anbieters von Musik-Downloads) erfasst. Es könnte sich auch um eine Mediathek deiner eigenen Songs handeln.

Eine Tabelle besteht aus einer gitterartigen Anordnung von Zeilen (rows) und Spalten (columns). Jede Zeile ist eine Informationseinheit, die Datensatz (record) genannt wird. Der Datensatz enthält die Felder mit den Datenwerten. Die Spalten haben einen eindeutigen Feldnamen (auch Attribut genannt). Der Beginn der Tabelle topsongs sieht also so aus:

In der Distribution von TigerJython befinden sich in der Datenbank tigerjython.db mehrere nützliche Tabellen. Du kannst alle Tabellen und ihre Feldnamen (Attribute) mit folgendem Programm anzeigen:

from dbtable import *

showDbInfoTJ("tigerjython.db")  
► In Zwischenablage kopieren

Um die Tabelle topsongs zu verwenden, musst du das Modul dbtable importieren und dann ein (leeres) Tabellenobjekt mit dem Namen topsongs erzeugen. Nachher holst du mit restoreFromTJ() die Tabellendaten aus der Datenbank tigerjython.db und stellst die Tabelle mit print im Ausgabefenster dar.

from dbtable import *

topsongs = DbTable()
topsongs.restoreFromTJ("tigerjython.db") 
print(topsongs)
► In Zwischenablage kopieren

Ergebnis:

Oft möchte man eine Tabelle nach einem der Felder sortiert ausschreiben. Mit nur einer zusätzlichen Programmzeile kannst du die Tabelle nach aufsteigendem Rang sortiert ausschreiben.

from dbtable import *

topsongs = DbTable()
topsongs.restoreFromTJ("tigerjython") 
topsongs.sort("rank")
print(topsongs)
► In Zwischenablage kopieren

Du kannst die Tabelle auch  in einer for-Schleife zeilenweise durchlaufen und auf die Felder mit dem Punktoperator zugreifen.

Beispielsweise schreibst du mit dem folgenden Programm nur die 5 höchstbewerteten Titel aus.

from dbtable import *

topsongs = DbTable()
topsongs.restoreFromTJ("tigerjython")        
topsongs.sort("rank")
for record in topsongs:
    if record.rank <= 5:
        print(record.rank, record.title)
► In Zwischenablage kopieren

Im Ausgabefenster siehst du:

 

 

MERKE DIR...

 

Tabellen sind Strukturierungsmittel, damit Daten effizient in einer Datenbank gespeichert, nach bestimmten Kriterien leicht weiter verarbeitet und anschaulich dargestellt werden können. Im Gegensatz zu Variablen sind die Daten in einer Datenbank dauerhaft (oder persistent), "überleben" also die Programmdauer und können jederzeit später wieder verwendet werden. Unter der Datenbank versteht man meist die Datenbankdatei zusammen mit den zugehörenden Programmierwerkzeugen, um die Daten zu manipulieren.

 

 

ZUM SELBST LÖSEN

 
1.

Mit Datenbanken kannst du auch grosse Datenmengen sehr effizient untersuchen. Stellst du dir die Frage, welche Songs von Justin Bieber gesungen werden, müsstest du ohne  Computer mühsam alle 100 Songs einzeln durchsehen. Schreibe ein Programm, das diese Arbeit für dich erledigt und die Titel von Justin Bieber im Ausgabefenster auschreibt.

2a.

Du kannst mit mountains.restoreFromTJ("tigerjython.db") in der Tabelle mountains Informationen über die höchsten Berge in verschiedenen Ländern erhalten.  Schreibe die Tabellendaten im Ausgabefenster aus und merke dir die Feldnamen.


2b.

Schreibe die Berge sortiert nach der Höhe aus. Meist möchte man allerdings die Sortierreihenfolge umkehren, damit zuerst die höchsten Berge erscheinen. Verwende dazu den Befehl

mountains.sort("height", False)

2c.

Schreibe alle Schweizer Berge aus. (Du kannst auch eine ganze Zeile mit print record ausschreiben.)


2d.

Schreibe alle Schweizer Berge sortiert nach der Höhe aus, die höher als 3000 m sind.


   

 

2-1
Fachliche Hinweise:

Dies gilt aber bei weitem nicht für alle Informationen, beispielsweise lässt sich ein mathematischer Beweis nicht in Tabellenform strukturieren. Auch für stark vernetzte Informationen ist die Tabellenform nicht effizient, beispielsweise für einen Stammbaum.

2-2
Fachliche Hinweise:

Im Gegensatz zur Tabellenkalkulation oder einer Matrize kannst du aber nicht direkt auf einzelne Felder zugreifen, denn in Datenbanken bildet eine Tabellenzeile als Datensatz eine Einheit.