techniques des sgbdo n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
TECHNIQUES DES SGBDO PowerPoint Presentation
Download Presentation
TECHNIQUES DES SGBDO

Loading in 2 Seconds...

play fullscreen
1 / 35

TECHNIQUES DES SGBDO - PowerPoint PPT Presentation


  • 81 Views
  • Uploaded on

TECHNIQUES DES SGBDO. 1. Présentation du modèle Objet 2. Définition d'un SGBDO 3. Architectures des SGBDO 4. Persistance des objets 5. Langages de requêtes 6. Optimisation des requêtes 7. Conclusion. 1. Caractéristiques du modèle objet. Objet Identifiant Attributs Opérations Classe

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'TECHNIQUES DES SGBDO' - tana


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
techniques des sgbdo
TECHNIQUES DES SGBDO
  • 1. Présentation du modèle Objet
  • 2. Définition d'un SGBDO
  • 3. Architectures des SGBDO
  • 4. Persistance des objets
  • 5. Langages de requêtes
  • 6. Optimisation des requêtes
  • 7. Conclusion
1 caract ristiques du mod le objet
1. Caractéristiques du modèle objet
  • Objet
  • Identifiant
  • Attributs
  • Opérations
  • Classe
  • Héritage
  • Polymorphisme
  • Objets complexes ou collections
  • Messages
  • Base de Données à Objets
mod lisation des objets
Modélisation des objets
  • Objet (Object)
    • Abstraction informatique d'une entité du monde réel caractérisée par une identité, un état, un comportement.
  • Identifiant d'objet (Object Identifier)
    • Référence unique et invariante attribuée à un objet lors de sa création permettant de le désigner et de le retrouver tout au long de son existence.
  • Attribut (Attribute)
    • Caractéristique d'un objet désignée par un identificateur permettant de mémoriser une ou plusieurs valeurs, un ou plusieurs identifiants d'objets.
encapsulation des objets
Encapsulation des objets
  • Opération (Operation)
    • Représentation d'une action applicable sur un objet, caractérisée par un en-tête appelé signature définissant son nom, ses arguments d'appel (identificateur et type) et le type de ses paramètres de retour.
  • Méthode - fonction membre
    • Autres appellations des opérations sur les objets, utilisées dans les langage de programmation à objet tels le langage C++ ou Smalltalk.
  • Interface d'objet (Object Interface)
    • Ensemble des signatures des méthodes, y compris les lectures et écritures d'attributs publics, applicables depuis l'extérieur d'un objet.
d finitions des types d objet
Définitions des types d'objet
  • Classe (Class)
    • Implémentation d'une ou plusieurs interfaces sous la forme d'un cadre permettant de spécifier un ensemble de propriétés d'objets (attributs et opérations) et de créer (instancier) des objets dotés de ces propriétés.
    • Une classe spécifie la structure et le comportement commun d'objets qu'elle permet de créer (instanciation).
  • Méthode multi-classes
    • Méthode pouvant s'appliquer à des instances de différentes classes, en général définie dans une classe, les autres classes étant des paramètres de la classe courante.
liens d h ritage entre classe
Liens d'héritage entre classe
  • Généralisation (Generalization)
    • Lien hiérarchique entre deux classes spécifiant que les objets de la classe supérieure sont plus généraux que ceux de la classe de niveau inférieur.
  • Héritage (Inheritance)
    • Transmission automatique des propriétés d'une classe vers une classe dérivée.
    • La classe de niveau supérieur est appelée superclasse ou classedebase.
    • La classede niveau inférieur est appelée sous-classe ou classe dérivée et hérite de tous les attributs et propriétés de la classe de base.
  • Héritage multiple (Multiple Inheritance)
    • Type d'héritage dans lequel une classe dérivée hérite de plusieurs classes de base.
