III.3.3. Le modèle de données de O2
Le modèle de données dit O2 [15] est un SGBD
orienté objet développé par le GIP-Altaïr à
Paris (France). Son objectif est d'offrir un système multi-langages
permettant à ces derniers de manipuler des objets, notamment
persistants, à travers un modèle commun. Le modèle O2 [16]
distingue deux catégories de données : les valeurs et les
objets.
Le nommage des instances (create name...) est
séparé du nommage des types comme dans EXTRA. Cela nous
amène à pointer une autre façon de nommer les types
décrivant des valeurs (create type...) aussi bien que ceux qui
décrivent des objets abstraits (create class...) comme le montre la
représentation O2[17] du cas pratique des personnes.
52
pas explicitement la notion de référence et le
partage de données se fait exclusivement à travers des objets
abstraits.
Or, si celles-ci constituent un support à l'action, le
système permet de créer des objets persistants ainsi que des
objets temporaires. Mais ce n'est pas tout, car il faut alors distinguer deux
types de références suivant le statut de l'objet instancié
qui engendre en fait deux espaces d'instanciation différents.
Alors que, la notion d'objet abstrait impliquant qu'une
référence peut être instanciée dans d'autres objets,
il se pose le problème des références inter-espace. Et
cela n'est pas sans poser problème, qu'une référence dans
l'espace persistant est valide d'une exécution d'un programme à
une autre. Ce n'est pas le cas des références de l'espace
temporaire. Le problème est résolu dans O2 en
déplaçant tout objet abstrait temporaire dans l'espace persistant
si la référence qui l'identifie est instanciée dans
l'espace persistant.
Ces choses étant dites, regardons à
présent en quoi le modèle de O2 est intégré dans un
langage de programmation usuel tel que C, Lisp ou Basic. Pour ce faire, le
système de type défini par le modèle est ajouté au
système de type du langage d'immersion.
Cette intégration n'est pas orthogonale. A cette
caractéristique s'ajoute le fait que le dysfonctionnement au niveau du
système de type n'est donc pas résolu dans les différents
langages associés à O2 tels que O2C. A l'opposé, on a vu
que ce dysfonctionnement est moins sensible car le système de types pour
la définition des données persistantes est au moins aussi
puissant que celui du langage d'immersion même s'il ne partage pas les
domaines de base. Des coopérations sont tout de même possibles
comme un cas pratique qu'une affectation d'une entier C (int) dans un entier O2
(integer).
|