Documente Academic
Documente Profesional
Documente Cultură
PARTIE I : SGBD OO
CONCEPTS FONDAMENTAUX
DESA InfoTelecom
WWW. OMG.ORG
Nouveaux besoins
Nouveaux types de donnes (image, dessin, vido..)
Nouvelles applications (bd multimdia)
www.OMG.org
Gestion de disque
Tous les utilisateurs ne peuvent pas tout faire sur toutes les donnes
Notion de groupe d utilisateurs
Notion d autorisation (lecture, criture, excution)
Granularit des autorisations:
base de donnes,
relation,
nuplet,
attributs,
etc..
Accorder et supprimer les droits
ASPECT ORIENTE-OBJET
Identit d objet
Partage d objet
Comparaison d objets
IL FAUT
La valeur de lobjet?
AUTRE CHOSE
Valeur
Dveloppeur
BASES DE DONNEES ORINTEES OBJETS Rachid OULAD HAJ THAMI
II.2 Aspect Orient-objet / Identit
d objet
O1
Consquence: deux visions
A O1 : new A, a: x
b : OID(O2)
Class A (a : type1, B O2 : new B
b : B) O1.a:=x;
rfrence
Class B (c : type2, O1.b:=B;
d : type3)
O2
SGBD OO
Dveloppeur
BASES DE DONNEES ORINTEES OBJETS Rachid OULAD HAJ THAMI
II.2 Aspect Orient-objet / Identit
d objet
O1
Consquence: deux visions
ITE
a: x
O1.a
GRb : OID(O2)
Class A (a : type1, TE
b : B) O1.b IN
D
E L E rfrence
Class B (c : type2,
IT N E L
d : type3) A TI
TR EN
O N E R
E C E F O2
D R
A S
P
SGBD OO
Dveloppeur
BASES DE DONNEES ORINTEES OBJETS Rachid OULAD HAJ THAMI
II.2 Aspect Orient-objet / Identit
d objet
A: 1 A: 2
R1 A B C B:b1 B:b2
C:c1 C:c2
1 b1 c1 A: 3
B:b3
2 b2 c2 C:c3
3 b3 c4
R1 D A E
11 1 e1 D: 11
22 1 e2 A:
E:e1
33 3 e4
D: 22 D: 33
A: A:
E:e2 E:e4
Consquences:
Test didentit ==
Test dgalit de surface =
Test dgalit profonde =* (deep equality) (galit arborescente)
O2==O1? FAUX
O2=O1? VRAI
Rgle fondamentale:
Safir Rabat
Safir
31
Safirville=Rabat;
BASES DE DONNEES ORINTEES OBJETS Rachid OULAD HAJ THAMI
II.2 Aspect Orient-objet / Identit
d objet
Safir Hassan
HotelDeRemplacement
tuple tuple
Directeur Directeur
Untel
tuple tuple
Set
Directeur Directeur
Untel
tuple Set
1000
Hassan
Hassan
Rabat
Safir
Safir
31
Epouse
X Y
Epoux Enfant
Enfant
Enfant
Enfant Pre
Mre Mre
Pre
Pre Mre
Z T
W
Epouse
X Y
Epoux Enfant
Enfant
Enfant
Enfant Pre
Mre Mre
Pre
Pre Mre
Z W T
Totonom=Toto; Totonom=Tata;
Totonom=M; Totonom=F;
TotoPere=Nil; TotoPere=Nil;
TotoMere=Nil; TotoMere=Nil;
Totoconjoint=Nil; Totoconjoint=Nil;
TotoEnfants=set(); TotoEnfants=set();
Totoconjoint=TATA;
Nom: Toto Nom: Tata
Tataconjoint=TOTO; Conjoint: Conjoint:
TOTO TATA
BASES DE DONNEES ORINTEES OBJETS Rachid OULAD HAJ THAMI
II.2 Aspect Orient-objet / Identit
d objet
9 mois aprs!!!!!! Nom: titi TITI
C_Personne TITI=New C_Personne; Sexe:M
TITInom=Titi; Pere:
TITIsexe=M;
Mere:
TITIPere=TOTO;
TITIMere=TATA;
TOTOEnfant=Set(TITI);
Nom: Toto Nom: Tata
Conjoint: Conjoint:
TATAEnfant=Set(TITI);
Enfant: set( ) Enfant: set( )
TOTO TATA
BASES DE DONNEES ORINTEES OBJETS Rachid OULAD HAJ THAMI
II.2 Aspect Orient-objet / Identit
d objet
Et on peut naviguer!!! Nom: titi TITI
Sexe:M
TITIPere Pere:
TITIPereConjoint Mere:
TITIMere
TITIMereconjoint;
TOTOEnfantTITI;
Nom: Toto Nom: Tata
TOTOEnfantTITIMere; Conjoint: Conjoint:
Enfant: set( ) Enfant: set( )
TATAEnfantTITIPere;
TOTO TATA
BASES DE DONNEES ORINTEES OBJETS Rachid OULAD HAJ THAMI
II.2 Aspect Orient-objet / Identit
d objet
Possibilit de modliser deux situations:
Toto a une fille nomme Titi
Tata a une fille nomme Titi
Titi
Titi Titi
Toto Tata
Les objets atomiques sont les entiers, les rels, les boolens, les
chanes de caractres.
class Personne
{
float CIN;
String nom;
String prenom;
float dateNaiss;
String adr;
String sexe;
String situation;
Personne conjoint;
.
}
List(integer); List(5,7,9);
List(C_Personne)
Class C_Personne
Type (
nom : string,
Sexe : string; For (m in TotoEnfants {
Pere : C_Personne, if (mnom=Titi) { existe=true; break; };
Mere : C-personne,
Conjoint : C_Personne,
Enfants : List(C_Personne)
)
BASES DE DONNEES ORINTEES OBJETS Rachid OULAD HAJ THAMI
II.2 Aspect Orient-objet / Objets
complexes
LISTE : exemple ObjectStore/JAVA
OSHashListList( , , , )
class Personne
{
float CIN;
String nom;
String prenom;
OSHashList enfants;
.
}
tuple tuple
Maroc
Leila
List
Boutaina
Fouad
Farida
Set
Rachid
BASES DE DONNEES ORINTEES OBJETS Rachid OULAD HAJ THAMI
Objets complexes/Reprsentation des
associations
Une associations entre X et Y peut tre vue comme deux fonctions inverses f et g
f
X Y
g
x f(x) Y avec card(f(x)) 1
f f f
X g Y X g Y X g Y
Exemple 1:
Un pays na quune ville qui est sa capitale et une ville ne se trouve que dans
Un seul pays!!!
Class Pays type tuple (., capitale : Ville, ) end;
Une personne a un et un seul conjoint !!! Ici les deux classes X et Y sont les mmes
Exemple 3:
Dans le cas particulier ou Y est classe prdfinie, il nest pas possible dappliquer le
cas gnral!!!!
Implmentation 2:
Exemple 2:
Class Personne type tuple ( .,
enfants : list(Personne), // ordre entre les enfants
mre : Personne, //une seule mre
) end;
Exemple 3:
Y est une classe prdfinie
Implmentation 2:
Exemple 2:
Class Client type tuple ( .,
pays_visits : list( tuple ( anne : integer,
pays_visits : list (Pays),
) end;
Class Pays type tuple (., visiteurs : list(Client), ) end;
Emploi emploi
Nom
salaire
Select emploi.salaire
From dpartement, employ, salaire
Where dpartement = commercial
and employ.Nemloy =dpartement.directeur
and emploi.Nemploi = Employ.Nemploi
Dpartement
Objet Dpartement
Emploi tuple salaire
Objet Employ
Objet Emploi
tuple tuple
Set Set Tech
Vente directeur directeur
Les_Employs
xxxx
Les_Emplois
Objet Dpartement
tuple
Objet Employ
com 100
Objet Emploi
DONNEES
Interface METHODES
Exemple:
Afficher(Kador)
Afficher(Kador->salaire)
Afficher(Kador->photo)
La seule faon d oprer sur un objet de la classe C est de lui appliquer l une des
mthodes de la classe C
Une classe peut avoir des mthodes prives et des mthodes publiques
Une mthode prive n est applicable que par des objets de la classe C
Une mthode publique est applicable par n importe quel objet (client)
Composition,
NUL
OID de l objet rfrenc
ETRE VIVANT
HUMAIN ANIMAL
Utilisation:
for each x in X do
case of type(x)
Carte : AfficherCarte(x);
Htel : AfficherHtel(x);
Formulaire : AfficherFormulaire (x);
end_case;
Utilisation:
HERITAGE
+
TYPAGE DYNAMIQUE OU RESOLTUTION TRADIVE
Ceci est vrai pour tous les langages de programmation: ils sont complets dans le
sens de la machine de Turing
Employ tudiant
Chercheur
Doctorant
Principe et technique:
Plus de souplesse
Permet de manipuler des types lexcution
A111 A112
Transaction imbrique typique
Changement de valeurs,
V.3a V.3b
Changement de type/classe,
Dans les LPO: les objets sont Pour le mme type on peut avoir des
Temporaires tant quils ne sont Instances persistantes ou pas
pas crits explicitement dans des
fichiers Les oprations sappliquent aux
objets persistants ou temporaires
Dans un SGBD
Les donnes persistent Le statut persistant/temporaire peut
automatiquement tre chang
persistance temporaire
Exemple (OMG)
class Personne
Type tuple( nom : string,
Farid
voiture : Vhicule)
Voiture BMW
persistance temporaire
SGBDR
Capture faiblement la smantique
Facilit de mise en uvre
Le dveloppeur nest pas trs sollicit
Alors