Académique Documents
Professionnel Documents
Culture Documents
Yves Pigneur
Stphane Rey
Ecole des HEC
Universit de Lausanne
CH-1015 Lausanne
yves.pigneur@hec.unil.ch
(+41 21) 692.3416
Agenda
Introduction:
problmatique.
SGDBO:
dfinition;
objectifs;
...
Problmatique
Pourquoi n'enregistrons-nous pas les donnes dans un SGBD(R)?
Mthode
Mthode
Mthode
Mthode
Mthode
Mthode
Donnes
Donnes
Mthode
Mthode
SGBD(R)
Mthode
Mthode
Donnes
Donnes
SGBDO
SGBDO et AGL
Supporter le cycle de conception d'une application, de la dfinition des
besoins l'application finale.
Grer la configuration: gestion des accs concurrents un module, suivi
des diffrentes versions de modules, et enregistrement des informations
de dpendance (dterminer les modules recompiler).
Grer le projet: spcification, dpendances, et planification des sousprojets.
Hritage
Hritage
Versions
Versions
Business Components
Base de donnes
objet ?
Human
Human
Resources
Resources
Financial
Financial
Accounting
Accounting
SAP
SAPR/3
R/3
ManuManufacturing
facturing
SGBDO et conception
Les outils de conception s'appuient sur une base de donnes intgre qui
n'est pas accessible par l'utilisateur.
Les outils de conception grent (exemple d'un circuit lectrique):
...
Hritage
Hritage
Des objets ?
SGBDO et bureautique
Acheminer, traiter, archiver, dtruire des objets:
Multimdia
Multimdia ...
...
Persistance (backup)
Mmoire (temporaire)
Base (persistant)
SGBDO
Reference
/ou/ pointeur
Oid
/ou/ identifiant
Mthode
Mthode
Mthode
Mthode
Mthode
Mthode
Mthode
Mthode
Mthode
Mthode
Donnes
Donnes
PObject
New{Persist}
Delete{Unpersist}
...
Personne
New
Delete
GetName
...
PersonP
PersonNP
New
Delete
...
New
Delete
...
Catalogue
"John"
"Jack"
...
"Adresse"
"Voiture"
Objet
"Voiture John"
Mmoire
L'objet mmoire John est crit dans la base. Utilis par une autre
application, il pointe prsent sur un objet qui n'est plus prsent en
mmoire.
Objet "John"
Objet "John"
Objet
"Voiture John"
Pointeur invalide
Mmoire
Base
les rfrences mmoires sont remplaces par des couples <oid, ref>;
les parties ref des couples sont mises 0 (zro);
un objet est rfrenc partir de son Oid;
la rfrence est charge avec l'adresse de l'objet en mmoire.
1. Accs
4. Retour page
2. Violation
3. Accs Serveur
Attributs collections
Container typ dsign par un nom, contenant des lments multiples organiss
selon une structure particulire.
Document: {
title: STRING;
document: DATE;
keyword: SET[STRING]
chapter: LIST[Chapter]
}
Chapter: {
title: STRING;
number: INTEGER;
}
La premire forme normale du relationnel interdit les attributs collections de valeurs (domaine atomique).
Collections
Contenu des collections:
Collection
Insert
Delete
Count
...
Set
List
Include
Choice
Exist
Union
...
First
Next
Last
...
Collections et itrateurs
Une collection peut contenir plusieurs milliers d'lments. Il est plus efficace
de renvoyer au programme un itrateur, au lieu de la collection elle-mme.
Un itrateur est un objet part entire, qui possde les mthodes suivantes:
renvoyer l'lment;
passer l'lment suivant;
passer l'lment prcdent;
terminer l'itration lorsque tous les lments ont t parcourus;
repartir du premier lment;
sauter un lment particulier.
aCollect
Person
...
#2
aPerson
Person
...
#1
aPerson
Person
...
ID
1000
1001
1002
1003
1004
...
NOM
Bolomet
Gorsjean
Norton
McDonlard
Blanc
...
Person
Collect
addElement
firstElement
...
Person
...
aCollect
aPerson
aPerson
aPerson
Person
...
Person
...
Person
...
Person
...
//Enumeration
public Enumeration elements()
{
return collection.elements();
}
//Get size
public int getSize()
{
return collection.size();
}
class Collect
{
private Vector collection;
import java.util.*;
//Read keyboard
...
import java.util.*;
import java.io.*;
import Document;
...
//Read keyboard
static public Person readPerson()
{
BufferedReader kb = new BufferedReader(new InputStreamReader(System.in));
try
{
System.out.println("\nName: ");
String name=kb.readLine().trim();
if(name.length()==0)
return null;
System.out.println("\nLevel: ");
String level=kb.readLine().trim();
return new Person(name, level);
}
catch(Exception e)
{
System.out.println(e);
return null;
}
}
...
Attributs drivs
Les attributs drivs permettent de dfinir de manire procdurale une
valeur d'attribut, en spcifiant une procdure excuter ds que la valeur
est consulte ou affecte.
Document: {
title: STRING;
document: DATE;
...
release: DATE PROC() = ToDay();
}
Et encore ...
oprations de recherche;
oprations ensemblistes;
oprations de mise jour;
oprations de groupe;
Conclusion
Les bases de donnes objet soulvent de nombreux problmes difficiles.
Les problmes d'architecture:
architecture client-serveur d'objets;
architecture client-serveur de pages.
Et encore:
problmes de concurrence;
problmes de transactions;
...