Base de Données Orientée Objet Chapitre 2 Meftah Boudjelal 1 Université Mustaph

Base de Données Orientée Objet Chapitre 2 Meftah Boudjelal 1 Université Mustapha Stambouli de Mascara Pourquoi des SGBD Objet ? 2 Faiblesses du modèle relationnel Absence de pointeurs visibles : pour lier des données qui se correspondent, on a besoin de faire des jointures (opérations coûteuses) Non support des domaines composés : on ne peut pas avoir pas exemple un attribut qui correspond à une adresse avec le numéro de la rue, le nom de la rue, la ville, … Impossible à cause de la première forme normale, qui impose l’atomicité des attributs Pas d’opérations définies sur les données On veut donc un SGBD capable de traiter des éléments de structure complexe des opérations sur les éléments des pointeurs reliant les éléments (pour de l’héritage par exemple) Ces notions correspondent à la philosophie objet : il nous faut des SGBD objet. Université Mustapha Stambouli de Mascara Pourquoi des SGBD Objet ? Personne nom prénoms adresse (rue, n°, ville, codeNPA) enfants (prénoms, sexe, dateNais) … En relationnel : 4 relations, N tuples Personne (n°, nom, adresse_rue, adresse_n°, adresse_ville, adresse_codeNPA) Personne_prénom (n°P, n°prénom, prénom) Personne_enfant (n°P, n°enfant, sexe, dateNais) Person_enfant_prénom (n°P, n°enfant, n°prénom, prénom) 3 Université Mustapha Stambouli de Mascara BDD orientées Objets Les BDDOO sont caractérisées par quatre points essentiels: un modèle de données qui permet de représenter des structures de données complexes; les données et les traitements ne sont plus séparés. La dynamique (les méthodes) fait partie de la déclaration des classes d'objets; tout objet possède une identité qui le distingue de tout autre objet, même s'ils ont la même valeur. l'héritage; 4 Université Mustapha Stambouli de Mascara SGBD Objet Deux manières d’utiliser l’objet dans les SGBD On part des langages objet dans lesquels on intègre les notions des SGBD (persistance des données, aspect multi-utilisateurs, …). Ce sont les SGBD orientés objet : O2 (basé sur C++) (Norme ODMG) On part des SGBD relationnels dans lesquels on insère des notions objet. Ce sont les SGBD objet relationnels : à partir de ORACLE 8 (SQL 3) (Norme ISO) 5 Université Mustapha Stambouli de Mascara SGBD objet SGBD orienté objet Nouveau modèle de données: ODMG Nouveau langage de requête: OQL Systèmes les plus connus: années 90-95 – O2: vrai SGBD, modèle complet, proche d'ODMG, utilisation OQL – ObjectStore: langage de programmation avec objets persistants 6 Université Mustapha Stambouli de Mascara SGBD objet-relationnels Extension des SGBD relationnels – Ajout au relationnel des propriétés les plus utiles de l'objet – Basées sur des BD fiables et longuement optimisées Principales extensions – Possibilité de créer des types complexes et des tables de types complexes – Ajout des types LOB pour données texte, multimédia, etc. – Identifiants d'objet et types référence – Possibilité de définir des types abstraits et des méthodes sur ces types – Héritage entre types Objet à structure complexe 7 Université Mustapha Stambouli de Mascara Qu’est ce qu’un objet ? - Toute entité identifiable, concrète ou abstraite, peut être considérée comme un objet - Un objet réagit à certains messages qu'on lui envoie de l'extérieur • la façon dont il réagit détermine le comportement de l'objet - Il ne réagit pas toujours de la même façon à un même événement • sa réaction dépend de l’état dans lequel il se trouve Un objet est un type de données qui définit une structure et l’ensemble des opérations applicables à cette structure. Tout objet est instance de sa classe. Objet à structure complexe 8 Une classe est la description abstraite d’un ensemble d’objets partageant les mêmes caractéristiques. La classe possède deux composantes : description des données, appelées attributs (composante statique) description des procédures, appelées méthodes (composante dynamique) Les attributs caractérisent l’état des objets durant l’exécution des programmes. Les méthodes caractérisent les comportements des objets durant l’exécution des programmes. Classe Humain Objet Salim Objet Samir Instanciation Université Mustapha Stambouli de Mascara Exemple : • Classe : Etudiant • Attributs : String nom, int numéro • Méthodes : créer, changer le nom, changer le numéro • Objet de la classe Etudiant : Samir 4679 Objet à structure complexe CLASS Etudiant /* déclaration d'une classe d'objets */ { num : INT ; nom : STRING ; prénoms : LIST STRING ; /* attribut multivalué de type liste */ date-nais : DATE ; sexe : ENUM {'M', 'F'} , adresse : STRUCT /* adresse: attribut complexe */ {n° : INT ; rue : STRING ; ville : STRING ; pays : STRING } ; cours-suivis : SET STRUCT /* cours-suivis: attribut { nom-cours : STRING ; complexe et multivalué */ note : FLOAT} } 9 Université Mustapha Stambouli de Mascara Objet à structure complexe TYPEDEF T_Adresse /* déclaration d'un domaine STRUCT {n° : INT ; de type complexe */ rue : STRING ; ville : STRING ; pays : STRING } CLASS Etudiant /* déclaration d'une classe d'objets */ { num : INT ; nom : STRING ; prénoms : LIST STRING ; /* attribut multivalué de type liste */ date-nais : DATE ; adresse : T_Adresse; /* attribut de domaine complexe */ cours-suivis : SET STRUCT /* cours-suivis: attribut { nom-cours : STRING ; complexe et multivalué */ note : FLOAT} } Les objets sont décrits par des attributs, et sont regroupés en classes. 10 Université Mustapha Stambouli de Mascara Objet à structure complexe Constructeurs de structure complexe : attribut complexe : STRUCT attribut multivalué => constructeur de collection ensemble : SET liste : LIST multi-ensemble : BAG tableau à une dimension : ARRAY Types définis par l'application Les constructeurs de structure complexe servent à: définir des classes d'objets à structure complexe définir des types de données adaptés à l'application type T-Adresse types Image, Son … 11 Université Mustapha Stambouli de Mascara 12 l’identité, les classes et types, l’héritage, l’encapsulation, l’agrégation, Le polymorphisme, l’extensibilité. Caractéristiques supportées par les SGBDOO Les SGBDOO possèdent certaines caractéristiques propres au paradigme objet qui les distinguent des autres applications. Ces concepts sont : Université Mustapha Stambouli de Mascara Identité d’objet Identité d'objet Chaque objet a une identité qui lui est propre et qui le distingue de tous les autres. On l'appelle l’oid de l'objet ("object identity") qui est géré par le SGBDOO. Cet identifiant doit être permanent (qui existe pendant au moins toute la durée de vie de l'objet), fixe (qui ne change pas durant la vie de l'objet) et unique dans la base et dans le temps (deux objets distincts de la même base, même s'ils n'existent pas en même temps n'auront jamais la même identité). 13 L’identifiant ne doit pas être géré par le programmeur mais par le système. Un objet est un couple (oid, valeur) tel que: (oid1, [nom: N, prénom: P, Enfants: {E1, E2, E3}]) Université Mustapha Stambouli de Mascara Identité d’objet Tests d’identité / d’égalité L'identité est la relation d'équivalence "avoir même identificateur que" L'égalité est la relation d'équivalence "avoir les mêmes propriétés que". Deux objets sont égaux si et seulement si leurs valeurs sont égales. AB(1) se marie avec DR – AB(1) le conjoint de DR sont deux objets identiques (ou sont un seul objet) – AB(1) et AB(2) ne sont plus égaux (une de leurs propriétés diffère: le conjoint) Nom: AB Prénom: X Age: 36 Conjoint: [DR] Nom: AB Prénom: X Age: 36 Conjoint: - 14 Université Mustapha Stambouli de Mascara Héritage L'héritage est un mécanisme de transmission des propriétés d'une classe vers une sous-classe. C'est une relation entre classes. Le graphe de cette relation est le graphe d'héritage. Une sous-classe possède toutes les propriétés de sa super-classe mais elle peut en redéfinir certaines et en posséder d'autres. La sous-classe est une spécialisation (ou raffinement) de la super-classe L ’héritage a deux objectifs : l'enrichissement : on adjoint, dans la sous-classe, de nouvelles propriétés à celles issues de la super-classe la substitution : on redéfinit dans la sous-classe certaines propriétés issues de la super-classe. L'héritage est dit simple si la sous-classe n'a qu'une super-classe ; il est dit multiple si la sous-classe a plusieurs super-classes. 15 Université Mustapha Stambouli de Mascara Init (nom:string, prenom: string, age:integer, conjoint: Personne) Nom: AB Prénom: X Age: 36 Conjoint: - Salaire: real employeur: Employeur Salaire: real Salaire: real Salaire_Enseignant: real salaire_Chercheur: real Employeur_Enseignant: Employeur employeur_Chercheur: Employeur Héritage Personne Employe Chercheur Enseignant-Chercheur Enseignant 16 Université Mustapha Stambouli de Mascara 17 Encapsulation et agrégation L’encapsulation permet de cacher l’implantation d’un objet (valeurs) et l’utilisateur ne connait rien sur les constituantes internes des données contenues dans cet objet. Dans ce contexte, les interfaces (sélecteur de méthodes applicables à l’objet) constituent la seule partie visible par l’utilisateur de l’objet implanté. Agrégation L’agrégation est un type de relation entre les objets. Elle permet de décrire un objet par les objets qui le composent. Encapsulation L’encapsulation a pour but de présenter une structure de données stable à l'utilisateur, même si la structure interne de la base change complètement. Les données, au lieu d'être directement accessible par l'utilisateur, sont cachées et des méthodes permettant la lecture et la modification sont mises en place. Université Mustapha Stambouli de Mascara Polymorphisme et extensibilité 18 Polymorphisme le polymorphisme permet d’associer uploads/Litterature/ bddoo.pdf

  • 18
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager