Vous êtes sur la page 1sur 31

Master IAM SOMMAIRE

(Intelligence Artificielle & Multimédia)


• Chapitre I: Introduction [1 cours]
• Chapitre II: Structure de bases de données distribuées [? cours]
1. Introduction
2. Fragmentation

BASES DE DONNÉES 3.

1.
2.
Allocation de ressources
• Chapitre III: Intégration de bases de données [? cours]
Méthodologie de la conception Bottom-Up
Correspondance de schémas
3. Intégration de schémas

DISTRIBUÉES 4. Planification de schémas


• Chapitre IV: Contrôle d’accès et de données [? cours]
1. Gestion de vues
2. Sécurité de données
3. Contrôle d’intégrité sémantique

http://www.larbiguezouli.com/
• Chapitre V: Aperçu sur le traitement de requête [? cours]
1. Problème de traitement de requête
2. Objectif du traitement de requête
3. Couches de traitement de requête
• Chapitre VI: Décomposition de la requête et localisation de données [? cours]
• Chapitre VII: Optimisation des requêtes distribuées [? cours]
2
Présenté par Dr Larbi GUEZOULI

CHAPITRE I
BIBLIOGRAPHIE
INTRODUCTION
1. M. Tamer Özsu and Patrick Valduriez, “Principles of Une entreprise, selon son besoin, peut choisir entre
Distributed Database Systems”, Third Edition, Springer, l’utilisation de base de données centralisée ou distribuée.
2011
2. IBM, “Distributed database programming”, Version 6
Release 1, 2008. Entreprise
3. Georges Gardarin, « Bases de données réparties », Cours
BDD Web. Centralisée Distribuée

u1 u2 un
u1 u2 un

3 4
CHAPITRE I CHAPITRE I
INTRODUCTION INTRODUCTION
Quelques définitions Quelques définitions (suite)
Une base de données distribuée est un ensemble de bases de Un système de gestion de base de données distribuées est un
données localisées et gérées par des sites différents et système qui gère des collections de BD logiquement reliées,reliées
apparaissant à l'utilisateur comme une base unique.
unique [3] distribuées sur un réseau, en fournissant un mécanisme d'accès
Une base de données distribuée est une collection de multiple qui rend la répartition transparente aux utilisateurs. [3]
bases de données distribuées sur un réseau informatique Un système de gestion de bases de données distribuées
logiquement inter-
inter-reliées.
reliées (Distributed
Distributed DBMS)
DBMS est l’application qui permet la gestion de la
Un client d’un système de gestion de base de données base de données distribuée et rend la distribution transparente
distribuée est une application qui accède aux informations aux utilisateurs.
distribuées par les interfaces du système. [3] Pour référencer la BDD distribuée et le DBMS distribuées
nous utilisant l’abréviation DDBS (Distributed DataBase
System).
System)
5 6

CHAPITRE I CHAPITRE I
INTRODUCTION INTRODUCTION
Exp. Exp. (suite)
Soit une entreprise qui a des annexes dans plusieurs villes: Si la base de données est centralisée, on peut trouver les noms
Alger, Batna, Oran. Le gérant veut maintenir une base de des employés qui travaillent dans un projet pour une durée
données des employés et les projets sur lesquels ils travaillent. supérieure de 12 mois ainsi que leurs salaires avec la requête
Le gérant utilise 4 tables: suivante:
Emp (idEmp, nomEmp, poste); SELECT nomEmp, salaire
Prj (idPrj, nomPrj, designation, budget, ville); FROM Emp, Aff, Sal
Sal (poste, salaire); WHERE Aff.dur > 12
Aff (idEmp, idPrj, resp, dur) //Affectation d’un AND Emp.idEmp = Aff.idEmp
employé à un projet avec telle responsabilité et telle durée. AND Sal.poste = Emp.poste

7 8
CHAPITRE I CHAPITRE I
INTRODUCTION INTRODUCTION
Exp. (suite) 1/ Transparence de données (Indépendance)
Maintenant, si la base est distribuée sur les différents
annexes, de telle sorte que les information des employés et les La définition des données dans une base de données se fait à
projets de chaque annexe sont stockés dans une base de données deux niveaux (structure logique et structure physique), se qui
localisée dans cette annexe. permet de définir une indépendance de données logique et
L’utilisateur doit posé la même question au système sans faire indépendance de données physique.
physique
attention à la distribution des information (transparence
transparence),
transparence et
c’est le système qui s’occupe de la récupération des
informations.
Pour cela, il a été défini plusieurs types de transparence:

9 10

CHAPITRE I CHAPITRE I
INTRODUCTION INTRODUCTION
1/ Transparence de données (suite) 2/ Transparence du réseau (ou de distribution)
L’indépendance de données logique signifie que les
applications de l’utilisateur ne sont pas autorisées à modifier la Ce type de transparence fait référence à ce que l’existence du
structure logique des données (le schéma). réseau est caché à l’utilisateur. L’accès aux données de la base
L’indépendance de données physique signifie que les détails doit se faire de la même manière soit on mode centralisé ou
de la structure de stockage des données seront cachés aux distribué.
applications de l’utilisateur.

Remarque:
Remarque L’application utilisateur ne doit pas être modifiée
quand la structure physique des données change.

11 12
CHAPITRE I CHAPITRE I
INTRODUCTION INTRODUCTION
3/ Transparence de réplication (redondance) 3/ Transparence de réplication (redondance)

Pour des raisons de performance et disponibilité des données, La décision de réplication des données, et de combien de
il est préférable de faire des copies de quelques données de la copies doit-on faire, dépend des applications des utilisateurs.
base sur plusieurs sites. L’utilisateur n’a pas besoin de savoir si les données sont
Par exemple, les données qui se trouvent sur un autre site et répliquées ou non. Il envoie ses requêtes comme s’il existe une
qui sont réclamées souvent par un utilisateur, sera préférable seule copie des données.
d’en faire une copie sur la base de données local de cet
utilisateur.
En plus, si une machine s’arrête,
arrête on peut trouver les données
sur une autre machine.
13 14

CHAPITRE I CHAPITRE I
INTRODUCTION INTRODUCTION
3/ Transparence de fragmentation 3/ Transparence de fragmentation (suite)

Dans certains cas, et pour des raisons de performance, on Il existe deux types de fragmentation:
aura besoin de fragmenter une table de la base de données et • Fragmentation horizontale:
horizontale: La table est partitionnée en
placer chaque fragment sur un site différent. plusieurs sous-tables contenants chacune un sous-ensemble
La fragmentation permet aussi de réduire les inconvénients de lignes de la table originale.
de la réplication.
réplication • Fragmentation verticale:
verticale: La table est partitionnée en plusieurs
Cette opération de fragmentation doit être faite d’une sous-tables qui sont définies sur un sous-ensemble d’attributs
manière transparente à l’utilisateur. Il utilise la table originale (de colonnes) de la table originale.
comme si elle n’est pas fragmentée.

