ift3030 base de données chapitre 10 modèle et …sahraouh/cours/ift3030/10_bdoo.pdf · –...

12
1 Page 1 IFT3030 Base de données Chapitre 10 Modèle et bases de données à objets Cours tiré du livre Gardarin99 6 Introduction 6 Architecture 6 Modèles de données 6 Modèle relationnel 6 Algèbre relationnelle 6 SQL 6 Conception 6 Fonctions avancées 6 Concepts avancés 6 Modèle des objets 6 BD à objets 2 Plan du cours n Introduction n Architecture n Modèles de données n Modèle relationnel n Algèbre relationnelle n SQL n Conception n Fonctions avancées n Concepts avancés n Modèle des objets n BD à objets

Upload: truongminh

Post on 10-Sep-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IFT3030 Base de données Chapitre 10 Modèle et …sahraouh/cours/ift3030/10_BDOO.pdf · – normalisation de SQL3 prévue pour 1999. 12 Page 12 6Introduction 6Architecture 6Modèles

1

Page 1

IFT3030Base de données

Chapitre 10Modèle et bases de données à objets

Cours tiré du livre Gardarin99

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

2

Plan du cours

n Introductionn Architecturen Modèles de donnéesn Modèle relationneln Algèbre relationnellen SQLn Conceptionn Fonctions avancéesn Concepts avancésn Modèle des objetsn BD à objets

Page 2: IFT3030 Base de données Chapitre 10 Modèle et …sahraouh/cours/ift3030/10_BDOO.pdf · – normalisation de SQL3 prévue pour 1999. 12 Page 12 6Introduction 6Architecture 6Modèles

2

Page 2

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

3

TECHNIQUES DES SGBDO

n 1. Qu'est-ce qu'un SGBDO ?

n 2. Architectures des SGBDO

n 3. Persistance des objets

n 4. Langages de requêtes

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

4

Rappel modèle objet

n Objetn Identifiantn Classen Attributsn Opérationsn Héritagen Objets complexes (collections)n Polymorphisme

Page 3: IFT3030 Base de données Chapitre 10 Modèle et …sahraouh/cours/ift3030/10_BDOO.pdf · – normalisation de SQL3 prévue pour 1999. 12 Page 12 6Introduction 6Architecture 6Modèles

3

Page 3

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

5

1. Qu'est-ce-qu'un SGBDO ?