red finition surcharge polymorphisme
Redéfinition, surcharge, polymorphisme
  • Redéfinition (Overrriding)
    • Spécification dans une classe dérivée d'une méthode existante dans une classe de base, avec une implémentation différente.
  • Surcharge (Overloading)
    • Possibilité de définir plusieurs codes pour une même méthode, le code approprié étant déterminé selon le type des arguments d'appel.
  • Polymorphisme (Polymorphism)
    • Faculté pour une méthode d'avoir différentes signatures avec un code spécifique attaché à chaque signature.
collections d objets 1 2
Collections d'objets (1/2)
  • Collection (Collection)
    • Conteneur (Container) typé désigné par un identificateur, contenant des éléments multiples organisés selon une structure particulière auxquels on accède par des opérations spécifiques au conteneur.
  • Exemples
    • l'ensemble (Set) permet de définir des collections non ordonnéessans doublon,
    • le sac (Bag) permet de définir des collections non ordonnéesavec doublon,
    • la liste (List) permet de définir des collections ordonnées avec doublon,
    • le tableau (Array) permet de définir des collections ordonnées, indexées.
collections d objets 2 2
Collections d'objets (2/2)
  • Classe paramétrée (Template)
    • Classe avec des arguments dont le type peut être paramétré avec différentes implémentations selon le type.
  • Agrégation (Aggregation)
    • Association entre deux classes exprimant que les objets de la classe cible sont des composants de ceux de la classe source.
    • L'agrégation traduit la relation "fait partie de ".
message
Message
  • Message
    • Ensemble composé d'un identificateur d'objet récepteur, d'un identificateur d'une méthode et de ses arguments permettant, suite à son émission, l'invocation de la méthode publique de l'objet récepteur.
    • Dans les environnement objets, ces derniers communiquent donc par des messages comportant le nom d'une méthode et ses arguments.
    • Un objet peut réceptionner un message et réagir à ce dernier.
    • L'émission d'un message est une implémentation flexible et contrôlée du traditionnel appel de procédure par valeur des langages de programmation.
base de donnees a objets
Base de donnees a objets
  • Schéma de Base de Données Objet (Object BD Schema)
    • Description d'une base de données à objets incluant les définitions de classes, d'attributs, d'opérations ainsi que les liens entre les classes.
2 d finition d un sgbdo
2. Définition d'un SGBDO
  • D'après The Object-Oriented Database System Manifesto
    • Atkinson, Bancilhon, Dewitt, Ditrich, Maier, Zdonick ( DOOD'89)
  • Fonctionnalités Base de Données nécessaires
    • la persistance d'un objet sur un disque ou sa transience (objet dont la durée de vie en mémoire n'excède pas celle du programme créateur),
    • la concurrence d'accès,
    • la fiabilité des objets (restauration obligatoire en cas de panne),
    • la facilité d'interrogation à partir de la valeur des propriétés.
  • Fonctionnalités BD optionnelles
    • la distribution en architecture client-serveur,
    • les modèles de transaction évolués (imbriquées),
    • la gestion des versions d'objets pour retour à un état antérieur.
d finitions
Définitions
  • Objet persistent (Persistent Object)
    • Objet stocké dans la base de données dont la durée de vie est supérieure au programme qui le crée.
  • Objet transient (Transient Object)
    • Objet restant en mémoire, dont la durée de vie n'excède pas celle du programme qui le crée.
  • Objet à versions (Versionnable Object)
    • Objet dont l'historique des instances crées (successivement ou simultanément) est conservé dans la base sous la forme de versions consultables ou modifiables.
fonctionnalit s objets d un sgbdo
Fonctionnalités objets d'un SGBDO
  • Fonctionnalités objets obligatoires
    • les objets atomiques et complexes,
    • l'identité d'objets,
    • l'héritage simple,
    • le polymorphisme (surcharge).
  • Fonctionnalités objets optionnelles
    • l'héritage multiple,
    • la gestion des messages d'exception.