15 16
CHAPITRE II CHAPITRE II
STRUCTURE DE BDD DISTRIBUÉES STRUCTURE DE BDD DISTRIBUÉES
I. Introduction I. Introduction
II. Fragmentation
L’organisation des systèmes distribués tourne autours de trois
III. Allocation de ressources
axes:
• Niveau de partage:
– Pas de partage;
– Partage de données;
– Partage de données et des applications.
• Type d’accès:
– Accès statique (localisation des données connue dès le début);
– Accès dynamique (localisation des données inconnue).

17 18

CHAPITRE II CHAPITRE II
STRUCTURE DE BDD DISTRIBUÉES STRUCTURE DE BDD DISTRIBUÉES
I. Introduction (suite) I. Introduction (suite)
Informations
Type d’
d’accès Partielles
• Niveau de connaissances sur le comportement (type) d’accès: Dynamique Informations
– Pas de connaissance préalable sur le type d’accès (le design ou la Statique Complètes
conception de la base est très difficile);
– Information partielles sur le type d’accès; Niveau de
Données connaissances
– Information complètes sur le type d’accès (Le cas le plus pratique).

Données +
applications

Niveau de
19 partage 20
CHAPITRE II CHAPITRE II
STRUCTURE DE BDD DISTRIBUÉES STRUCTURE DE BDD DISTRIBUÉES
I. Introduction (suite) II.
II. Fragmentation
Avec cette organisation, et comme indiqué dans le chapitre Le processus de fragmentation peut se faire sous différentes
précédent concernant la distribution des relations de la base, au stratégies: horizontale, verticale ou hybride.
lieu de distribuer les relations d’une même base sur plusieurs II.
II.1. Fragmentation horizontale
sites, il est préférable de distribuer des fragments d’une même Ce type de fragmentation permet de découper une relation en
relation sur plusieurs sites. sous-relations contenants des sous-ensembles des tuples de la
Ainsi, ce processus est divisé en deux parties: fragmentation relation mère.
et allocation.
allocation
R1

R2
21 22

CHAPITRE II CHAPITRE II
STRUCTURE DE BDD DISTRIBUÉES STRUCTURE DE BDD DISTRIBUÉES
II.
II.1. Fragmentation horizontale (suite) II.
II.1. Fragmentation horizontale (suite)
Prédicat simple
La fragmentation horizontale est basée sur l’opération de Soit une relation R(A1,A2,…,An), tel que Ai est un attribut de R
sélection qui utilise un prédicat (condition). défini sur un domaine Di. Un prédicat simple pj est défini sur R
comme suit:
La reconstitution de la relation se fait par l’union des pj : Ai θ val
fragments. tel que θ ∈ {=, <, >, ≠, ≤, ≥} et val ∈ Di

Nous avons besoin de définir deux notions: prédicat simple,


simple On note Pr l’ensemble de tous les prédicats simples définis sur R.
prédicat minterm.
minterm

23 24
CHAPITRE II CHAPITRE II
STRUCTURE DE BDD DISTRIBUÉES STRUCTURE DE BDD DISTRIBUÉES
II.
II.1. Fragmentation horizontale (suite) II.
II.1. Fragmentation horizontale (suite)
Exp. Prédicat minterm
Un prédicat minterm m est défini par une conjonction de
Soit la relation Prj de l’exemple précédent, on peut définir prédicats simples.
quelques prédicats simples: Une conjonction est une expression booléenne contenant des
nomPrj = "Construction" prédicats simples séparés par des AND. On peut utiliser aussi le
budget ≤ 100000 NOT.
 =  ∗
 ∈

tel que: p*
j = pj ou p*
j = ¬pj
25 26

CHAPITRE II CHAPITRE II
STRUCTURE DE BDD DISTRIBUÉES STRUCTURE DE BDD DISTRIBUÉES
II.
II.1. Fragmentation horizontale (suite) II.
II.1. Fragmentation horizontale (suite)
Exp. Soit les minterms suivants: Il existe deux types de fragmentation horizontale: primaire et
m1 : poste = "Ing" ∧ salaire ≤ 50000 dérivée.
m2 : poste = "Ing" ∧ salaire > 50000 II.
II.1.1. Fragmentation horizontale primaire
m3 : ¬(poste = "Ing") ∧ salaire ≤ 50000 La fragmentation horizontale est basée sur l’opération de
sélection qui utilise un prédicat minterm.
= 
m4 : ¬(poste = "Ing") ∧ salaire > 50000
m5 : poste = "Comptable" ∧ salaire ≤ 50000
tel que:
m6 : poste = "Comptable" ∧ salaire > 30000
Ri est un fragment de la relation R
mi est un minterm
σ est l’opération de sélection.
27 28
CHAPITRE II CHAPITRE II
STRUCTURE DE BDD DISTRIBUÉES STRUCTURE DE BDD DISTRIBUÉES
II.
II.1.1. Fragmentation horizontale primaire (suite) II.
II.1.1. Fragmentation horizontale primaire (suite)
Exp. 1 Exp. 2
Fragmentation de la relation Prj en fragmentation On peut fragmenter la relation Prj en se basant sur la
horizontale peut être faite comme suit: localisation:
Prj1 = σbudget≤100000 (Prj) Prj1 = σville="Alger" (Prj)
Prj2 = σbudget>100000 (Prj) Prj2 = σville="Batna" (Prj)
Cet exemple présente un des problèmes de la fragmentation Prj3 = σville="Oran" (Prj)
horizontale. Si le domaine des attributs est continu et infini il Dans ce cas, le nombre maximal de fragmentations possibles
sera difficile de définir le nombre maximal de fragmentations est fixe.
possibles.
possibles On ne peut pas partager le domaine en un nombre
fini de sous-domaines.
29 30

