14
République Algérienne Démocratique Et Populaire Ministère de l’enseignement supérieur et de la recherche scientifique Faculté des sciences et de la technologie Département De L’informatique 1 «Bases De Données Orientes Objets»

BDD Expose.docx

Embed Size (px)

Citation preview

Page 1: BDD Expose.docx

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

Page 2: BDD Expose.docx

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

Page 3: BDD Expose.docx

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

Page 4: BDD Expose.docx

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

Page 5: BDD Expose.docx

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

Page 6: BDD Expose.docx

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

Page 7: BDD Expose.docx

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

Page 8: BDD Expose.docx

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

Page 9: BDD Expose.docx

• 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

Page 10: BDD Expose.docx

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

Page 11: BDD Expose.docx

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

Page 12: BDD Expose.docx

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