Oracle Orienté Objet Amanda Evans Mai 2000
La limite des systèmes relationnels La limitation de la majorité des systèmes actuels sont les suivantes [Soutou99] La simplicité du modèle de données et l'existence du langage SQL déclaratif natif induisent l'interfaçage avec un langage de programmation qui permet de répondre à des contraintes de spécification complexes. De ce fait, le dialogue entre la base et le langage n'est plus directe. On parle de défaut d'impédance (impedance mismatch) La normalisation conduit à l'accroissement du nombre de relations. Ainsi, si deux objets doivent être liés en mémoire, il faut simuler ce lien au niveau de la base par un mécanisme de clés étrangères ou de tables de corrélations. Parcourir un lien implique souvent une jointure dans la base. Il en résulte un problème de performance dès que le style d'interrogation devient navigationnel: manipulation d'arbres, de graphes ou toute autre application mettant en relation un grand nombre d'objets La faible capacité de modélisation: seules les structures de données tabulaires sont permises. Il est ainsi difficile de représenter directement des objets complexes Amanda Evans
Les bases de données objet Le premier SGBD objet date de 1983. Il s'agit du prototype Gemstone. L'approche suivie par ce système est simple: étendre le langage de programmation objet Smalltalk aux fonctions de SGBD Des produits commerciaux sont à présents disponibles: O2 d'Ardent Software Ontos Objectstore d'Object Design OpenODB de Hewlett-Packard Objectivity Versant, … Ces systèmes permettent d'accéder à des informations complexes avec des programmes écrits dans des langages objets. Ils concernent un segment limité du marché des SGBD Amanda Evans
Règles d'or d'un SGBD Objet Pour être qualifié d'objet, un SGBD doit respecter treize règles [Soutou99] Données persistantes Contrairement aux langages de programmation où les données disparaissent lorsque le programme est arrêté, les données persistantes sont conservées. Les données persistantes et non persistantes (temporaires) sont manipulées de la même façon par un programme Grande quantité de données Le système gère l'espace mémoire secondaire en utilisant des techniques de regroupement physique, d'indexation, d'optimisation de requêtes et de gestion de cache Fiabilité des données Le système assure la cohérance des données par les contraintes d'intégrité, la sûreté de fonctionnement par des transactions et la sécurité des accès par l'affectation de privilèges Partages de données Le système est multi-utilisateur et gère des mécanismes de verrous Amanda Evans
Règles d'or d'un SGBD Objet Facilité d'interrogation Le système permet à l'utilisateur d'interroger la base à l'aide d'un langage de requêtes. Le résultat d'une requête n'est pas forcément un objet d'une classe existante. Le langage offre en outre la puissance d'un langage de programmation Encapsulation Les données sont accessibles par des méthodes à différents degrés (visibilité) Objets composites Les structures de données à définir et à manipuler peuvent être complexes Identificateur d'objet L'accès aux objets s'opère directement ou par des liens inter-objets via les OID Classes, types et méthodes Le sytème permet la gestion des types abstraits de données et supporte les concepts de classes et de méthodes de l'approche objet Héritage Le système prend en charge le mécanisme d'héritage Amanda Evans
Règles d'or d'un SGBD Objet Surcharge et liaison dynamique Les méthodes peuvent être surchargées. La liaison dynamique est la capacité d'établir la correspondance entre le nom d'une méthode et son implantation lors de l'exécution et non lors de la compilation Langage de programmation complet Le système dispose d'un langage de programmation qui ne nécessite pas d'opérateur externe pour écrire une application Extensibilité Le système autorise l'ajout dynamique de nouveaux types abstraits de donnée, de nouvelles classes, de nouvelles méthodes, etc. Amanda Evans
Bilan de la technologie objet dans les bases de données Les SGBD objet trouvent leur origine dans les langage de programmation objet. Le principe de base de ces deux disciplines est le même: les données ne doivent être manipulées directement sans passer par une méthode. L'objectif principal de l'approche objet est d'augmenter le niveau d'abstraction. La technologie objet dans le domaine des bases de données vise à combiner les avantages des fichiers (simplicité et rapidité d'accès), des bases hiérarchiques ou réseaux (navigation entre objets) et des bases relationnelles (langage de requêtes) La technologie objet vise à réduire les différences entre le langage de programmation et la base de données d'une part, et entre le monde à modéliser et le modèle de données d'autre part. La concept objet induit ainsi une certaine idée de complémentarité entre les applications et les données stockées dans des SGBD Amanda Evans
Bilan de la technologie objet dans les bases de données Les SGBD objet risquent de subir des inconvénients découlant principalement du manque de théorie dans la conception d'un schéma. Cette insuffisance s'explique par la complexité et par le manque de maturité du modèle de données Un autre point faible des SGBD objet concerne la tenue de charge des moteurs lorsque le nombre d'utilisateurs concurrents augmente d'une manière importante Amanda Evans
La technologie objet-relationnel La technologie objet-relationnel est née en 1992 avec le SGBD UNISQL/X combinant un moteur relationnel et un système objet De nombreux SGBD ont suivis et tous s'orientent vers trois grands mouvements technologiques L'évolution interne du moteur de leur SGBD La connexion entre le moteur relationnnel et les moteurs spécialisés pour la manipulation de certains types de données complexes La promotion du middleware qui compose les couches au sens réseau du terme, lesquelles permettent d'interconnecter des applications à des SGBD hétérogènes Les éditeurs de SGBDR tendent à intégrer la technologie objet-relationnelle en préservant la totalité des fonctions de leur SGBDR; ils proposent des concepts qui font le succès de l'approche objet et des nouveaux types de données afin de mieux répondre à la demande du marché Amanda Evans
SGBD objet-relationnel Un SGBD objet-relationnel doit selon Stonebraker prendre en compte les quatre mécanismes suivants L'extension des types de données Les objets complexes (en terme de structures de données) L'héritage Les systèmes de règles Amanda Evans
Le modèle de données Le modèle de données objet-relationnel est une extension du modèle de données relationnel Une des principales extensions consiste à manipuler des structures de données complexes incluant Des pointeurs (facilitent la navigation) Des tables imbriquées (permettent de s'affranchir de la règle de la première forme normale) Les objets sont stockés dans des tables objets-relationnelles qui présentent des caractéristiques semblables au modèle de données NF2 (Non First Normal Form) Une table au modèle NF2 peut contenir un attribut qui est composé d'une liste de valeurs Amanda Evans
Exemple Amanda Evans
Exemple Amanda Evans
Oracle8 et l'objet-relationnel Oracle 8 est le premier serveur objet-relationnel d'Oracle Un des objetifs d'Oracle est de disposer de produits permettant le développement du commerce électronique basé sur un mécanisme transactionnel L'architecture d'Oracle est un montage trois tiers Le client (navigateur Internet) Le serveur applicatif (exécutable) Le serveur de base de données Oracle ne met pas encore en oeuvre le mécanisme d'héritage dans la version 8.0.x Amanda Evans