Académique Documents
Professionnel Documents
Culture Documents
Meftah Boudjelal
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)
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
Classe Humain
Instanciation
Objet Salim
Objet Samir
/* cours-suivis: attribut
complexe et multivalu */
CLASS Etudiant
{ num : INT ;
nom : STRING ;
prnoms : LIST STRING ;
date-nais : DATE ;
adresse : T_Adresse;
cours-suivis : SET STRUCT
{ nom-cours : STRING ;
note : FLOAT} }
Les objets sont dcrits par des attributs, et sont regroups en classes.
Universit Mustapha Stambouli de Mascara
10
11
lidentit,
les classes et types,
lhritage,
lencapsulation,
lagrgation,
Le polymorphisme,
lextensibilit.
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}])
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: -
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.
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
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.
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
19