Vous êtes sur la page 1sur 160

Les Bases de Données réparties 1

Les Bases de Données réparties 1 M. Bouneffa 1 Ce La première parie de ce cours
Les Bases de Données réparties 1 M. Bouneffa 1 Ce La première parie de ce cours
Les Bases de Données réparties 1 M. Bouneffa 1 Ce La première parie de ce cours

M. Bouneffa

Les Bases de Données réparties 1 M. Bouneffa 1 Ce La première parie de ce cours

1 Ce La première parie de ce cours est une synthèse du chapitre 5 du livre Le client-Serveur de G. et O. Gardarin (éditions Eyrolles)

Introduction et Historique ■ Inventées à la fin des années 70 pour l ’intégration des
Introduction et Historique ■ Inventées à la fin des années 70 pour l ’intégration des
Introduction et Historique ■ Inventées à la fin des années 70 pour l ’intégration des
Introduction et Historique ■ Inventées à la fin des années 70 pour l ’intégration des
Introduction et Historique ■ Inventées à la fin des années 70 pour l ’intégration des

Introduction et Historique

Inventées à la fin des années 70 pour l ’intégration des BD et des réseaux.

Projet SDD1 (1976) : gérer les données embarquées dans les bateaux de la US Navy.

Sirius (France lancé en 1977)

Ingres/Star (Berkeley 1977)

R* (IBM San Jose )

Introduction et Historique (2) ■ Les produits représentant les technologies de ces premiers projets sont
Introduction et Historique (2) ■ Les produits représentant les technologies de ces premiers projets sont
Introduction et Historique (2) ■ Les produits représentant les technologies de ces premiers projets sont
Introduction et Historique (2) ■ Les produits représentant les technologies de ces premiers projets sont
Introduction et Historique (2) ■ Les produits représentant les technologies de ces premiers projets sont

Introduction et Historique (2)

Les produits représentant les technologies de ces premiers projets sont :

– les versions distribuées de Oracle, Sybase, Ingres, etc.

Au milieu des années 80, les projets de recherche se sont intéressés aux bases de données hétérogènes (Multibase, etc.) et à la fédération de bases de données existantes.

Qu’est-ce qu’une BDR? ■ Définition : Une BDR est un ensemble de BD gérées par
Qu’est-ce qu’une BDR? ■ Définition : Une BDR est un ensemble de BD gérées par
Qu’est-ce qu’une BDR? ■ Définition : Une BDR est un ensemble de BD gérées par
Qu’est-ce qu’une BDR? ■ Définition : Une BDR est un ensemble de BD gérées par
Qu’est-ce qu’une BDR? ■ Définition : Une BDR est un ensemble de BD gérées par

Qu’est-ce qu’une BDR?

Définition :

Une BDR est un ensemble de BD gérées par des sites différents et apparaissant à l ’utilisateur comme une base unique.

Exemple Paris Buveurs Commandes Bordeaux Dijon VINS VINS PRODUCTEURS PRODUCTEURS PRODUIT PRODUIT
Exemple Paris Buveurs Commandes Bordeaux Dijon VINS VINS PRODUCTEURS PRODUCTEURS PRODUIT PRODUIT
Exemple Paris Buveurs Commandes Bordeaux Dijon VINS VINS PRODUCTEURS PRODUCTEURS PRODUIT PRODUIT
Exemple Paris Buveurs Commandes Bordeaux Dijon VINS VINS PRODUCTEURS PRODUCTEURS PRODUIT PRODUIT
Exemple Paris Buveurs Commandes Bordeaux Dijon VINS VINS PRODUCTEURS PRODUCTEURS PRODUIT PRODUIT

Exemple

Paris Buveurs Commandes Bordeaux Dijon VINS VINS PRODUCTEURS PRODUCTEURS PRODUIT PRODUIT
Paris
Buveurs
Commandes
Bordeaux
Dijon
VINS
VINS
PRODUCTEURS
PRODUCTEURS
PRODUIT
PRODUIT
Schéma global ■ C’est le schéma qui permet de représenter l’ensemble des données de la
Schéma global ■ C’est le schéma qui permet de représenter l’ensemble des données de la
Schéma global ■ C’est le schéma qui permet de représenter l’ensemble des données de la
Schéma global ■ C’est le schéma qui permet de représenter l’ensemble des données de la
Schéma global ■ C’est le schéma qui permet de représenter l’ensemble des données de la

Schéma global

C’est le schéma qui permet de représenter l’ensemble des données de la BDR.

Ce schéma n’est pas forcément matérialisé sur le disque. Chaque BD peut implanter une partie du schéma global (appelé aussi schéma conceptuel de la BDR).

Exemple ■ BUVEURS( NB , NOM, PRENOM, VILLE) ■ COMMANDES( NB, NV, DATE , Qté)
Exemple ■ BUVEURS( NB , NOM, PRENOM, VILLE) ■ COMMANDES( NB, NV, DATE , Qté)
Exemple ■ BUVEURS( NB , NOM, PRENOM, VILLE) ■ COMMANDES( NB, NV, DATE , Qté)
Exemple ■ BUVEURS( NB , NOM, PRENOM, VILLE) ■ COMMANDES( NB, NV, DATE , Qté)
Exemple ■ BUVEURS( NB , NOM, PRENOM, VILLE) ■ COMMANDES( NB, NV, DATE , Qté)

Exemple

BUVEURS(NB, NOM, PRENOM, VILLE)

COMMANDES(NB, NV, DATE, Qté)

VINS(NV, CRU, ANNEE, DEGRE)

PRODUCTEURS(NP, NOM, REGION)

PRODUIT(NV, NP, Qté)

Définitions ■ SGBD réparti ou SGBDR (Distributed DBMS ou DDBMS) Système qui gère des collections
Définitions ■ SGBD réparti ou SGBDR (Distributed DBMS ou DDBMS) Système qui gère des collections
Définitions ■ SGBD réparti ou SGBDR (Distributed DBMS ou DDBMS) Système qui gère des collections
Définitions ■ SGBD réparti ou SGBDR (Distributed DBMS ou DDBMS) Système qui gère des collections
Définitions ■ SGBD réparti ou SGBDR (Distributed DBMS ou DDBMS) Système qui gère des collections

Définitions

SGBD réparti ou SGBDR (Distributed DBMS ou DDBMS) Système qui gère des collections de BD logiquement reliées, distribuées sur un réseau, en fournissant un mécanisme d’accès qui rend la répartition transparente aux utilisateurs.

Définitions (2) ■ Client de SGBDR (DDBMS Client) Application qui accède aux informations distribuées par
Définitions (2) ■ Client de SGBDR (DDBMS Client) Application qui accède aux informations distribuées par
Définitions (2) ■ Client de SGBDR (DDBMS Client) Application qui accède aux informations distribuées par
Définitions (2) ■ Client de SGBDR (DDBMS Client) Application qui accède aux informations distribuées par
Définitions (2) ■ Client de SGBDR (DDBMS Client) Application qui accède aux informations distribuées par

Définitions (2)

Client de SGBDR (DDBMS Client) Application qui accède aux informations distribuées par les interfaces du S.G.B.D.R.

Serveur de SGBDR (DDBMS server) SGBD gérant une base de données locale intégrée dans une BDR.

Définitions (3) ■ Nœud ou site du SGBR (DDBMS node) Calculateur dans le réseau participant
Définitions (3) ■ Nœud ou site du SGBR (DDBMS node) Calculateur dans le réseau participant
Définitions (3) ■ Nœud ou site du SGBR (DDBMS node) Calculateur dans le réseau participant
Définitions (3) ■ Nœud ou site du SGBR (DDBMS node) Calculateur dans le réseau participant
Définitions (3) ■ Nœud ou site du SGBR (DDBMS node) Calculateur dans le réseau participant

Définitions (3)

Nœud ou site du SGBR (DDBMS node) Calculateur dans le réseau participant à la gestion d ’une BDR.

Un nœud ou site peut être à la fois serveur ou client.

En résumé ■ Un SGBDR est un ensemble de logiciels systèmes gérant des données réparties
En résumé ■ Un SGBDR est un ensemble de logiciels systèmes gérant des données réparties
En résumé ■ Un SGBDR est un ensemble de logiciels systèmes gérant des données réparties
En résumé ■ Un SGBDR est un ensemble de logiciels systèmes gérant des données réparties
En résumé ■ Un SGBDR est un ensemble de logiciels systèmes gérant des données réparties

En résumé

Un SGBDR est un ensemble de logiciels systèmes gérant des données réparties sur un ensemble de sites, intégrant des modules clients et des modules serveurs.

Clients et serveurs collaborent par des médiateurs spécifiques.

Exemple Site Paris Site Bordeaux Site Dijon
Exemple Site Paris Site Bordeaux Site Dijon
Exemple Site Paris Site Bordeaux Site Dijon
Exemple Site Paris Site Bordeaux Site Dijon
Exemple Site Paris Site Bordeaux Site Dijon

Exemple

Exemple Site Paris Site Bordeaux Site Dijon
Site Paris Site Bordeaux Site
Site
Paris
Site
Bordeaux
Site

Dijon

Variantes de SGBDR ■ La fédération de BD locales disséminées sur différents sites au sein
Variantes de SGBDR ■ La fédération de BD locales disséminées sur différents sites au sein
Variantes de SGBDR ■ La fédération de BD locales disséminées sur différents sites au sein
Variantes de SGBDR ■ La fédération de BD locales disséminées sur différents sites au sein
Variantes de SGBDR ■ La fédération de BD locales disséminées sur différents sites au sein

Variantes de SGBDR

La fédération de BD locales disséminées sur différents sites au sein d’une BDR est une forme ultime de coopération qui nécessite l’intégration des bases.

Il est possible de faire coopérer des BD sans les intégrer.

Des BD capables d ’échanger des données sont dites interopérables.

Variantes de SGBDR (2) ■ Si un langage commun permet de les interroger sans cacher
Variantes de SGBDR (2) ■ Si un langage commun permet de les interroger sans cacher
Variantes de SGBDR (2) ■ Si un langage commun permet de les interroger sans cacher
Variantes de SGBDR (2) ■ Si un langage commun permet de les interroger sans cacher
Variantes de SGBDR (2) ■ Si un langage commun permet de les interroger sans cacher

Variantes de SGBDR (2)

Si un langage commun permet de les interroger sans cacher l’existence de plusieurs bases on parle de multibases.

Les BD sont alors faiblement couplées, par l ’intermédiaire du client.

BD interopérables (Interoperable DB) ■ BD capables d’échanger des données en comprenant mutuellement ce qu’elles
BD interopérables (Interoperable DB) ■ BD capables d’échanger des données en comprenant mutuellement ce qu’elles
BD interopérables (Interoperable DB) ■ BD capables d’échanger des données en comprenant mutuellement ce qu’elles
BD interopérables (Interoperable DB) ■ BD capables d’échanger des données en comprenant mutuellement ce qu’elles
BD interopérables (Interoperable DB) ■ BD capables d’échanger des données en comprenant mutuellement ce qu’elles

BD interopérables (Interoperable DB)

BD capables d’échanger des données en comprenant mutuellement ce qu’elles représentent.

Les BD participantes peuvent être de même nature (BDR homogènes) ou de natures différentes (BDR hétérogènes).

Même nature => même modèle de données.

Multibase (Multibase) ■ Plusieurs bases de données hétérogènes capables d’interopérer avec une application via
Multibase (Multibase) ■ Plusieurs bases de données hétérogènes capables d’interopérer avec une application via
Multibase (Multibase) ■ Plusieurs bases de données hétérogènes capables d’interopérer avec une application via
Multibase (Multibase) ■ Plusieurs bases de données hétérogènes capables d’interopérer avec une application via
Multibase (Multibase) ■ Plusieurs bases de données hétérogènes capables d’interopérer avec une application via

Multibase (Multibase)

Plusieurs bases de données hétérogènes capables d’interopérer avec une application via un langage commun (sans modèle commun).

BD fédérée (Federated Database) ■ Plusieurs bases de données hétérogènes accédées comme une seule via
BD fédérée (Federated Database) ■ Plusieurs bases de données hétérogènes accédées comme une seule via
BD fédérée (Federated Database) ■ Plusieurs bases de données hétérogènes accédées comme une seule via
BD fédérée (Federated Database) ■ Plusieurs bases de données hétérogènes accédées comme une seule via
BD fédérée (Federated Database) ■ Plusieurs bases de données hétérogènes accédées comme une seule via

BD fédérée (Federated Database)

Plusieurs bases de données hétérogènes accédées comme une seule via une vue commune (un modèle commun).

Exemple de BD à fédérer Client Données techniques Site 5 Opérations sur des produits Système
Exemple de BD à fédérer Client Données techniques Site 5 Opérations sur des produits Système
Exemple de BD à fédérer Client Données techniques Site 5 Opérations sur des produits Système
Exemple de BD à fédérer Client Données techniques Site 5 Opérations sur des produits Système
Exemple de BD à fédérer Client Données techniques Site 5 Opérations sur des produits Système

Exemple de BD à fédérer

Client

Données

techniques

Site 5

Exemple de BD à fédérer Client Données techniques Site 5 Opérations sur des produits Système légataire

Opérations sur des produits

Système

légataire

Site 5 Opérations sur des produits Système légataire Site 4 Site 1 Réseau de communication Site
Site 4 Site 1 Réseau de communication Site 3 Site 2
Site 4
Site 1
Réseau de communication
Site 3
Site 2
Site 4 Site 1 Réseau de communication Site 3 Site 2 Données de gestion Données géographiques

Données de gestion

Données

géographiques

Données

textuelles

Site 2 Données de gestion Données géographiques Données textuelles Descriptions des produits Localisation des clients

