Base de données orientée objet

Un article de Wikipédia, l'encyclopédie libre.

Les bases de données à objets sont un autre cas particulier des bases de données.

Dans une telle organisation, les données sont représentées sous forme d'objets.

Un objet (cf. Orienté objet) représente une chose de la vie réelle, concrète ou abstraite comme une personne, une connexion FTP ou le ciel.

Les objets contiennent les données qui les décrivent et qui représentent leur état. L'objet 'ciel' contient par exemple une variable qui stocke sa couleur.

Les objets contiennent aussi la logique qui permet de les utiliser et de les modifier. On peut par exemple demander au ciel de changer de couleur en lui envoyant un message mentionnant la nouvelle couleur à utiliser.

Toutes ces entités sont classées hiérarchiquement dans une base de données à objets. Par exemple, l'objet 'bâtiment' contient plusieurs objets de type 'étage' et chaque objet étage contient plusieurs objets 'bureau'. On demande ensuite aux bureaux de stocker les objets 'personne' pour garder trace des affectations des gens. Ce qui donne :

 bâtiment A
   \--> étage 0
    --> étage 1
      \--> bureau A
         \--> personne Toto
       --> bureau B
    --> étage 2

Pensez également à l'arborescence des répertoires et des fichiers dans votre ordinateur. Ce genre d'organisation se fait naturellement dans une base de données à objets alors que dans d'autres systèmes de bases, il faut garder trace de qui est le père et qui sont les fils.

Mais il y a parfois aussi besoin de retrouver les données comme dans une base relationnelle, par exemple. On pourrait alors avoir un autre objet qui va garder à jour la liste des personnes avec le chemin à parcourir pour les retrouver, indépendamment de leur affectation ou alors avec des critères de recherche.

Quand les objets que l'on crée restent stockés dans la base de données à objets et pas seulement dans la mémoire vive, on dit qu'ils sont persistants.

[modifier] Exemples de bases de données orientées objets

Un des meilleurs exemples de SGBD orienté objet est le système O2.

Il a été réalisé par le Groupement d'Intérêt Public ALTAIR, regroupant IN2, l'INRIA et le Laboratoire de Recherche en Informatique de l'Université d'Orsay. Il a d'abord été commercialisé par la société O2 Technology, puis par la société Ardent Software et enfin par la société Informix.

O2 dispose d'un langage de description de schéma et d'un langage de programmation baptisé O2C et qui est une extension du langage C. Une application écrite en C ou C++ peut utiliser les services de O2 pour assurer la persistance de ses données. Un langage de requête de type SQL appelé OQL pouvait être utilisé de manière interactive ou à l'intérieur d'un programme C++ ou O2C.

Depuis 1999 cependant, O2 n'est plus commercialisé.

Dans un cas plus concret, il existe un serveur d'applications Web du nom de Zope, qui utilise une base de données à objets hiérarchique couplée à un environnement de développement.

Les exemples les plus connus à l'heure actuelle de base de données orientées objets sont les annuaires, qui sont capables de stocker une multitude d'informations. Ils stockent l'information dans des "objets", très souvent une fiche individuelle, une machine, une ressource... à laquelle on associe des valeurs, ses attributs.

Les annuaires sont utilisés partout à l'heure actuelle; ceci plus particulièrement dans le monde de l'entreprise, pour stocker les informations propres à chaque personne (nom, prénom, fonction, adresse, numéros, droits, comptes, etc.)

Il existe une multitude de protocole d'annuaires, dont les plus connus sont LDAP, et son ancêtre, X.500.

Une autre base de donnée interessante est NeoDatis ODB http://www.neodatis.org. NeoDatis ODB est open source LGPL et marche sous Java et .Net.

Un dernier OODBMS (Object Oriented Database Management System) Open Source semble fournir des fonctionnalités et une maturité intéressantes, notamment des bindings pour C++ et Java : EyeDB, visible à l'adresse suivante http://www.eyedb.org/