EyeDB

EyeDB est un Système de Gestion de Base de Données Objet (SGBDO) open source sur lequel je travaille actuellement.
EyeDB est un logiciel développé Eric Viara et la société SYSRA. J’ai rencontré Eric Viara à l’Ircam en 1990, nous travaillions alors sur le projet Station d’Informatique Musicale.

EyeDB est un SGBD Objet, alors que les SGBD open source connus (MySQL, PostgreSQL) sont des SGBD relationnels (SGBDR). Dans un SGBD Objet, les données sont stockées dans la base sous forme d’objets typés et non de tables plates. Un SGBD Objet est mieux adapté au développement orienté objet; il permet de s’affranchir des couches de mapping objet/relationnel qui ont un impact non négligeable sur la performance et offre une puissance de modélisation beaucoup plus puissante qu’un SGBDR.
J’ai travaillé sur EyeDB en 1998 pour faire le portage sur Linux, EyeDB ayant été initialement développé sur Solaris. Je travaille maintenant sur EyeDB de manière continue depuis 2004 et je fais partie de l’équipe de développement principale (constituée de… 2 personnes, Eric Viara et moi-même). Je suis chargé plus particulièrement du « software engineering » open source (chaine de compilation, packaging, communauté, infrastructure web…), des portages et des interfaces languages (Java, PHP, Python).
Les caractéristiques principales de EyeDB sont:

  • une architecture client/serveur
  • un langage de définition de type ODL basé sur ODMG ODL
  • un langage interprété de requête et de manipulation d’objets OQL basé sur ODMG OQL
  • des services transactionnels complets
  • une indépendance vis-à-vis d’un langage de programmation particulier (interfaces de programmation en C++, Java, PHP, Python)
  • performance et scalabilité remarquables: bases de plusieurs téraoctets et plusieurs centaines de millions d’objets

EyeDB est un projet sans équivalent dans le domaine de l’open source. Les seules bases de données objets open source disponibles aujourd’hui sont db4o (limité à Java, pas de langage de définition de type ni de language interprété de requête, moins performant) et ZODB (la base de données objet de ZOPE, Python seulement, pas de langage de définition de types ni de language de requête interprété, probablement aussi moins performant). Les équivalents de EyeDB sont à chercher dans le monde propriétaire, en particulier Versant et Objectivity.
Quelques liens:

