Relationnel-Objet et le modèle relationnel

Relationnel-Objet et le modèle relationnel
5 (100%) 1 vote

Le relationnel-objet étend le modèle relationnel de manière à pouvoir faciliter l’intégration d’une application objet à une BD relationnelle.

L’extension Relationnel-Objet

Relationnel-Objet

Relationnel-Objet

format PDF 5.00$ 

L’extension relationnel-objet permet de représenter des objets et des valeurs complexes au niveau de la BD. Il devient alors plus facile de convertir les données d’une application structurées sous forme d’objets en données persistantes dans la BD. Cependant, par opposition à un SGBDO pur, le monde de l’application (non persistant : en mémoire vive) et le monde de la BD (persistant : en mémoire permanente) sont distincts, et la manipulation des données de la BD est effectuée à l’aide d’un langage de manipulation de données (par exemple SQL avec extensions) de manière analogue au relationnel. De plus, le concept de table demeure la structure de base pour la gestion des données persistantes. Malgré toutes les facilités de passage entre le monde SQL et le monde de l’application objet, le défaut d’impédance persiste. Lorsque les extensions relationnel-objet sont employées uniquement pour définir de nouveaux types de données plus riches pour les colonnes des tables, la traduction entre les deux mondes est relativement simple à réaliser. Cependant, lorsqu’il faut prendre en compte les associations entre objets, le passage entre les deux mondes demeure relativement complexe.

SQL:1999 et le relationnel-objet

SQL:1999 introduit des extensions objets au standard SQL. Cependant, ces extensions sont supportées partiellement par les SGBD actuels. Ainsi, pour illustrer les concepts relationnel-objet, nous utilisons le cas d’Oracle. Les concepts de type défini par l’utilisateur (TYPE) et d’objets ont été introduits dans SQL:1999 et à partir de la version 8 Oracle. Les exemples d’extensions de relationnel-objet de ce chapitre suivent la syntaxe du dialecte Oracle9i. Plusieurs aspects de la syntaxe d’Oracle pour les extensions objets ne sont pas tout à fait conformes à SQL:1999. Les différences sont mises en évidence. On peut cependant s’attendre à une convergence vers SQL:1999 à plus ou moins brève échéance.

SQL:1999 introduit les extensions objets tout en maintenant la compatibilité avec les versions antérieures purement relationnelles. Ainsi, il est possible d’utiliser un serveur SQL:1999 et ses descendants pour gérer des tables relationnelles pures sans tirer profit des nouvelles fonctionnalités objets. Ceci permet d’intégrer l’approche objet de manière progressive tout en maintenant les données légataires relationnelles.

Le relationnel-objet et les types définis par l’utilisateur

SQL:1999 permet de définir de nouveaux types définis par l’utilisateur (CREATE TYPE). Ces types peuvent être utilisés comme type des colonnes de tables ou comme type des attributs d’autres types. Il devient ainsi possible de définir des colonnes à valeurs complexes (column object). L’utilisation du terme column object par Oracle pour désigner les colonnes dont le type est défini par l’utilisateur porte à confusion, car il s’agit plutôt de valeurs sans identité propre. D’autre part, les types peuvent aussi servir à créer des objets avec identité propre. Les objets sont maintenus de manière persistante dans des tables d’objets, d’où la désignation objet-ligne (row object)[1], et des attributs peuvent faire référence à ces objets avec une clause spéciale REF.

Table des matières – Relationnel-objet

17.1               Type défini par l’utilisateur (UDT)     950

  • Traduction d’une classe d’objets UML persistante par un type et une TABLE d’objets 951
  • Type de valeurs d’un attribut ou colonne 952
  • Traduction d’une association un à plusieurs UML par référence simple (REF) 952
  • Contrainte SCOPE IS 953
  • Indexage pour améliorer la performance des requêtes utilisant les références 953
  • Références inverses 954
  • Collection VARRAY Oracle 956
  • Représentation d’un type de données complexe ou d’une composition UML par un UDT 956
  • Définition de méthodes 958
  • Héritage de types 960
  • Mixage du relationnel avec l’objet 960

17.2               Extensions au langage de manipulation de données SQL        960

  • Expression de chemin 961
  • Cheminement par références 961
  • Accès à une table enchâssée par l’opérateur d’aplatissement (THE) 962
  • Insertion et constructeur d’objet 962

17.3               Accès aux extensions objets en Java       965

  • Typage faible par java.sql.Struct965
  • Typage fort et conversion de type automatique avec SQLData 968
  • Objet SQLJ : partie 2 de la norme SQLJ 973

Notes bibliographiques       975

Références     975

Le relationnel-objet étend le modèle relationnel et permet l’intégration d’une application objet à une BD relationnelle.

 


[1]         D’ailleurs, le standard SQL3 fait une différence explicite entre ces deux formes d’utilisation d’un TYPE avec la clause WITH OID VISIBLE qui permet de spécifier que le TYPE servira pour des objets.

l’Éditeur