3 architectures d un sgbdo
3. ARCHITECTURES D'UN SGBDO
  • Architecture fonctionnelle type

• Éditeur de classes

• Manipulateur d'objets

• Bibliothèques graphiques

• Débogueur, éditeur

Outils Interactifs

LOO

Persist.

ODL

OQL

OQL = Object Query Language

ODL = Object Defintion Language

LOO = Langage Orienté Objet

• Persistance • Concurrence

• Identification • Fiabilité

• Accès • Sécurité

Gérant d'objets

architecture op rationnelle
Architecture opérationnelle
  • Problèmes
    • Fonctions du SGBDO distribuée en réseau,
    • choix du protocole de communication dans les architectures C&S,
    • organisation en processus et tâches répartis.
  • Propriétés actuelles des architectures matérielles
    • Environnement de stations de travail en réseau de plus en plus fréquent.
    • Puissance croissante du poste de travail.
    • le débit réseau n'est plus un goulot d'étranglement ( 100 Mbit/sec.).
  • Conséquence
    • La puissance de traitement des postes clients devenant très importante, une partie des fonctions peut y résider.
serveur d objets
Serveur d'objets

Application

Verrous

Cache objets

Recherche

objets

Cache objets

Fichiers et index

Cache pages

serveur de pages
Serveur de pages

Application

Objets actifs

Recherche

Verrous et journaux

Fichiers et index

pages

Cache pages

Cache pages

serveur de m thodes
Serveur de méthodes

Application

Application

Objets actifs

Remote Object Call

Objets actifs

Répartiteur de

Messages

Répartiteur de

ORB

Messages

Gestion d'objets

Gestion d'objets

Cache pages

Cache pages

comparaisons
Comparaisons

Points forts Points faibles

Serveur • 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 impossible

de pages • serveur plus simple • concurrence au niveau objet difficile

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

Serveur • méthodes sur client ou serveur • performances pour petits objets

de • transfert de messages standards • peu bases de données

méthodes • système uniforme et extensible • Corba et service BD ?

4 gestion de la persistance des objets
4. Gestion de la persistance des objets
  • Objectifs
    • faire persister les objets du LOO sans les démonter,
    • assurer le plus possible la transparence pour le programmeur,
    • obtenir des performances proches de celles du travail en mémoire,
    • récupérer les espaces mémoires alloués aux objets détruits.
  • Moyens
    • gérants d'objets persistants assurant concurrence et fiabilité,
    • identifiant d'objets permettant de retrouver les objets en 1 ou 2 accès,
    • ramasse-miettes (garbage collector) exécuté périodiquement.
la persistance par h ritage
La Persistance par héritage
  • Classe racine de persistance (Pobject)
    • Tout objet d'une classe dérivée hérite des propriétés de persistance.
    • Les opérateurs New, Delete et Envoi de messages sont surchargés.
    • Une primitive Lookup est ajoutée pour les recherches.
  • Non orthogonale au type
    • Seuls les types héritant 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).

Pobject

New

Delete

Lookup

PPerson

Nom

Prenom

la persistance par r f rence
La Persistance par référence
  • 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 la méthode Lookup
  • 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

Catalogue

toto

x

voiture

moteur

translation des pointeurs
Translation des pointeurs
  • Les adresses mémoires doivent être translatées en adresses BD (oid) lors des écritures et vice versa.

VoitureToto

Peugeot

Toto

Véhicule*

Mémoire

Toto

Véhicule*

Pointeur invalide

Disque

approche double pointeur
Approche double pointeur
  • Tout pointeur sur un objet persistant est remplacé par un double pointeur.
  • En écriture
    • si Ad(BD) inconnue ALORS
    • {Ad(BD) = AllouerBD(Objet) ;Ecrire (Ad(BD), Objet)};
  • En lecture
    • si Ad(MC) inconnue ALORS
    • { Ad(MC) = AllouerMC(Ad(BD)); Lire(Ad(MC), Ad(BD)) } ;
  • Inconvénients
    • objets persistants versus objets transients (doubles pointeurs),
    • lecture des objets pointés,
    • faiblesse des performances.