CHAPITRE II CHAPITRE II
STRUCTURE DE BDD DISTRIBUÉES STRUCTURE DE BDD DISTRIBUÉES
II.
II.1.1. Fragmentation horizontale primaire (suite) II.
II.1.1. Fragmentation horizontale primaire (suite)
Pour éviter les problèmes de fragmentation horizontale, nous Complétude
avons besoin de bien choisir les prédicats simples qui seront à la Un ensemble de prédicats simples Pr est dit complet ssi la
base des prédicats minterm permettant de fragmenter une probabilité d’accès par chaque application à n’importe quel
relation. tuple de n’importe quel (de chaque) fragment-minterm est
D’une manière générale, cet ensemble doit contenir égale.
égale
seulement les prédicats avec des attributs et conditions utilisés dit::
Autrement dit
par les applications.
applications La complétude garantit que les tuples de chaque fragment-
Cet ensemble de prédicats simples doit être complet et minterm soient accédés par toutes les applications avec la même
minimal.
minimal Pour cela, nous avons besoin de définir deux aspects probabilité.
probabilité
importants: complétude,
complétude minimalité.
minimalité
31 32
CHAPITRE II CHAPITRE II
STRUCTURE DE BDD DISTRIBUÉES STRUCTURE DE BDD DISTRIBUÉES
II.
II.1.1. Fragmentation horizontale primaire (suite) II.
II.1.1. Fragmentation horizontale primaire (suite)
Exp. Complétude (suite)
Soit l’ensemble Pr = {ville="Alger", ville="Batna", Exp. (suite)
ville="Oran"} permettant de fragmenter la relation Prj en Par contre, s’il y a une 2ème application qui cherche à accéder
Prj1, Prj2, Prj3 comme dans l’exemple précèdent. aux projets qui ont un budget inférieur à 100000, dans ce cas,
S’il y a une seule application qui cherche à accéder aux Pr n’est plus complet.
complet
tuples des fragments selon leurs locations, l’ensemble Pr est
complet. Cause:
Cause Les tuples des fragments qui ont un budget < 100000
ont une probabilité d’accès supérieur aux tuples qui ont un
budget > 100000.

33 34

CHAPITRE II CHAPITRE II
STRUCTURE DE BDD DISTRIBUÉES STRUCTURE DE BDD DISTRIBUÉES
II.
II.1.1. Fragmentation horizontale primaire (suite) II.
II.1.1. Fragmentation horizontale primaire (suite)
Complétude (suite) Solution:
Solution: (suite)
Exp. (suite) Les minterms à utiliser dans la fragmentation sont:
m1: ville = "Alger" ∧ budget < 100000
Solution: Pour rendre l’ensemble Pr complet, nous devons
Solution: m2: ville = "Batna " ∧ budget < 100000
ajouter le prédicat (budget<100000) et sa négation m3: ville = "Oran " ∧ budget < 100000
(budget≥100000) comme suit: m4: ville = "Alger" ∧ budget ≥ 100000
Pr = {ville="Alger", ville="Batna", ville="Oran", m5: ville = "Batna " ∧ budget ≥ 100000
budget<100000 , budget≥100000} m6: ville = "Oran " ∧ budget ≥ 100000
Les deux applications accèdent aux tuples de chaque fragment-
minterm avec une probabilité égale (0 ou 1/nb_tuples_fragment)
35 36
CHAPITRE II CHAPITRE II
STRUCTURE DE BDD DISTRIBUÉES STRUCTURE DE BDD DISTRIBUÉES
II.
II.1.1. Fragmentation horizontale primaire (suite) II.
II.1.1. Fragmentation horizontale primaire (suite)
Minimalité Minimalité
Autrement dit:
- Définition 1 - - Définition 2 -
Un ensemble de prédicats simples est dit minimal si tous les La minimalité d’un ensemble de prédicats exprime que si un
prédicats sont pertinents.
pertinents prédicat dans cet ensemble permet de partitionner un fragment
Un prédicat est dit pertinent s’il cause la fragmentation d’un F en deux fragments F1 et F2 , alors il existe au-moins une
fragment F en F1 et F2 et qu’il existe au-
au-moins une application application accède à F1 et F2 individuellement. Cela veut dire
qui accède aux deux fragments différemment que le prédicat est pertinent dans la détermination de F1 et F2 .
(individuellement) (c-à-d F1 et F2 sont disjoints).

37 38

CHAPITRE II CHAPITRE II
STRUCTURE DE BDD DISTRIBUÉES STRUCTURE DE BDD DISTRIBUÉES
II.
II.1.1. Fragmentation horizontale primaire (suite) II.
II.1.1. Fragmentation horizontale primaire (suite)
Minimalité
Autrement dit: Exp.
- Définition 3 - Dans l’exemple précèdent, l’ensemble de prédicats Pr =
Le but de la minimalité est d’assurer qu’il y a une cause pour {ville="Alger", ville="Batna", ville="Oran", budget<100000 ,
effectuer la fragmentation (F1, F2) par un prédicats. budget≥100000} est aussi minimal parce que tous les prédicats
Il existe au-moins une application qui n’a besoin que d’un sont pertinents.
seul fragment (parmi les deux F1 et F2) à un moment donné.

39 40
CHAPITRE II CHAPITRE II
STRUCTURE DE BDD DISTRIBUÉES STRUCTURE DE BDD DISTRIBUÉES
II.
II.1.1. Fragmentation horizontale primaire (suite) II.
II.1.1. Fragmentation horizontale primaire (suite)

Exp. Remarque:
Remarque:
Soit la relation Aff(idEmp, idPrj, resp, dur) et La meilleure fragmentation est celle qui utilise un ensemble
soit une application qui s’intéresse aux tuples du projet n°5. de prédicats simples Pr complet et minimal.
L’ensemble Pr = {idPrj=5, idPrj≠5} est minimal parce que le
prédicat à l’intérieur est pertinent.
S’il existe une 2ème application qui s’intéresse aux tuples dont
la durée > 12, dans ce cas, l’application accède aux tuples des 2
fragments en même temps, donc Pr n’est pas minimal.

41 42

CHAPITRE II CHAPITRE II
STRUCTURE DE BDD DISTRIBUÉES STRUCTURE DE BDD DISTRIBUÉES
II.
II.1.2. Fragmentation horizontale dérivée II.
II.1.2. Fragmentation horizontale dérivée (suite)
La fragmentation horizontale dérivée d’une relation (R) est Exp.
basée sur des fragments horizontaux d’une autre relation (S) à Dans l’exemple précédent, nous voulons grouper les
condition qu’il y est un lien entre R et S. employés de la relation Emp(idEmp, nomEmp, poste) en
Les nouveaux fragments sont définis par semi-jointure. 2 groupes selon leurs salaires. Un groupe pour ceux qui ont un
salaire inférieur à 30000, et les autres dans le deuxième groupe.
Définition
La semi-
semi-jointure entre deux relations R et S (R ∝ S) permet de On fragmente la relation Sal(poste, salaire)en deux
garder les tuples de R qui ont relation avec des tuples de S. fragments:
Sal1=σsalaire<30000(Sal)
Sal2=σsalaire≥30000(Sal)
43 44
CHAPITRE II CHAPITRE II
STRUCTURE DE BDD DISTRIBUÉES STRUCTURE DE BDD DISTRIBUÉES
II.
II.1.2. Fragmentation horizontale dérivée (suite) II.
II.2. Fragmentation verticale
Exp. (suite) La fragmentation verticale permet de découper une relation R
Les deux fragments contenant les deux groupes de salariés en plusieurs relations. Chaque fragment contient un sous-
sont définis par semi-jointure sur la colonne ‘poste’ comme ensemble d’attributs ainsi que la clé primaire de R.
suit: R1 R2
Emp1 = Emp ∝ Sal1
Emp2 = Emp ∝ Sal2

45 46

CHAPITRE II CHAPITRE II
STRUCTURE DE BDD DISTRIBUÉES STRUCTURE DE BDD DISTRIBUÉES
II.
II.2. Fragmentation verticale (suite) II.
II.2. Fragmentation verticale (suite)
Exp. Exp. (suite)
Soient deux applications qui utilisent la relation La reconstruction de la relation d’origine se fait par la
Emp(idEmp, nomEmp, poste). La première utilise les jointure:
noms des employés, et l’autre utilise les postes des employés. Emp = Emp1 ∞ Emp2
On cherche à fragmenter la relation pour que chaque
application accède seulement au fragment qui l’intéresse.
Pour cela, on utilise la projection:
Emp1 = π[idEmp, nomEmp](Emp)
Emp2 = π[idEmp, poste](Emp)

47 48
CHAPITRE II CHAPITRE II
STRUCTURE DE BDD DISTRIBUÉES STRUCTURE DE BDD DISTRIBUÉES
II.
II.3. Fragmentation hybride II.
II.3. Fragmentation hybride (suite)
La fragmentation hybride est une combinaison des deux Exp. (suite)
fragmentations précédentes. On cherche à fragmenter la relation Emp pour que chaque
Exp. application accède seulement au fragment qui l’intéresse.
Soient trois applications qui utilisent les relations Personne1 = σ(dateNaiss<dateActuelle - 30ans)(Personne)
Emp(idEmp, nomEmp, poste) et Personne2 = σ(dateNaiss≥dateActuelle - 30ans)(Personne)
Personne(id, dateNaiss, adr, tel). Emp1 = π[idEmp, nomEmp] Emp α Personne1
La première utilise les noms des employés ≤ 30ans, la Emp2 = π[idEmp, nomEmp] Emp α Personne2
deuxième utilise les noms des employés > 30ans et l’autre utilise Emp3 = π[idEmp, poste] Emp
les postes des employés. Emp4 = π[idEmp, adr, tel] Emp ∞ Personne
Emp5 = Personne – (Personne α Emp)
49 50

CHAPITRE II CHAPITRE II
STRUCTURE DE BDD DISTRIBUÉES STRUCTURE DE BDD DISTRIBUÉES
III.
III. Allocation de ressources III.
III. Allocation de ressources (suite)
Soit un ensemble de fragments F={F1, F2, …, Fn} distribués Pour assurer l’optimalité, nous devons respecter les deux
sur un ensemble de sites S={S1, S2, …, Sm} et un ensemble de conditions:
requêtes Q={q1, q2, …, qp} utilisant les fragments F situés sur 1. Le coût minimal
les sites S. Les coûts traités dans cette condition sont:
Le problème d’allocation de ressources se résume dans la • Le coût de stockage de chaque fragment Fi sur le site Sj;
recherche d’une distribution optimale des F sur les S.
• Le coût de consultation de Fi localisé sur Sj;
• Le coût de mise à jour de Fi sur tous les sites où il est stocké;
• Le coût de communication.

51 52
CHAPITRE II CHAPITRE II
STRUCTURE DE BDD DISTRIBUÉES STRUCTURE DE BDD DISTRIBUÉES
III.
III. Allocation de ressources (suite) III.
III. Allocation de ressources (suite)
2. La performance Pour simplifier la modélisation de ce problème, nous
Dans cette condition nous essayons de: introduisons quelques définitions sur un fragment Fk.
• Minimiser le temps de réponse; Soit R={r1, r2, …, rm} et U={u1, u2, …, um}
• Maximiser le débit de chaque site. tel que:
ri: le trafic de lecture à partir de Fk généré sur le site Si.
Remarque:
Remarque: ui: le trafic de mise à jour dans Fk généré sur le site Si.
Suite à la complexité du problème, on ne peut pas satisfaire
toutes ces conditions. Les modèles existants essayent de satisfaire
les conditions qui les intéresses.
53 54

CHAPITRE II CHAPITRE II
STRUCTURE DE BDD DISTRIBUÉES STRUCTURE DE BDD DISTRIBUÉES
III.
III. Allocation de ressources (suite) III.
III. Allocation de ressources (suite)
Pour le coût de communication nous définissons: Pour le coût de stockage nous définissions:
0  ⋯ ,   =  ,  , … , 
 = ⋮ ⋮ ⋮ ⋮ ⋮ tel que: di représente le coût de stockage du fragment Fk sur
  ⋯ , 0 le site Si.
0 ′ ⋯ ′, ′
′  = ⋮ ⋮ ⋮ ⋮ ⋮
′ ′ ⋯ ′, 0
Définissons aussi une variable de décision:
1 si le fragment ./ est assigné au site 2
 =
tel que: cij représente le coût de communication pour une 0 sinon
requête de consultation entre les sites Si et Sj.
c'ij représente le coût de communication pour une requête de
mise à jour entre les sites Si et Sj. 55 56
CHAPITRE II CHAPITRE III
STRUCTURE DE BDD DISTRIBUÉES INTÉGRATION DE BASES DE DONNÉES
III.
III. Allocation de ressources (suite)
Pour minimiser le coût d’allocation de ressources du I. Méthodologie de la conception Bottom-Up
fragment Fk qui sera placé sur les sites Sj tel que xj=1, nous II. Correspondance de schémas
allons chercher [ref. 1]: III. Intégration de schémas


min 4 4 5 · ′  +8 · min   + 4 


IV. Planification de schémas
|: ;
; |: ; |: ;

57 58

CHAPITRE III CHAPITRE III


INTÉGRATION DE BASES DE DONNÉES INTÉGRATION DE BASES DE DONNÉES
GCS Global conceptual Schema
I. Méthodologie de la conception Bottom-
Bottom-Up
Dans cette partie nous allons nous intéressés à la conception Générateur
Planification de schémas
Bottom-Up. de schéma

On considère qu’il existe plusieurs bases de données Intégration de schémas


hétérogènes,
hétérogènes et on cherche à les intégrer dans une seule base de
données distribuée. Correspondance de schémas

Le processus d’intégration est divisé en plusieurs étapes:


Local Conceptual
SCLT1 SCLT2 SCLTn
Schemas

