Documente Academic
Documente Profesional
Documente Cultură
Agenda
Introduction:
problmatique.
SGDBO:
dfinition; objectifs; ...
Problmatique
Pourquoi n'enregistrons-nous pas les donnes dans un SGBD(R)?
Mthode Mthode Mthode
Donnes
Mthode Mthode
SGBD(R)
L'objet devrait inclure des mthodes de lecture/criture dans la base; L'objet ne pourrait pas tre sauvegard comme une instance; Les types complexes ne pourraient pas tre grs; La transformation d'un schma objet en schma relationnel et inversment pose certaines difficults.
Donnes
Mthode Mthode
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 Versions
HEC Lausanne - 1999 8
Business Components
SAP R/3
Manufacturing
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):
un langage de description du comportement; un schma fonctionnel; un schma logique; un schma de circuits; les sous-niveaux spcialiss; les masques de circuits intgrs.
...
Hritage
10
Des objets ?
11
SGBDO et bureautique
Acheminer, traiter, archiver, dtruire des objets:
messages (mail, fax, ...); documents; workflow; groupware; ...
Multimdia ...
12
13
14
15
Persistance (backup)
Mmoire (temporaire) Base (persistant)
SGBDO
Mthode
Mthode Mthode
Donnes
16
17
PObject
New{Persist} Delete{Unpersist} ...
Un objet est persistant si et seulement s'il est de type sous-classe de PObject. On dit alors que la persistance n'est pas orthogonale au type.
18
19
Cela ncessite un nouveau mot cl Persistant dans le(s) langage(s) de programmation, et une prcompilation qui gnre les appels aux fonctions Persist, Unpersist, Activate, etc.
//Cration d'un objet persistant martin : Personne; martin = new persistant("Martin");
20
"Adresse"
21
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 "Voiture John" Mmoire
Objet "John"
Pointeur invalide
HEC Lausanne - 1999
Base
22
23
24
25
les AR sont l'quivalent des pointeurs dans les langages de programmation, ou des cls trangres dans les systmes relationnels, avec deux diffrences majeures:
les attributs rfrencs sont incorruptibles; les attributs rfrencs ne sont pas associs des valeurs visibles; si l'tat d'un objet rfrenc est modifi, l'attribut rfrenc pointe toujours le mme objet.
26
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] }
Un ensemble (set) est une collection non ordonne, sans double; un sac (bag) est une collection non ordonne, qui accepte les doubles; une liste (list) est une collection ordonne, qui accepte les doubles; un tableau (array) est une collection ordonne et indexe.
La premire forme normale du relationnel interdit les attributs collections de valeurs (domaine atomique).
27
Collections
Contenu des collections:
des valeurs {10, 20, 30, 40} des objets <O1, O2, O3, ..., On>
Collection Insert Delete Count ...
Dans les systmes objet, la notion de collection est souvent ralise par des classes paramtres, encore appeles classes gnriques ou patterns de classes.
Set
List
28
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.
Les itrateurs sont soit directement accessibles au sein du langage de programmation, dans quel cas l'itrateur n'est pas transaprent pour l'utilisateur, soit utiliss en interne au niveau des mthodes d'accs du SGBDO.
HEC Lausanne - 1999 29
#2
ID NOM
1000
aPerson Person ...
Bolomet
Gorsjean Norton McDonlard Blanc
#1
aPerson Person ...
...
...
30
31
32
import java.util.*; class Collect { private Vector collection; //Constructor to create a vector public Collect() { collection = new Vector(); } //Add an element to a vector public void addElement(Person element) { collection.addElement(element); }
import java.util.*; import java.io.*; import Document; public class TryCollection { //Main procedure public static void main(String[] args) { Collect aCollect = new Collect(); Person aPerson; for(;;) { aPerson=readPerson(); if(aPerson==null) break; aCollect.addElement(aPerson); } Enumeration thisLot = aCollect.elements(); while(thisLot.hasMoreElements()) { System.out.println(thisLot.nextEl ement().toString()); } }
...
//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; } } ...
35
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(); }
Les SGBDR permettent galement de dfinir de manire procdurale une valeur d'attribut:
triggers; stored procedures (Oracle).
36
Et encore ...
Algbre pour objets complexes; groupage et dgroupage; algbre d'Encore; algbre sous forme de classes:
oprations de recherche; oprations ensemblistes; oprations de mise jour; oprations de groupe;
37
Conclusion
Les bases de donnes objet soulvent de nombreux problmes difficiles.
Et encore:
problmes de concurrence; problmes de transactions; ...
HEC Lausanne - 1999 38