1 / 35

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. Objet Identifiant Attributs Opérations Classe

tana
Download Presentation

TECHNIQUES DES SGBDO

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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 ".

  10. 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.

  11. 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.

  12. 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.

  13. 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.

  14. 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.

  15. 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

  16. 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.

  17. Serveur d'objets Application Verrous Cache objets Recherche objets Cache objets Fichiers et index Cache pages

  18. Serveur de pages Application Objets actifs Recherche Verrous et journaux Fichiers et index pages Cache pages Cache pages

  19. 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

  20. 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 ?

  21. 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.

  22. 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 …

  23. 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

  24. 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

  25. 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)

  26. 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.

  27. 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

  28. 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 ?

  29. 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; } ; } ; };

  30. 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.

  31. 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 ?

  32. 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.

  33. 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

  34. 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.

  35. 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.

More Related