Traducteur1 Traducteur2 Traducteurn

BDD1 BDD2 BDDn


59 60
CHAPITRE III CHAPITRE III
INTÉGRATION DE BASES DE DONNÉES INTÉGRATION DE BASES DE DONNÉES
Comme indiqué sur la figure, le processus de génération de I.1. Correspondance de schémas (suite)
schémas est composé de 3 étapes: Nous expliquons la problématique par un exemple.
Exp.
Exp Soit la table:
I.1. Correspondance de schémas Prj (idPrj, nomPrj, designation, budget, ville);
Permet de déterminer les correspondances syntaxiques et Dans cette table, l’attribut budget peut être spécifié en DA
sémantiques entre les éléments traduits. pour les projets réalisés en Algérie, ou en Euros pour les projets
Si le schéma conceptuel global (GCS
GCS)
GCS est défini,
défini les éléments réalisés à l’étranger.
traduits doivent lui correspondre,
correspondre sinon on établi une La correspondance doit spécifier une valeur en fonction de
correspondance entre les schémas conceptuels locaux traduits l’autre en appliquant une fonction de change.
(SCLTi).

61 62

CHAPITRE III CHAPITRE III


INTÉGRATION DE BASES DE DONNÉES INTÉGRATION DE BASES DE DONNÉES
I.1. Correspondance de schémas (suite) I.1. Correspondance de schémas (suite)
Pour établir une correspondance entre deux éléments, on Une correspondance (c) définie (calcule) un élément en
défini ce qui suit: fonction d’un autre soit par égalité (=) s’ils sont similaires, ou
• Une correspondance est définie sous forme d’une règle (r); par une expression.
expression
• Une règle identifie une correspondance (c) entre deux Exp:
Exp:
éléments; Dans l’exemple précédent, nous devons convertir tous les
• Un prédicat (p) indique quand la règle (r) sera appliquée; budget en une seule monnaie (en euro).
• Une valeur de similarité (s) entre les deux éléments. Pour cela, nous devons multiplier le budget des projets
algériens par le taux de change τ:
UPDATE Prj SET budget = budget*τ
WHERE ville IN {‘Alger’, ‘Batna’, …}
63 64
CHAPITRE III CHAPITRE III
INTÉGRATION DE BASES DE DONNÉES INTÉGRATION DE BASES DE DONNÉES
I.1. Correspondance de schémas (suite) I.1. Correspondance de schémas (suite)
Un prédicat (p) est une condition.
condition Quand elle est vrai on La valeur de similarité (s) est une valeur réelle ∈ [0,1]. Elle
applique la règle,
règle sinon la règle sera ignorée. peut être calculée ou spécifiée.
Si les deux éléments comparés sont similaire (s=1), la
Exp: correspondance se fera par égalité (=), sinon la correspondance
Dans l’exemple précédent, le prédicat p doit spécifier quand se fait par modification d’au-moins un des deux éléments.
la règle doit être appliquée, et cela peut se faire en fonction de la Donc une règle est un triplet <c, p, s>
localisation (l’attribut ville) du projet. Exp:
Exp: Dans l’exemple précédent:
< c:(budget = budget*τ), p:(ville IN
{‘Alger’, ‘Batna’, …} ), s:(sim(monaie du
budget, Euro)=0.9) >
65 66

CHAPITRE III CHAPITRE III


INTÉGRATION DE BASES DE DONNÉES INTÉGRATION DE BASES DE DONNÉES
I.2. Intégration de schémas I.3. Planification de schémas
Dans le processus d’intégration de schémas, la présence Ce processus permet de placer les données des bases locales
humaine est indispensable. dans la base globale.
Après la correspondance entre les différents schémas locaux, Le processus de planification de schémas est divisé en deux
la prochaine étape est de créer un schéma global. étapes: création de planification, maintenance de planification.
L’intégration des schémas locaux peut se faire deux à deux,
deux Le processus de création de planification consiste à créer des
en une seule passe,
passe ou … requêtes permettant de placer les données provenant des
schémas locaux dans le schéma global.
Le processus de maintenance de planification permet de
détecter et corriger les incohérences générées par l’évolution du
schéma.
67 68
CHAPITRE III CHAPITRE III
INTÉGRATION DE BASES DE DONNÉES INTÉGRATION DE BASES DE DONNÉES
Exp.
Exp. Personne Exp.
Exp. (suite) Personnel

Patient Personnel Médecin Infirmière Administratif Patient

Hospitalisé Externe Médecin Infirmière Exerce Rattaché Affectation


Prescription

Affectation Spécialité Service


Posologie Convoqué RDV Rattaché Médicament

Médicament Unité Service Hospitalisé


Fournit

Fournit Laboratoire

Laboratoire Schéma conceptuel local 1 69


Schéma conceptuel local 2 70

CHAPITRE III CHAPITRE III


INTÉGRATION DE BASES DE DONNÉES INTÉGRATION DE BASES DE DONNÉES
Exp.
Exp. Personne Exp.
Exp. (suite) Personnel

Patient Personnel Médecin Infirmière Administratif Hospitalisé

Hospitalisé Externe Médecin Infirmière Exerce Rattaché Affectation


Prescription

Affectation Spécialité Service


Prescription RDV Rattaché Médicament
Convoqué
Exerce Intégré
Médicament Service
Unité Fournit

Fournit Spécialité
Laboratoire
Correspondance du Correspondance du
Laboratoire schéma conceptuel local 1 71
schéma conceptuel local 2
72
CHAPITRE III CHAPITRE IV
INTÉGRATION DE BASES DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
Exp.
Exp. Personne

I. Gestion de vues
Patient Personnel Administratif
II. Sécurité de données
III. Contrôle d’intégrité sémantique
Hospitalisé Externe Médecin Infirmière

Prescription RDV Rattaché Affectation

Convoqué Exerce
Médicament Service
Unité
Fournit Spécialité
Intégré

Laboratoire 73 74
Schéma Conceptuel Global

CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
I. Gestion des vues
Parmi les besoins importants dans les DBMS distribuées on Une vue est une relation virtuelle permettant de cacher une
trouve le contrôle de données sémantique.
sémantique partie des données.
I.1. Les vues dans les SGBD centralisés
Ce contrôle de données sémantique inclus la gestion des vues, La syntaxe générale de la commande SQL de création de vue
la sécurité des données et le contrôle d’intégrité sémantique. est:
CREATE VIEW <nom de vue> [(liste d’attributs)]
AS <requête>

75 76
CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
I.1. Les vues dans les SGBD centralisés (suite) I.1. Les vues dans les SGBD centralisés (suite)
tel que: Exp. 1.
(liste d’attributs) est la liste d’attributs de la vue. Pour créer la vue des employés ingénieurs (EmpIng) à partir
<question> une requête SQL pour sélectionner les tuples qui de la relation Emp(idEmp, nomEmp, poste) on utilise:
vont remplir la table virtuelle. CREATE VIEW EmpIng (idEmp, nomEmp)
AS SELECT idEmp, nomEmp
La suppression de la vue se fait par: FROM Emp
DROP VIEW <nom de vue> WHERE poste = ‘Ing’

77 78

CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
I.1. Les vues dans les SGBD centralisés (suite) I.2. Les vues dans les SGBD distribuées
Exp. 2. Le nom et la requête d’une vue sont stockés dans un
Donner les noms des ingénieurs avec les numéros de leurs catalogue.
catalogue
projets. La requête peut être appliquée à des fragments stockés sur
Emp(idEmp, nomEmp, poste) des sites différents.
Aff(idEmp, idPrj, resp, dur)
Problème 1:
CREATE VIEW EmpIng (idEmp, nomEmp) L’évaluation d’une vue dérivée à partir de relations
AS SELECT nomEmp, idPrj distribuées est très couteuse.
couteuse Si plusieurs utilisateurs accèdent à
la vue, cette dernière doit être recalculée pour chacun.
FROM Emp, Aff
WHERE Emp.idEmp = Aff.idEmp 79 80
CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
I.2. Les vues dans les SGBD distribuées (suite) I.2. Les vues dans les SGBD distribuées (suite)

Solution:
Solution: Problème 2:
Stocker la version actuelle de la vue pour éviter de la Si les relations ou les fragments, utilisés dans la génération de
recalculer. Une telle vue est appelée vue matérialisée.
matérialisée la vue, sont mises à jour,
jour le contenu de la vue matérialisée sera
L’accès à une vue matérialisée est plus rapide parce qu’on ne faut.
faut
recalcule pas le contenu de la vue. Le DBMS doit maintenir la vue matérialisée à jour.
L’administrateur doit savoir quand et comment mettre à jour
la vue matérialisée.

81 82

CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
I.2. Les vues dans les SGBD distribuées (suite) I.2. Les vues dans les SGBD distribuées (suite)

Quand mettre à jour la vue matérialisée? Dans le mode différé,


différé la mise à jour de la vue se fait d’une
La mise à jour peut être immédiate ou différée.
différée manière périodique (1 fois par jour, ou par semaine…) ou
Dans le mode immédiat,
immédiat la mise à jour de la vue doit être une d’une manière forcée (par exemple après un certain nombre de
partie d’une transaction de mise à jour des relations utilisées par mises à jours sur les relations utilisées dans la définition de la
la vue. vue).
Avantage:
Avantage La vue est à jours en permanence.
permanence
Inconvénient:
Inconvénient La mise à jour des relations utilisées par la vue
devienne lente.
lente

83 84
CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
I.2. Les vues dans les SGBD distribuées (suite) I.2. Les vues dans les SGBD distribuées (suite)
Comment mettre à jour la vue matérialisée? Comment mettre à jour la vue matérialisée? (suite)
Le plus simple est de recalculer la vue entière.
entière La relation R après application de u contient:
Une solution meilleure est de ne recalculer que la partie (R-R-)∪R+
modifiée.
modifiée Exp.
Soit u la modification appliquée à la relation R. Dans l’exemple précédent,
Et soit R+ contient les tuples à ajouter à R en appliquant u Emp (idEmp, nomEmp, poste)
(ajout de tuples) Aff (idEmp, idPrj, resp, dur)
R- contient les tuples à supprimer de R en appliquant u soit la vue qui donne les noms des employés et leurs
(suppression de tuples) responsabilités:
85 86

CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
I.2. Les vues dans les SGBD distribuées (suite) I.2. Les vues dans les SGBD distribuées (suite)
Exp. (suite) Exp. (suite)
CREATE VIEW ER(nomEmp, resp) ER+ = (SELECT nomEmp, resp
AS SELECT DISTINCT nomEmp, resp FROM Emp, Aff+
FROM Emp, Aff WHERE Emp.idEmp = Aff+.idEmp)
UNION
WHERE Emp.idEmp = Aff.idEmp (SELECT nomEmp, resp
Soit Emp+ l’ensemble des tuples à ajouter à Emp, et soit Aff+ FROM Emp+, Aff
l’ensemble de tuples à ajouter à Aff. WHERE Emp+.idEmp = Aff.idEmp)
Les changements de la vue ER peuvent être calculés comme UNION
suit: (SELECT nomEmp, resp
FROM Emp+, Aff+
87 88
WHERE Emp+.idEmp = Aff+.idEmp)
CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
II.
II. Sécurité des données II.
II.2. Contrôle d’accès
La sécurité des données inclue deux aspects: Protection des Il existe deux approches principales: contrôle d’accès
données et contrôle d’accès.
d’accès discrétionnaire (contrôle d'autorisation), contrôle d’accès multi-
multi-
II.
II.1. Protection des données niveaux.
niveaux
En général, l’approche principale de protection de données II.
II.2.1. Contrôle d’accès discrétionnaire
est le cryptage des données. Cette approche définie des droits d’accès basés sur les
Cet aspect ne concerne pas beaucoup des systèmes de bases utilisateurs.
de données, mais plutôt le domaine de cryptographie. Une autorisation est un triplet <sujet s, type d’opération t,
Nous allons nous concentrer sur le deuxième aspect. définition d’objet o> qui donne le droit au sujet ‘s’ d’établir les
opérations de type ‘t’ sur l’objet ‘o’.

89 90

CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
II.
II.2.1. Contrôle d’accès discrétionnaire (suite) II.
II.2.1. Contrôle d’accès discrétionnaire (suite)
La définition d’un sujet se fait par une paire <user, pass>
pass> ou Seuls les utilisateurs de type ‘administrateur
administrateur’
administrateur peuvent utiliser
public pour tout le monde. les opérations GRANT et REVOKE.
Le type d’opération peut être: SELECT,
SELECT INSERT,
INSERT UPDATE ou Un utilisateur possède tous les droits sur les objets qu’il a
DELETE, REFERENCES, ALTER, INDEX, ALL. ALL créer et peut utiliser les opérations (GRANT, REVOKE) sur ces
Un droit affecté à un sujet peut être: GRANT (accorder) ou objets.
REVOKE (retirer). Un utilisateur qui reçoit les droits sur un objet, peut ensuite
GRANT (operation) ON (objet) TO (sujet) appliquer les opérations (GRANT, REVOKE) sur cet objet.
REVOKE (operation) FROM (object) TO (sujet)

91 92
CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
II.
II.2.1. Contrôle d’accès discrétionnaire (suite) II.
II.2.1. Contrôle d’accès discrétionnaire (suite)
Récursivité:
Récursivité: Exp. Matrice d’autorisations
Soit (A) qui donne un droit de type ‘t’ sur un objet ‘o’ à (B)
qui donne à son tour ce droit à (C). Emp nomEmp Aff
Si (A) retire ce droit à (B), le système DBMS doit retirer ce User1 UPDATE UPDATE UPDATE
droit aussi à (C) d’une manière récursive.
récursive SELECT
User2 SELECT SELECT
Donc le DBMS doit garder l’hiérarchie de distribution des WHERE resp≠’Manager’

droits d’accès. En général, on utilise une matrice d’autorisations,


d’autorisations user3 NONE SELECT NONE

tel que les lignes représentent les sujets, une colonne représente
un objet et une case représente une autorisation <s,t=*,o>

93 94

CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
II.
II.2.2. Contrôle d’accès Multi-
Multi-Niveaux (Mandatory/
Mandatory/Multilevel)
Multilevel) II.
II.2.2. Contrôle d’accès Multi-
Multi-Niveaux (suite)
Cette approche est basée sur la limitation d’accès aux L’accès en lecture et écriture pour un sujet est limité par
données classifiées aux utilisateurs autorisés.
autorisés deux règles:
Cette approche définie des niveaux de sécurité pour les sujets 1. Un sujet U est autorisé à lire un objet O si:
et les données: niveau(U) ≥ niveau(O)
Top Secret (TS) > Secret (S) > 2. Un sujet U est autorisé à écrire un objet O si:
Confidentiel (C) > Non-
Non-Classifié (NC) niveau(U) ≤ niveau(O)
La règle 1 interdit un utilisateur de lire les données qui ont
tel que ‘>
>’ veut dire “plus
plus sécurisé que”.
que un niveau de sécurité supérieur.
La règle 2 interdit un utilisateur d’écrire son objet sécurisé
dans un niveau moins sécurisé.
95 96
CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
II.
II.2.2. Contrôle d’accès Multi-
Multi-Niveaux (suite) II.
II.2.2. Contrôle d’accès Multi-
Multi-Niveaux (suite)
Exp. Soit la relation Prj(idPrj, nomPrj, Exp. (suite) La table prend le niveau le plus bas de ses
designation, budget, ville) avec la définition des données qui est dans notre cas (C)
niveaux de sécurité suivante: Mais un utilisateur de niveau (C) ne peux voir que les tuples

