Python database wrapper

Massimo Masson massimo.masson@libero.it
Lun 20 Ott 2003 15:18:56 CEST


Roberto Cavada wrote:

[...]

> Quando sento che qualcuno sta lavorando su un nuovo progetto, mi domando
> subito cos'altro c'e' in giro. 

Giusto.

> Cosi' cercando in rete ho trovato un articolo molto interessante che
> tratta l'argomento, e un paio di progetti:
> http://www-106.ibm.com/developerworks/library/l-pypers.html

Questa e' una cosa un po' diversa, si parla di persistenza degli oggetti 
e di pcikling, ovvero scrittura degli oggetti su disco. Il dbms qui non 
c'entra molto.

> http://skunkweb.sourceforge.net/PyDO/

L'avevo visto, progetto interessante, mi pare molto ben fatto. Unica 
cosa e' che utilizza i dizionari come interfaccia per il db, almeno 
all'epoca in cui avevo guardato, il che non astrae su un oggetto vero e 
proprio il dato. Non c'e' nulla mi male, ma avevo in mente una cosa 
leggermente differente.

> http://modeling.sourceforge.net/main.html

Questo e' interessante e non lo conoscevo. Me lo guardero'.

Inoltre esiste il nuovo SQLObject che fa certamente meglio di me, ed in 
un modo simile (anche se piu' avanzato, in quanto usa massicciamente le 
metaclassi per interfacciare gli oggetti a Python), ma non avevo potuto 
adottarlo in quanto fa assunzioni un po' "sue" sulla struttura delle 
tabelle (cosa che io voglio rigorosamente evitare: la progettazione 
della base dati deve essere indipendente dagli strumenti usati per 
gestirla) e non supportava le chiavi primarie su piu' colonne (e a me 
servono).

Invece, molto simile al mio, ho visto essere PDO, che rassomiglia di 
piu' anche come interfaccia API. L'ho visto a mio lavoro quasi ultimato, 
ad ogni modo non ho trovato le funzione di relazione diretta tra oggetti 
(che a me servono. Non so se non le abbia, solo non le ho trovate).

Certamente il mio "giocattolo" e' il meno interesante di tutti, ma mi 
serve per un'altra cosa che sto portando avanti (anch'essa ha progetti 
simili con cui confrontarsi, ma non esattamente quello che vorrei io, al 
solito! ;) ) e quindi gli ho messo dentro esattamente tutte le cose che 
ero certo mi servissero (e che quando ho iniziato non avevo trovato 
altrove, probabilmente per mia incompetenza nella ricerca). Questo solo 
per giustificare la "nascita" di una cosa "nuova".

Io volevo comunque evitare di fare assunzioni sulla struttura del DB e 
di fare le tabelle in base ai miei oggetti, volevo chiavi multicolonna e 
relazioni 1:1 e 1:n. E me le sono scritte! :p

> Infine sembra pertinente Zope Object Database (ZODB), che come gli altri
> puo' essere di aiuto per prendere ispirazioni:
> http://www.zope.org/Products/StandaloneZODB

Sicuramente un progetto favoloso, ma come da specifiche e' nato 
essenzialmente per leggere grosse quantita' di dati e scriverne poche. 
Altrimenti loro stessi ti indirizzano ad altro.

Inoltre io voglio lavorare su tabelle che restino fruibili anche 
indipendentemente dal mio software.

Cosi', in sintesi, le motivazioni che mi avevano spinto.

Ad ogni modo, grazie per gli spunti,
Max



Maggiori informazioni sulla lista blug