Descriptions des produits

Site 2 Données de gestion Données géographiques Données textuelles Descriptions des produits Localisation des clients

Localisation des clients

Avantages de l ’intégration de BD ■ prendre en compte la répartition géographique des données
Avantages de l ’intégration de BD ■ prendre en compte la répartition géographique des données
Avantages de l ’intégration de BD ■ prendre en compte la répartition géographique des données
Avantages de l ’intégration de BD ■ prendre en compte la répartition géographique des données
Avantages de l ’intégration de BD ■ prendre en compte la répartition géographique des données

Avantages de l ’intégration de BD

prendre en compte la répartition géographique des données

prendre en compte la distribution fonctionnelle des données

meilleure disponibilité des données en présence de pannes

une plus grande flexibilité afin d ’assurer le partage des données hétérogènes et réparties

Avantages de l ’intégration de BD (2) ■ Des performances espérées meilleures du fait de
Avantages de l ’intégration de BD (2) ■ Des performances espérées meilleures du fait de
Avantages de l ’intégration de BD (2) ■ Des performances espérées meilleures du fait de
Avantages de l ’intégration de BD (2) ■ Des performances espérées meilleures du fait de
Avantages de l ’intégration de BD (2) ■ Des performances espérées meilleures du fait de

Avantages de l ’intégration de BD (2)

Des performances espérées meilleures du fait de l ’éclatement des données sur plusieurs bases gérées par des serveurs différents mieux adaptés

une intégration du réseau qui est caché par le SGBDR

Inconvénients de l ’intégration de BD ■ Complexité du SGBDR ■ manque d ’expérience dans
Inconvénients de l ’intégration de BD ■ Complexité du SGBDR ■ manque d ’expérience dans
Inconvénients de l ’intégration de BD ■ Complexité du SGBDR ■ manque d ’expérience dans
Inconvénients de l ’intégration de BD ■ Complexité du SGBDR ■ manque d ’expérience dans
Inconvénients de l ’intégration de BD ■ Complexité du SGBDR ■ manque d ’expérience dans

Inconvénients de l ’intégration de BD

Complexité du SGBDR

manque d ’expérience dans l ’intégration des BD hétérogènes

distribution du contrôle des données entre plusieurs site (problèmes de cohérence non triviaux)

difficulté du changement (intégration d ’un nouveau type de SGBD, etc.)

■ Ces inconvénients conduisent souvent à l ’adoption de solution Multibase à la place de
■ Ces inconvénients conduisent souvent à l ’adoption de solution Multibase à la place de
■ Ces inconvénients conduisent souvent à l ’adoption de solution Multibase à la place de
■ Ces inconvénients conduisent souvent à l ’adoption de solution Multibase à la place de
■ Ces inconvénients conduisent souvent à l ’adoption de solution Multibase à la place de

Ces inconvénients conduisent souvent à l ’adoption de solution Multibase à la place de BD fédérée.

Objectifs des SGBDR ■ Multiclients / Multiserveurs ■ Transparence à la localisation des données ■
Objectifs des SGBDR ■ Multiclients / Multiserveurs ■ Transparence à la localisation des données ■
Objectifs des SGBDR ■ Multiclients / Multiserveurs ■ Transparence à la localisation des données ■
Objectifs des SGBDR ■ Multiclients / Multiserveurs ■ Transparence à la localisation des données ■
Objectifs des SGBDR ■ Multiclients / Multiserveurs ■ Transparence à la localisation des données ■

Objectifs des SGBDR

Multiclients / Multiserveurs

Transparence à la localisation des données

meilleure disponibilité des données

autonomie locale des sites

support de l ’hétérogénéité

Multiclients multiserveurs ■ Le SGBR doit permettre à plusieurs clients de manipuler la bdr en
Multiclients multiserveurs ■ Le SGBR doit permettre à plusieurs clients de manipuler la bdr en
Multiclients multiserveurs ■ Le SGBR doit permettre à plusieurs clients de manipuler la bdr en
Multiclients multiserveurs ■ Le SGBR doit permettre à plusieurs clients de manipuler la bdr en
Multiclients multiserveurs ■ Le SGBR doit permettre à plusieurs clients de manipuler la bdr en

Multiclients multiserveurs

Le SGBR doit permettre à plusieurs clients de manipuler la bdr en assurant la sérialisabilité des transactions

Requêtes et transactions distribuées.

Requête distribuée (Distributed request) ■ Requête émise par un client dont l ’exécution nécessite l
Requête distribuée (Distributed request) ■ Requête émise par un client dont l ’exécution nécessite l
Requête distribuée (Distributed request) ■ Requête émise par un client dont l ’exécution nécessite l
Requête distribuée (Distributed request) ■ Requête émise par un client dont l ’exécution nécessite l
Requête distribuée (Distributed request) ■ Requête émise par un client dont l ’exécution nécessite l

Requête distribuée (Distributed request)

Requête émise par un client dont l ’exécution nécessite l ’exécution de N sous-requêtes sur N serveurs avec

N>1.

Une transaction qui met en œuvre plusieurs serveurs est appelée transaction distribuée.

Client 1 Client 2 U1 RD U2 U3 Requête transaction distribuée distribuée Serveur 1 Serveur
Client 1 Client 2 U1 RD U2 U3 Requête transaction distribuée distribuée Serveur 1 Serveur
Client 1 Client 2 U1 RD U2 U3 Requête transaction distribuée distribuée Serveur 1 Serveur
Client 1 Client 2 U1 RD U2 U3 Requête transaction distribuée distribuée Serveur 1 Serveur
Client 1 Client 2 U1 RD U2 U3 Requête transaction distribuée distribuée Serveur 1 Serveur
Client 1 Client 2 U1 RD U2 U3 Requête transaction distribuée distribuée Serveur 1 Serveur
Client 1
Client 2
U1
RD
U2
U3
Requête
transaction
distribuée
distribuée
Serveur 1
Serveur 2
Serveur 3
Transparence à la localisation des données Propriétés d’un SGBDR permettant d ’écrire des requêtes avec
Transparence à la localisation des données Propriétés d’un SGBDR permettant d ’écrire des requêtes avec
Transparence à la localisation des données Propriétés d’un SGBDR permettant d ’écrire des requêtes avec
Transparence à la localisation des données Propriétés d’un SGBDR permettant d ’écrire des requêtes avec
Transparence à la localisation des données Propriétés d’un SGBDR permettant d ’écrire des requêtes avec

Transparence à la localisation des données

Propriétés d’un SGBDR permettant d ’écrire des requêtes avec des noms d ’objets référencés ne contenant pas la localisation des données.

Simplification de l ’écriture des requêtes

Déplacer les objets sans modifier les requêtes.

Exemple Select From Where Nom, Prénom BUVEURS B, VINS V, COMMANDES C V.CRU=‘ VOLNAY ’
Exemple Select From Where Nom, Prénom BUVEURS B, VINS V, COMMANDES C V.CRU=‘ VOLNAY ’
Exemple Select From Where Nom, Prénom BUVEURS B, VINS V, COMMANDES C V.CRU=‘ VOLNAY ’
Exemple Select From Where Nom, Prénom BUVEURS B, VINS V, COMMANDES C V.CRU=‘ VOLNAY ’
Exemple Select From Where Nom, Prénom BUVEURS B, VINS V, COMMANDES C V.CRU=‘ VOLNAY ’

Exemple

Select

From

Where

Nom, Prénom BUVEURS B, VINS V, COMMANDES C V.CRU=‘ VOLNAY ’

and V.DEGRE> 12 and C.Qté > 100

and C.NV=V.NV and B.NB =C.NB and C.DATE >= ‘ 1/10/92 ’ and B.VILLE=‘ PARIS ’

Inconvénients de la transparence à la localisation ■ Le SGBR est obligé de rechercher les
Inconvénients de la transparence à la localisation ■ Le SGBR est obligé de rechercher les
Inconvénients de la transparence à la localisation ■ Le SGBR est obligé de rechercher les
Inconvénients de la transparence à la localisation ■ Le SGBR est obligé de rechercher les
Inconvénients de la transparence à la localisation ■ Le SGBR est obligé de rechercher les

Inconvénients de la transparence à la localisation

Le SGBR est obligé de rechercher les bases capables de générer la réponse

Cette fonction est loin d’être évidente

Compromis : référencer les tables avec des expressions du type :

<table>@<base>

Meilleure disponibilité ■ On ne dépend pas d’un seul site central ■ Utlisation de copie
Meilleure disponibilité ■ On ne dépend pas d’un seul site central ■ Utlisation de copie
Meilleure disponibilité ■ On ne dépend pas d’un seul site central ■ Utlisation de copie
Meilleure disponibilité ■ On ne dépend pas d’un seul site central ■ Utlisation de copie
Meilleure disponibilité ■ On ne dépend pas d’un seul site central ■ Utlisation de copie

Meilleure disponibilité

On ne dépend pas d’un seul site central

Utlisation de copie (réplication), en cas de panne on peut se replier sur les copies

Assurer un mécanisme de gestion de transactions distribuées pour assurer la cohérence des réplicats

Autonomie locale ■ Chaque base est indépendante et peut avoir ses propres données et schémas
Autonomie locale ■ Chaque base est indépendante et peut avoir ses propres données et schémas
Autonomie locale ■ Chaque base est indépendante et peut avoir ses propres données et schémas
Autonomie locale ■ Chaque base est indépendante et peut avoir ses propres données et schémas
Autonomie locale ■ Chaque base est indépendante et peut avoir ses propres données et schémas

Autonomie locale

Chaque base est indépendante et peut avoir ses propres données et schémas locaux

Chaque base doit connaître les données partagées par les autres bases

Hétérogénéité ■ Le SGBDR hétérogène doit être capable d’unifier modèles et langages afin de gérer
Hétérogénéité ■ Le SGBDR hétérogène doit être capable d’unifier modèles et langages afin de gérer
Hétérogénéité ■ Le SGBDR hétérogène doit être capable d’unifier modèles et langages afin de gérer
Hétérogénéité ■ Le SGBDR hétérogène doit être capable d’unifier modèles et langages afin de gérer
Hétérogénéité ■ Le SGBDR hétérogène doit être capable d’unifier modèles et langages afin de gérer

Hétérogénéité

Le SGBDR hétérogène doit être capable d’unifier modèles et langages afin de gérer des bases fédérées.

Utilisation d ’un modèle pivot

Intégration de schémas :

Procédé consistant à rapprocher des schémas sémantiquement différents afin de constituer un schéma unique équivalent.

Modèle unifié Relationnel Fichier Objet
Modèle unifié Relationnel Fichier Objet
Modèle unifié Relationnel Fichier Objet
Modèle unifié Relationnel Fichier Objet
Modèle unifié Relationnel Fichier Objet
Modèle unifié
Modèle unifié
Modèle unifié Relationnel Fichier Objet
Modèle unifié Relationnel Fichier Objet
Relationnel
Relationnel
Fichier
Fichier
Objet
Objet
Organisation des schémas d’un SGBDR Vue intégrée Vue intégrée Schéma global Schéma exporté / importé
Organisation des schémas d’un SGBDR Vue intégrée Vue intégrée Schéma global Schéma exporté / importé
Organisation des schémas d’un SGBDR Vue intégrée Vue intégrée Schéma global Schéma exporté / importé
Organisation des schémas d’un SGBDR Vue intégrée Vue intégrée Schéma global Schéma exporté / importé
Organisation des schémas d’un SGBDR Vue intégrée Vue intégrée Schéma global Schéma exporté / importé

Organisation des schémas d’un SGBDR

Vue intégrée Vue intégrée Schéma global Schéma exporté / importé Schéma exporté / importé Schéma
Vue intégrée
Vue intégrée
Schéma global
Schéma exporté
/ importé
Schéma exporté
/ importé
Schéma local
Schéma local
Schéma local, exporté, importé ■ Local : Schéma décrivant les données d ’une BD par
Schéma local, exporté, importé ■ Local : Schéma décrivant les données d ’une BD par
Schéma local, exporté, importé ■ Local : Schéma décrivant les données d ’une BD par
Schéma local, exporté, importé ■ Local : Schéma décrivant les données d ’une BD par
Schéma local, exporté, importé ■ Local : Schéma décrivant les données d ’une BD par

Schéma local, exporté, importé

Local : Schéma décrivant les données d ’une BD par le SGBD local

Exporté : Schéma décrivant les données exportées par un site vers ses clients

Importé : Schéma exporté reçu par un site client

Schéma global et vue intégrée ■ Schéma global : il est constitué sur un site
Schéma global et vue intégrée ■ Schéma global : il est constitué sur un site
Schéma global et vue intégrée ■ Schéma global : il est constitué sur un site
Schéma global et vue intégrée ■ Schéma global : il est constitué sur un site
Schéma global et vue intégrée ■ Schéma global : il est constitué sur un site

Schéma global et vue intégrée

Schéma global : il est constitué sur un site client par intégration globale des schémas importés décrivant la BDR vue depuis ce site.

Vue intégrée : Schéma décrivant dans le modèle du SGBDR les données de la BDR accédée par une application

Architecture de référence Vue intégré Schéma importé Niveau interopérable Gestion objets intégrés Niveau
Architecture de référence Vue intégré Schéma importé Niveau interopérable Gestion objets intégrés Niveau
Architecture de référence Vue intégré Schéma importé Niveau interopérable Gestion objets intégrés Niveau
Architecture de référence Vue intégré Schéma importé Niveau interopérable Gestion objets intégrés Niveau
Architecture de référence Vue intégré Schéma importé Niveau interopérable Gestion objets intégrés Niveau

Architecture de référence