designation
suivants:
NivSec1

NivSec2

NivSec3

NivSec4

NivSec5
nomPrj

budget
idPrj

ville

designation
NivSec1

NivSec2

NivSec3

NivSec4

NivSec5
nomPrj

budget
idPrj

ville
P1 C Prj1 C d1 C 150000 C Batna C
P2 C Prj2 C d2 S 135000 TS Alger S
P3 S Prj3 S d3 S 250000 TS Oran S P1 C Prj1 C d1 C 150000 C Batna C
P2 C Prj2 C null C null C null C
97 98

CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
II.
II.2.3. Contrôle d’accès distribué II.
II.2.3. Contrôle d’accès distribué (suite)
Dans un DBMS distribué on peut grouper les utilisateurs en Le plus simple est de dupliquer les informations des groupes
groupes et leurs définir des niveaux de sécurité.
sécurité. (droits d’accès…) sur tous les sites.
sites Le maintient de toutes ces
Problème 1: informations à jour est très difficile.
difficile
Les utilisateurs d’un groupe peuvent être localisés dans Solution 1:
différents sites;
sites Centraliser les informations des groupes sur un seul nœud et
L’accès à un objet peut être autorisé à plusieurs groupes appliquer des droits d’accès en envoyant une requête à distance
distribués; à ce nœud.
nœud
Les informations sur les niveaux de sécurité des groupes Solution 2:
doivent être stockées quelque part !! Dupliquer les informations d’un groupe sur les sites
contenant des objets utilisés par les membres de ce groupe.
99 100
CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
II.
II.2.3. Contrôle d’accès distribué (suite) II.
II.2.3. Contrôle d’accès distribué (suite)
Problème 2: Problème 2: (suite)
Exp. Soit 2 sites tel que le Site1 possède le niveau de sécurité Ce problème est appelé canal caché (covert
covert channel)
channel pour
(S) et le Site2 avec le niveau (C). accéder à des données non-autorisées.
Site1: Table Notes(idEtd, Module, Note)  niveau (S) Solution:
Solution:
Site2: Table Etudiants(idEtd, nom, prenom)  niveau (C) Pour éviter le problème de canal caché on peut dupliquer
Un utilisateur avec un niveau (S) cherche les noms des une partie de la base pour qu’un site de niveau de sécurité (k k)
étudiants ayant une note de 20 dans le module « BDD ». contient toutes les données nécessaires pour les utilisateurs de ce
Une jointure doit être établie entre les 2 tables, et les niveau.
informations secrètes de la table Notes doivent être envoyées Donc le site de l’utilisateur de niveau (S) doit contenir des
pour réaliser cette jointure. copies des parties des tables (Notes, Etudiants) à utiliser
101 dans la requête de jointure. 102

CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
III.
III. Contrôle d’intégrité sémantique III.
III. Contrôle d’intégrité sémantique (suite)
Exp.
Soit la base de données du premier exemple. La table Emp Problème:
Problème:
contient les employés avec les identifiants de 1 jusqu’à 50, la La base n’est pas cohérente,
cohérente il y a un problème sémantique à
table Prj contient des projets avec les identifiants de 1 jusqu’à cause de l’affectation de l’employé n°100, qui n’existe pas, à un
10. On ajoute un nouveau tuple à la table Aff(idEmp, projet.
idPrj, resp, dur) comme suit:
INSERT INTO Aff VALUES (100, 10, 'Ing', 5)
Le contrôle d’intégrité sémantique assure la cohérence
(consistance) de la base de données en rejetant les mises à jours
qui affectent la cohérence de la base ou activer des actions
spécifiques qui corrigent l’incohérence.
103 104
CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
III.
III. Contrôle d’intégrité sémantique (suite) III.
III.1.1. Spécification des contraintes d’intégrité
Pour assurer le contrôle d’intégrité sémantique nous allons On peut classifier les contraintes d’intégrité en deux types:
voir des solution dans les DBMS centralisés puis dans les DBMS contraintes prédéfinies, contraintes pré-conditionnées.
distribués.
distribués Les contraintes prédéfinies utilisent des mots clés comme:
attribut non-nul, clé unique, clé étrangère, dépendances
III.
III.1. Contrôle d’intégrité sémantique centralisée fonctionnelles.
Ce contrôle est composé de deux parties principales: Exp.
Exp. 1
spécification des contraintes d’intégrité, application de L’identifiant d’un employé ne peut être nul:
l’intégrité. idEmp NOT NULL IN Emp

