Wie am besten eine "embedded" DB realisieren?

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
oliver1974
User
Beiträge: 97
Registriert: Donnerstag 26. Oktober 2006, 15:01

Wie am besten eine "embedded" DB realisieren?

Beitragvon oliver1974 » Dienstag 12. Dezember 2006, 07:43

Hallo,

Ich hatte mal ein Java-Programm geschrieben, welches
Apache Derby als eingebettetes Datenbank-System
benutzt... Das funktionierte wirklich soweit gut.

Die Performance ist bis heute immer ausreichend gewesen,
man musste nix separat installieren ....

(war ein mit JSmooth generierter
EXE-Wrapper für windows, da war dann die Datenbank gleich mit drin
und die Tabellen wurden mittels NSIS Installer im gleichen Atemzug
wie die EXE bei der Installation raufgespielt.. recht easy für den
Anwender also)

... und man hatte eine ausreichende Menge der SQL-Syntax
zur Verfügung um komfortabel damit umgehen zu können.

Wie würde man sowas in Python realisieren? Ich hab schon gesehen,
dass es einige Bindings gibt, vor allem sticht mir natürlich
pysqlite ins Auge.

Das ist dann natürlich plattformabhängig... ob das wirlich schlimm
ist, steht auf einem anderen Blatt.

Um es kurz zusammenzufassen: Wie würdet
ihr sowas realisieren? Immer eine SQlite mitinstallieren
und dann via pysqlite darauf zugreifen? Und dann für jede
Plattform unterschiedliche Downloads? Was macht ihr
dann mit MaxOSX, da sehe ich nur eine obskure "cross-platform binary"
weiter unten auf der Download Seite, aus der ich nicht so recht
schlau werde..

Danke für eure Tipps!
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Dienstag 12. Dezember 2006, 08:08

SQLite ist ab Python 2.5 direkt mit dabei. Also damit solltest du Platform unabhängig sein.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
oliver1974
User
Beiträge: 97
Registriert: Donnerstag 26. Oktober 2006, 15:01

Beitragvon oliver1974 » Dienstag 12. Dezember 2006, 10:23

jens hat geschrieben:SQLite ist ab Python 2.5 direkt mit dabei. Also damit solltest du Platform unabhängig sein.


Upsie.... Nicht schlecht, gut, ich nutze hier noch 2.4sonstwas.

Aber letztlich dürfte es ja auf das gleiche hinauslaufen, der jeweiligen
plattformbezogenen Python-Runtime wird wohl jetzt standardmäßig SQLite mitgegeben.. das heißt, ich dürfte im groben mit 2.4 und ein dementsprechend "mitgepacktes" SQLite dasselbe erreichen, nehme ich an...

Sind denn die SQLite Erfahrungen soweit gut bei euch? Wie gesagt, Apache Derby lief für die konkrete Anwendung recht gut (ist ja jetzt beim ganz neuen Java 6 auch standardmäßig dabei, wenn auch unter anderem Namen..)
midan23
User
Beiträge: 116
Registriert: Sonntag 21. Mai 2006, 21:41
Wohnort: Müchen
Kontaktdaten:

Beitragvon midan23 » Dienstag 12. Dezember 2006, 12:48

Eine kleine Zusatzinfo zu Mac OS X:

In Tiger (Mac Os X Version 10.4.x) ist SQLite beim Betriebssystem dabei
(Die verwendete Version von SQLite müsste ich erst nachschauen ...)
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

Beitragvon DatenMetzgerX » Dienstag 12. Dezember 2006, 14:03

Allerdings würde ich sqlalchemy oder sqlobject einsetzen. Dann kannst du auch später die db problemlos ändern und jeder user kann auswählen was er benutzen will. Ich kämpfe mich jetzt gerade mit einer migration zur sqlachemy rum. elend.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Wie am besten eine "embedded" DB realisieren?

Beitragvon gerold » Dienstag 12. Dezember 2006, 14:19

oliver1974 hat geschrieben:vor allem sticht mir natürlich pysqlite ins Auge.

Hi oliver!

PySQLite ist eine gute Wahl!

Wenn du sqlite so importierst, dann funktioniert dein Code mit Python 2.4 genauso gut wie mit Python 2.5.

Code: Alles auswählen

try:
    # Ab Python 2.5
    import sqlite3
except ImportError:
    # Vor Python 2.5 --> pysqlite --> http://initd.org/tracker/pysqlite
    from pysqlite2 import dbapi2 as sqlite3

In beiden Fällen importierst du damit die Bindung zu "SQLite 3", also dem neueren SQLite-Standard.

- http://www.sqlite.org/
- http://www.sqlite.org/datatype3.html

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
oliver1974
User
Beiträge: 97
Registriert: Donnerstag 26. Oktober 2006, 15:01

Beitragvon oliver1974 » Dienstag 12. Dezember 2006, 14:58

Oh Gott, die wertvollen Tipps fliegen nur so rein... Das muss ich erstmal hier organisieren, da brauche ich ja schon eigene Ordner für ! :D

Danke soweit!
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Dienstag 12. Dezember 2006, 16:12

oliver1974 hat geschrieben:die Tipps fliegen nur so rein...

Hi oliver!

In diesem Thema http://www.python-forum.de/topic-6157.html beschreibe ich unter anderem auch wie man mit SQLite arbeiten kann.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder