• # Base de données ... relationnelles (soyons précis)

    Posté par . En réponse au journal Ma vie, mon oeuvre ;-). Évalué à 6.


    Base de donnée
    Je cite le prof (a peu près) : "Oracle, c'est comme Windows, si tu développe un truc avec PostgreSQL et que ça marche pas, on te reprochera de ne pas avoir choisis Oracle,tandis que si ça ne marche pas avec Oracle, c'est la fatalité ".
    Au programme : Modèle Entité Association, Modèle relationnel et SQL.


    Tout d'abord je dirai qu'il y a plusieurs données !! ;) :p

    Plus sérieusement, je trouve dommage qu'aujourd'hui on appelle un cours base de données et qu'on ne fasse que du relationnel !! A mon époque dans mon cours de base de données, en préambule on présentait les differents types de bases de données (Hierarchique, Fichiers, Relationnelles, Relationnelles étendu, et enfin Objets!) . Et par la suite, on a fait des focus sur le relationnel avec Oracle et sur l'objet avec O2 (oql).

    Maintenant qu'on ne me dise pas qu'il n'y a pas d'implementation de SGBDOO :

    - Ozone : http://www.ozone-db.org(...) open-source et libre.
    - DB4O : http://www.db4o.com.(...) licence libre et commerciale
    - EsiObjects : http://esiobjects.sourceforge.net(...) libre opensource. Il existe un gateway java (http://www.esitechnology.com/library/downloads/esiobjects/whatIsThe(...)) et depuis l'ouverture du code un projet d'IDE client sous linux en complément de celui qui existe déja sous windows (http://geode.sourceforge.net(...))
    - Caché projet commerciale mais gratuit pour projets non commerciaux (donc universitaire) http://www.intersystems.com/cache/index.html(...) est une base de donnée orientée objet.
    - etc ...

    Donc ça existe !

    Maintenant je fais cette critique parce que je trouve dommage qu'en entreprise comme ailleurs on s'encroute encore a faire du relationnel alors qu'on fait un langage objet : ajouter un nouveau paradigme SQL+PL/SQL(ou autres) juste pour gérer la persistence alors qu'on programme en java , je trouve ça vraiment dommage.

    Dans ma boite, j'ai eu une requète de type récursive à faire : du type deux tables, Person (id , firstname, lastname) et PersonHierachy (parent_id , child_id). Et bien en SQL c'est pas possible en une requète d'avoir l'ensemble des ids des personnes hierachiquement en dessous d'une personne sans passer par un subterfuge. En objet avec le couplage donnée/traitement, le langage OQL intégrant les methodes des objets on traite l'ensemble des problematiques du relationnel plus d'autres comme le hierarchique ...

    A mon avis nous perdons notre temps avec du relationnel, les outils comme hibernate et autres joyeusetés. Je sais y a l'existant toussa ... mais pour des projets qui parte from scratch pour un projet java je trouve ça débile de mettre dans l'architecture une base de données relationnelle ! que ce soit mysql, postgres ou bien oracle ...

    les gens ne sont pas prêt pour le tout objet !

    --
    l'integriste objet :)