105 106

CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
III.
III.1.1. Spécification des contraintes d’intégrité (suite) III.
III.1.1. Spécification des contraintes d’intégrité (suite)
Exp.
Exp. 2 Exp.
Exp. 4
La paire <idEmp, idPrj> est une clé unique dans Aff: L’identifiant de l’employé définit fonctionnellement le nom
(idEmp, idPrj) UNIQUE IN Aff de l’employé:
idEmp IN Emp DETERMINES nomEmp
Exp.
Exp. 3
L’identifiant du projet est une clé étrangère dans la table
Aff, càd le projet utilisé dans une affectation doit exister dans
la table Prj:
idPrj IN Aff REFERENCES idPrj IN Prj

107 108
CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
III.
III.1.1. Spécification des contraintes d’intégrité (suite) III.
III.1.1. Spécification des contraintes d’intégrité (suite)
Les contraintes pré-
pré-conditionnées utilisent le mot clé CHECK. Exp.
Exp.
Le budget d’un projet doit être entre 50000 et 100000
On utilise le mot clé CHECK de SQL: ALTER TABLE Prj
ALTER TABLE table_name ADD CONSTRAINT "PRJ_CHK1" CHECK (budget >=
ADD CONSTRAINT “constraint_name” CHECK 50000 AND budget <= 1000000) ENABLE
(condition) ENABLE

109 110

CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
III.
III.1.2. Application de l’intégrité III.
III.1.2. Application de l’intégrité (suite)
Il existe deux méthodes de base permettant de rejeter les * La deuxième méthode est basée sur la prévention des
mises à jour incohérents: incohérences.
* La première méthode est basée sur la détection des Les modifications ne seront pas appliquées que si elles ne
incohérences après l’exécution des mises à jour. causent pas d’incohérences.
L’algorithme qui applique l’intégrité sémantique applique des L’algorithme qui applique l’intégrité sémantique vérifie si les
testes après l’exécution des modifications pour détecter les contraintes d’intégrités seront satisfaites avant d’appliquer les
incohérences, ces testes sont appelés post-
post-testes.
testes modifications. Les testes appliqués sont appelés des pré-
pré-testes.
testes

111 112
CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
III.
III.1.2. Application de l’intégrité (suite) III.
III.1.2. Application de l’intégrité (suite)
Une des méthodes préventives est l’algorithme de Exp.
Exp. (suite)
modification de requêtes.
requêtes Il ajoute des testes à la requête elle- Cette requête sera transformée en ajoutant des pré-testes
même. comme suit:
Exp.
Exp. UPDATE Prj
La requête qui incrémente le budget du projet prj1 de 20%: SET budget = budget*1.2
UPDATE Prj WHERE nomPrj = 'prj1'
SET budget = budget*1.2 AND NEW.BUDGET ≥ 50000
WHERE nomPrj = 'prj1' AND NEW.BUDGET ≤ 100000

113 114

CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
III.
III.2. Contrôle d’intégrité sémantique distribuée III.
III.2.1. Spécification des contraintes d’intégrité distribuée
Le contrôle d’intégrité sémantique distribuée est une Les contraintes peuvent utiliser des données stockées sur
extension du contrôle d’intégrité sémantique centralisée. Il est différents sites.
sites Une telle contrainte doit être stockée de manière
composé de deux parties principales: spécification des à minimiser le coût de l'intégrité.
contraintes d’intégrité distribuée, application de l’intégrité
distribuée. III.
III.2.1.1. Contraintes individuelle
La définition de la contrainte d’intégrité est envoyée aux sites
contenants les fragments de la relation utilisée dans la
contrainte. La contrainte doit être compatible avec la relation
aux niveaux: prédicat et données.

115 116
CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
III.
III.2.1.1. Contraintes individuelle (suite) III.
III.2.1.1. Contraintes individuelle (suite)
• Compatibilité au niveau prédicat • Compatibilité au niveau prédicat (suite)
Une contrainte ‘C’ n’est pas compatible avec un prédicat de Exp.
fragment ‘p’ si ‘C est vrai’ implique que ‘p est toujours faut’ Soit la relation Emp du premier exemple qui est fragmentée
(C  ¬p),p) sinon ‘C’ est compatible avec ‘p’. horizontalement sur trois sites en utilisant les prédicats:
Si on trouve une incompatibilité dans un seul site, la p1: 0 ≤ idEmp < 3, p2: 3 ≤ idEmp ≤ 6, p3: idEmp > 6
contrainte est rejetée globalement.
globalement et soit la contrainte [ C: idEmp < 4 ]
La contrainte ‘C’ n’est pas compatible avec ‘p3’ parce que si C
est vrai implique que p3 est faut.
faut
La contrainte ‘C’ est compatible avec ‘p2’ parce que si C est
vrai n’implique pas toujours que p2 est faut.
faut.
117 118

CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
III.
III.2.1.1. Contraintes individuelle (suite) III.
III.2.1.1. Contraintes individuelle (suite)
• Compatibilité au niveau prédicat (suite) • Compatibilité au niveau données
Exp. (suite) La contrainte est testée avec les instances des fragments des
sites utilisés. Si la contrainte n’est pas satisfaite,
satisfaite elle sera rejetée
C 1 1 0 0 globalement.
globalement
p 1 0 1 0
Cp 1 0 1 1
Si la compatibilité existe aux deux niveaux, la contrainte sera
stockée dans tous les sites utilisés.

119 120
CHAPITRE IV CHAPITRE IV
CONTRÔLE D’ACCÈS ET DE DONNÉES CONTRÔLE D’ACCÈS ET DE DONNÉES
III.
III.2.1.1. Contraintes individuelle (suite) III.
III.2.2. Application de l’intégrité distribuée
• Compatibilité au niveau données (suite) Le problème principale est de décider dans quel site doit-on
Exp. appliquer la contrainte d’intégrité.
Soit la contrainte de l’exemple précèdent: [ C: idEmp < 4 ] La contrainte est appliquée sur les sites contenant les
Et soit les fragments de la table Emp (idEmp, nomEmp, fragments des relations utilisés dans la contrainte.
poste) sur 2 sites comme suit:
idEmp nomEmp poste idEmp nomEmp poste
1 E1 P1 3 E1 P1
2 E2 P2 4 E2 P2

La contrainte ‘C’ est compatible avec le 1er site au niveau


données, et pas avec le 2ème
121 122

Vous aimerez peut-être aussi