• Aucun résultat trouvé

Bases de données avancées

N/A
N/A
Protected

Academic year: 2022

Partager "Bases de données avancées"

Copied!
59
0
0

Texte intégral

(1)

Bases de données avancées

Khalid Nafil

[email protected]

Année universitaire : 2008/09

(2)

Historique de développement des bases de données (Sgbd)

Première génération : 1960, modèle réseau ou hiérarchique (Total, IDMS, IDS 2, IMS 2)

Deuxième génération : 1970, modèle relationnel (PostgreSql, Mysql, Oracle, Informix, Sybase, DB2, Ingres)

Troisième génération : 1980, modèle relationnel objet et le modèle objet

Quatrième génération : support d’Internet,

(3)

Pourquoi une troisième génération

Apparution de nouvelles applications : CAO, PAO, GL, SIG

Ce qui induit de nouveaux besoins

Coût des mémoires secondaires en baisse

Le modèle relationnel est incapable de répondre aux nouvelles exigences

(4)

Limites du modèle relationnel

Le modèle de données est trop simplifié

Difficulté de représenter les entités complexes du monde réel

Ensemble limité de types de base

Limitation de la première forme normale

Incompatibilité de SQL avec les LGP

D’où besoin de développer un nouveau

(5)

Besoins des nouvelles applications

Puissance de structuration

Définition de nouveaux types

Intégration d'un LPG dans un SGBD

Méthodes de stockage, d'accès (spatiaux)

Gestion des transactions (longue)

(6)

Le modèle orienté objet

Cherche à répondre à ces nouveaux besoins

Né de la convergence de deux domaines :

Les bases de données

Les langages de programmation OO

(7)

La programmation procédurale

Style de la programmation à la Pascal

Dichotomie données et traitements

Conception dirigée par les traitements

Données = variables typées

Opérations = procédures paramétrées

(8)

Problèmes liés à la

programmation procédurale

Comment partager (réutiliser) les structures de données et les opérations entre les

applications ?

La cohérence globale des données entre les applications est-elle assurée ?

Le sous-programme est-il un élément suffisant de modularité?

Peut-on facilement maintenir et/ou étendre de

(9)

La programmation par objets

Regrouper les données et les traitements

Dirigée par les données

(10)

SGBD OO

SGBD

Persistance

Méthodes de stockage

Concurrence et fiabilité

Langages de requêtes

Contraintes d’intégrité

LOO

Identité d’objet

Encapsulation

Classe/Type

Polymorphisme

Héritage

(11)

Notion d’objet

Un objet est une abstraction d’une entité du monde réel

Un objet est défini par :

Une structure = ensemble d’attributs valués

Un comportement = ensemble d’opérations (méthodes)

(12)

Exemple d’objet

Un objet E définissant l’entité employé peut être représenté ainsi :

E (nom=ali, prénom=hassan,

salaire=10000, afficher(), saisir(), augmenterSalaire())

(13)

Identité d’objet

Tout objet possède un identifiant unique et invariant (OID) qui est indépendant de sa valeur

Opérateur d'identité d'objets : ==

deux objets o1 et o2 sont identiques

s'ils ont le même OID

(14)

Opérateur d’égalité d’objets

Soient o1 et o2 deux objets

o1= o2 ssi tous les attributs de o1 et o2 ont la même valeur, que ce soient des attributs valeur ou des attributs

référence

(15)

OID : Modélisation

Situation 1 : Ali a un fils qui s’appelle Hassan, Zineb a un fils qui s’appelle Hassan (le même fils)

Situation 2 : Ali a un fils qui s’appelle Hassan, Zineb a un fils qui s’appelle Hassan (un fils différent)

(16)

Encapsulation des objets

Les modèles à objets permettent

d’encapsuler les structures des objets par des opérations (méthodes)

Le principe d’encapsulation cache les structures de données et le code des méthodes en ne laissant visible que les opérations publiques

(17)

Intérêt de la notion d’objet

Bonne abstraction des entités du monde réel

Structure + comportement

Sécurité des manipulations

mécanisme d’encapsulation

Partage des informations

Concept d’OID

Modélisation des données complexes

Graphe de composition des objets

(18)

Interface d’objet

Ensemble des signatures des

opérations qui sont applicables depuis l’extérieur sur un objet

Les opérations invisibles à l’extérieur de l’objet sont appelés opérations privées

(19)

Le concept de CLASSE

Définition « usuelle »

Ensemble des objets possédant même structure et même comportement

Exemple : classe Employé

Les trois aspects d'une classe :

Description de la structure et du comportement des objets

==> Intention de la classe c-à-d un Type