Vue intégré
Vue
intégré
Schéma importé
Schéma
importé
Niveau interopérable Gestion objets intégrés Niveau Accès objets distants communication
Niveau
interopérable
Gestion
objets intégrés
Niveau
Accès
objets distants
communication
Accès objets locaux Adaptateur Niveau local local X
Accès
objets locaux
Adaptateur
Niveau
local
local
X
Schéma exporté
Schéma
exporté
Schéma local
Schéma
local

Modèle

d ’accès

Modèle

pivot

Modèle

pivot

SGBD

X

Architecture de référence ■ 3 niveaux de fonctionnalités : – le niveau local : présent
Architecture de référence ■ 3 niveaux de fonctionnalités : – le niveau local : présent
Architecture de référence ■ 3 niveaux de fonctionnalités : – le niveau local : présent
Architecture de référence ■ 3 niveaux de fonctionnalités : – le niveau local : présent
Architecture de référence ■ 3 niveaux de fonctionnalités : – le niveau local : présent

Architecture de référence

3 niveaux de fonctionnalités :

le niveau local : présent dans chaque serveur, il permet d ’exporter les données selon le modèle pivot du SGBDR.

Le niveau communication : il permet de transmettre les sous-requêtes en provenance d ’un site client au serveur dans le langage pivot et transmet les résultats en conformité avec le schéma exporté.

Le niveau interopérable : il permet de formuler des requêtes utilisant les vues intégrées de la base; il assure la décomposition des requêtes en sous-requêtes et le passage des vues intégrées aux différents schémas importés

Les SGBDR ■ Le schéma fonctionnel d’un SGBDR peut être implanté par plusieurs variantes opérationnelles
Les SGBDR ■ Le schéma fonctionnel d’un SGBDR peut être implanté par plusieurs variantes opérationnelles
Les SGBDR ■ Le schéma fonctionnel d’un SGBDR peut être implanté par plusieurs variantes opérationnelles
Les SGBDR ■ Le schéma fonctionnel d’un SGBDR peut être implanté par plusieurs variantes opérationnelles
Les SGBDR ■ Le schéma fonctionnel d’un SGBDR peut être implanté par plusieurs variantes opérationnelles

Les SGBDR

Le schéma fonctionnel d’un SGBDR peut être implanté par plusieurs variantes opérationnelles selon :

– le choix du modèle et du langage pivots

– le degré d’hétérogénéité permis

3 générations de SGBDR

– les SGBDR basés sur le modèle relationnel avec des SGBD locaux relationnels

– les SGBDR basés sur le modèle relationnel avec des SGBD locaux hétérogènes

– les SGBDR basés sur les modèles à objets

SGBDR de 1ère génération (1975-1982) ■ Systèmes relationnels répartis ■ Le même SGBD existe chez
SGBDR de 1ère génération (1975-1982) ■ Systèmes relationnels répartis ■ Le même SGBD existe chez
SGBDR de 1ère génération (1975-1982) ■ Systèmes relationnels répartis ■ Le même SGBD existe chez
SGBDR de 1ère génération (1975-1982) ■ Systèmes relationnels répartis ■ Le même SGBD existe chez
SGBDR de 1ère génération (1975-1982) ■ Systèmes relationnels répartis ■ Le même SGBD existe chez

SGBDR de 1ère génération

(1975-1982)

Systèmes relationnels répartis

Le même SGBD existe chez les clients et les serveurs

Les schémas importés/exportés sont gérés par la métabase du SGBD

Exemples :

– SDD1 (1980)

– Sirius Delta (1982)

– R* (1982)

– Ingres/star (1977)

SGBDR de 2ème génération (1980-1987) ■ Systèmes fédérés construits autour du relationnel ■ Ne sont
SGBDR de 2ème génération (1980-1987) ■ Systèmes fédérés construits autour du relationnel ■ Ne sont
SGBDR de 2ème génération (1980-1987) ■ Systèmes fédérés construits autour du relationnel ■ Ne sont
SGBDR de 2ème génération (1980-1987) ■ Systèmes fédérés construits autour du relationnel ■ Ne sont
SGBDR de 2ème génération (1980-1987) ■ Systèmes fédérés construits autour du relationnel ■ Ne sont

SGBDR de 2ème génération

(1980-1987)

Systèmes fédérés construits autour du relationnel

Ne sont pas centrés autour d ’un SGBD particulier

Intégration de BD hétérogènes autour de SQL

– Prise en compte de la diversité syntaxique

Même concept exprimé par des constructeurs différents (relationnel dans une BD et objet dans une autre, etc.)

– Prise en compte de la diversité sémantique Même concept conçu différemment

• problème de différence de structure, de terminologie ou d ’échelle.

L ’intégration de schémas suppose =>

comparaison, unification et fusion de schémas

■ Exemples : – Mermaid (1987) – Multibase (1982) – MSQL (1987) – Sabrina-star (1990)
■ Exemples : – Mermaid (1987) – Multibase (1982) – MSQL (1987) – Sabrina-star (1990)
■ Exemples : – Mermaid (1987) – Multibase (1982) – MSQL (1987) – Sabrina-star (1990)
■ Exemples : – Mermaid (1987) – Multibase (1982) – MSQL (1987) – Sabrina-star (1990)
■ Exemples : – Mermaid (1987) – Multibase (1982) – MSQL (1987) – Sabrina-star (1990)

Exemples :

– Mermaid (1987)

– Multibase (1982)

– MSQL (1987)

– Sabrina-star (1990)

SGBDR de 3 ème génération ■ Basés sur le modèle Objet ■ Meilleure prise en
SGBDR de 3 ème génération ■ Basés sur le modèle Objet ■ Meilleure prise en
SGBDR de 3 ème génération ■ Basés sur le modèle Objet ■ Meilleure prise en
SGBDR de 3 ème génération ■ Basés sur le modèle Objet ■ Meilleure prise en
SGBDR de 3 ème génération ■ Basés sur le modèle Objet ■ Meilleure prise en

SGBDR de 3 ème génération

Basés sur le modèle Objet

Meilleure prise en compte de l ’hétérogénéité

Les plus connus sont IRO-DB, Omega, Pegasus

Problèmes d ’identifiants globaux pour les objets

Problèmes d ’optimisation de requêtes distribués, etc.

Conception d’une BD répartie ■ Conception descendante – Construction du schéma global puis le répartir
Conception d’une BD répartie ■ Conception descendante – Construction du schéma global puis le répartir
Conception d’une BD répartie ■ Conception descendante – Construction du schéma global puis le répartir
Conception d’une BD répartie ■ Conception descendante – Construction du schéma global puis le répartir
Conception d’une BD répartie ■ Conception descendante – Construction du schéma global puis le répartir

Conception d’une BD répartie

Conception descendante

Construction du schéma global puis le répartir sur les différents sites

BDR BD1 BD3 BD2
BDR
BD1
BD3
BD2

Conception ascendante

intégrer des BD déjà existantes

BDR BD1 BD3 BD2
BDR
BD1
BD3
BD2
Technique de fragmentation ■ Définition d’un fragment : Sous-table obtenue par sélection de lignes et
Technique de fragmentation ■ Définition d’un fragment : Sous-table obtenue par sélection de lignes et
Technique de fragmentation ■ Définition d’un fragment : Sous-table obtenue par sélection de lignes et
Technique de fragmentation ■ Définition d’un fragment : Sous-table obtenue par sélection de lignes et
Technique de fragmentation ■ Définition d’un fragment : Sous-table obtenue par sélection de lignes et

Technique de fragmentation

Définition d’un fragment :

Sous-table obtenue par sélection de lignes et de colonnes à partir d ’une table globale, localisée sur un site unique.

La fragmentation est utilisée en conception descendante pour fragmenter une table globale en répartissant les fragments sur les différents sites d ’une BDR.

En conception ascendante les fragments sont déjà existants et il s’agit de reconstruire le schéma de la table globale.

Technique de fragmentation (2) ■ Une table globale peut être fragmentée de différentes manières :
Technique de fragmentation (2) ■ Une table globale peut être fragmentée de différentes manières :
Technique de fragmentation (2) ■ Une table globale peut être fragmentée de différentes manières :
Technique de fragmentation (2) ■ Une table globale peut être fragmentée de différentes manières :
Technique de fragmentation (2) ■ Une table globale peut être fragmentée de différentes manières :

Technique de fragmentation (2)

Une table globale peut être fragmentée de différentes manières :

– Fragmentation horizontale :

Découpage d ’une table par utilisation d ’un prédicat permettant de sélectionner les lignes appartenant à chaque fragment.

– Fragmentation verticale :

Découpage d ’une table par projections permettant de sélectionner les colonnes composant chaque fragment.

Fragmentation horizontale ■ Adaptée à la régionalisation des tables. Chaque région A définit un prédicat

Fragmentation horizontale

Adaptée à la régionalisation des tables. Chaque région A définit un prédicat du type REGION=A qui définit le fragment associé.

du type REGION=A qui définit le fragment associé. Clients clients Site Calais clients Paris Calais Lyon
du type REGION=A qui définit le fragment associé. Clients clients Site Calais clients Paris Calais Lyon
Clients clients Site Calais
Clients
clients
Site Calais
clients
clients

Paris

Calais

qui définit le fragment associé. Clients clients Site Calais clients Paris Calais Lyon clients Site Lyon

Lyon

clients
clients

Site Lyon

Site ParisREGION=A qui définit le fragment associé. Clients clients Site Calais clients Paris Calais Lyon clients Site

qui définit le fragment associé. Clients clients Site Calais clients Paris Calais Lyon clients Site Lyon
Fragmentation verticale ■ Adaptée à un découpage fonctionnel. Chaque fragment peut être associée à une

Fragmentation verticale

Adaptée à un découpage fonctionnel. Chaque

verticale ■ Adaptée à un découpage fonctionnel. Chaque fragment peut être associée à une fonction Fi
verticale ■ Adaptée à un découpage fonctionnel. Chaque fragment peut être associée à une fonction Fi
verticale ■ Adaptée à un découpage fonctionnel. Chaque fragment peut être associée à une fonction Fi

fragment peut être associée à une fonction Fi gérant

les attributs Ai1

Ain.

La table globale doit pouvoir être retrouvée par jointure des différents fragments.

Siège

numéro type coût descriptif Conditionnement
numéro
type
coût
descriptif
Conditionnement

Usine

Siège+usine

par jointure des différents fragments. Siège numéro type coût descriptif Conditionnement Usine Siège+usine
par jointure des différents fragments. Siège numéro type coût descriptif Conditionnement Usine Siège+usine
Extension de la fragmentation horizontale ■ Soit R une table ■ P1 ■ Fi(R) =
Extension de la fragmentation horizontale ■ Soit R une table ■ P1 ■ Fi(R) =
Extension de la fragmentation horizontale ■ Soit R une table ■ P1 ■ Fi(R) =
Extension de la fragmentation horizontale ■ Soit R une table ■ P1 ■ Fi(R) =
Extension de la fragmentation horizontale ■ Soit R une table ■ P1 ■ Fi(R) =

Extension de la fragmentation horizontale

Soit R une table

P1

Fi(R) = Rest Pi (R)

Les prédicats P1

Pi un ensemble de prédicats

Pi sont disjoints :

i π j Pi

Pj = Faux

Fi(R)

Fj(R) =

Les prédicats P1 prédicats complet

i Pi = Vrai

Pi doivent former un ensemble de

Fi(R) = R

Extension de la fragmentation horizontale (2) ■ Cette définition correspond à une fragmentation dite primaire.
Extension de la fragmentation horizontale (2) ■ Cette définition correspond à une fragmentation dite primaire.
Extension de la fragmentation horizontale (2) ■ Cette définition correspond à une fragmentation dite primaire.
Extension de la fragmentation horizontale (2) ■ Cette définition correspond à une fragmentation dite primaire.
Extension de la fragmentation horizontale (2) ■ Cette définition correspond à une fragmentation dite primaire.

Extension de la fragmentation horizontale (2)

Cette définition correspond à une fragmentation dite primaire.

Il est possible de dériver d ’une fragmentation primaire une autre fragmentation par semi-jointure avec les autres relations

Une semi-jointure de S par R est une jointure de R et S suivie d ’une projection sur les tuples de S.

Une fragmentation horizontale dérivée d ’une fragmentation primaire d ’une relation R est définie par :

Fi(S)

= Proj S (S

X Fi(R) ).

Exemple Dept deptno nom loc 1 Ventes Calais 2 Achats Calais 3 Fabrication Dunkerque
Exemple Dept deptno nom loc 1 Ventes Calais 2 Achats Calais 3 Fabrication Dunkerque
Exemple Dept deptno nom loc 1 Ventes Calais 2 Achats Calais 3 Fabrication Dunkerque
Exemple Dept deptno nom loc 1 Ventes Calais 2 Achats Calais 3 Fabrication Dunkerque
Exemple Dept deptno nom loc 1 Ventes Calais 2 Achats Calais 3 Fabrication Dunkerque

Exemple

Dept

deptno

nom

loc

1

Ventes

Calais

2

Achats

Calais

3

Fabrication

Dunkerque

4

Conditionne

Dunkerque

ment

P1 : loc=‘ Calais ’ P2 : loc = ‘ Dunkerque ’

F1(dept)

F2(dept)

empno nom numdep 10 Pierre 1 20 Paul 1 30 Jacques 3 2 40 Pedro
empno
nom
numdep
10
Pierre
1
20
Paul
1
30
Jacques
3
2
40
Pedro
1
50
Paolo
4 2
60
Diego
1
■ Quelques questions complémentaires de conception de BDR
■ Quelques questions complémentaires de conception de BDR
■ Quelques questions complémentaires de conception de BDR
■ Quelques questions complémentaires de conception de BDR
■ Quelques questions complémentaires de conception de BDR

