OVH Cloud OVH Cloud

DataBase

12 réponses
Avatar
nico
Bonjour,

Je cherche un gestionnaire de bases de données en python pour gérer des bases de quelques miliers d'entrées (donc pas grosses les bases). Un truc du genre mysql mais en python.
Quelqu'un a quelquechose à me recommander ?

Nicolas

10 réponses

1 2
Avatar
Hervé Cauwelier
Bonjour,

Je cherche un gestionnaire de bases de données en python pour gérer des
bases de quelques miliers d'entrées (donc pas grosses les bases). Un
truc du genre mysql mais en python.
Quelqu'un a quelquechose à me recommander ?


Regarde du côté de Gadfly ou SQLite.

--
Hervé Cauwelier
http://www.oursours.net/

Avatar
Do Re Mi chel La Si Do
Bonjour !

Voir Gadfly, PyTables (ne pas publier le 's'), KirbyBase (python ou ruby),
ElementTree (un peu différent, mais permet des choses intéressantes).
.

@-salutations

Michel Claveau
Avatar
nico

Bonjour,

Je cherche un gestionnaire de bases de données en python pour gérer
des bases de quelques miliers d'entrées (donc pas grosses les bases).
Un truc du genre mysql mais en python.
Quelqu'un a quelquechose à me recommander ?



Regarde du côté de Gadfly ou SQLite.

Merci



Avatar
nico
Bonjour !

Voir Gadfly, PyTables (ne pas publier le 's'), KirbyBase (python ou ruby),
ElementTree (un peu différent, mais permet des choses intéressantes).
.

@-salutations

Michel Claveau



Merci


Avatar
Do Re Mi chel La Si Do
Oups, désolé ; c'est "oublier", et non "publier"

J'ai encore frappé trop vite...
Avatar
Pierre Quentel
Bonjour,

Je cherche un gestionnaire de bases de données en python pour gérer des
bases de quelques miliers d'entrées (donc pas grosses les bases). Un
truc du genre mysql mais en python.
Quelqu'un a quelquechose à me recommander ?

Nicolas


Gadfly n'est plus maintenu, c'est dommage. A mon avis le meilleur choix
pour une base 100% Python est KirbyBase : léger (50 kb), simple à
installer, avec une syntaxe plus agréable que SQL (je suis un peu
biaisé, je participe au développement...)

Tu peux aussi regarder Durus : http://www.mems-exchange.org/software/durus/

SQLite c'est le niveau au-dessus, avec des performances impressionantes,
mais ce n'est pas du pur Python

A+
Pierre

Avatar
nico

Bonjour,

Je cherche un gestionnaire de bases de données en python pour gérer
des bases de quelques miliers d'entrées (donc pas grosses les bases).
Un truc du genre mysql mais en python.
Quelqu'un a quelquechose à me recommander ?

Nicolas



Gadfly n'est plus maintenu, c'est dommage. A mon avis le meilleur choix
pour une base 100% Python est KirbyBase : léger (50 kb), simple à
installer, avec une syntaxe plus agréable que SQL (je suis un peu
biaisé, je participe au développement...)

Tu peux aussi regarder Durus : http://www.mems-exchange.org/software/durus/

SQLite c'est le niveau au-dessus, avec des performances impressionantes,
mais ce n'est pas du pur Python

A+
Pierre
KirkyBase me parait intéressant mais je m'inquiète de la vitesse d'exécution. Et puis, ce n'est pas une absolue nécessité mais j'aimerais que le contenu de la base ne soit pas lisible directement. Je ne parle pas de cryptage mais simplement d'un enregistrement binaire. Ca n'a pas l'air possible avec KirkyBase.


Nicolas


Avatar
Pierre Quentel
KirkyBase me parait intéressant mais je m'inquiète de la vitesse
d'exécution. Et puis, ce n'est pas une absolue nécessité mais j'aimerais
que le contenu de la base ne soit pas lisible directement. Je ne parle
pas de cryptage mais simplement d'un enregistrement binaire. Ca n'a pas
l'air possible avec KirkyBase.

Nicolas


Bien sûr il y a une grosse différence de performance entre les bases en
pur Python et les bases écrites dans des langages compilés

J'ai fait des mesures sur une table de 10.000 éléments générés au
hasard. Sa structure est la suivante :

name varchar, role varchar, country varchar, speed integer, range
integer, began_service varchar, still_flying integer, comment varchar

La requête consiste à rechercher des enregistrements où country = "USA"
et began_service < 1945-01-01

Syntaxe :
- SQL :

sql = "SELECT name, began_service FROM plane WHERE country='USA'
AND began_service < '1945-01-01'"
cursor.execute(sql)
print len(cursor.fetchall())

- KirbyBase v2.x (en chantier) :

print len ([ r for r in plane if r.country == 'USA' and r.began_service
< '1945-01-01' ])

- résultats obtenus : (temps pour exécuter 10 fois la requête, divisé
par 10)
SQLite : 0,014 seconde
MySQL : 0,017
gadfly : 0,285
KirbyBase v2.x : 0,386

Sur cet exemple les bases en Python sont donc 20 à 30 fois plus lentes
que SQLite ou mySQL. Gadfly travaille en mémoire, donc est plus rapide
que KirbyBase, qui reste sur disque

Cela dit :
- la syntaxe de la requête KirbyBase (une "list comprehension") est plus
"pythonique" que les requêtes SQL
- la requête avec KirbyBase retourne des objets avec des attributs qui
ont le nom des champs de la table, ce qui est plus pratique que des
listes de champs. On peut convertir les listes en objets pour les autres
bases, mais du coup le temps d'exécution se dégrade sensiblement
- dans un contexte de programmation web par exemple, 0,4 seconde pour
une requête de ce type reste tout à fait acceptable

Un principe de départ de KirbyBase était que la base soit lisible et
éditable avec un simple éditeur de texte. Le cryptage des données n'est
pas disponible dans la version 1.9 mais il est dans la 2.0 beta 1
(http://www.netpromi.com/files/KirbyBase_Python_2.0_beta_1.zip). La
prochaine version sur laquelle je travaille avec Jamey Cribbs
l'intègrera aussi, elle devrait sortir en novembre

Evidemment une étape intermédiaire d'encodage / décodage rajoute un peu
de temps de calcul

A+
Pierre

Avatar
Do Re Mi chel La Si Do
Bonsoir !


Puisque tu es un des développeurs de KB, et puisque tu écrit un français
correct, serait-il possible d'avoir une traduction du site, et du manuel, de
KB, en français ?

Perso, j'apprécierais fortement.


@-salutations

Michel Claveau
Avatar
Pierre Quentel
Bonsoir !


Puisque tu es un des développeurs de KB, et puisque tu écrit un français
correct, serait-il possible d'avoir une traduction du site, et du manuel, de
KB, en français ?

Perso, j'apprécierais fortement.


@-salutations

Michel Claveau




Voilà qui est fait pour le manuel :

http://quentel.python-hosting.com/kirbybasepythonmanual_fr.html

Comme ça vous n'avez plus d'excuse pour ne pas essayer !

Attention, la version décrite est la 1.9. La version 2.0 beta a une
syntaxe encore plus sympa, sans parler de la suivante !

Cordialement,
Pierre

1 2