Upload
aimenmadrid
View
15
Download
0
Embed Size (px)
Citation preview
République Algérienne Démocratique Et PopulaireMinistère de l’enseignement supérieur et de la recherche scientifique
Faculté des sciences et de la technologieDépartement De L’informatique
Introduction
1
«Bases De Données Orientes Objets»
Promotion : 2011-2012
Base de données:
Collection d'informations ou de données qui existent sur une longue période de temps et qui décrivent les activités d'une ou plusieurs organisations
Ensemble de données modélisant les objets d'une partie du monde réel et servant de support à une application informatique
Un gros ensemble d’informations structurées mémorisées sur un support permanent
SGBD
Systèmes de Gestion de Bases de Données (DataBase Management Systems - DBMS)
Ensemble de logiciels systèmes permettant aux utilisateurs de faire des applications (insérer, modifier, et rechercher) efficacement des données spécifiques dans une grande masse d'informations (pouvant atteindre plusieurs milliards d'octets) partagée par de multiples utilisateurs
Exemples de SGBD:
BD d’université (données sur les étudiants, les enseignements, les salles, etc.) BD de compagnie aérienne (données sur les clients, les vols, les réservations,
etc.) BD bancaire (données sur les clients, les comptes, les transactions, etc.)
Problèmes en absence de SGB
1. Programmes d’application écrits directement au-dessus du système de gestion de fichier
2. Redondance (coût de stockage et d’accès) 3. Incohérence (ex: changement d’adresse) 4. Difficulté d’accès (requêtes non prévues dans les programmes)5. Isolation des données (nouveau programme qui cherche des données dans des
fichiers variés de différents formats) 6. Manque de sécurité 7. Gestion de l’intégrité (obéir à des contraintes)
Principales fonctionnalités d’un SGBD:
Contrôle de la redondance d’information
Partage des données
Gestion des autorisations d’accès
Vérifications des contraintes d’intégrité
2
Contraintes structurelles (un employé a un seul chef), contraintes dynamiques (un salaire ne peut diminuer), etc.
Sécurité et reprise sur panne
Principaux composants d’un SGBD
Système de gestion de fichiers (physique)
Stockage et accès des fichiers…
Gestionnaire de requêtes
Traduction des requêtes des mis à jour et d’interrogation
Gestionnaire de transactions
Regroupement des actions (modifications, mises à jour, etc.) qui doivent être exécutées ensemble séquentiellement (ex : virement d’une somme de « A » à « B », lire la somme de A, effacer de A, ajouter à B, etc. )
Abstraction de données : 3 niveaux (abstraction des données, indépendance entre utilisateurs et gestion):
Niveau interne ou physique :
plus bas niveau
indique comment (avec quelles structures de données) sont stockées physiquement les données
Niveau logique ou conceptuel :
décrit par un schéma conceptuel
indique quelles sont les données stockées et quelles sont leurs relations indépendamment de l’implantation physique
Niveau externe ou vue :
propre à chaque utilisateur
décrit par un ou plusieurs schémas externes
Différents langages d’un SGBD :
LDD : Langage de Définition de Données,
3
construire un schéma pour décrire la structure, incluant les contraintes
LMD : Langage de Manipulation de Données
appliquer les opérations aux données (retrouver et mettre à jour les données)
Atouts d'un SGBD(R)
Persistance : les données survivent aux programmes
Taille : accès efficace aux grandes quantités de données : gestion des tampons, index, optimisation des requêtes
Performances sur le transactionnel (OLTP)
Standard industrie :
SQL2 : indépendance des applications
architecture client-serveur
optimisation de requêtes
Sécurité
Transactions
Architecture client-serveur
Premier SGBD objet : 1983 (Gemstone)
Approche : étendre le langage de programmation objet aux fonctions de SGBD
Persistance
orthogonale au type
langages : C++, smalltalk, Java/OQL
Produits
O2, Object Store, Ontos, Objectivity, Jasmine, Versant
Niches technologiques
réseau, CAO, SIG, Gestion de données Techniques
pas de transactionnel lourd
4
Règles d'or d'un SGBD Objet
Pour être qualifié d'objet, un SGBD doit respecter treize règles [Soutou99]
1. Données persistantes
Les données persistantes et non persistantes (temporaires) sont manipulées de la même façon par un programme
2. Grande quantité de données
Techniques de regroupement physique, d'indexation, d'optimisation de requêtes et de gestion de cache
3. Fiabilité des données
Transactions et privilèges
4. Partages de données
multi-utilisateur à mécanismes de verrous
5. Facilité d'interrogation
Langage de requêtes.
Le résultat d'une requête n'est pas forcément un objet d'une classe existante.
Le langage offre en outre la puissance d'un langage de programmation
6. Encapsulation
Les données sont accessibles par des méthodes à différents degrés (visibilité)
7. Objets composites
Les structures de données à définir et à manipuler peuvent être complexes
8. Identificateur d'objet
Accès aux objets directement ou par des liens inter-objets via les OID
Objets partagés
9. Classes, types et méthodes
Types abstraits de données
5
Concepts de classes et de méthodes de l'approche objet
10. Héritage
11. Surcharge et liaison dynamique
Les méthodes peuvent être surchargées. La liaison dynamique est la capacité d'établir la correspondance entre le nom d'une méthode et son implantation lors de l'exécution et non lors de la compilation
12. Langage de programmation complet
Le système dispose d'un langage de programmation qui ne nécessite pas d'opérateur externe pour écrire une application
13. Extensibilité
Le système autorise l'ajout dynamique de nouveaux types abstraits de donnée, de nouvelles classes, de nouvelles méthodes, etc.
SGBD objet-relationnel
Un SGBD objet-relationnel doit selon Stonebraker prendre en compte les quatre mécanismes suivants
L'extension des types de données
Les objets complexes (en terme de structures de données)
L'héritage
Les systèmes de règles
6
Bases de données objet-relationnel
Oracle8 et l'objet-relationnel
Oracle 8 est le premier serveur objet-relationnel d'Oracle
Un des objectifs d'Oracle est de disposer de produits permettant le développement du commerce électronique basé sur un mécanisme transactionnel
L'architecture d'Oracle est un montage trois tiers
Le client (navigateur Internet)
Le serveur applicatif (exécutable)
Le serveur de base de données
Oracle ne met pas encore en oeuvre le mécanisme d'héritage dans la version 8.0.x
La programmation OO avec Oracle
Dans PL/SQL la programmation orientée-objet est basée sur des types objets (Object types).
Ces types objets fournissent
1) des modèles abstraits pour des objets du monde réel
2) l'encapsulation ("boîte noire").
7
Bases de Données
Deux approches en BDSmalltalk, C++, ...
OODBMSODMG 93
ODMG II(97)
Codd (69)SQL
SQL2SQL3
SQL4Convergence ?CA-Jasmine,
ObjectStore, O2Versant, POET, ...
Oracle, Informix, Sybase, IBM, DB2, CA-OpenIngres
Pour utiliser un type objet dans un programme, il suffit de connaître ce qu'il fait et non comment il le fait.
La structure d'un type-objet
Un type-objet est formé de 2 parties:
1) une spécification
L'interface déclarant la structure de données (l'ensemble des attributs) ainsi que les opérations (méthodes) associées à la manipulation de ces données.
2) un corps (body)
Il définit complètement les méthodes, et ainsi implémente la spécification.
SGBD OO = LPOO + BD
Représentation du réel• Persistance• Gestion des disques• Partage des données• Fiabilité des données• Sécurité• Langages de requêtes• Indépendance logique / physique• Développement• Structure complexe• Identité• Encapsulation• Classe = usine• Héritage
8
SpécificationDéclaration des attributs
Spécification des méthodes
Corps
Corps des méthodes
Interface publique
Implémentation privée
• Redéfinition• Bibliothèques de classes
Intérêt d’un SGBD OO / LP OO
C’est un SGBD (mieux qu’un LP):
1. Persistance des données2. Indépendance modèles logique et physique3. Intégrité des données4. Confidentialité, fiabilité, concurrence, gestion de transactions, …
Approche OO Ensemble de méthodologies et d’outils pour concevoir et réaliser des logiciels structurés et réutilisables, par composition d’éléments indépendants.Deux manières d’utiliser l’objet dans les SGBD On part des langages objet dans lesquels on intègre les notions des SGBD (persistance des données, aspect multi-utilisateurs, …). Ce sont les SGBD orientés objet : O2 (basé sur C++) On part des SGBD relationnels dans lesquels on insère des notions objet. Ce sont les SGBD relationnels objet : ORACLE 8 (SQL 3) On peut constater que
les SGBDOO sont plus “propres” du point de vue objet et les mieux adaptés pour traiter les objets mais ils sont complètement absents du monde professionnel • les SGBDRO sont basés sur des SGBD robustes et éprouvés répandus dans le monde professionnel mais qui ne sont pas prévus pour gérer l’objet Jusqu’à présent, les améliorations qui ont été développées pour les SGBD se sont fondus dans les SGBD existants. Dans le monde professionnel, les concepteurs et les utilisateurs de bases de données ne sont pas prêts à remettre en cause leurs savoirs et à redévelopper toutes leurs applications sur de nouveaux systèmes. On va privilégier les SGBDRO.
ODMG - C’est un groupe de normalisation des SGBD OO - Norme finale publiée en 2001 - A regroupé de nombreux vendeurs de SGBO OO :Poet ,Ardent, Objectivity,Versant et des constructeurs, des utilisateurs, des chercheurs
SGBD OO = LPOO + BD
Objectifs des SGBDOOI. Réduire le dysfonctionnement entre langage de programmation et langage de
base de données en offrant un unique langage de programmation de base de données
II. Supporter directement les objets arbitrairement complexes par un modèle objet
III. partager le code réutilisable au sein du SGBD
9
Définition des SGBDOO
The Object-Oriented Database, System Manifesto (1989)
-Défini par des chercheurs
-Ensemble de règles caractérisant un SGBDOO: obligatoires, facultatives, ouvertes
Définition des SGBDOO ODMG 93 Défini par des éditeurs Standard de portabilité des SGBDOO
Un SGBDOO est un SGBD Persistance Gestion du disque Partage des données (multi-utilisateurs) Fiabilité des données Sécurité des données Interrogation ad hoc
Un SGBDOO est Orienté Objet Objets complexes Identité d'objet Encapsulation, Classes Héritage Surcharge, Lien retardé Valeurs, Types Polymorphisme
Architecture Fonctionnelle
Architecture Opérationnelle
10
Langage de
Définition
Langages de Programmat
ion
Langage de
Requêtes
Autres interfaces
Outils de Développement
Gestion de Schéma Gestion d'Objets
Architecture Client/Serveur
Serveur d'objets
Architecture Client/serveur
Serveur d'objets Fort degré de concurrence
(verrouillage et journalisation au niveau de l'objet) Possibilité d'exécution de méthodes sur le serveur
Architecture Client/serveur
Serveur de pages
11
Architecture Client/serveur
Serveur de pages Utilisation de la puissance de calcul des clients Accroît le nombre de connections possibles Serveur isolé Verrouillage et journalisation par page
Architecture Client/serveur
Multiserveurs
Aspects Bases de Données
Modèle de persistance Faculté pour un objet ou une valeur d'exister au-delà du
programme qui l'a créé(e). Modèle de persistance par attachement
Tout objet ou valeur référencé(e) par un objet ou valeur persistant(e) est persistant(e).
Conséquences du modèle par attachement transparent pour le développeur Ramasse-miettes pour détruire les objets et valeurs qui ne sont
plus référencés par un objet ou une valeur persistant(e) nécessité de racines de persistance
Les racines de persistance sont nommées explicitement dans le schéma à l'aide de l'instruction name.
Les racines de persistance peuvent être des objets et/ou des valeurs, de classes et/ou de type quelconques.
Name Les Hommes: set(Personne); Name LePresident: Personne;
12