Quelques questions complémentaires de conception de BDR

Comment fragmenter ? ■ Grain / degré de fragmentation – Trop peu de fragments -
Comment fragmenter ? ■ Grain / degré de fragmentation – Trop peu de fragments -
Comment fragmenter ? ■ Grain / degré de fragmentation – Trop peu de fragments -
Comment fragmenter ? ■ Grain / degré de fragmentation – Trop peu de fragments -
Comment fragmenter ? ■ Grain / degré de fragmentation – Trop peu de fragments -

Comment fragmenter ?

Grain / degré de fragmentation

Trop peu de fragments - faible concurrence

Trop de fragments - surcoût dans la reconstruction des relations

Possibilités de fragmentation d’une relation

Horizontale - basée sur des sélections

Verticale - basée sur des projections

Placement des fragments ■ Chaque fragment sur un seul site – copie unique, BD partitionnée
Placement des fragments ■ Chaque fragment sur un seul site – copie unique, BD partitionnée
Placement des fragments ■ Chaque fragment sur un seul site – copie unique, BD partitionnée
Placement des fragments ■ Chaque fragment sur un seul site – copie unique, BD partitionnée
Placement des fragments ■ Chaque fragment sur un seul site – copie unique, BD partitionnée

Placement des fragments

Chaque fragment sur un seul site

copie unique, BD partitionnée

Duplication de fragments

– (+) performances des requêtes et disponibilité

– (-) coût des mises à jour et contrôle de concurrence plus complexe

Fréquemment : duplication partielle

Informations utiles pour la fragmentation ■ BD : taille des relations, CI, etc. ■ Applications
Informations utiles pour la fragmentation ■ BD : taille des relations, CI, etc. ■ Applications
Informations utiles pour la fragmentation ■ BD : taille des relations, CI, etc. ■ Applications
Informations utiles pour la fragmentation ■ BD : taille des relations, CI, etc. ■ Applications
Informations utiles pour la fragmentation ■ BD : taille des relations, CI, etc. ■ Applications

Informations utiles pour la fragmentation

BD : taille des relations, CI, etc.

Applications : FAQ (Requêtes fréquentes)

Sites : capacités de stockage / traitement.

Réseaux et système

Les deux dernières servent essentiellement dans l’allocation

Propriétés de la fragmentation ■ Reconstruction – Possible avec les opérateurs de l’algèbre relationnelle ■
Propriétés de la fragmentation ■ Reconstruction – Possible avec les opérateurs de l’algèbre relationnelle ■
Propriétés de la fragmentation ■ Reconstruction – Possible avec les opérateurs de l’algèbre relationnelle ■
Propriétés de la fragmentation ■ Reconstruction – Possible avec les opérateurs de l’algèbre relationnelle ■
Propriétés de la fragmentation ■ Reconstruction – Possible avec les opérateurs de l’algèbre relationnelle ■

Propriétés de la fragmentation

Reconstruction

Possible avec les opérateurs de l’algèbre relationnelle

Critères de fragmentation horizontale simples ou complexes

Complétude

Horizontale : chaque n-uplet de R est dans un fragment

Verticale : chaque attribut est dans un fragment

Pas de perte d’information

Similaire à la normalisation

Propriétés de la fragmentation (2) ■ Fragments disjoints – Une « entité » est dans
Propriétés de la fragmentation (2) ■ Fragments disjoints – Une « entité » est dans
Propriétés de la fragmentation (2) ■ Fragments disjoints – Une « entité » est dans
Propriétés de la fragmentation (2) ■ Fragments disjoints – Une « entité » est dans
Propriétés de la fragmentation (2) ■ Fragments disjoints – Une « entité » est dans

Propriétés de la fragmentation (2)

Fragments disjoints Une « entité » est dans un seul fragment

Exemple FAQ : Rest sal < 30 ( Emp) et Rest sal >20 ( Emp)

Fragments candidats : Rest sal < 30 ( Emp) et Rest sal >20

( Emp)

Non disjoint

Alternative / disjoint : Rest sal < =20 ( Emp) et Rest

20<sal<30 ( Emp) et Rest sal >=30 ( Emp)

Disjoints versus non disjoints ■ Disjoint – Bonne propriété, facilite les mises à jour ■
Disjoints versus non disjoints ■ Disjoint – Bonne propriété, facilite les mises à jour ■
Disjoints versus non disjoints ■ Disjoint – Bonne propriété, facilite les mises à jour ■
Disjoints versus non disjoints ■ Disjoint – Bonne propriété, facilite les mises à jour ■
Disjoints versus non disjoints ■ Disjoint – Bonne propriété, facilite les mises à jour ■

Disjoints versus non disjoints

Disjoint – Bonne propriété, facilite les mises à jour

Non Disjoint – Forme de duplication, accélère certaines requêtes

Comment obtenir des fragments disjoints et assurer la reconstruction ? ■ Génération automatique ■ Souvent
Comment obtenir des fragments disjoints et assurer la reconstruction ? ■ Génération automatique ■ Souvent
Comment obtenir des fragments disjoints et assurer la reconstruction ? ■ Génération automatique ■ Souvent
Comment obtenir des fragments disjoints et assurer la reconstruction ? ■ Génération automatique ■ Souvent
Comment obtenir des fragments disjoints et assurer la reconstruction ? ■ Génération automatique ■ Souvent

Comment obtenir des fragments disjoints et assurer la reconstruction ?

Génération automatique

Souvent « manuelle » par l’administrateur.

Différentes méthodologies selon le type de fragmentation.

Analyse fragmentation horizontale ■ Commencer avec les conditions de sélection fréquentes (FAQ) ■ Extraire des
Analyse fragmentation horizontale ■ Commencer avec les conditions de sélection fréquentes (FAQ) ■ Extraire des
Analyse fragmentation horizontale ■ Commencer avec les conditions de sélection fréquentes (FAQ) ■ Extraire des
Analyse fragmentation horizontale ■ Commencer avec les conditions de sélection fréquentes (FAQ) ■ Extraire des
Analyse fragmentation horizontale ■ Commencer avec les conditions de sélection fréquentes (FAQ) ■ Extraire des

Analyse fragmentation horizontale

Commencer avec les conditions de sélection fréquentes (FAQ)

Extraire des requêtes les conditions de sélections :

A < 10, A > 5, Ville = Paris, Ville = Lyon

On obtient un ensemble : C={c1, c2, conditions élémentaires (ce).

cn} des

Analyse fragmentation horizontale (2) Construire l’ensemble des conjonctions de ce (cc) suivant : ■ Simplifier
Analyse fragmentation horizontale (2) Construire l’ensemble des conjonctions de ce (cc) suivant : ■ Simplifier
Analyse fragmentation horizontale (2) Construire l’ensemble des conjonctions de ce (cc) suivant : ■ Simplifier
Analyse fragmentation horizontale (2) Construire l’ensemble des conjonctions de ce (cc) suivant : ■ Simplifier
Analyse fragmentation horizontale (2) Construire l’ensemble des conjonctions de ce (cc) suivant : ■ Simplifier

Analyse fragmentation horizontale (2)

Construire l’ensemble des conjonctions de ce (cc) suivant :

Construire l’ensemble des conjonctions de ce (cc) suivant : ■ Simplifier chaque cc ■ Supprimer les

Simplifier chaque cc

Supprimer les cc tjr fausses

Exemple
Exemple
Exemple
Exemple
Exemple

Exemple

Exemple
Eliminer les inutiles ■ Conditions non satisfiables ■ Connaissance des contraintes d’intégrité, e.g; ville soit
Eliminer les inutiles ■ Conditions non satisfiables ■ Connaissance des contraintes d’intégrité, e.g; ville soit
Eliminer les inutiles ■ Conditions non satisfiables ■ Connaissance des contraintes d’intégrité, e.g; ville soit
Eliminer les inutiles ■ Conditions non satisfiables ■ Connaissance des contraintes d’intégrité, e.g; ville soit
Eliminer les inutiles ■ Conditions non satisfiables ■ Connaissance des contraintes d’intégrité, e.g; ville soit

Eliminer les inutiles

Conditions non satisfiables

Connaissance des contraintes d’intégrité, e.g; ville soit Paris, soit Lyon.

A < 10, A > 5, Ville = Paris, Ville != Lyon

A < 10, A > 5, Ville != Paris, Ville = Lyon

A < 10, A <= 5, Ville = Paris, Ville != Lyon

A < 10, A <= 5, Ville != Paris, Ville = Lyon

A >=10, A > 5, Ville = Paris, Ville != Lyon

A >= 10, A > 5, Ville != Paris, Ville = Lyon

Fragments finaux ■ Regrouper les conditions sur un même attribut 5 < A < 10,
Fragments finaux ■ Regrouper les conditions sur un même attribut 5 < A < 10,
Fragments finaux ■ Regrouper les conditions sur un même attribut 5 < A < 10,
Fragments finaux ■ Regrouper les conditions sur un même attribut 5 < A < 10,
Fragments finaux ■ Regrouper les conditions sur un même attribut 5 < A < 10,

Fragments finaux

Regrouper les conditions sur un même attribut

5

< A < 10, Ville = Paris

5

< A < 10, Ville = Lyon

A

<= 5, Ville = Paris

A

<= 5, Ville = Lyon

A

>=10, Ville = Paris

A

>= 10, Ville = Lyon

Propriétés de la fragmentation ? ■ Complétude : – tout n-uplet t vérifie une des
Propriétés de la fragmentation ? ■ Complétude : – tout n-uplet t vérifie une des
Propriétés de la fragmentation ? ■ Complétude : – tout n-uplet t vérifie une des
Propriétés de la fragmentation ? ■ Complétude : – tout n-uplet t vérifie une des
Propriétés de la fragmentation ? ■ Complétude : – tout n-uplet t vérifie une des

Propriétés de la fragmentation ?

Complétude :

tout n-uplet t vérifie une des ce et nous avons éliminé seulement les cc impossibles

Disjonction :

Supposons t valide deux cc (cc1 et cc2) alors :

■ Disjonction : Supposons t valide deux cc (cc1 et cc2) alors : et donc t

et donc t satisfit ci et non ci , contradiction !!

Bonnes propriétés Obtenir une partition de l’ensemble de n- uplets telle que : ■ pour
Bonnes propriétés Obtenir une partition de l’ensemble de n- uplets telle que : ■ pour
Bonnes propriétés Obtenir une partition de l’ensemble de n- uplets telle que : ■ pour
Bonnes propriétés Obtenir une partition de l’ensemble de n- uplets telle que : ■ pour
Bonnes propriétés Obtenir une partition de l’ensemble de n- uplets telle que : ■ pour

Bonnes propriétés

Obtenir une partition de l’ensemble de n- uplets telle que :

pour tout B de la partition, deux n-uplets de B aient la même probabilité d’être accédés par toute application/requête importante

Bonnes propriétés : exemple Emp( Enum, Nom, Ville,Sal, …) ■ FAQ : – select *
Bonnes propriétés : exemple Emp( Enum, Nom, Ville,Sal, …) ■ FAQ : – select *
Bonnes propriétés : exemple Emp( Enum, Nom, Ville,Sal, …) ■ FAQ : – select *
Bonnes propriétés : exemple Emp( Enum, Nom, Ville,Sal, …) ■ FAQ : – select *
Bonnes propriétés : exemple Emp( Enum, Nom, Ville,Sal, …) ■ FAQ : – select *

Bonnes propriétés : exemple

Emp( Enum, Nom, Ville,Sal, …)

FAQ :

select * from Emp where Ville = Paris select * from Emp where Ville = Lyon

Ensemble vide de conditions : partition P1 = {B1}

Mauvais : certains n-uplets de B1 ont 0 chances de répondre à la première requête, d’autres non

Bonnes propriétés : suite La partition ne doit pas être un raffinement d’une autre qui
Bonnes propriétés : suite La partition ne doit pas être un raffinement d’une autre qui
Bonnes propriétés : suite La partition ne doit pas être un raffinement d’une autre qui
Bonnes propriétés : suite La partition ne doit pas être un raffinement d’une autre qui
Bonnes propriétés : suite La partition ne doit pas être un raffinement d’une autre qui

Bonnes propriétés : suite

La partition ne doit pas être un raffinement d’une autre qui est déjà bonne

Partition P2 avec conditions :

– Ville = Paris et Ville = Lyon

Partition P3 avec conditions :

– (Ville = Paris et Sal < 10000) … et (Ville = Lyon et Sal >=10000)

P3 n’est pas minimale : il vaut mieux commencer par une minimale et distribuer plus si nécessaire.

Analyse fragmentation verticale Emp( Enum, Nom, Ville,Sal) Emp1( Enum, Nom, Ville) Emp2( Enum,Sal) ■ Complétude
Analyse fragmentation verticale Emp( Enum, Nom, Ville,Sal) Emp1( Enum, Nom, Ville) Emp2( Enum,Sal) ■ Complétude
Analyse fragmentation verticale Emp( Enum, Nom, Ville,Sal) Emp1( Enum, Nom, Ville) Emp2( Enum,Sal) ■ Complétude
Analyse fragmentation verticale Emp( Enum, Nom, Ville,Sal) Emp1( Enum, Nom, Ville) Emp2( Enum,Sal) ■ Complétude
Analyse fragmentation verticale Emp( Enum, Nom, Ville,Sal) Emp1( Enum, Nom, Ville) Emp2( Enum,Sal) ■ Complétude

Analyse fragmentation verticale

Emp( Enum, Nom, Ville,Sal) Emp1( Enum, Nom, Ville) Emp2( Enum,Sal)

Complétude et reconstruction – Jointure sans perte d’information