n The Object-Oriented Database System Manifesto– Atkinson, Bancilhon, Dewitt, Ditrich, Maier, Zdonick ( DOOD'89)

n Fonctionnalités BD obligatoires :– la persistance– la concurrence– la fiabilité– la facilité d'interrogation

n Fonctionnalités BD optionnelles :– la distribution– les modèles de transaction évolués– les versions

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

6

Fonctionnalités objets

n Fonctionnalités objets obligatoires :– les objets atomiques et complexes– l'identité d'objets– l'héritage simple– le polymorphisme (surcharge)

n Fonctionnalités objets optionnelles :– l'héritage multiple– les messages d'exception

Page 4: IFT3030 Base de données Chapitre 10 Modèle et …sahraouh/cours/ift3030/10_BDOO.pdf · – normalisation de SQL3 prévue pour 1999. 12 Page 12 6Introduction 6Architecture 6Modèles

4

Page 4

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

7

Gérant d'objets

LOOPersist.

OQL

OQL = Object Query LanguageODL = Object Defintion LanguageLOO = Langage Orienté Objet

• Persistance • Concurrence• Identification • Fiabilité• Accès • Sécurité

ODL

Outils Interactifs

• Editeur de classes• Manipulateur d’objets• Bibliothèques graphiques• Débogueur, éditeur

2. ARCHITECTURES n Architecture fonctionnelle type :

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

8

Architecture opérationnelle

n Problèmes : – comment distribuer les fonctions du SGBDO ?– quel protocole de communication utiliser ?– quelle organisation en processus et tâches répartis ?

n Constatation– environnement de stations en réseau très fréquent– puissance croissante des postes de travail– le débit réseau n'est plus un goulot (100 Mbit/sec.)

n Conclusion– puissance de traitement importante au niveau des clients– une grande partie des fonctions peut résider à ce niveau

Page 5: IFT3030 Base de données Chapitre 10 Modèle et …sahraouh/cours/ift3030/10_BDOO.pdf · – normalisation de SQL3 prévue pour 1999. 12 Page 12 6Introduction 6Architecture 6Modèles

5

Page 5

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

9

Serveur d'objets

Application

Cache objets

Cache objets Verrous

Fichiers et index

Cache pages

objetsRecherche

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

10

Serveur de pages

ApplicationObjets actifs

Verrous et journauxFichiers et index

Cache pages

pages

Cache pages

Recherche

Page 6: IFT3030 Base de données Chapitre 10 Modèle et …sahraouh/cours/ift3030/10_BDOO.pdf · – normalisation de SQL3 prévue pour 1999. 12 Page 12 6Introduction 6Architecture 6Modèles

6

Page 6

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

11

Serveur de méthodes

ApplicationObjets actifs

Gestion d'objets

Cache pages

Appel d’objets distanceRépartiteur de

Messages

ApplicationObjets actifs

Gestion d'objets

Cache pages

Répartiteur deMessages ORB

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

12

Comparaisons

Points forts Points faiblesServeur • méthodes sur client ou serveur • serveur centraliséd'objets • concurrence niveau objet • duplication de fonctions

Serveur • distribution de pages possible • méthodes sur le serveur imposs.de pages • serveur plus simple • concurrence niv. objet difficile

• hétérogénéité difficile

Serveur •méthodes sur client ou serveur • performances pour petits objetsde • transfert de messages standards • peu bases de donnéesméthodes • système uniforme et extensible • Corba et service BD ?

Page 7: IFT3030 Base de données Chapitre 10 Modèle et …sahraouh/cours/ift3030/10_BDOO.pdf · – normalisation de SQL3 prévue pour 1999. 12 Page 12 6Introduction 6Architecture 6Modèles

7

Page 7

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

13

3. PERSISTANCE DES OBJETS

n Objectifs– faire persister les objets du LOO sans les démonter– assurer le plus possible la transparence pour le programmeur– garder des performances proches du travail en mémoire– récupérer les emplacements des objets détruits

n Moyens– gérant d'objets persistants assurant concurrence et fiabilité– identifiant d'objets permettant de retrouver les objets en 1 ou 2

accès– ramasse-miettes périodique

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

14

La Persistance par héritage

PobjectNew

DeleteLookup

-->

PPerson Nom

Prenom…

n Classe racine de persistance PObject– tout objet d'une sous-classe hérite des propriétés

de persistance– New, Delete et Envoi de message sont

surchargés– une primitive Lookup est ajoutée pour les

recherches

n Non orthogonale au type– seuls les types héritants de PObject persistent– nécessité de dupliquer les classes persistantes et

transiantes– possibilité de marquer la persistance pour éviter la

duplication (attribut booléen Persistant)

Page 8: IFT3030 Base de données Chapitre 10 Modèle et …sahraouh/cours/ift3030/10_BDOO.pdf · – normalisation de SQL3 prévue pour 1999. 12 Page 12 6Introduction 6Architecture 6Modèles

8

Page 8

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

15

La Persistance par référence

voiture

toto

x

Catalogue

moteur

n Définition par le programmeur de racines de persistance– Mot clé "persistant" ou "db" ajouté aux

déclarations– exemples:

• Employe* emp = new persistant Employe("Toto");• persistant int x;

– un objet racine de persistance est catalogué • accessible par lookup

n Tout objet référencé par un objet persistant est persistant– les références sont rendues persistantes :

• lors de l'écriture d'un objet les références• sont remplacés par des oid

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

16

TotoVéhicule*

VoitureTotoPeugeot

Disque

Mémoire

TotoVéhicule*

Pointeur invalide

Translation des pointeurs

n Les adresses mémoires doivent être translatées en adresses BD (oid) lors des écritures et vice versa

Page 9: IFT3030 Base de données Chapitre 10 Modèle et …sahraouh/cours/ift3030/10_BDOO.pdf · – normalisation de SQL3 prévue pour 1999. 12 Page 12 6Introduction 6Architecture 6Modèles

9

Page 9

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

17

Ad MC

Ad BD

Approche double pointeur

n Tout pointeur sur un objet persistant est remplacé par un double pointeur

n En écriture– si Ad BD inconnue ALORS { Ad BD = AllouerBD(Objet) ; Ecrire

(Ad BD, Objet) } ;

n En lecture– si Ad MC inconnue ALORS {Ad MC = AllouerMC(Ad BD);

Lire(Ad MC, Ad BD) } ;

n Inconvénients– objets persistants versus objets transients (doubles pointeurs)– lecture des objets pointés– faiblesse des performances

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

18

Approche mémoire virtuelle (1)

n Ecriture des objets sans modification– Pointeurs disques = adresse mémoire virtuelle– Sauvegarde des pages dans des partitions BD

images de la mémoire

n Pré-allocation des objets en mémoire virtuelle– Lorsqu'un objet est retrouvé, des pages

inaccessibles sont allouées pour tous les objets référencés.

– L'objet est chargé lors du premier accès par récupération de la violation mémoire virtuelle.

n Cette technique a été brevetée par ODI

Page 10: IFT3030 Base de données Chapitre 10 Modèle et …sahraouh/cours/ift3030/10_BDOO.pdf · – normalisation de SQL3 prévue pour 1999. 12 Page 12 6Introduction 6Architecture 6Modèles

10

Page 10

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

19

Approche mémoire virtuelle (2)

Mémoire Virtuelle Client0 2**32

1 Accès

2 Violation

Page Manquante

Image Disque

3 Accès Serveur 4 Retour PageOBJECT-STORE

Tout pointeur est une adressemémoire virtuelle client/serveur

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

20

4. LANGAGES DE REQUETES

Numéro des véhicules de couleur rougedont le fabriquant a son siège à Paris et un président de moins de 50 ans ?

Véhicule

- numéro- couleur- fabriquant Groupe

- nom- ville- président Employé

- nss- nom- date naissance- age()

Page 11: IFT3030 Base de données Chapitre 10 Modèle et …sahraouh/cours/ift3030/10_BDOO.pdf · – normalisation de SQL3 prévue pour 1999. 12 Page 12 6Introduction 6Architecture 6Modèles

11

Page 11

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

21

Langage navigationnel

n Parcours un objet à la fois via les pointeurs

véhicule* v, groupe* g, personne* p;for each v in vehicule { if v->couleur == “Rouge”then

{ g = v->fabriquant;if g->ville == "Paris" then

{ p = g->president;if p->age() < 50 then cout <<

v.numéro; } ; } ; };

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

22

Les SQL Objets

n Extension ou Variation de SQL (adapté aux objets)– parcours de chemin : Voiture.fabriquant.président =>

Personne– exécution de méthodes : voiture. démarrer()– prise en compte de l'héritage– présentation des résultats : ensemble ou classe– parcours des collections

n Problème de compatibilité avec la norme SQL– travaux de l'ODMG (ODL et OQL 93/96)– normalisation de SQL3 prévue pour 1999

Page 12: IFT3030 Base de données Chapitre 10 Modèle et …sahraouh/cours/ift3030/10_BDOO.pdf · – normalisation de SQL3 prévue pour 1999. 12 Page 12 6Introduction 6Architecture 6Modèles

12

Page 12

6Introduction6Architecture6Modèles de données6Modèle relationnel6Algèbre relationnelle6SQL6Conception6Fonctions avancées6Concepts avancés6Modèle des objets6BD à objets

23

Principaux SQL objets

FSQL HP IRIS OPEN-DBOSQL MCC ORIONXSQL UNISQL UNISQLSQL3 ISO Norme ?ISQL C.A. INGRES

O-SQL ORACLE ORACLE

VSQL VERSANT VERSANTO2SQL O2 O2ESQL INRIA-BULL DBS3OQL ODMG Norme objet ?