Ad(MC)

Ad(BD)

approche m moire virtuelle 1
Approche mémoire virtuelle (1)
  • Écriture des objets sans modification
    • Pointeurs disques = adresse mémoire virtuelle.
    • Sauvegarde des pages dans des partitions BD images de la mémoire.
  • 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.
  • Cette technique a été brevetée par ODI.
approche m moire virtuelle 2
Approche mémoire virtuelle (2)

2**32

0

Page Manquante

Mémoire Virtuelle Client

1 Accès

2 Violation

OBJECT-STORE

Tout pointeur est une adresse

mémoire virtuelle client/serveur

4 Retour Page

3 Accès Serveur

Image Disque

5 langages de requ tes

Véhicule

- numéro

- couleur

- fabriquant

Groupe

- nom

- ville

- président

Employé

- nss

- nom

- date naissance

- age()

5. Langages de requêtes

Numéro des véhicules de couleur rouge

dont le fabriquant a son siège à Paris et

un président de moins de 50 ans ?

langage navigationnel
Langage navigationnel
  • Parcours d'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;

} ;

} ;

};

les sql objets
Les SQL Objets
  • 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.
  • Problème de compatibilité avec la norme SQL
    • Travaux de l'ODMG (ODL et OQL 93/96).
    • Normalisation de SQL3 en 1999.
principaux sql objets
Principaux SQL objets

FSQL HP IRIS OPEN-DB

OSQL MCC ORION

XSQL UNISQL UNISQL

SQL3 ISO Norme ?

ISQL C.A. INGRES

O-SQL ORACLE ORACLE

VSQL VERSANT VERSANT

O2SQL O2 O2

ESQL INRIA-BULL DBS3

OQL ODMG Norme objet ?

6 optimisation de requ tes
6. Optimisation de requêtes
  • Objectif de l'optimisation
    • Elaboration d'un plan optimisé.
    • Partage et réutilisation de plans.
  • Importance de l'optimisation
    • Peut diviser les temps d'exécution de requêtes par des facteurs 1000 ou plus !
    • Indispensable pour des objets complexes et volumineux.
  • Principes de base
    • Extension des techniques relationnelles.
    • Utilisation d'une forme interne généralement basée sur une algèbre d'objets.
architecture type d un sgbd
Architecture type d'un SGBD

SYNTAXE

SEMANTIQUE

SCHEMA

VUES

INTEGRITE

AUTORISATIONS

ORDONNANCEMENT

ELABORATION

D'UN PLAN

Le plan est exécuté

directement (interprété)

ou stocké et exécuté plus tard (compilé)

EXECUTION

METHODES D'ACCES

ANALYSEUR

Forme interne de la question

CONTROLEUR

OPTIMISEUR

METABASE

Plan d'exécution

GENERATEUR

Code à exécuter

EXECUTEUR

Résultat de la question

probl mes de l optimisation objet
Problèmes de l'optimisation objet
  • Support des méthodes
    • Evaluation du coût.
    • Evaluation des résultats.
  • Jointures par références
    • Possibilité de jointures n-aires.
    • Traversée des chemins en profondeur, en largeur, …
  • Structures complexes
    • Parcours de collections.
    • Application de prédicats.
  • Utilisation d'index et placement
    • Prise en compte du placement des objets.
    • Utilisation d'index de chemin.
7 conclusion
7. Conclusion
  • Techniques bien maîtrisées
    • Architecture client-serveur.
    • Persistance des objets.
    • Langages de requêtes.
    • Optimisation de requêtes.
    • Concurrence et fiabilité.
  • Standard futur
    • Absence de standards reconnu.
    • Effort de normalisation (ODMG, SQL3).
    • Intégration plus ou moins complètes du modèle relationnel.