Condition suffisante : répéter la clé dans chaque fragment

Autre choix : utiliser une dépendance fonctionnelle pour la décomposition (cf. normalisation)

Disjonction : seulement répéter la clé

Comment fragmenter verticalement ? Utiliser le sens commun ■ Heuristiques : essayer d’automatiser – Clustering
Comment fragmenter verticalement ? Utiliser le sens commun ■ Heuristiques : essayer d’automatiser – Clustering
Comment fragmenter verticalement ? Utiliser le sens commun ■ Heuristiques : essayer d’automatiser – Clustering
Comment fragmenter verticalement ? Utiliser le sens commun ■ Heuristiques : essayer d’automatiser – Clustering
Comment fragmenter verticalement ? Utiliser le sens commun ■ Heuristiques : essayer d’automatiser – Clustering

Comment fragmenter verticalement ?

Utiliser le sens commun

Heuristiques :

essayer

d’automatiser

Clustering - rapprochement en partant d’un attribut par fragment – Splitting - décomposition en partant d’un fragment unique pour obtenir une partition selon l’affinité des attributs

Outil : Matrice d'affinité (1) Exemple Projet(Pnum, Pnom, Budget, Loc) A1 A2 A3 A4 q1
Outil : Matrice d'affinité (1) Exemple Projet(Pnum, Pnom, Budget, Loc) A1 A2 A3 A4 q1
Outil : Matrice d'affinité (1) Exemple Projet(Pnum, Pnom, Budget, Loc) A1 A2 A3 A4 q1
Outil : Matrice d'affinité (1) Exemple Projet(Pnum, Pnom, Budget, Loc) A1 A2 A3 A4 q1
Outil : Matrice d'affinité (1) Exemple Projet(Pnum, Pnom, Budget, Loc) A1 A2 A3 A4 q1

Outil : Matrice d'affinité (1)

Exemple Projet(Pnum, Pnom, Budget, Loc)

A1

A2

A3

A4

q1: budget d’un projet étant donné son numéro q2: nom et budget de tous les projets q3 : nom des projets d’une ville q4 : budget total des projets d’une ville

Matrice d'utilisation ■ Exemple A1 A2 A3 A4 Q1 1 0 1 0 Q2 0
Matrice d'utilisation ■ Exemple A1 A2 A3 A4 Q1 1 0 1 0 Q2 0
Matrice d'utilisation ■ Exemple A1 A2 A3 A4 Q1 1 0 1 0 Q2 0
Matrice d'utilisation ■ Exemple A1 A2 A3 A4 Q1 1 0 1 0 Q2 0
Matrice d'utilisation ■ Exemple A1 A2 A3 A4 Q1 1 0 1 0 Q2 0

Matrice d'utilisation

Matrice d'utilisation ■ Exemple A1 A2 A3 A4 Q1 1 0 1 0 Q2 0 1

Exemple

A1

A2

A3

A4

Q1 1

0

1

0

Q2 0

1

1

0

Q3 0

1

0

1

Q4 0

0

1

1

Matrice d'afinité : Définition ■ Refs ( qk ), pour deux attributs ( Ai, Ak
Matrice d'afinité : Définition ■ Refs ( qk ), pour deux attributs ( Ai, Ak
Matrice d'afinité : Définition ■ Refs ( qk ), pour deux attributs ( Ai, Ak
Matrice d'afinité : Définition ■ Refs ( qk ), pour deux attributs ( Ai, Ak
Matrice d'afinité : Définition ■ Refs ( qk ), pour deux attributs ( Ai, Ak

Matrice d'afinité : Définition

Refs( qk ), pour deux attributs (Ai, Ak) = nombre d’accès faits par une exécution de qk (sur le site s) à Ai et Ak

Accs( qk) = fréquence de qk sur le site s (mesurée pendant une certaine période)

Matrice d’affinité