Modèle à partir duquel les objets sont créés ==> mécanisme d'Instanciation

Ensemble des objets créés ==> Extension de la classe

(20)

Mécanisme d’instanciation

Un objet est une instance de classe

Un objet est créé à l'aide d'un opérateur new automatiquement associé à la classe

Exemple :

e : Employé;

e := new Employé;

Lien d’instanciation entre e et Employé

(21)

Mécanisme d’instanciation

 Chaque objet de la classe Employé possède une copie de la structure décrite dans la classe

 Tous les objets de la classe Employé se partagent les opérations décrites dans la classe

(22)

Exemple de classe

classe Employé publique

Saisie;

Afficher;

AugmenterSalaire (Pourcen : Entier);

privée attributs

Nom : Chaine;

Adr : Chaine;

Age : Entier;

Sal : Reel;

méthodes

methode AugmenterSalaire (Pourcen : Entier)

(23)

Organisation des classes

 Liens de spécialisation/généralisation

Employé est une généralisation de Ingénieur et Commercial

Ingénieur et Commercial sont des spécialisations de Employé

un Ingénieur Commercial est à la fois Ingénieur et Commercial

(24)

Graphe des classes

(25)

Le mécanisme d’héritage

Terminologie

Employé est la super-classe de Ingénieur

Commercial est une sous-classe de Employé

Héritage simple par spécialisation

Une sous-classe hérite des propriétés de sa super-classe (attributs + opérations)

Une sous-classe peut avoir des propriétés supplémentaires qui lui sont propres

Autres formes d'héritage

Héritage multiple

Héritage par généralisation

(26)

Redéfinition, Surcharge et Polymorphisme

Redéfinition

Spécification d’une méthode existante dans une super-classe au niveau d’une sous-classe, avec une implémentation différente

Surcharge

Possibilité de définir plusieurs codes pour une même opération d’une classe

Polymorphisme

(27)

Intérêt des notions de classe et d’héritage

Modularité

une classe = un module

Réutilisation

Attributs et opérations d'une classe héritées dans ses sous classes

Eviter la redondance de code

Construction d'une nouvelle classe de manière incrémentale

Modélisation

Organisation des classes via les liens d’héritage

(28)

Les Collections d’objets

Container typé désigné par un nom, contenant des éléments multiples

organisés selon une structure

particulière, auxquels on accède par des opérations spécifiques au type du container

(29)

Principales collections

L’ensemble (Set) : définit des

collections non ordonnées sans doubles

Le sac (Bag) : définit des collections non ordonnées avec doubles

La liste (List) : définit des collections ordonnées avec doubles

Le tableau (Array) : définit des

collections ordonnées et indexées

(30)

Collection

(31)

Collections imbriquées

class Phrase {

List <Array <char>> Sequence; };

class Paragraphe {

Phrase Theme;

List <Phrase> Details;

Phrase Conclusion; };

class Texte {

List <Paragraphe*> Contenu; };

(32)

Communication par envoi de messages

Les objets communiquent entre eux par des envois de messages

Message :

le nom de l'objet récepteur

le nom d'une opération connue par l'objet

les arguments (éventuels) de l'opération

(33)

Schéma de bases de données à objets

C’est une description d’une base de données à objets particulière incluant les définitions de classes, d’attributs et d’opérations ainsi que les liens entre classes

(34)

Exemple de schéma de BOO

(35)

Illustration C++ du schéma

