180 likes | 335 Views
TECHNIQUES DES SGBDO. 1. Qu'est-ce qu'un SGBDO ? 2. Architectures des SGBDO 3. Persistance des objets. Modèle relationnel. année 80 (2ème génération) objectifs : optimisation de l’accès aux données indépendance données/schémas langage déclaratif d’interrogation
E N D
TECHNIQUES DES SGBDO • 1. Qu'est-ce qu'un SGBDO ? • 2. Architectures des SGBDO • 3. Persistance des objets
Modèle relationnel • année 80 (2ème génération) • objectifs : • optimisation de l’accès aux données • indépendance données/schémas • langage déclaratif d’interrogation • fondement théorique : algèbre relationnelle • client/serveur Chapitre 1. Introduction.Historique
Limites du modèle relationnel • Très bon support théorique • Mais : • Modèle plat 1FN • Données type simple • Attributs atomiques • Difficile de naviguer dans la structure (jointure) • nouvelles applis (CAO, bureautique...) • structure de données complexe • hiérarchie, graphe de dépendance • nouveaux types : • graphique, images, texte, sons • nouvelles fonctionnalités : • objets multimédias, versions Chapitre 1. Introduction.Historique
Limites pour le programmeur • pb mélange procédural et déclaratif • pb de conversions de types • Extensions procédurale de SQL propriétaires • Modèle de transaction simple • Pas de transaction longue • Pas de transaction emboîtée • performances (curseurs) • réutilisation, extension des programmes Chapitre 1. Introduction.Historique
Evolution du matériel • avant : • serveur central avec BD • terminaux alphanumériques • maintenant : • stations de travail graphiques en réseau • puissance de calcul répartie • interfaces H/M conviviales et performantes Chapitre 1. Introduction.Historique
Besoins administrateur • conception interactive • modif des données • modif des schémas • trace des choix antérieurs • plusieurs concepteurs Chapitre 1. Introduction.Historique
Conclusion - Besoins actuels en BD • persistance, concurrence d’accès, tolérance panne • IHM, données complexes • liens complexes non-dirigés • indépendance données/programmes • support théorique solide • réutilisation Chapitre 1. Introduction.Historique
Rappel modèle objet • Objet • Identifiant • Classe • Attributs • Opérations • Héritage • Objets complexes (collections) • Polymorphisme
1. Qu'est-ce-qu'un SGBDO ? • The Object-Oriented Database System Manifesto • Atkinson, Bancilhon, Dewitt, Ditrich, Maier, Zdonick ( DOOD'89) • Fonctionnalités BD obligatoires : • la persistance • la concurrence • la fiabilité (panne) • la facilité d'interrogation (langage de requête) • Fonctionnalités BD optionnelles : • la distribution • les modèles de transaction évolués (longues et emboîtées) • les versions
Fonctionnalités objets • Fonctionnalités objets obligatoires : • les objets atomiques et complexes • l'identité d'objets • Encapsulation • Types ou classes • l'héritage simple • le polymorphisme (surcharge) • Langage de programmation objet • Fonctionnalités objets optionnelles : • l'héritage multiple • les messages d'exception
Modèle objet « pur » • Persistance : • Orthogonale au type • Langages : C++, Smalltal, Java /OQL • Produits : • Issus des LPO • O2,ObjectStore, Ontos, Objectivity, Jasmine • Niches technologiques : • Réseau, CAO, SIG, Gestion de données techniques • Pas de transactionnel lourd
Modèle objet-relationnel • Modèle relationnel • Codd, 1969 • Extensions du modèle relationnel : • Au niveau relation : • Imbrication de relations • UNISQL • Au niveau du domaine • Oracle 8, SQL 3, Microsoft
Propriétés RICE (Miranda) • Réutilisation : • Finalité du paradigme objet • Héritage, généralisation, composition, polymorphisme • Identité : • Identifier un objet de manière unique • Complexité : • Définition d’objets complexes et/ou fortement structurés • Encapsulation : • Boîte noire avec des méthodes de manipulation
ARCHITECTURES SGBDO • Architecture fonctionnelle type : • Editeur 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
3. PERSISTANCE DES OBJETS • 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 • 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
La Persistance par héritage • 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 • 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) Pobject New Delete Lookup --> PPerson Nom Prenom …
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 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