Vous êtes sur la page 1sur 19

Chapitre 2

Base de Donnes Oriente Objet

Meftah Boudjelal

Universit Mustapha Stambouli de Mascara

Pourquoi des SGBD Objet ?


Faiblesses du modle relationnel
Absence de pointeurs visibles : pour lier des donnes qui se correspondent,
on a besoin de faire des jointures (oprations coteuses)
Non support des domaines composs : on ne peut pas avoir pas exemple un
attribut qui correspond une adresse avec le numro de la rue, le nom de la rue,
la ville,
Impossible cause de la premire forme normale, qui impose latomicit des
attributs
Pas doprations dfinies sur les donnes
On veut donc un SGBD capable de traiter
des lments de structure complexe
des oprations sur les lments
des pointeurs reliant les lments (pour de lhritage 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
prnoms
adresse (rue, n, ville, codeNPA)
enfants (prnoms, sexe, dateNais)

En relationnel : 4 relations, N tuples


Personne (n, nom, adresse_rue, adresse_n, adresse_ville, adresse_codeNPA)
Personne_prnom (nP, nprnom, prnom)
Personne_enfant (nP, nenfant, sexe, dateNais)
Person_enfant_prnom (nP, nenfant, nprnom, prnom)

Universit Mustapha Stambouli de Mascara

BDD orientes Objets


Les BDDOO sont caractrises par quatre points essentiels:
un modle de donnes qui permet de reprsenter des structures de donnes
complexes;
les donnes et les traitements ne sont plus spars. La dynamique (les
mthodes) fait partie de la dclaration des classes d'objets;
tout objet possde une identit qui le distingue de tout autre objet, mme s'ils
ont la mme valeur.
l'hritage;

Universit Mustapha Stambouli de Mascara

SGBD Objet
Deux manires dutiliser lobjet dans les SGBD
On part des langages objet dans lesquels on intgre les notions des SGBD
(persistance des donnes, aspect multi-utilisateurs, ).
Ce sont les SGBD orients objet : O2 (bas sur C++) (Norme ODMG)
On part des SGBD relationnels dans lesquels on insre des notions objet.
Ce sont les SGBD objet relationnels : partir de ORACLE 8 (SQL 3) (Norme
ISO)

Universit Mustapha Stambouli de Mascara

SGBD objet
SGBD orient objet
Nouveau modle de donnes: ODMG
Nouveau langage de requte: OQL
Systmes les plus connus: annes 90-95
O2: vrai SGBD, modle complet, proche d'ODMG, utilisation OQL
ObjectStore: langage de programmation avec objets persistants
SGBD objet-relationnels
Extension des SGBD relationnels
Ajout au relationnel des proprits les plus utiles de l'objet
Bases sur des BD fiables et longuement optimises
Principales extensions
Possibilit de crer des types complexes et des tables de types complexes
Ajout des types LOB pour donnes texte, multimdia, etc.
Identifiants d'objet et types rfrence
Possibilit de dfinir des types abstraits et des mthodes sur ces types
Hritage entre types
Universit Mustapha Stambouli de Mascara

Objet structure complexe


Quest ce quun objet ?
- Toute entit identifiable, concrte ou abstraite, peut tre considre
comme un objet
- Un objet ragit certains messages qu'on lui envoie de l'extrieur
la faon dont il ragit dtermine le comportement de l'objet
- Il ne ragit pas toujours de la mme faon un mme vnement
sa raction dpend de ltat dans lequel il se trouve
Un objet est un type de donnes qui dfinit
une structure et lensemble des oprations
applicables cette structure.
Tout objet est instance de sa classe.

Universit Mustapha Stambouli de Mascara

Objet structure complexe


Une classe est la description abstraite dun ensemble dobjets partageant les
mmes caractristiques.
La classe possde deux composantes :
description des donnes, appeles attributs (composante statique)
description des procdures, appeles mthodes (composante dynamique)
Les attributs caractrisent ltat des objets durant lexcution des
programmes.
Les mthodes caractrisent les comportements des objets durant lexcution
des programmes.
Exemple :
Classe : Etudiant
Attributs : String nom, int numro
Mthodes : crer, changer le nom, changer le
numro
Objet de la classe Etudiant : Samir 4679

Universit Mustapha Stambouli de Mascara

Classe Humain
Instanciation
Objet Salim

Objet Samir

Objet structure complexe


CLASS Etudiant
{
num : INT ;
nom : STRING ;
prnoms : LIST STRING ;
date-nais : DATE ;
sexe : ENUM {'M', 'F'} ,
adresse : STRUCT
{n : INT ;
rue : STRING ;
ville : STRING ;
pays : STRING } ;
cours-suivis : SET STRUCT
{ nom-cours : STRING ;
note : FLOAT}
}
Universit Mustapha Stambouli de Mascara

/* dclaration d'une classe d'objets */

/* attribut multivalu de type liste */

/* adresse: attribut complexe */

/* cours-suivis: attribut
complexe et multivalu */

Objet structure complexe


TYPEDEF T_Adresse
STRUCT {n : INT ;
rue : STRING ;
ville : STRING ;
pays : STRING }

/* dclaration d'un domaine


de type complexe */

CLASS Etudiant
{ num : INT ;
nom : STRING ;
prnoms : LIST STRING ;
date-nais : DATE ;
adresse : T_Adresse;
cours-suivis : SET STRUCT
{ nom-cours : STRING ;
note : FLOAT} }

/* dclaration d'une classe d'objets */

/* attribut multivalu de type liste */


/* attribut de domaine complexe */
/* cours-suivis: attribut
complexe et multivalu */

Les objets sont dcrits par des attributs, et sont regroups en classes.
Universit Mustapha Stambouli de Mascara

10

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 dfinis par l'application
Les constructeurs de structure complexe servent :
dfinir des classes d'objets structure complexe
dfinir des types de donnes adapts l'application
type T-Adresse
types Image, Son

Universit Mustapha Stambouli de Mascara

11

Caractristiques supportes par les SGBDOO


Les SGBDOO possdent certaines caractristiques propres au paradigme objet
qui les distinguent des autres applications.
Ces concepts sont :

lidentit,
les classes et types,
lhritage,
lencapsulation,
lagrgation,
Le polymorphisme,
lextensibilit.

Universit Mustapha Stambouli de Mascara

12

Identit dobjet
Identit d'objet
Chaque objet a une identit qui lui est propre et qui le distingue de tous les
autres. On l'appelle loid de l'objet ("object identity") qui est gr par le
SGBDOO.
Cet identifiant doit tre
permanent (qui existe pendant au moins toute la dure 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 mme base,
mme s'ils n'existent pas en mme temps n'auront jamais la mme identit).
Lidentifiant ne doit pas tre gr par le programmeur mais par le systme.
Un objet est un couple (oid, valeur) tel que:
(oid1, [nom: N, prnom: P, Enfants: {E1, E2, E3}])

Universit Mustapha Stambouli de Mascara

13

Identit dobjet
Tests didentit / dgalit
L'identit est la relation d'quivalence "avoir mme identificateur que"
L'galit est la relation d'quivalence "avoir les mmes proprits que".
Deux objets sont gaux si et seulement si leurs valeurs sont gales.
Nom:

AB

Nom:

AB

Prnom: X

Prnom: X

Age:

Age:

36

Conjoint: [DR]

36

Conjoint: -

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 proprits diffre: le
conjoint)
Universit Mustapha Stambouli de Mascara

14

Hritage
L'hritage est un mcanisme de transmission des proprits d'une classe vers
une sous-classe. C'est une relation entre classes. Le graphe de cette relation est
le graphe d'hritage.
Une sous-classe possde toutes les proprits de sa super-classe mais elle peut
en redfinir certaines et en possder d'autres. La sous-classe est une
spcialisation (ou raffinement) de la super-classe
L hritage a deux objectifs :
l'enrichissement : on adjoint, dans la sous-classe, de nouvelles proprits
celles issues de la super-classe
la substitution : on redfinit dans la sous-classe certaines proprits issues
de la super-classe.
L'hritage 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.

Universit Mustapha Stambouli de Mascara

15

Hritage
Init (nom:string,
prenom: string,
age:integer,
conjoint: Personne)

Nom:
Prnom:
Age:
Conjoint:

AB
X
36
-

Salaire: real

employeur: Employeur

Personne

Employe
Salaire: real

Salaire: real

Enseignant

Chercheur
Salaire_Enseignant: real
salaire_Chercheur: real

Employeur_Enseignant: Employeur
employeur_Chercheur: Employeur

Enseignant-Chercheur

Universit Mustapha Stambouli de Mascara

16

Encapsulation et agrgation
Encapsulation
Lencapsulation a pour but de prsenter une structure de donnes stable l'utilisateur,
mme si la structure interne de la base change compltement.
Les donnes, au lieu d'tre directement accessible par l'utilisateur, sont caches et des
mthodes permettant la lecture et la modification sont mises en place.
Lencapsulation permet de cacher limplantation dun objet (valeurs) et lutilisateur
ne connait rien sur les constituantes internes des donnes contenues dans cet objet.
Dans ce contexte, les interfaces (slecteur de mthodes applicables lobjet)
constituent la seule partie visible par lutilisateur de lobjet implant.
Agrgation
Lagrgation est un type de relation entre les objets. Elle permet de dcrire un objet
par les objets qui le composent.

Universit Mustapha Stambouli de Mascara

17

Polymorphisme et extensibilit
Polymorphisme
le polymorphisme permet dassocier un code spcifique une mthode hrite qui
garde le mme nom.
Lors dune application dune mthode un objet, la mthode excuter dpend de la
classe de lobjet et ne peut donc tre connue qu lexcution (pas la compilation).
Exp. en java
public class A {
void f() {
code 1; }
};
public class B extends public A {
void f() {
code 2; }
};
Extensibilit
Un SGBDOO doit supporter la possibilit dajouter de nouveaux types afin de prendre
en compte de nouveaux domaines dapplication.
Universit Mustapha Stambouli de Mascara

18

SGBDOO VS. SGBDRO


les SGBDOO sont plus propres du point de vue objet et les mieux adapts
pour traiter les objets mais ils sont compltement absents du monde
professionnel.
les SGBDRO sont bass sur des SGBD robustes et prouvs rpandus dans
le monde professionnel mais qui ne sont pas prvus pour grer lobjet
Jusqu prsent, les amliorations qui ont t dveloppes pour les SGBD se
sont fondus dans les SGBD existants. Dans le monde professionnel, les
concepteurs et les utilisateurs de bases de donnes ne sont pas prts
remettre en cause leurs savoirs et redvelopper toutes leurs applications sur
de nouveaux systmes. On va privilgier les SGBDRO.

Universit Mustapha Stambouli de Mascara

19

Vous aimerez peut-être aussi