Class Etudiant {

Class caricature {

Cercle* tete, oeild, oeilg;

Figure* nez, bouche;

Void sourire();

Void pleurer();

Graphic Dessiner (int echelle); }

Class Cercle {

Point Centre;

(36)

Le Manifesto de 1989 (13 règles d’or)

OO (1-8), BD (9-13) : 1. objets complexes 2. identité d'objets

3. encapsulation des objets 4. types ou classes

5. héritage via la hiérarchie de classes ou de types 6. surcharge, redéfinition et liaison dynamique

7. langage de programmation 8. extensibilité

9. persistance

10. gestion de la MS

(37)

Le Manifesto (suite)

Aspects Optionnels

héritage multiple

contrôle de types et inférence de types

Répartition

transactions longues et/ou imbriquées

gestion des versions

Aspects ouverts

interfaces avec les LPG

structures de données

types génériques

"tout objet" ou pas

Aspects non traités

vues et données dérivées

Administration de la BD

(38)

Définition de la persistance

Un objet est persistant ssi :

Stocké dans la base, sa durée de vie est supérieure au programme qui le crée

Un objet est transient ssi :

Restant en mémoire, sa durée de vie ne dépasse pas celle du programme qui le crée

(39)

Gestion de la persistance

En environnement de programmation : constructeur et destructeur

En BDOO, nécessité d’assurer la

persistance des objets sur disque pour pouvoir les retrouver ultérieurement

(40)

Gestion de la persistance

Solution :

Donner un nom à chaque objet persistant

Fournir une fonction permettant de faire persister un objet préalablement construit en mémoire

Signature de la fonction peut être : Oid=Persist (<nom>,<ref>)

Ref est la référence en mémoire de l’objet

Oid est l’identifiant attribué à l’objet dans la base

(41)

Persistance par héritage

Cache au programmeur les mouvements d’objets entre la base et la mémoire

Profiter de l’héritage pour assurer la persistance automatiquement

Le système offre une classe racine des objets persistants, nommée Pobject

(42)

Persistance par héritage

(43)

Persistance par héritage

La classe Pobjet intègre des appels aux fonctions persist et unpersist

Tout objet d’une classe qui hérite de Pobjet est persistant

(44)

Persistance par référence

Tout objet peut être une racine de

persistance à condition d’être déclaré comme tel

Tout objet pointé par un objet persistant est persistant

(45)

Exemple de déclaration

employe * emp=new persistant employe(“toto”)

Persistant int x; //permet de rendre x persistant

(46)

Persistance par référence

(catalogue)

(47)

Algèbre pour objets complexes

Les algèbres pour objets complexes résultent d’extensions de l’algèbre relationnelle aux objets complexes

(48)

Expressions de chemins et de méthodes

Besoin d’appliquer des opérations sur les objets

Besoin de référencer les identifiants

Deux types d’expressions valuables

Expression de chemin

Expression de méthodes

(49)

Expression de chemin

C’est une séquence d’attributs de la forme A1.A2…An tel que :

Chaque attribut Ai de la classe Ci référence un objet de la classe Ci+1 dont le suivant est membre, à l’exception du dernier

Exemple : Represente.Tete.centre.x est une expression de chemins

(50)

Expression de méthodes

C’est une séquence d’appels de

méthodes de la forme M1.M2…Mn avec d’éventuels paramètres pour certaines méthodes Mi de la forme Mi(P1,P2,

…,Pj)

(51)

Groupage et Dégroupage des

Relations

(52)

Groupage

Opération qui consiste à transformer une relation en créant pour chaque

valeur des attributs de groupement un ensemble de valeurs des attributs

groupés

(53)

Groupage : exemple

A 1

A 7

B 3

B 8

C 2

Pièce Type Numéro

(54)

Groupage : exemple

A {1,7}

B {3,8}

C 2

Pièce Type {Numéro}

(55)

Dégroupage

Opération qui consiste à transformer une relation à attributs groupés en relation plate, en créant pour cela un tuple pour chaque valeur du groupe en dupliquant les valeurs des autres

attributs

(56)

Algèbre d’Encore

Proche de l’algèbre relationnelle

Supporte les types abstraits et les identifiants d’objets

Les opérations accèdent des collections typées d’objets en invoquant l’interface publique du type

(57)

Opérations de l’algèbre d’Encore

Sélection d’objets

Image d’une collection

Projetion d’une collection

Groupage et dégroupage d’une collection

Aplatissage d’une collection

Jointure de collections

(58)

Algèbre Lora

Opérations de recherche

Opérations ensemblistes

Opérations de mise à jour

Opérations de groupe

Arbres d’opérations algébriques

(59)

Conclusion

Références

Documents relatifs

Déclaration dans la section DECLARE d’un bloc PL/SQL

Télécharger l’extrait de données d’enchères réelles à l’adresse ci-dessous, créer dans BaseX une nouvelle base de données avec ce document et visualiser sa

Un système de gestion de base de données orientée objet (SGBDOO), parfois abrégé en SGBDO pour Système de Gestion de Base de Données Objet, est un système de gestion de base

Le processus de généralisation consiste à exprimer les connaissances extraites à partir d’une base de données en termes de concepts généralisés de haut niveau et non en termes

 Une valeur peut être un entier seul (séquence à un élément) ou encore une collection de large documents XML (où chaque document est désigné par son nœud racine). 

r´ eplication de donn´ ees (sur une ou plusieurs bases, etc.) agr´ egation des tables, pour les syst` emes d´ ecisionnels... Partie N ◦ 1 : Conception des syst` emes d’informations

GATHER_DATABASE_STATS Rassemblement de statistiques sur tous les objets d’une base de donn´ ees..

4 — Vérifiez dans le dictionnaire Oracle que les relations de la base de données ont bien été créées dans leur ensemble (attributs) et que les commentaires que vous