Accs ( qk ) = fréquence de qk sur le site s (mesurée pendant une certaine
Matrice d'affinité : exemple ■ Supposons : Refs ( qk ) = 1 por tout
Matrice d'affinité : exemple ■ Supposons : Refs ( qk ) = 1 por tout
Matrice d'affinité : exemple ■ Supposons : Refs ( qk ) = 1 por tout
Matrice d'affinité : exemple ■ Supposons : Refs ( qk ) = 1 por tout
Matrice d'affinité : exemple ■ Supposons : Refs ( qk ) = 1 por tout

Matrice d'affinité : exemple

Supposons : Refs( qk ) = 1 por tout s, k

Les accès suivants (3 sites):

Acc1(q1)=15 Acc2(q1) = 20 Acc3(q1) = 10 Acc1(q2)=5 Acc2(q2) = 0 Acc3(q2) = 0 Acc1(q3)=25 Acc2(q3) = 25 Acc3(q3) = 25 Acc1(q4)= 3 Acc2(q4) = 0 Acc3(q4) = 0

Matrice d'affinité : exemple (2) ■ Matrice d'affinité :
Matrice d'affinité : exemple (2) ■ Matrice d'affinité :
Matrice d'affinité : exemple (2) ■ Matrice d'affinité :
Matrice d'affinité : exemple (2) ■ Matrice d'affinité :
Matrice d'affinité : exemple (2) ■ Matrice d'affinité :

Matrice d'affinité : exemple (2)

Matrice d'affinité : exemple (2) ■ Matrice d'affinité :

Matrice d'affinité :

Matrice d'affinité : exemple (2) ■ Matrice d'affinité :
Regroupement des attributs ■ Regroupement des attributs ayant une haute affinité. ■ Exemple :
Regroupement des attributs ■ Regroupement des attributs ayant une haute affinité. ■ Exemple :
Regroupement des attributs ■ Regroupement des attributs ayant une haute affinité. ■ Exemple :
Regroupement des attributs ■ Regroupement des attributs ayant une haute affinité. ■ Exemple :
Regroupement des attributs ■ Regroupement des attributs ayant une haute affinité. ■ Exemple :

Regroupement des attributs

Regroupement des attributs ayant une haute affinité.

Exemple :

Regroupement des attributs ■ Regroupement des attributs ayant une haute affinité. ■ Exemple :
Partitionnement Trouver un point dans la matrice pour créer deux ensembles d’attributs : AttrHaut (AH)
Partitionnement Trouver un point dans la matrice pour créer deux ensembles d’attributs : AttrHaut (AH)
Partitionnement Trouver un point dans la matrice pour créer deux ensembles d’attributs : AttrHaut (AH)
Partitionnement Trouver un point dans la matrice pour créer deux ensembles d’attributs : AttrHaut (AH)
Partitionnement Trouver un point dans la matrice pour créer deux ensembles d’attributs : AttrHaut (AH)

Partitionnement

Trouver un point dans la matrice pour créer deux ensembles d’attributs : AttrHaut (AH) et AttrBas (AB) Quelle requête accède quel ensemble ?

pour créer deux ensembles d’attributs : AttrHaut (AH) et AttrBas (AB) ■ Quelle requête accède quel
Partitionnement - Exemple Q = { q1, q2, q3, q4 } ■ AH = {
Partitionnement - Exemple Q = { q1, q2, q3, q4 } ■ AH = {
Partitionnement - Exemple Q = { q1, q2, q3, q4 } ■ AH = {
Partitionnement - Exemple Q = { q1, q2, q3, q4 } ■ AH = {
Partitionnement - Exemple Q = { q1, q2, q3, q4 } ■ AH = {

Partitionnement - Exemple

Q = { q1, q2, q3, q4 }

AH = { A1, A3 }

AB = { A2, A4}

RH = { q1 }

RB = { q3 }

Autres = { q2, q4 }

Partitionnement (Suite) Objectif : ■ Maximiser les accès à un seul fragment ■ Minimiser les
Partitionnement (Suite) Objectif : ■ Maximiser les accès à un seul fragment ■ Minimiser les
Partitionnement (Suite) Objectif : ■ Maximiser les accès à un seul fragment ■ Minimiser les
Partitionnement (Suite) Objectif : ■ Maximiser les accès à un seul fragment ■ Minimiser les
Partitionnement (Suite) Objectif : ■ Maximiser les accès à un seul fragment ■ Minimiser les

Partitionnement (Suite)

Objectif :

Maximiser les accès à un seul fragment

Minimiser les accès aux deux fragments

Maximiser les accès à un seul fragment ■ Minimiser les accès aux deux fragments ■ TotalAccès

TotalAccès =

TotalRH =

Maximiser les accès à un seul fragment ■ Minimiser les accès aux deux fragments ■ TotalAccès
Partitionnement (Suite) ■ Trouver un point dans la matrice pour créer deux ensembles d’attributs AH
Partitionnement (Suite) ■ Trouver un point dans la matrice pour créer deux ensembles d’attributs AH
Partitionnement (Suite) ■ Trouver un point dans la matrice pour créer deux ensembles d’attributs AH
Partitionnement (Suite) ■ Trouver un point dans la matrice pour créer deux ensembles d’attributs AH
Partitionnement (Suite) ■ Trouver un point dans la matrice pour créer deux ensembles d’attributs AH

Partitionnement (Suite)

Partitionnement (Suite) ■ Trouver un point dans la matrice pour créer deux ensembles d’attributs AH et

Trouver un point dans la matrice pour créer deux ensembles d’attributs AH et AB tels que :

z = (TotalRH * TotalRB) – TotalAutres2 est maximisé

Partitionnement – fin de l'exemple La relation Projet est fragmentée en Projet1( Num, Budget) Projet2(
Partitionnement – fin de l'exemple La relation Projet est fragmentée en Projet1( Num, Budget) Projet2(
Partitionnement – fin de l'exemple La relation Projet est fragmentée en Projet1( Num, Budget) Projet2(
Partitionnement – fin de l'exemple La relation Projet est fragmentée en Projet1( Num, Budget) Projet2(
Partitionnement – fin de l'exemple La relation Projet est fragmentée en Projet1( Num, Budget) Projet2(

Partitionnement – fin de l'exemple

La relation Projet est fragmentée en

Projet1( Num, Budget)

Projet2( Num, Nom, Loc)

Dans l’exemple (simple) la clé est dans l’ensemble

d’attributs considéré

Duplication de la clé pour garantir la reconstruction

Si beaucoup d’attributs alors il est peut être nécessaire de trouver plusieurs points dans la matrice. Utiliser plutôt une approche récursive : partir de deux groups AH et AB et raffiner

Fragmentation hybride ■ Fragmentation horizontale suivie de verticale ou vice-versa.
Fragmentation hybride ■ Fragmentation horizontale suivie de verticale ou vice-versa.
Fragmentation hybride ■ Fragmentation horizontale suivie de verticale ou vice-versa.
Fragmentation hybride ■ Fragmentation horizontale suivie de verticale ou vice-versa.
Fragmentation hybride ■ Fragmentation horizontale suivie de verticale ou vice-versa.

Fragmentation hybride

Fragmentation horizontale suivie de verticale ou vice-versa.

Fragmentation hybride ■ Fragmentation horizontale suivie de verticale ou vice-versa.
Allocation ■ Problème d’optimisation très difficile ■ Minimiser coûts: stockage, traitement, communication ■
Allocation ■ Problème d’optimisation très difficile ■ Minimiser coûts: stockage, traitement, communication ■
Allocation ■ Problème d’optimisation très difficile ■ Minimiser coûts: stockage, traitement, communication ■
Allocation ■ Problème d’optimisation très difficile ■ Minimiser coûts: stockage, traitement, communication ■
Allocation ■ Problème d’optimisation très difficile ■ Minimiser coûts: stockage, traitement, communication ■

Allocation

Problème d’optimisation très difficile

Minimiser coûts: stockage, traitement, communication

Maximiser performances: temps de réponse, débit du système

Modèle coût / performances

Utiliser modèle simple / sens commun e.g: considérer les com. / Accès

Exemple ■ Client1 = Rest Ville = Paris (Client) ■ Client2 = Rest Ville !=
Exemple ■ Client1 = Rest Ville = Paris (Client) ■ Client2 = Rest Ville !=
Exemple ■ Client1 = Rest Ville = Paris (Client) ■ Client2 = Rest Ville !=
Exemple ■ Client1 = Rest Ville = Paris (Client) ■ Client2 = Rest Ville !=
Exemple ■ Client1 = Rest Ville = Paris (Client) ■ Client2 = Rest Ville !=

Exemple

Client1 = Rest Ville = Paris (Client)

Client2 = Rest Ville != Paris (Client)

Commande1 = SemiJointure(Commande , Client1)

Commande2 = SemiJointure(Commande, Client2)

Allocation :

@Site1 : Client1, Commande1 @Site2 : Client2, Commande2

• Mise en Oeuvre réelle de la fragmentation dans les SGBD R
• Mise en Oeuvre réelle de la fragmentation dans les SGBD R
• Mise en Oeuvre réelle de la fragmentation dans les SGBD R
• Mise en Oeuvre réelle de la fragmentation dans les SGBD R
• Mise en Oeuvre réelle de la fragmentation dans les SGBD R

Mise en Oeuvre réelle de la fragmentation dans les SGBD R

Mise en oeuvre dans les SGBD Historique : des SGBDs distribués – R*, etc. –
Mise en oeuvre dans les SGBD Historique : des SGBDs distribués – R*, etc. –
Mise en oeuvre dans les SGBD Historique : des SGBDs distribués – R*, etc. –
Mise en oeuvre dans les SGBD Historique : des SGBDs distribués – R*, etc. –
Mise en oeuvre dans les SGBD Historique : des SGBDs distribués – R*, etc. –

Mise en oeuvre dans les SGBD

Historique : des SGBDs distribués

R*, etc.

Plutôt expérimental

Dans les SGBD commerciaux actuels

Pas de fragmentation explicite au niveau du schéma

Assemblage = création de vue (ou de snapshot)

Distribution des données ?

Une solution = triggers

Mise en oeuvre sous SQL • Frag. Horizontale CREATE VIEW V1 AS SELECT Table1.cle, Table1.attr1
Mise en oeuvre sous SQL • Frag. Horizontale CREATE VIEW V1 AS SELECT Table1.cle, Table1.attr1
Mise en oeuvre sous SQL • Frag. Horizontale CREATE VIEW V1 AS SELECT Table1.cle, Table1.attr1
Mise en oeuvre sous SQL • Frag. Horizontale CREATE VIEW V1 AS SELECT Table1.cle, Table1.attr1
Mise en oeuvre sous SQL • Frag. Horizontale CREATE VIEW V1 AS SELECT Table1.cle, Table1.attr1

Mise en oeuvre sous SQL

Frag. Horizontale

CREATE VIEW V1 AS SELECT Table1.cle, Table1.attr1 FROM Table1@site1 UNION SELECT Table2.cle, Table2.attr1 FROM Table2@site2

Mise en oeuvre sous SQL • Frag. Verticale CREATE VIEW V1 AS SELECT Table1.cle, Table1.attr1,
Mise en oeuvre sous SQL • Frag. Verticale CREATE VIEW V1 AS SELECT Table1.cle, Table1.attr1,
Mise en oeuvre sous SQL • Frag. Verticale CREATE VIEW V1 AS SELECT Table1.cle, Table1.attr1,
Mise en oeuvre sous SQL • Frag. Verticale CREATE VIEW V1 AS SELECT Table1.cle, Table1.attr1,
Mise en oeuvre sous SQL • Frag. Verticale CREATE VIEW V1 AS SELECT Table1.cle, Table1.attr1,

Mise en oeuvre sous SQL

Frag. Verticale

CREATE VIEW V1

AS SELECT Table1.cle, Table1.attr1, Table2.attr2

FROM Table1@site1, Table2@site2

WHERE Table1.cle=Table2.cle

Remarque :

l’attribut de fragmentation n’est pas forcément la clé primaire…

En frag. verticale, il faut au néanmois que ce soit une clé

Requêtes Réparties • Les opérations précédentes (par exemple) accèdent à des données situées sur différents
Requêtes Réparties • Les opérations précédentes (par exemple) accèdent à des données situées sur différents
Requêtes Réparties • Les opérations précédentes (par exemple) accèdent à des données situées sur différents
Requêtes Réparties • Les opérations précédentes (par exemple) accèdent à des données situées sur différents
Requêtes Réparties • Les opérations précédentes (par exemple) accèdent à des données situées sur différents

Requêtes Réparties

Les opérations précédentes (par exemple) accèdent à des données situées sur différents sites.

Le SGBD gère les accès distants en répartissant la requête

Exécution distante de la sous requête

Récupération de données résultat

Assemblage local (requête en lecture)

Cas d'Oracle • Permet la distribution et la réplication • Assure une bonne transparence à
Cas d'Oracle • Permet la distribution et la réplication • Assure une bonne transparence à
Cas d'Oracle • Permet la distribution et la réplication • Assure une bonne transparence à
Cas d'Oracle • Permet la distribution et la réplication • Assure une bonne transparence à
Cas d'Oracle • Permet la distribution et la réplication • Assure une bonne transparence à

Cas d'Oracle

Permet la distribution et la réplication

Assure une bonne transparence à différents niveaux

Système de nommage simple

sales.france.europe.computers

Accès BD distante : LINK

CREATE DATABASE LINK sales…

Accès table distante : schéma.table@base

svc_maint.emp@sales.france.europe.computers

Lien public, lien privé

Transparence • Localisation : synonymes CREATE PUBLIC SYNONYM employes FOR svc_maint.emp@sales.france.europe.computers
Transparence • Localisation : synonymes CREATE PUBLIC SYNONYM employes FOR svc_maint.emp@sales.france.europe.computers
Transparence • Localisation : synonymes CREATE PUBLIC SYNONYM employes FOR svc_maint.emp@sales.france.europe.computers
Transparence • Localisation : synonymes CREATE PUBLIC SYNONYM employes FOR svc_maint.emp@sales.france.europe.computers
Transparence • Localisation : synonymes CREATE PUBLIC SYNONYM employes FOR svc_maint.emp@sales.france.europe.computers

Transparence

Localisation : synonymes

CREATE PUBLIC SYNONYM employes

FOR

svc_maint.emp@sales.france.europe.computers

Requêtes et transactions

Opérations internes

Réplication

Caracatéristiques Autonomie des sites – Gestion indépendante, upgrades localisés… • Sécurité – Les
Caracatéristiques Autonomie des sites – Gestion indépendante, upgrades localisés… • Sécurité – Les
Caracatéristiques Autonomie des sites – Gestion indépendante, upgrades localisés… • Sécurité – Les
Caracatéristiques Autonomie des sites – Gestion indépendante, upgrades localisés… • Sécurité – Les
Caracatéristiques Autonomie des sites – Gestion indépendante, upgrades localisés… • Sécurité – Les

Caracatéristiques

Autonomie des sites

Gestion indépendante, upgrades localisés…

Sécurité

Les utilisateurs et leurs rôles doivent être connus sur chaque site accédé

Possibilité d’utiliser un Security Server

Encryptage

Administration globale : enterprise manager

Mise en oeuvre en SQL (Insertion avec les triggers Oracle) CREATE TRIGGER Tr1 INSTEAD OF
Mise en oeuvre en SQL (Insertion avec les triggers Oracle) CREATE TRIGGER Tr1 INSTEAD OF
Mise en oeuvre en SQL (Insertion avec les triggers Oracle) CREATE TRIGGER Tr1 INSTEAD OF
Mise en oeuvre en SQL (Insertion avec les triggers Oracle) CREATE TRIGGER Tr1 INSTEAD OF
Mise en oeuvre en SQL (Insertion avec les triggers Oracle) CREATE TRIGGER Tr1 INSTEAD OF

Mise en oeuvre en SQL (Insertion avec les triggers Oracle)

CREATE TRIGGER Tr1 INSTEAD OF INSERT on Table BEGIN IF :New.cle < 1000 THEN INSERT INTO Table1@site1(cle,attr1) VALUES(:New.cle,:New.attr); ELSE INSERT INTO Table2@site2(cle,attr2) VALUES (:New.cle,:New.attr);

END IF;

END;

Compléménts sur les triggers Utilisables également pour update et delete (:New et :Old) pour Suppression
Compléménts sur les triggers Utilisables également pour update et delete (:New et :Old) pour Suppression
Compléménts sur les triggers Utilisables également pour update et delete (:New et :Old) pour Suppression
Compléménts sur les triggers Utilisables également pour update et delete (:New et :Old) pour Suppression
Compléménts sur les triggers Utilisables également pour update et delete (:New et :Old) pour Suppression

Compléménts sur les triggers

Utilisables également pour update et delete (:New et :Old) pour Suppression (:Old)

Modification hors attribut de distribution (:New)

Modification attribut de distribution (:New et :Old pour vérifier si bon site)

Doit être écrit « à la main » par le dba…

Gestion des contraintes distribuées • Types de contraintes Domaine – – Unicité – Intégrité référentielle
Gestion des contraintes distribuées • Types de contraintes Domaine – – Unicité – Intégrité référentielle
Gestion des contraintes distribuées • Types de contraintes Domaine – – Unicité – Intégrité référentielle
Gestion des contraintes distribuées • Types de contraintes Domaine – – Unicité – Intégrité référentielle
Gestion des contraintes distribuées • Types de contraintes Domaine – – Unicité – Intégrité référentielle

Gestion des contraintes distribuées

Types de contraintes Domaine

Unicité

Intégrité référentielle

Dans un SGBD centralisé, c’est bien géré

Dans la définition des tables (principalement)

Le côté manuel de la distribution limite les possibilités de gestion des contraintes

Utilisation de vues >> pas de contraintes

Exemples • Check / NOT NUL – Se gère par fragment • Unicité – Gérable
Exemples • Check / NOT NUL – Se gère par fragment • Unicité – Gérable
Exemples • Check / NOT NUL – Se gère par fragment • Unicité – Gérable
Exemples • Check / NOT NUL – Se gère par fragment • Unicité – Gérable
Exemples • Check / NOT NUL – Se gère par fragment • Unicité – Gérable

Exemples

Check / NOT NUL

Se gère par fragment

Unicité

Gérable par fragment

Globalement ? Réplication OK, Fragmentation KO

Utilisation de trigger

Site maître pour numérotation >> perte autonomie

Intégrité Référentielle

Pas géré en inter-bases

Réplication OK, Fragmentation KO

Utilisation trigger

Ca devient vraiment lourd à gérer…

Liens BD (Database Links) 3 types de liens : • Connected user – Mode de
Liens BD (Database Links) 3 types de liens : • Connected user – Mode de
Liens BD (Database Links) 3 types de liens : • Connected user – Mode de
Liens BD (Database Links) 3 types de liens : • Connected user – Mode de
Liens BD (Database Links) 3 types de liens : • Connected user – Mode de

Liens BD (Database Links)

3 types de liens :

Connected user

Mode de base : même utilisateur en local et distant

Ce n’est pas nécessairement le créateur du lien

Current user

Si lien utilisé à partir de procédure, identification en temps que propriétaire de la procédure

Fixed user

Utilisateur fixe.

Exemples • CREATE DATABASE LINK ventes.suptechno.ma USING ‘ventes’; • CREATE DATABASE LINK ventes.suptehno.ma
Exemples • CREATE DATABASE LINK ventes.suptechno.ma USING ‘ventes’; • CREATE DATABASE LINK ventes.suptehno.ma
Exemples • CREATE DATABASE LINK ventes.suptechno.ma USING ‘ventes’; • CREATE DATABASE LINK ventes.suptehno.ma
Exemples • CREATE DATABASE LINK ventes.suptechno.ma USING ‘ventes’; • CREATE DATABASE LINK ventes.suptehno.ma
Exemples • CREATE DATABASE LINK ventes.suptechno.ma USING ‘ventes’; • CREATE DATABASE LINK ventes.suptehno.ma

Exemples

CREATE DATABASE LINK ventes.suptechno.ma

USING ‘ventes’;

CREATE DATABASE LINK ventes.suptehno.ma

CONNECT TO scott IDENTIFIED BY

tiger

USING ‘ventes’;

CREATE DATABASE LINK ventes.suptechno.ma

CONNECT TO CURRENT_USER

USING ‘ventes’;

Remarque : USING -> nom du service!

DB Links : compléments Visibilité : • Public – Pratique si utilisé par un grand
DB Links : compléments Visibilité : • Public – Pratique si utilisé par un grand
DB Links : compléments Visibilité : • Public – Pratique si utilisé par un grand
DB Links : compléments Visibilité : • Public – Pratique si utilisé par un grand
DB Links : compléments Visibilité : • Public – Pratique si utilisé par un grand

DB Links : compléments

Visibilité :

Public

Pratique si utilisé par un grand nombre d’utilisateurs

Private (défaut) + sécurisé, accessible uniquement au propriétaire et à ses sous-programmes

Global

Accessible de n’importe quelle base, mais suppose une gestion centrale (directory server)

Exemples • CREATE PUBLIC DATABASE LINK ventes.suptechno.ma USING ‘ventes’; • CREATE PUBLIC DATABASE LINK
Exemples • CREATE PUBLIC DATABASE LINK ventes.suptechno.ma USING ‘ventes’; • CREATE PUBLIC DATABASE LINK
Exemples • CREATE PUBLIC DATABASE LINK ventes.suptechno.ma USING ‘ventes’; • CREATE PUBLIC DATABASE LINK
Exemples • CREATE PUBLIC DATABASE LINK ventes.suptechno.ma USING ‘ventes’; • CREATE PUBLIC DATABASE LINK
Exemples • CREATE PUBLIC DATABASE LINK ventes.suptechno.ma USING ‘ventes’; • CREATE PUBLIC DATABASE LINK

Exemples

CREATE PUBLIC DATABASE LINK ventes.suptechno.ma

USING ‘ventes’;

CREATE PUBLIC DATABASE LINK ventes.suptechno.ma

CONNECT TO scott IDENTIFIED BY tiger

USING ‘ventes’;

CREATE PUBLIC DATABASE LINK ventes.suptechno.fr

CONNECT TO CURRENT_USER USING ‘ventes’;

Différence avec privé ?

Opérations sur Liens • Fermeture – Utile si forte charge – ALTER SESSION CLOSE DATABASE
Opérations sur Liens • Fermeture – Utile si forte charge – ALTER SESSION CLOSE DATABASE
Opérations sur Liens • Fermeture – Utile si forte charge – ALTER SESSION CLOSE DATABASE
Opérations sur Liens • Fermeture – Utile si forte charge – ALTER SESSION CLOSE DATABASE
Opérations sur Liens • Fermeture – Utile si forte charge – ALTER SESSION CLOSE DATABASE

Opérations sur Liens

Fermeture

Utile si forte charge

ALTER SESSION CLOSE DATABASE LINK lien;

Suppression

DROP DATABASE LINK lien

Quelques infos sur les liens • Tables – DBA_DB_LINKS : tous les liens – ALL_DB_LINKS
Quelques infos sur les liens • Tables – DBA_DB_LINKS : tous les liens – ALL_DB_LINKS
Quelques infos sur les liens • Tables – DBA_DB_LINKS : tous les liens – ALL_DB_LINKS
Quelques infos sur les liens • Tables – DBA_DB_LINKS : tous les liens – ALL_DB_LINKS
Quelques infos sur les liens • Tables – DBA_DB_LINKS : tous les liens – ALL_DB_LINKS

Quelques infos sur les liens

Tables

DBA_DB_LINKS : tous les liens

ALL_DB_LINKS : tous ceux accessibles par l’utilisateur

USER_DB_LINKS : tous ceux qui lui appartiennent

V$DBLINK : tous les liens ouverts par la transaction

Paramétrage

OPEN_LINKS : nombre de liens simultanés dans une même session (défaut 4, 0 = pas de limite) (INIT.ORA)

Liens partagés Un lien peut être partagé par plusieurs utilisateurs – Mot clé « shared
Liens partagés Un lien peut être partagé par plusieurs utilisateurs – Mot clé « shared
Liens partagés Un lien peut être partagé par plusieurs utilisateurs – Mot clé « shared
Liens partagés Un lien peut être partagé par plusieurs utilisateurs – Mot clé « shared
Liens partagés Un lien peut être partagé par plusieurs utilisateurs – Mot clé « shared

Liens partagés

Un lien peut être partagé par plusieurs utilisateurs

Mot clé « shared »

CREATE SHARED DATABASE LINK nomlien

[CONNECT TO util IDENTIFIED BY passwd ]|

[CONNECT TO CURRENT_USER]

AUTHENTICATED BY schema IDENTIFIED BY passwd [USING ‘service’]

Authentification pour le lien, connexion au schéma distant suivant mode de connexion choisi

Intérêt : si beaucoup de connexions, sinon surcoût

(pooling)

Peut être connecté vers serveur à processus

Nommage global Oracle peut utiliser le nommage global – Chaque base est identifiée par un
Nommage global Oracle peut utiliser le nommage global – Chaque base est identifiée par un
Nommage global Oracle peut utiliser le nommage global – Chaque base est identifiée par un
Nommage global Oracle peut utiliser le nommage global – Chaque base est identifiée par un
Nommage global Oracle peut utiliser le nommage global – Chaque base est identifiée par un

Nommage global

Oracle peut utiliser le nommage global

Chaque base est identifiée par un nom et un domaine. Le nom complet doit être unique

Utile avec les liens, indispensable pour la réplication

Paramétrage

GLOBAL_NAMES (INIT.ORA)

Manipuler les noms globaux • SELECT NAME,VALUE FROM V$PARAMETER WHERE NAME=«db_domain »; • Modifier :
Manipuler les noms globaux • SELECT NAME,VALUE FROM V$PARAMETER WHERE NAME=«db_domain »; • Modifier :
Manipuler les noms globaux • SELECT NAME,VALUE FROM V$PARAMETER WHERE NAME=«db_domain »; • Modifier :
Manipuler les noms globaux • SELECT NAME,VALUE FROM V$PARAMETER WHERE NAME=«db_domain »; • Modifier :
Manipuler les noms globaux • SELECT NAME,VALUE FROM V$PARAMETER WHERE NAME=«db_domain »; • Modifier :

Manipuler les noms globaux

SELECT NAME,VALUE FROM V$PARAMETER WHERE NAME=«db_domain »;

Modifier : dans INIT.ORA

SELECT * FROM GLOBAL_NAME;

ALTER DATABASE RENAME GLOBAL_NAME TO nom.domain;

BD réparties 2 : la réplication

BD réparties 2 : la réplication Mourad Bouneffa Master ISIDIS
BD réparties 2 : la réplication Mourad Bouneffa Master ISIDIS
BD réparties 2 : la réplication Mourad Bouneffa Master ISIDIS

Mourad Bouneffa Master ISIDIS

BD réparties 2 : la réplication Mourad Bouneffa Master ISIDIS
Qu’est-ce que la réplication ? ■ Ensemble de techniques permettant la gestion de copies multiples
Qu’est-ce que la réplication ? ■ Ensemble de techniques permettant la gestion de copies multiples
Qu’est-ce que la réplication ? ■ Ensemble de techniques permettant la gestion de copies multiples
Qu’est-ce que la réplication ? ■ Ensemble de techniques permettant la gestion de copies multiples
Qu’est-ce que la réplication ? ■ Ensemble de techniques permettant la gestion de copies multiples

Qu’est-ce que la réplication ?

Ensemble de techniques permettant la gestion de copies multiples de données

Les copies peuvent diverger à un instant donné mais doivent obligatoirement converger à terme

Cas extrême :

Si on décide d ’arrêter le système toutes les copies doivent converger

Pourquoi répliquer ? ■ Premier avantage : amélioration des performances. – La présence de copies
Pourquoi répliquer ? ■ Premier avantage : amélioration des performances. – La présence de copies
Pourquoi répliquer ? ■ Premier avantage : amélioration des performances. – La présence de copies
Pourquoi répliquer ? ■ Premier avantage : amélioration des performances. – La présence de copies
Pourquoi répliquer ? ■ Premier avantage : amélioration des performances. – La présence de copies

Pourquoi répliquer ?

Premier avantage : amélioration des performances.

– La présence de copies chez le client ou dans le site le plus proche rend l ’accès aux données plus rapide

Deuxième avantage : augmentation de la disponibilité des données :

– En cas de panne d ’un site on peut utiliser les copies disponibles sur un autre

disponibilité = 1 - probabilité_panne Nombre-de-copies

Problèmes dus à la réplication ■ Il faut assurer la convergence des copies à terme
Problèmes dus à la réplication ■ Il faut assurer la convergence des copies à terme
Problèmes dus à la réplication ■ Il faut assurer la convergence des copies à terme
Problèmes dus à la réplication ■ Il faut assurer la convergence des copies à terme
Problèmes dus à la réplication ■ Il faut assurer la convergence des copies à terme

Problèmes dus à la réplication

Il faut assurer la convergence des copies à terme

Il faut assurer la transparence de gestion aux utilisateurs :

Les clients doivent croire à l ’existence d ’une seule copie.

– le SGBD doit assurer la diffusion des mises à jour aux copies

– le choix de la meilleur copie lors de l ’accès

Les techniques de mise à jour des données répliquées ■ On distingue deux modes de
Les techniques de mise à jour des données répliquées ■ On distingue deux modes de
Les techniques de mise à jour des données répliquées ■ On distingue deux modes de
Les techniques de mise à jour des données répliquées ■ On distingue deux modes de
Les techniques de mise à jour des données répliquées ■ On distingue deux modes de

Les techniques de mise à jour des données répliquées

On distingue deux modes de mise à jour :

– Mise à jour synchrone

– Mise à jour asynchrone

Mise à jour synchrone ■ Mode de distribution dans lequel toutes les sous-opérations locales effectuées
Mise à jour synchrone ■ Mode de distribution dans lequel toutes les sous-opérations locales effectuées
Mise à jour synchrone ■ Mode de distribution dans lequel toutes les sous-opérations locales effectuées
Mise à jour synchrone ■ Mode de distribution dans lequel toutes les sous-opérations locales effectuées
Mise à jour synchrone ■ Mode de distribution dans lequel toutes les sous-opérations locales effectuées

Mise à jour synchrone

Mode de distribution dans lequel toutes les sous-opérations locales effectuées suite à une mise à jour globale sont accomplies pour le compte de la même transaction.

Mise à jour synchrone (2) Transaction t Update1 Update1 Update1 Update1
Mise à jour synchrone (2) Transaction t Update1 Update1 Update1 Update1
Mise à jour synchrone (2) Transaction t Update1 Update1 Update1 Update1
Mise à jour synchrone (2) Transaction t Update1 Update1 Update1 Update1
Mise à jour synchrone (2) Transaction t Update1 Update1 Update1 Update1

Mise à jour synchrone (2)

Mise à jour synchrone (2) Transaction t Update1 Update1 Update1 Update1
Mise à jour synchrone (2) Transaction t Update1 Update1 Update1 Update1
Mise à jour synchrone (2) Transaction t Update1 Update1 Update1 Update1

Transaction t

Update1

Mise à jour synchrone (2) Transaction t Update1 Update1 Update1 Update1

Update1

Mise à jour synchrone (2) Transaction t Update1 Update1 Update1 Update1
Mise à jour synchrone (2) Transaction t Update1 Update1 Update1 Update1

Update1

Mise à jour synchrone (2) Transaction t Update1 Update1 Update1 Update1

Update1

Mise à jour synchrone (3) ■ Avantages : – Prise en compte immédiate des modifications
Mise à jour synchrone (3) ■ Avantages : – Prise en compte immédiate des modifications
Mise à jour synchrone (3) ■ Avantages : – Prise en compte immédiate des modifications
Mise à jour synchrone (3) ■ Avantages : – Prise en compte immédiate des modifications
Mise à jour synchrone (3) ■ Avantages : – Prise en compte immédiate des modifications

Mise à jour synchrone (3)

Avantages :

– Prise en compte immédiate des modifications

– Utiles pour les systèmes tels que les systèmes boursiers ou bancaires :

modifications du court de change, etc.

Inconvénients :

– Nécessité de gérer des transactions multi- sites (compliquées et coûteuses)

Mise à jour asynchrone ■ Mode de distribution dans lequel certaines sous-opérations locales effectuées suite
Mise à jour asynchrone ■ Mode de distribution dans lequel certaines sous-opérations locales effectuées suite
Mise à jour asynchrone ■ Mode de distribution dans lequel certaines sous-opérations locales effectuées suite
Mise à jour asynchrone ■ Mode de distribution dans lequel certaines sous-opérations locales effectuées suite
Mise à jour asynchrone ■ Mode de distribution dans lequel certaines sous-opérations locales effectuées suite

Mise à jour asynchrone

Mode de distribution dans lequel certaines sous-opérations locales effectuées suite à une mise à jour globale sont accomplies dans des transactions indépendantes, en temps différé.

Les mises à jour peuvent être effectuées le soir, en fin de semaine, etc.

Mise à jour asynchrone (2) ■ Ce mode de mise à jour convient aux applications
Mise à jour asynchrone (2) ■ Ce mode de mise à jour convient aux applications
Mise à jour asynchrone (2) ■ Ce mode de mise à jour convient aux applications
Mise à jour asynchrone (2) ■ Ce mode de mise à jour convient aux applications
Mise à jour asynchrone (2) ■ Ce mode de mise à jour convient aux applications

Mise à jour asynchrone (2)

Ce mode de mise à jour convient aux applications nécessitant une cohérence lâche des copies :

– Mise à jour du catalogue des produits

– Mise à jour de l ’annuaire

– Etc.

Plus simples à mettre en oeuvre mais ne garantit pas l ’accès à la dernière mise à jour.

Techniques de diffusion des mises à jour ■ Diffuser le résultat ou l ’opération de
Techniques de diffusion des mises à jour ■ Diffuser le résultat ou l ’opération de
Techniques de diffusion des mises à jour ■ Diffuser le résultat ou l ’opération de
Techniques de diffusion des mises à jour ■ Diffuser le résultat ou l ’opération de
Techniques de diffusion des mises à jour ■ Diffuser le résultat ou l ’opération de

Techniques de diffusion des mises à jour

Diffuser le résultat ou l ’opération de mise à jour

Comment réaliser la mise à jour ?

– Utilisation de triggers (surtout en mode synchrone)

– Utilisation de files persistantes : mémorisation des transactions de report et exécution par la suite de ces transactions par une tâche de fond.

– Utilisation d ’appels périodiques (polling) : un ou plusieurs sites centralisent les mises à jours et rafraîchissent la bd de façon périodique (push).

Gestion des copies ■ On distingue deux techniques : – Réplication asymétrique – Réplication symétrique
Gestion des copies ■ On distingue deux techniques : – Réplication asymétrique – Réplication symétrique
Gestion des copies ■ On distingue deux techniques : – Réplication asymétrique – Réplication symétrique
Gestion des copies ■ On distingue deux techniques : – Réplication asymétrique – Réplication symétrique
Gestion des copies ■ On distingue deux techniques : – Réplication asymétrique – Réplication symétrique

Gestion des copies

On distingue deux techniques :

– Réplication asymétrique

– Réplication symétrique

Réplication asymétrique :

Technique de gestion de copies dans laquelle un site primaire est seul autorisé à mettre à jour et à diffuser les mises à jour aux autres copies dites secondaires.

Réplication asymétrique ■ Le site primaire garantit l ordonnancement correct des m-a-j ■ Ce mode
Réplication asymétrique ■ Le site primaire garantit l ordonnancement correct des m-a-j ■ Ce mode
Réplication asymétrique ■ Le site primaire garantit l ordonnancement correct des m-a-j ■ Ce mode
Réplication asymétrique ■ Le site primaire garantit l ordonnancement correct des m-a-j ■ Ce mode
Réplication asymétrique ■ Le site primaire garantit l ordonnancement correct des m-a-j ■ Ce mode

Réplication asymétrique

Le site primaire garantit l ordonnancement correct des m-a-j

Ce mode correspond aux applications à responsabilité centralisée : diffusion du catalogue des produits par une centrale

d ’achat

Permet également la consolidation de la BDR

à partir d ’informations provenant de fragments

Réplication asymétrique et mode de mise à jour ■ Le mode de réplication est orthogonale

Réplication asymétrique et mode de mise à jour

Le mode de réplication est orthogonale au mode de diffusion des m-a-j

réplication est orthogonale au mode de diffusion des m-a-j Mode de m-a-j Asynchrone Synchrone Mode de
réplication est orthogonale au mode de diffusion des m-a-j Mode de m-a-j Asynchrone Synchrone Mode de
réplication est orthogonale au mode de diffusion des m-a-j Mode de m-a-j Asynchrone Synchrone Mode de

Mode de m-a-j

est orthogonale au mode de diffusion des m-a-j Mode de m-a-j Asynchrone Synchrone Mode de réplication
est orthogonale au mode de diffusion des m-a-j Mode de m-a-j Asynchrone Synchrone Mode de réplication

Asynchrone

Synchrone

Mode de réplication

de diffusion des m-a-j Mode de m-a-j Asynchrone Synchrone Mode de réplication Asymétrique s y m

Asymétrique

symétrique

de diffusion des m-a-j Mode de m-a-j Asynchrone Synchrone Mode de réplication Asymétrique s y m
de diffusion des m-a-j Mode de m-a-j Asynchrone Synchrone Mode de réplication Asymétrique s y m
Réplication asymétrique synchrone Update Copie primaire Cours-devises Copies Cours_devises secondaires
Réplication asymétrique synchrone Update Copie primaire Cours-devises Copies Cours_devises secondaires
Réplication asymétrique synchrone Update Copie primaire Cours-devises Copies Cours_devises secondaires
Réplication asymétrique synchrone Update Copie primaire Cours-devises Copies Cours_devises secondaires
Réplication asymétrique synchrone Update Copie primaire Cours-devises Copies Cours_devises secondaires

Réplication asymétrique synchrone

Update Copie primaire Cours-devises Copies Cours_devises secondaires Cours_devises
Update
Copie
primaire
Cours-devises
Copies
Cours_devises
secondaires
Cours_devises
Toute mise à jour est d ’abord appliquée à la copie primaire, puis diffusée en
Toute mise à jour est
d ’abord appliquée à la
copie primaire, puis diffusée
en temps réel
Réplication asymétrique asynchrone Copie primaire Cours-devises U p d a t e Toute mise à
Réplication asymétrique asynchrone Copie primaire Cours-devises U p d a t e Toute mise à
Réplication asymétrique asynchrone Copie primaire Cours-devises U p d a t e Toute mise à
Réplication asymétrique asynchrone Copie primaire Cours-devises U p d a t e Toute mise à
Réplication asymétrique asynchrone Copie primaire Cours-devises U p d a t e Toute mise à

Réplication asymétrique asynchrone

Copie

primaire

Cours-devises
Cours-devises

Update

Toute mise à jour est d ’abord appliquée à la copie primaire, puis diffusée en temps différé

Copies Cours_devises secondaires Cours_devises
Copies
Cours_devises
secondaires
Cours_devises
Réplication asymétrique mobile ■ Le site primaire peut changer – par décision de l ’administrateur
Réplication asymétrique mobile ■ Le site primaire peut changer – par décision de l ’administrateur
Réplication asymétrique mobile ■ Le site primaire peut changer – par décision de l ’administrateur
Réplication asymétrique mobile ■ Le site primaire peut changer – par décision de l ’administrateur
Réplication asymétrique mobile ■ Le site primaire peut changer – par décision de l ’administrateur

Réplication asymétrique mobile

Le site primaire peut changer

– par décision de l ’administrateur – selon la logique de l ’application : Workflow

Assure une meilleure tolérance aux pannes

Une meilleure disponibilité et performance

Réplication asymétrique mobile Commandes Site saisie Commandes Site expédition Commandes Site facturation
Réplication asymétrique mobile Commandes Site saisie Commandes Site expédition Commandes Site facturation
Réplication asymétrique mobile Commandes Site saisie Commandes Site expédition Commandes Site facturation
Réplication asymétrique mobile Commandes Site saisie Commandes Site expédition Commandes Site facturation
Réplication asymétrique mobile Commandes Site saisie Commandes Site expédition Commandes Site facturation

Réplication asymétrique mobile

Commandes

Site saisie
Site saisie

Commandes

Site expédition
Site expédition

Commandes

Site facturation
Site facturation
Réplication asymétrique mobile Commandes Site saisie Commandes Site expédition Commandes Site facturation
Réplication asymétrique mobile Commandes Site saisie Commandes Site expédition Commandes Site facturation
Réplication asymétrique mobile Commandes Site saisie Commandes Site expédition Commandes Site facturation
Réplication asymétrique mobile Commandes Site saisie Commandes Site expédition Commandes Site facturation
Réplication asymétrique mobile Commandes Site saisie Commandes Site expédition Commandes Site facturation

Réplication asymétrique mobile

Commandes

Site saisie
Site saisie

Commandes

Site expédition
Site expédition

Commandes

Site facturation
Site facturation
Réplication asymétrique mobile Commandes Site saisie Commandes Site expédition Commandes Site facturation
Réplication asymétrique mobile Commandes Site saisie Commandes Site expédition Commandes Site facturation
Réplication asymétrique mobile Commandes Site saisie Commandes Site expédition Commandes Site facturation
Réplication asymétrique mobile Commandes Site saisie Commandes Site expédition Commandes Site facturation
Réplication asymétrique mobile Commandes Site saisie Commandes Site expédition Commandes Site facturation

Réplication asymétrique mobile

Commandes

Site saisie
Site saisie

Commandes

Site expédition
Site expédition

Commandes

Site facturation
Site facturation
Réplication symétrique ■ Technique de gestion de copies où chaque copie peut être mise à
Réplication symétrique ■ Technique de gestion de copies où chaque copie peut être mise à
Réplication symétrique ■ Technique de gestion de copies où chaque copie peut être mise à
Réplication symétrique ■ Technique de gestion de copies où chaque copie peut être mise à
Réplication symétrique ■ Technique de gestion de copies où chaque copie peut être mise à

Réplication symétrique

Technique de gestion de copies où chaque copie peut être mise à jour à tout instant et assure la diffusion des mises à jour aux autres copies

Problèmes de concurrence d ’accès

divergence des copies

Convient aux applications à responsabilité distribuée : suivi d’une commande, gestion de clients mobiles, etc.

Convergence de copies symétriques ■ Les mises à jour des copies risquent d ’être accomplies
Convergence de copies symétriques ■ Les mises à jour des copies risquent d ’être accomplies
Convergence de copies symétriques ■ Les mises à jour des copies risquent d ’être accomplies
Convergence de copies symétriques ■ Les mises à jour des copies risquent d ’être accomplies
Convergence de copies symétriques ■ Les mises à jour des copies risquent d ’être accomplies

Convergence de copies symétriques

Les mises à jour des copies risquent d ’être accomplies dans un ordre différent de celui de leurs occurrence réelle : problème de divergence de copies

Des techniques issues du domaine de gestion de la concurrence peuvent être utilisées pou pallier à ce problème

Convergence de copies symétriques (2) ■ 2 principales techniques : – Verrouillage des copies :
Convergence de copies symétriques (2) ■ 2 principales techniques : – Verrouillage des copies :
Convergence de copies symétriques (2) ■ 2 principales techniques : – Verrouillage des copies :
Convergence de copies symétriques (2) ■ 2 principales techniques : – Verrouillage des copies :
Convergence de copies symétriques (2) ■ 2 principales techniques : – Verrouillage des copies :

Convergence de copies symétriques (2)

2 principales techniques :

– Verrouillage des copies : un site doit demander des autorisations à toutes les copies avant de mettre à jour une copie

– Estampillage : horloge logique associé aux objets de la base et aux messages de mises à jour.

– Ces techniques seront étudiées en cours de gestion de la concurrence dans un environnement distribué.

Outils pratiques pour la réplication : cas d'oracle
Outils pratiques pour la réplication : cas d'oracle
Outils pratiques pour la réplication : cas d'oracle
Outils pratiques pour la réplication : cas d'oracle
Outils pratiques pour la réplication : cas d'oracle

Outils pratiques pour la réplication : cas d'oracle

Les vues matérialisées CREATE MATERIALIZED VIEW nommv [TABLESPACE … STORAGE …] [REFRESH FAST|COMPLETE|FORCE START
Les vues matérialisées CREATE MATERIALIZED VIEW nommv [TABLESPACE … STORAGE …] [REFRESH FAST|COMPLETE|FORCE START
Les vues matérialisées CREATE MATERIALIZED VIEW nommv [TABLESPACE … STORAGE …] [REFRESH FAST|COMPLETE|FORCE START
Les vues matérialisées CREATE MATERIALIZED VIEW nommv [TABLESPACE … STORAGE …] [REFRESH FAST|COMPLETE|FORCE START
Les vues matérialisées CREATE MATERIALIZED VIEW nommv [TABLESPACE … STORAGE …] [REFRESH FAST|COMPLETE|FORCE START

Les vues matérialisées

CREATE MATERIALIZED VIEW nommv [TABLESPACE … STORAGE …] [REFRESH FAST|COMPLETE|FORCE START WITH sysdate NEXT sysdate+1 // en jours… WITH PRIMARY KEY // si possible … USING ROLLBACK SEGMENT …] AS SELECT…

Vue simple Rafraîchissement rapide possible • Repose sur clé – WITH PRIMARY KEY • Repose
Vue simple Rafraîchissement rapide possible • Repose sur clé – WITH PRIMARY KEY • Repose
Vue simple Rafraîchissement rapide possible • Repose sur clé – WITH PRIMARY KEY • Repose
Vue simple Rafraîchissement rapide possible • Repose sur clé – WITH PRIMARY KEY • Repose
Vue simple Rafraîchissement rapide possible • Repose sur clé – WITH PRIMARY KEY • Repose

Vue simple

Rafraîchissement rapide possible

Repose sur clé

WITH PRIMARY KEY

Repose sur ROW ID

WITH ROW ID

Repose sur une requête adaptée

sous requête de type exists

union

Exemple CREATE MATERIALIZED VIEW info_produit REFRESH FAST AS SELECT * FROM info_produit ip WHERE id
Exemple CREATE MATERIALIZED VIEW info_produit REFRESH FAST AS SELECT * FROM info_produit ip WHERE id
Exemple CREATE MATERIALIZED VIEW info_produit REFRESH FAST AS SELECT * FROM info_produit ip WHERE id
Exemple CREATE MATERIALIZED VIEW info_produit REFRESH FAST AS SELECT * FROM info_produit ip WHERE id
Exemple CREATE MATERIALIZED VIEW info_produit REFRESH FAST AS SELECT * FROM info_produit ip WHERE id

Exemple

CREATE MATERIALIZED VIEW info_produit REFRESH FAST AS SELECT * FROM info_produit ip

WHERE id =10 AND EXISTS (SELECT * FROM descr_produit dp WHERE…) UNION

Des vues plus complexes Pas fast refresh si contient : – DISTINCT, UNIQUE – INTERSECT,

Des vues plus complexes

Des vues plus complexes Pas fast refresh si contient : – DISTINCT, UNIQUE – INTERSECT, MINUS,
Des vues plus complexes Pas fast refresh si contient : – DISTINCT, UNIQUE – INTERSECT, MINUS,

Pas fast refresh si contient :

DISTINCT, UNIQUE

INTERSECT, MINUS, UNION ALL

CONNECT BY

Jointure

Agrégation

UNION si pas les mêmes types (ou

requêtecomplexe)

Pour tester rafraîchissement rapide

DBMS_VIEW.EXPLAIN_MVIEW(‘vue’); Agrégation – UNION si pas les mêmes types (ou requête complexe) • Pour tester rafraîchissement rapide

pas les mêmes types (ou requête complexe) • Pour tester rafraîchissement rapide DBMS_VIEW.EXPLAIN_MVIEW(‘vue’);
Complément sur les vues pour que le REFRESH fonctionne il faut paramétrer Oracle en conséquence…

Complément sur les vues

Complément sur les vues pour que le REFRESH fonctionne il faut paramétrer Oracle en conséquence… –
Complément sur les vues pour que le REFRESH fonctionne il faut paramétrer Oracle en conséquence… –

pour que le REFRESH fonctionne il faut paramétrer Oracle en conséquence…

globaux Nom globaux obligatoires

Utilisation d’un lien en fixed user

Pour autoriser le fast refresh if faut créer un snapshot log sur la table source

CREATE SNAPSHOT LOG ON Table WITH PRIMARY KEY

TABLESPACE

STORAGE (…)

Refresh gérable par le biais de fonctions

PL/SQL DBMS_REFRESH.REFRESH(‘vue’); DBMS_REFRESH.REFRESH(‘vue’);

KEY TABLESPACE STORAGE (…) • Refresh gérable par le biais de fonctions PL/SQL DBMS_REFRESH.REFRESH(‘vue’);
Vues matérialisées modifiables Intérêt ? ==> pour les DataWarehouses • Ajouter « FOR UPDATE »
Vues matérialisées modifiables Intérêt ? ==> pour les DataWarehouses • Ajouter « FOR UPDATE »
Vues matérialisées modifiables Intérêt ? ==> pour les DataWarehouses • Ajouter « FOR UPDATE »
Vues matérialisées modifiables Intérêt ? ==> pour les DataWarehouses • Ajouter « FOR UPDATE »
Vues matérialisées modifiables Intérêt ? ==> pour les DataWarehouses • Ajouter « FOR UPDATE »

Vues matérialisées modifiables

Intérêt ? ==> pour les DataWarehouses

Ajouter « FOR UPDATE » avant le « AS SELECT… »

Rattacher à un groupe de vues matérialisées

Groupes de vues matérialisées Simplification de l’administration • Création du groupe : –
Groupes de vues matérialisées Simplification de l’administration • Création du groupe : –
Groupes de vues matérialisées Simplification de l’administration • Création du groupe : –
Groupes de vues matérialisées Simplification de l’administration • Création du groupe : –
Groupes de vues matérialisées Simplification de l’administration • Création du groupe : –

Groupes de vues matérialisées

Simplification de l’administration

Création du groupe :

DBMS_REPCAT.CREATE_MVIEW_REPGROUP( gname=>‘nomgrp’, master=>‘base d’origine’, propagation_mode=>‘ASYNCHRONOUS’);