[Python-de] datenbank, aber wie

Martin v. Loewis martin at loewis.home.cs.tu-berlin.de
Thu Feb 15 20:34:57 EST 2001


> ich bin gerade dabei python zu lernen. und wollte mal als übung so eine art
> datenbank erstellen, wo ich meine adressen eintrage. 
> 
> gibt es da schon irgendwo eine vorlage, wie man das erstellen kann, oder ein
> beispiel.
> 
> ich ahtte mir gedacht, diese datenbank mit hilfe von listen zu erstellen.

Persistent oder nicht? Sollen also die Daten bei Programmende in einer
Datei erhalten bleiben, oder können sie ruhig verschwinden?

Nehmen wir den einfachen Fall: Angenommen, Du suchst nur nach der
richtigen Datenstruktur. Dann empfehle ich Dictionaries, keine Listen:

dict = {}
dict['erik']="schibumi at gmx.net"
dict['martin']="loewis at informatik.hu-berlin.de"
print dict['erik']

Das setzt voraus, dass Du nur nach einem Schlüssel suchen willst,
sollen mehrere Suchkriterien möglich sein, wird's komplizierter.  Dann
ist vielleicht eine Liste doch am einfachsten, mit linearer Suche.

Soll das Ganze persistent sein, gibt es mehrere Möglichkeiten:
- dbm/anydbm ist ein persistentes Dictionary, das Strings als Schlüssel
  und Werte zulässt
- shelve ist ein persistentes Dictionary, das Strings als Schlüssel und
  beliebige Python-Objekte als Werte zulässt
- pickle erlaubt das Abspeichern beliebiger Objekte in eine Datei
- das DB API definiert eine Schnittstelle zu relationalen Datenbanken
  (Oracle, ODBC, MySQL, ...)

Für Details zu diesen würde ich die Dokumentation empfehlen (oder
natürlich das Python-2-Buch :-)

Ciao,
Martin



More information about the Python-de mailing list