Bases de données objet et persistance transparente

Bases de données objet et persistance transparente
Votre vote

La popularité de l’approche objet dans toutes les étapes du processus de développement de logiciel rend l’utilisation des bases de données objet très attrayante.

Bases de données objet et SGBD relationnel

En effet, un problème difficile de l’utilisation des SGBD relationnels dans le contexte d’un programme objet est la nécessité d’effectuer la conversion entre les types de données du langage objet et les types de données du SGBD. Dans le cas d’un SGBD relationnel, il faut traduire les objets sous forme de lignes dans des tables. Il faut en même temps gérer l’identification des objets par des clés primaires qui servent aussi à réaliser les associations. Nous avons d’ailleurs traité de manière détaillée du problème de traduction d’un modèle conceptuel objet sous forme d’un schéma relationnel au chapitre 3 Introduction au modèle relationnel. Un objectif visé par les bases de données objet est la possibilité de supporter la persistance des objets de manière directe et transparente sans avoir à effectuer de conversion entre les types du programme et les types du SGBD. Ceci implique donc un support des notions de classe et d’objet persistants par le SGBDO en intégrant des mécanismes au niveau du langage objet à cet effet. Du point de vue de la conception de la base de données, la traduction d’un modèle conceptuel UML en un schéma de bases de données objet devient une tâche presque triviale.

Un frein à l’utilisation des bases de données objet

Bases de données objet

Bases de données objet et persistance transparente

format PDF  7.00$ 

Une difficulté importante qui a freiné l’utilisation des SGBDO au niveau du marché des BD est l’absence de standard établi qui réduit la portabilité des applications. En effet, en voulant rapprocher les types du SGBD de ceux des langages à objet, il y a un problème important : les différents langages à objet ne supportent pas exactement les mêmes types. Les premiers SGBD objet ont donc souvent supporté la persistance pour un langage particulier (par exemple C++). L’interopérabilité entre les langages à objet devient donc difficile. L’absence de standard réduit aussi l’interopérabilité entre les différents SGBDO et la portabilité des applications entre différents SGBDO.

Pour corriger cette situation, un effort important de standardisation a été entrepris par l’organisme ODMG (Object Data Management Group). Le standard ODMG pour les SGBDO adresse le problème d’interopérabilité pour trois langages à objet : C++, Smalltalk et Java. Il devient ainsi possible de manipuler les mêmes bases de données objet par n’importe lequel de ces trois langages. La plupart des grandes compagnies de bases de données objet sont membres de l’ODMG, ce qui en fait un standard de facto de l’industrie. Plusieurs SGBDO commerciaux adhèrent à ce standard qui en est à sa version 3 (Cattell, Barry, Berler, Eastman, Jordan, Russel, Schadow, Stanienda, et al., 2000).

Le standart ODMG des bases de données objet

Nous aborderons les SGBDO en présentant le standard ODMG. Le standard incorpore trois langages :

  • Object Definition Language (ODL). C’est le langage de définition de données de la BD objet. Ce langage est basé sur le modèle objet (Object Model – OM) standard et langage de spécification d’interfaces (Interface Definition Language – IDL) de l’OMG. L’OMG vise à produire une architecture générale commune pour l’interopérabilité des systèmes à objets. Il est donc naturel d’adhérer à ce standard pour les SGBDO.
  • Object Query Language (OQL). OQL est un langage de manipulation de données déclaratif inspiré de SQL et adapté au modèle objet.
  • Object Manipulation Language (OML). OML spécifie une interface standard de manipulation d’objets persistants pour les langages C++, Smalltalk et Java.

Dans ce chapitre, nous allons décrire ces trois langages du standart des bases de données objet. La compréhension des concepts du modèle objet UML présentés au chapitre 2 dans le cadre de la modélisation conceptuelle est un préalable à ce chapitre. La dernière section introduit JDO.

Table des matières – Bases de données objet et persistance transparente

16.1        Le langage de définition de données ODL        906

  • Classe et interface ODL          910
  • Interface ODL          911
  • Héritage d’interface (:) et de classe (extends)          912
  • Littéral ODL          913
  • Collections ODL          916
  • Association en ODL (relationship)          917
  • Spécification de la signature des opérations          917

16.2               Mécanismes de gestion des objets persistants               918

  • Constructeurs d’objets          918
  • Contrôle de concurrence          919
  • Noms de racines persistantes          919
  • Gestion des OID persistants          920

16.3        Le langage de requête OQL               920

  • SELECT de base          921
  • Clause DISTINCT          921
  • Constructeur STRUCT          922
  • Sélection d’objets de la BD          922
  • Requête sans SELECT          922
  • Expressions de chemins          923
  • SELECT enchâssé dans le FROM          924
  • SELECT enchâssé dans la spécification du résultat d’un SELECT          925
  • Aplatissement d’une collection de collections (FLATTEN)          925
  • Extraction de l’élément d’un singleton (ELEMENT)          926
  • Constructeurs d’objets          926
  • Comparaison par identité ou par valeur          926
  • Quantificateurs FOR ALL et EXISTS          926
  • Quantificateurs SOME, ANY et ALL          927
  • Fonctions de groupe          927
  • Partition avec GROUP BY          928
  • La valeur UNDEFINED          928
  • Tri avec ORDER BY          928

16.4        Le langage de manipulation de données OML       929

  • Transactions          929
  • Cas de JAVA          930

Scénario global de manipulation de données en Java                    933
Définition de classes capables de persistance                    934
Création d’une racine persistante                    936
Navigation à partir d’une racine persistante                    937
Requête simple sur une Dcollection                    938
Requête OQL                    939

16.5               Persistance transparente avec la norme JDO               940

  Notes bibliographiques et Références               948
l’Éditeur