19 réponses à “EyeDB”

  1. BlackTux dit :

    je m’interesse a EyeDb. J’aurai aimer l’utiliser avec Python, je n’ai rien trouvé sur le sujet. Merci

    PS: existe t’il une communauté française pour EyeDb ???

  2. francois dit :

    Il n’y a pas d’interface Python comparable avec les interfaces Java ou C++. Il y a dans les sources des bindings SWIG (http://www.swig.org), mais ils ne sont pas à jour vis-à-vis des évolutions du code C++. Si vous êtes intéressé et voulez contribuer à mettre ces bindings à jour, je vous en serais très reconnaissant, et je vous apporterai toute l’aide possible.

    Pour la communauté française, il n’y en a pas encore, mais ce serait bien de commencer à en créer une, vu que les deux développeurs de EyeDB sont français ;-)

  3. Mikhail Kotelnikov dit :

    Hello François!
    You can find a set of different object databases (written in java and in C++) here: http://www.garret.ru/~knizhnik . The most « famious » one is the GOODS (http://www.garret.ru/~knizhnik/goods.html). One another DB – Perst DB – is the fastest transactional object db in java that I ever see.
    It would be interesting to compare EyeDB with some DBs of this gay (especially with GOODS, FastDB and GigaBase)…

  4. peuvrier dit :

    le mapping relationnel objet c’est l’enfer !
    pour une application extrémement simple je galère pour rendre la couche « business » indépendante de la couche « data access »: le DAO c’est bien, le problème que je rencontre c’est pour les finder qui ont une requête orientée objet en paramètre. Il s’agit de convertir la requête à un format business indépendant en reqête comprehensible par l’implementation de la persistance.

    je travail surtout en JAVA, et j’aimerais savoir si Eye DB est dispo sous windows ?

  5. Cesare Padovani dit :

    Is porting to Windows platform planned?

  6. francois dit :

    About running EyeDB on Windows, what is possible is :
    - to make EyeDB server part work under Cygwin
    - and to make the client part work on Windows (the Java client should work as is, the C++ part may require some work, unless you also use Cygwin).

    But making the EyeDB server work on Windows without Cygwin is very likely to be more difficult. I’m not saying that it is impossible, just that it is difficult.

  7. Gerard Coppejans dit :

    Bonjour Francois,

    Existe t il une version pour Mac Os x en Package IMG ?

    J’aimerais employer Eyedb pour un engin de generation d’application programmé en c++ et QT4.3 open source.
    Je travaille sous mac osx 10.4.8
    peut tu m’aider ?

    Merci d’avance,

  8. Magra hakim dit :

    comment utiliser EyeDB sous windows xp ?

  9. francois dit :

    Pour utiliser EyeDB sous Windows, il y a 2 solutions:
    - utiliser un serveur tournant sur une machine Linux, soit une autre machine physique, soit une machine virtuelle fonctionnant dans la même machine physique (avec VmWare ou Qemu par exemple) et utiliser la bibliothèque client en Java sur Windows
    - utiliser Cygwin et faire fonctionner tout EyeDB dans Cygwin (nous n’avons pas compilé récemment EyeDB dans Cygwin, mais ça ne devrait pas être difficile vu que EyeDB utilise les autotools; si quelqu’un peut s’en charger, ce serait sympa)

    Par contre, il n’y a pas beaucoup d’espoir de voir le serveur EyeDB tourner sur Windows XP. Ni beaucoup d’intérêt d’ailleurs pour nous.

  10. Christophe dit :

    Bonjour,
    J’ai tenté de compiler/installer eyedb sur Ubuntu 7.04 et sur OSX 10.5, mais ça ne fonctionne pas; make install échoue avant la fin.
    Est-ce que vous avez déjà essayé d’installer eyedb sur ces plates-formes ? Si oui, est-ce que ça fonctionne ? Quels sont les pré-requis ?
    Merci d’avance.

    Christophe

  11. Patxi dit :

    Bonjour,

    J’ai pour ma part tenté d’installé EyeDb sous Ubuntu 9.10, mais le make ne marche pas et génère des erreurs !
    En fait curieusement il n’y a pas de « #include  » dans certains de ces fichiers ce qui empèche la compilation (erreurs de strlen, strcpy… ). Et la même erreur sur 2 de versions différentes.

    Je suis pour l’instant dans la même impasse, surtout que EyeDb correspond à ce que je cherche pour mes besoins de stockage objets. Il y a d’ailleurs une très bonne documentation sur leur site.

    En espérant avoir des réponses :) Merci d’avance.

  12. francois dit :

    Bonjour,
    Effectivement, la version de EyeDB distribuée sur sourceforge a des problèmes de compilation sur Ubuntu 9.10
    Ces problèmes ont été corrigés, mais il faut prendre la version qui est sous subversion.

    N’hésitez pas à me recontacter pour plus d’aide

    François

  13. michel dit :

    Bonjour,
    Je débute sur Eyedb après avoir utilisé des SGDB +/- Objet « propriétaires » non compatibles OQL( notamment celui utilisé par Telelogic Synergy … racheté par IBM ? ) .

    En tant qu’ industrialisateur, je suis un peu hermétique à la beauté théorique d’un produit mais plus impressionné par sa simplcité et sa clarté ( à bas les boites noires ) .
    Dans cette approche basique je ne retrouve pas dans l’OQL des chose qui m’avaient impressionné chez Telelogic : commande pour rechercher toute un branche de dépendance, pour savoir si on est sur une feuille d’un arbre de dépendances … grande simplicité et puissance syntaxique ( dans le cadre de la recherche de dépendances de versions de pgms …)

    Pour la compilation de Eyedb , j’ai eu le même souci que Patxi , mais ça fonctionne maintenant avec quelques includes supplémentaires.

    Je serai intéressé de voir Eyedb mis en comparaison avec d’autres produit. La proposition de Mikhail Kotelnikov est intéressante dans ce sens.

    Cordialement,
    Michel.

  14. Brahim dit :

    Bonjour,

    Je suis sur ubuntu 10.04 lts, j’ai installer eyedb2.7.10 avec svn, malheuresement j’ai encore des problèmes de compilation avec la cde make, j’ai pu corriger quelques une en ajoutant des include, reste encore un problème au niveau du fichier /../include/eyedblib/stdlist.h
    qui est appelé par /home/brahim/eyedb-2.7.10/src/eyedbsm/eyedbsmd.cc: ligne 363.

    cordialement.
    Brahim

  15. francois dit :

    Bonjour,
    Est-ce que vous avez essayé la version 2.8.8, qui est la dernière version officielle de EyeDB?
    Cette version contient les correctifs des problèmes de compilation de EyeDB sur Ubuntu 10.04, en particulier les problèmes d’include que vous avez rencontrés.

    Cordialement,
    François

  16. Brahim dit :

    Bonjour,

    Un grand merci à Vous, ca a marché.

  17. Erik dit :

    Bonjour,

    je poste à tout hasard bien que je voie que le dernier commentaire a 2 ans d’âge …

    J’essaie d’installer eyedb 2.8.8 sur Ubuntu 12.04 mais la compilation échoue avec le message :
    ../../src/lib/.libs/libeyedbrpcbe.so: undefined reference to `eyedb::IDB_releaseConn()’
    J’avais la même chose dans 2.8.7 après avoir réparé les include « à la main ». Ennuyeux car je dois m’en servir pour un cours de BDA.

    Donc si quelqu’un peut m’aider, un grand merci par avance !
    Erik

  18. Ismael dit :

    Bonjour,
    Je suis sur Ubuntu 14.04, j’essaye d’installer eyedb-2.8.8 mais je n’arrive pas à l’installer. Il me signale un probleme au niveau du fichier ../nclude/eyedblib/stdlist.h

  19. Ismael dit :

    bonjour,
    lorsque je fait make, je rencontre les erreurs suivantes :
    collect2: error: ld returned 1 exit status
    make[3]: *** [eyedbcgife] Erreur 1
    make[3]: quittant le répertoire « /home/ismael/Ismael/usr/local/src/eyedb-2.8.8/src/www »
    make[2]: *** [install-recursive] Erreur 1
    make[2]: quittant le répertoire « /home/ismael/Ismael/usr/local/src/eyedb-2.8.8/src/www »
    make[1]: *** [install-recursive] Erreur 1
    make[1]: quittant le répertoire « /home/ismael/Ismael/usr/local/src/eyedb-2.8.8/src »
    make: *** [install-recursive] Erreur 1

Laisser un commentaire