1 / 64

Les bases de données et l’objet

Les bases de données et l’objet. INT. Plan du document. Atouts et limites du relationnel Définition d’un objet Modèle objet pur Règles d'or d'un SGBDO Atouts et limites d'un SGBDO Modèle objet-relationnel Propriétés RICE. Atouts du relationnel. Très bon support théorique

parley
Download Presentation

Les bases de données et l’objet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Les bases de données et l’objet INT

  2. Plan du document • Atouts et limites du relationnel • Définition d’un objet • Modèle objet pur • Règles d'or d'un SGBDO • Atouts et limites d'un SGBDO • Modèle objet-relationnel • Propriétés RICE Bases de Données

  3. Atouts du relationnel • Très bon support théorique • Simplicité des concepts basés sur des ensembles • Modèle de données (externe, logique, physique) • LDD et LMD Bases de Données

  4. Atouts d'un SGBD(R) • Persistance : les données survivent aux programmes • Taille : accès efficace aux grandes quantités de données : gestion des tampons, index, optimisation des requêtes • Performances sur le transactionnel (OLTP) • Standard industrie : • SQL2 : indépendance des applications • architecture client-serveur • optimisation de requêtes • Sécurité • Transactions • Architecture client-serveur Bases de Données

  5. Limite du relationnel (2) • Modèle plat : pas de données complexes • Difficile d ’exprimer des choses structurées • 1FN • nbre relations • Difficile de naviguer dans la structure • Jointure • -> inadaptés aux application navigationnelles (réseaux, CAO) • Pas de types nouveaux • volumineux ou/et multimedia • Non intégration des opérations • SQL déclaratif, simple • Langage non complet •  interfaçage avec un langage de programmation • impedance mismatch Bases de Données

  6. Définition d’un objet • Pas de définition universelle de l’objet • OMG • Chose identifiable • Ferber • Entité informatique complète identifiable caractérisée pas son état et un ensemble de méthodes Bases de Données

  7. Objet Méthode Messages Interface Méthode Données Méthode Méthode Méthode Définition d'un objet (2) • Associe traitements (méthodes) et données dans une même entité. • L'interface est le seul moyen d'accéder à l'objet, par l'envoi de messages. • "Abstraction informatique d'une entité du monde réel caractérisée par une identité, un état et un comportement." [Gardarin, "Bases de Données objets & relationnel", Eyrolles, 1999] Bases de Données

  8. Identité d’objet • Chaque objet a une identité indépendante de sa valeur. • On peut mettre à jour la valeur sans changer l'identité. • Identité et égalité (surface ou profondeur?) sont deux concepts différents. • Les objets peuvent être partagés. • Les objets peuvent être cycliques. • Les identificateurs ne sont pas accessibles aux utilisateurs. Bases de Données

  9. VolAF417/15mars95 tarif places_dispo inscrits Exemple VolUTA75/16mars95 inscrits places_dispo tarif 1000 23 15 900 * * Dupont Blanc André Martin ref reservations ref reservations ref reservations ref reservations * * * * Bases de Données

  10. Modèle objet pur • Premier SGBD objet : 1983 (Gemstone) • Approche : étendre le langage de programmation objet aux fonctions de SGBD • Persistance • orthogonale au type • langages : C++, smalltalk, Java/OQL • Produits • O2, ObjectStore, Ontos, Objectivity, Jasmine, Versant • Niches technologiques • réseau, CAO, SIG, Gestion de données Techniques • pas de transactionnel lourd Bases de Données

  11. Règles d'or d'un SGBD Objet Pour être qualifié d'objet, un SGBD doit respecter treize règles [Soutou99] • Données persistantes • 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 • Techniques de regroupement physique, d'indexation, d'optimisation de requêtes et de gestion de cache • Fiabilité des données • Transactions et privilèges • Partages de données • multi-utilisateur  mécanismes de verrous • Facilité d'interrogation • 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 Bases de Données

  12. Règles d'or d'un SGBD Objet • 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 • Accès aux objets directement ou par des liens inter-objets via les OID • Objets partagés • Classes, types et méthodes • Types abstraits de données • Concepts de classes et de méthodes de l'approche objet • Héritage Bases de Données

  13. 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. Bases de Données

  14. SGBDO ++ • Héritage multiple • Gestion des versions • CI • Vues • Evolution de schéma • Persistance dynamique Bases de Données

  15. Atouts de la technologie objet dans les bases de données • Origine dans les langage de programmation objet • Objectif principal de l'approche objet : augmenter le niveau d'abstraction. • Objet dans les SGBD : combiner les avantages • fichiers (simplicité et rapidité d'accès), • bases hiérarchiques ou réseaux (navigation entre objets) • bases relationnelles (langage de requêtes) • Réduction des différences • entre le langage de programmation et la BD, • entre le monde à modéliser et le modèle de données d'autre part Bases de Données

  16. Limites de la technologie objet dans les bases de données • Manque de théorie dans la conception d'un schéma. Modèle de données : • complexe • manque de maturité • Tenue de charge des moteurs lorsque le nombre d'utilisateurs concurrents augmente d'une manière importante Bases de Données

  17. 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 Bases de Données

  18. Propriétés RICE • Réutilisation • finalité du paradigme objet • héritage, généralité, composition, polymorphisme • Identité • identifier un objet de manière unique • Complexité • définition d ’objets complexes et/ou fortement structurés • Encapsulation • boîte noire avec des méthodes de manipulation Bases de Données

  19. RICE/BDO/BDOR Bases de Données

  20. Conclusion • SQL3 et OQL se rapprochent • SQL3 évolue vers SQL4 Bases de Données

  21. Deux approches en BD Smalltalk, C++, ... Codd (69) OODBMS SQL SQL2 ODMG 93 SQL3 ODMG II (97) SQL4 Oracle, Informix, Sybase, IBM, DB2, CA-OpenIngres CA-Jasmine, ObjectStore, O2 Versant, POET, ... Convergence ? Bases de Données

  22. Les manifestos • Codd, 1969 • Modèle relationnel • Codd, 1990 • Modèle relationnel V2 • Atkinson et al. 1989 • The object-oriented Database System Manifesto • Stonebraker et al. 1990 • Third generation Database System Manifesto • Darwen et Date, 1995 • The third Manifesto Bases de Données

  23. Bibliographie • Mokrane Boutzeghoub, Georges Gardarin, Patrick Valduriez, "Les Objets", Eyrolles, 1998, 450 pages; • R. Cattell, "Bases de données orientées objets", Thomson Publishing, 1997, 395pages; • Georges Gardarin, "Bases de données objet & relationnel", Eyrolles, 1999, 780 pages. Bases de Données

  24. Bases de données objet-relationnel Oracle 8 INT

  25. 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 Bases de Données

  26. Exemple Bases de Données

  27. Exemple Bases de Données

  28. 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 Bases de Données

  29. La programmation OO avec Oracle • Dans PL/SQL la programmation orientée-objet est basée sur des types objets (object types). • Ces types objets fournissent 1) des modèles abstraits pour des objets du monde réel 2) l'encapsulation ("boîte noire"). • Pour utiliser un type objet dans un programme, il suffit de connaître ce qu'il fait et non comment il le fait. Bases de Données

  30. Le Type Objet • Un type objet est un type de données composé défini par l'utilisateur, qui encapsule une structure de données ainsi que les fonctions et procédures nécessaires à la manipulation des données. • Les variables qui forment la structure de données sont appelées des attributs et les fonctions/procédures qui caractérisent le comportement du type objet sont les méthodes. • Un objet a donc des attributs et un comportement. Bases de Données

  31. L'encapsulation des données • Les attributs et les méthodes sont encapsulées dans un type objet. • La structure de données formée par les attributs est publique. Toutefois, une programmation "stricte" ne devrait pas directement manipuler les attributs mais appeler les méthodes proposées. • Oracle prévoit la possibilité de définir une structure de données dite privée, dont les attributs sont accessibles uniquement via les méthodes. Bases de Données

  32. L'instance • Lorsque qu'une structure de données est remplie avec des valeurs, une instance est crée. • Autant d'instances désirées peuvent être crées, souvent appelées objets. Bases de Données

  33. Interface publique Spécification Corps Déclaration des attributs Corps des méthodes Spécification des méthodes Implémentation privée La structure d'un type-objet Un type-objet est formé de 2 parties: 1) une spécification L'interface déclarant la structure de données (l'ensemble des attributs) ainsi que les opérations (méthodes) associées à la manipulation de ces données. 2) un corps (body) Il définit complètement les méthodes, et ainsi implémente la spécification. Bases de Données

  34. Remarques • La notion d'encapsulation est déjà très forte dans PL/SQL grâce au paradigme du package. • Le paradigme du package permet de protéger les spécifications des procédures. En effet, le corps d’une procédure peut être modifié tout en conservant son en-tête, ainsi le programmeur n’a nul besoin de se préoccuper de mettre à jour ses anciens programmes. • On perçoit une analogie très forte entre le type objet et le package, non seulement au niveau conceptuel mais également au niveau de la structure. Bases de Données

  35. La spécification d'un type objet • Dans la spécification d'un type objet, tous les attributs doivent être déclarés AVANT les méthodes • Si la spécification d'un type objet déclare uniquement des attributs, le corps du type objet est inutile. • Il n'est pas possible de déclarer des attributs dans le corps d'un type objet. • Dans la spécification d'un type objet, il est possible de déclarer des attributs et des méthodes, mais impossible de déclarer des constantes, exceptions, curseurs ou types. • Il est nécessaire de déclarer au moins un attribut (max. 1'000) dans un type objet; les méthodes sont optionnelles. Bases de Données

  36. Les attributs • Un attribut est déclaré avec un nom (unique dans le type objet) et un type de données. • Tous les types de données Oracle sont possibles à l'exception de: LONG, LONG RAW, NCHAR, NCLOB, NVARCHAR2, MLSLABEL, ROWID, BINARY_INTEGER, BOOLEAN, PLS_INTEGER, RECORD, REF CURSOR, %TYPE, %ROWTYPE, et les types définis à l'intérieur d'un package PL/SQL. • Un attribut ne peut pas être initialisé (pas de clause DEFAULT). • La contrainte NOT NULL ne peut pas être imposée. • La structure de données peut devenir très complexe. Par exemple, le type de données d'un attribut peut être un autre type objet (appelé "nested object type"). Bases de Données

  37. Les méthodes • Une méthodes est un sous-programme déclaré dans la spécification d'un type objet par le mot-clé MEMBER. • La méthode ne peut pas avoir le même nom que le type objet ni qu'aucun des attributs. • Une méthode se réfère aux attributs ou à d'autres méthodes du type objet sans préfixe. Bases de Données

  38. Le paramètre SELF • Toute méthode d'un type objet accepte une instance de ce type comme premier paramètre (SELF). • Ce paramètre peut être implicitement ou explicitement déclaré. • Lorsque SELF n'est pas explicitement déclaré, son mode par défaut est • IN pour une fonction • IN OUT pour une procédure. • Dans le corps d'une méthode, SELF se réfère à l'objet appelant la méthode. • Le préfixe SELF n'est pas obligatoire lors de l'utilisation d'un attribut par une méthode. Bases de Données

  39. La méthode CONSTRUCTOR • Chaque objet est pourvu d'une méthode de construction appelée CONSTRUCTOR, définie par le système avec le même nom que le type objet. • Une méthode de construction est une fonction utilisée pour initialiser et retourner une instance de ce type objet. • Le type des paramètres ainsi que leur ordre sont identiques à ceux des attributs du type objet. Bases de Données

  40. La définition d'un type objet CREATE [OR REPLACE] TYPE type_name AS OBJECT ( att_name datatype [, att_name datatype] … [ MEMBER {procedure_spec | function_spec} [, MEMBER {procedure_spec | function_spec}] ] … ); [CREATE [OR REPLACE] TYPEBODY type_name AS MEMBER {procedure_spec | function_spec}; [, MEMBER {procedure_spec | function_spec}; ] … END ; ] Bases de Données

  41. Exemple CREATE TYPE Nbre_rationnel AS OBJECT ( Numerateur INTEGER, Denominateur INTEGER, MEMBERFUNCTION plus (x Nbre_rationnel) RETURN Nbre_rationnel, MEMBERFUNCTION moins (x Nbre_rationnel) RETURN Nbre_rationnel, MEMBERFUNCTION fois (x Nbre_rationnel) RETURN Nbre_rationnel ); CREATE TYPEBODY Nbre_rationnel AS MEMBERFUNCTION plus (x Nbre_rationnel) RETURN Nbre_rationnel IS r Nbre_rationnel; BEGIN -- retourne la somme de SELF et x -- appel du CONSTRUCTOR r:= Nbre_rationnel (numerateur * x.denominateur + x.numerateur * denominateur, denominateur * x. denominateur ); RETURN r; END plus; … END; Bases de Données

  42. Les objets Une fois un type objet défini et inséré au schéma, il peut être utilisé pour déclarer des objets dans n'importe quel bloc PL/SQL, sous-programme, ou package. Bases de Données

  43. La déclaration d'un objet Les types objets peuvent être utilisés partout où un type prédéclaré tel que CHAR ou NUMBER le serait. Exemple: DECLARE r Nbre_rationnel; BEGIN -- appel de la méthode CONSTRUCTOR r:= Nbre_rationnel (6,7); DBMS_OUTPUT.PUT_LINE (r.numerateur); … Bases de Données

  44. Initialisation d'un objet • Tant qu'un objet n'a pas encore été initialisé par l'appel du CONSTRUCTOR de son type objet, l'objet est atomiquement nul. • Un objet nul n'est jamais égal à un autre objet. Le fait de comparer un objet NULL avec n'importe quel autre objet donne toujours la valeur NULL. Bases de Données

  45. L'accès aux attributs L'accès à un attribut peut se faire simplement par référence à son nom. Pour accéder ou modifier la valeur d'un attribut, la notion pointée est utilisée. Exemple: r.denominateur r.numerateur Les noms des attributs peuvent être enchaînés, ce qui permet d'accéder aux attributs d'un "nested object type". Bases de Données

  46. Le partage d'objets Le partage d'objets a deux avantages: 1) les données ne sont pas répliquées inutilement 2) lorsqu'un objet partagé est modifié, ce changement est effectué une seule fois et n'importe quel référant a accès aux nouvelles valeurs. Le mot-clé REF sert à déclarer les références. Il contient un pointeur sur un objet. Exemple: CREATE TYPE T_Ligne AS OBJECT ( Quantite NUMBER, Montant NUMBER(10,2), ProduitCommande REF T_Produit, MEMBER PROCEDURE CalculMontant ); Bases de Données

  47. La manipulation des objets • Les types objets peuvent être utilisés dans les instructions SQL CREATE TABLE pour spécifier le type de données d'une colonne. • Dès qu'une table est créée, les instructions SQL sont utilisées pour insérer un objet, sélectionner des attributs ou des méthodes et mettre à jour son état. Exemple: CREATE TABLE Nombre (nr Nbre_rationnel,…) -- insère 3/7 INSERT INTO Nombre (nr) VALUES (Nbre_rationnel (3,7)) -- retourne 3 SELECT n.nr.numerateur INTO Mon_nombre FROM Nombre n WHERE … -- modifie le numérateur à 10 et le dénominateur à 7 (3/7 +1= 10/7) UPDATE Nombre n SET n.nr=n.nr.plus(Nbre_rationnel(1,1)) WHERE ... Remarque: Un alias est nécessaire lorsqu'un attribut ou une méthode est référencé. Bases de Données

  48. La table objet • Une table stockant des objets de type objet sont appelées des tables objets. • Chaque colonne dans un enregistrement correspont à un attribut du type objet. Exemple: CREATE TABLE Nombre OF Nbre_rationnel; Remarque: Chaque enregistrement dans une table objet a un OID (object identifier), qui identifie uniquement l'objet stocké dans une enregistrement et sert comme référence à l'objet. Bases de Données

  49. L'accès aux objets référencés • La navigation à travers à un objet référencé dans une instruction procédurale PL/SQL n'est pas possible. • Il est impératif de passer par l'opérateur DEREF dans une instruction SQL. (DEREF-"déréférence": lorsqu'un pointeur est "déréférencé", la valeur de l'objet pointé est retourné) • L'opérateur DEREF prend comme paramètre une référence à un objet, puis retourne la valeur de l'objet. Bases de Données

  50. Exemple Considérons le type objet suivant: CREATE TYPE T_Commande AS OBJECT ( DateCommande DATE, Rabais NUMBER, MontantTotal NUMBER(10,2), Emetteur REF T_Client, Lignes T_lignes, MEMBER FUNCTION Destinataire RETURN T_Client, ); La requête suivante "déréférence" la référence à un objet de type T_Client UnClient T_CLient; BEGIN SELECT DEREF(Emetteur) INTO UnClient FROM …; Bases de Données

More Related