Archibd 1
Archibd 1
N. Le Thanh
-1-
I- INTRODUCTION
- Notion de SGBD
- Brève histoire des SGBD
- Objectifs et architectures des SGBDs
-2-
Page 1
Table des matières
-3-
I- INTRODUCTION
- Notion de SGBD
- Brève histoire des SGBD
- Objectifs et architectures des SGBDs
-4-
Page 2
I- INTRODUCTION
1- NOTION DE SGBD
SGBD EXTERNE
INTERNES
SGF
S
G
B MS
D
-5-
I- INTRODUCTION
caractéristiques
• Description de données (nom, format, caractéristiques, ...) indépendant de leur
utilisation (mise à jour, recherche)
• Protection des données contre tout incident ou accident
• Obtention d'une performance acceptable
Architecture globale
• COUCHE SGF : gestion des récipients de données sur mémoires secondaires
• COUCHE INTERNE :
• gestion des données stockées dans les fichiers
• placement, assemblage de ces données
• gestion des liens entre données et des structures
• gestion d'accès aux données
• COUCHE EXTERNE :
• présentation des données aux programmes d'applications et aux d'usagers
terminaux
• langages permettant de contrôle de définition et de manipulation des données
(analyse et interprétation des requêtes des usagers et mise en forme des données
échangées avec le monde extérieur)
-6-
Page 3
I- INTRODUCTION
3ème
génération
Modèle Objet
Langages à Objets
Langages naturels
Modèle Langages déductifs
2ème relationnel SGBDs distribués
génération Langages SGBDs à
séparation assertionnels architecture //
des descriptions basé sur la
de données des logique
programmes
1ère d'applications
génération
-7-
I- INTRODUCTION
• Avant 1960 : développement des SGF qui tendent essentiellement à gérer les
mémoires secondaires comme :
• mémoires partageables • mémoires banalisées
• mémoires directement adressables • mémoires de capacité "infinie"
—> SGF est le composant noyau de SGBD
• Au milieu des années 60 : la naissance de la 1ère génération de SGBD :
• séparation de la description des données des programmes d'application
• langages d'accès navigationnels permettant de se déplacer dans les structures de
type graohe et d'obtenir, un par un, des groupes de données appelées "articles"
• systèmes basés sur des modèles d'accès visant essentiellement à optimiser les
méthodes de déplacement des données sur les mémoires secondaires afin de
réduire les temps d'accès
• Les années 70-80 : l'introduction du modèle relationnel par Codd en 1970 a découlé
une vague de recherche et de développement des SGBDs de deuxième génération :
les SGBDs relationnels :
• enrichissement la couche externe de SGBD afin de simlifier l'accès aux données
pour les utilisateurs externes
• les langages assertionnels basés sur la logique du 1er ordre permettant de spécifier
les données indépendant des méthodes d'accès aux données
• Depuis du milieu des années 80 : plusieurs directions de recherche sur les modèles
et sur les langages pour les SGBDs de la 3ème génération :
• modèles et langages à objets • BDs déductives, langages naturels, ...
-8-
Page 4
I- INTRODUCTION
VUES RÉELLES
D'UTILISATEUR
STRUCTURES
LOGIQUES
CANONIQUES
Volume N
Catalogue
Label N
F1 F2 F3 ... Fn
STRUCTURES
F1 L DE
STOCKAGE
P1 P2 P3 P4 ... Pn
Fonction de distribution f(i) :
0 1 2 3 ... n-1
-9-
I- INTRODUCTION
• INDÉPENDANCE PHYSIQUE
• Les données élémentaires du monde réel sont assemblées pour décrire les entités et
les associations entre entités directement perceptible dans le monde réel : entités,
lien, actions, contraintes d'intégrité, ... Cette structure d'assemblage appartient aux
concepteurs des applications
• La structure de stockage des données, par opposition, appartient au monde des
informaticiens et n'a un sens que dans l'univers du système informatique : article,
fichier, méthodes d'accès, ... Cet assemblage propre au monde informatique, doit être
basé sur des considérations de technique et de performance
• La réalisation de l'indépendance des structures de stockage du monde physique aux
structures de données du monde réel consiste à pouvoir définir l'assemblage des
données élémentaires entre elles dans le système informatique indépendamment de
l'assemblage réalisé dans le monde réel, en tenant compte seulement des critères de
performance et de flexibilité
• INDÉPENDANCE LOGIQUE
• L'indépendance logique permet de définir dynamiquement des structures applicatives
adaptées aux différentes classes d'utilisateurs indépendamment de la structure
logique canonique de données dans SGBD
• Chaque classe d'utilisateur de voir les données comme elle souhaîte
• L'évolution de la vue de chaque classe ne remet pas en cause la structure canonique
et inversement, la modification de la structure canonique ne perturbe pas les vues
d'utilisateurs
- 10 -
Page 5
I- INTRODUCTION
ORGANISATION DE STOCKAGE
Volume N
Catalogue
Label N
F1 F2 F3 ... Fn
F1 L
P1 P2 P3 P4 ... Pn
Fonction de distribution f(i) :
0 1 2 3 ... n-1
- 11 -
I- INTRODUCTION
• Les usagers non-informaticiens peuvent non seulement "voir" les données de leurs
applications mais aussi manipuler ces données. Cette manipulation doit être basée
sur des concepts d'interface non procédurales : l'utilisateur précise seulement les
données qu'il veut chercher et manipuler mais non comment doit faire système pour
accéder à ces données
• Pour pouvoir réaliser ces interfaces, les SGBDs doivent être disposés des moyens
pour contruire des chemins d'accès efficaces aux données demandées. Ces moyens
sont basés d'une part sur des modèles logiques de données, et d'autre part, sur une
organisation spécifique, appelée niveau de chemins d'accès logiques, qui fait le pont
entre un modèle logique de données et les organisations de stockages de données
• D'un autre côté, pour les informaticiens avertis, voire des programmeurs-systèmes,
connaissant la structure de stockage des données, il doit être possible de fournir des
langages de manipulation de données très efficaces permettant d'accès rapidement
aux données le long des chemins d'accès définis dans la structure de stockage. Ces
langages doivent être utilisables à partir de programmes classiques écrits en
assembleur ou en langages de haut niveau
- 12 -
Page 6
I- INTRODUCTION
SGBD :
Contrôle
de Organisation
CONTRAINTES
cohérence de stockage
DU
et de non- des
MONDE RÉEL
redondance données
des
"Tous les salaires doivent être données
suppérieurs au SMICA"
- 13 -
I- INTRODUCTION
• Dans le systèmes classiques à fichiers non intégrés, chaque application possède ses
données propres. Ceci conduit généralement à de nombreuses duplications de
données avec une perte de place en mémoire secondaire associée. En outre, il crée la
difficulté pour la saisie et la maintenance de données. Dans l'approche de Bases de
données, les données sont partagées entre plusieurs applications. Les fichiers plus
ou moins redondants seront intégés dans un seul. Les SGBD doit veiller à la non
duplication physique des données afin d'éviter les stockages et mise à jours multiples
• Les données dans un SGBD sont par principe partageables entre plusieurs
applications, voire plusieurs utilisateurs. La manipulation en simultanément des
mêmes données par plusieurs utilisateurs peuvent introduire des erreurs et des
incohérences sur les données. Le SGBD doit avoir des dispositifs adéquats
permettant de gérer simultanémént plusieurs d'accès aux données des utilisateurs
différents en tenant compte la cohérence et la performance d'accès
- 14 -
Page 7
I- INTRODUCTION
Administration de données
Définition et mise à jour de
structures de données
Contrôle d'accès
Définition des droits
Resistance aux pannes
ORGANISATION DE STOCKAGE
Volume N
Catalogue
Label N
F1 F2 F3 ... Fn
F1 L
P1 P2 P3 P4 ... Pn
Fonction de distribution f(i) :
0 1 2 3 ... n-1
- 15 -
I- INTRODUCTION
• Des fonctions essentielles des SGBDs sont la définition des structures des données
et le suivi de leurs évolutions. Ces fonctions sont appelées administration des
données. Afin de permettre un contrôle efficace des données, de résoudre les confits
entre divers points de vue pas toujour cihérents, de pouvoir optimiser les accès aux
données
--> Il est essentiel de répartir ces fonctions entre les mains d'un petit groupe de
personnes hautement qualifiées.
L'administration des données est ainsi souvent centraliée
• Les données dans les Bases de données doivent être protégées contre les accès non
autorisés ou mal intentionnés. Il doit exister des mécanismes adéquats pour
autoriser, contrôler ou enlever les droits d'accès de n'importe quel usager à tout
ensemble de données. Il est nécessaire que les SGBDs disposent des outils
permettant de résister aux pannes logiques ou physiques
- 16 -
Page 8
I- INTRODUCTION
MODELE DE DONNÉES
TYPES CONTRAINTES
D'OBJETS D'INTÉGRITÉ
Occurrences d'objets
f1 f2 f3 fn Niveau
interne
- 17 -
I- INTRODUCTION
Page 9
I- INTRODUCTION
Niveau
SCHEMAS D'USAGER EXTERNES externe
A
D
M CORRESPONDANCE E/C
I
N
I
Niveau
S SCHÉMA CONCEPTUEL DE DONNÉES
conceptuel
T
R
A
T CORRESPONDANCE C/I
I
O
N SCHÉMA INTERNE DE DONNÉES
f1 f2 f3 fn Niveau
interne
- 19 -
I- INTRODUCTION
Page 10
I- INTRODUCTION
- 21 -
I- INTRODUCTION
- 22 -
Page 11
I- INTRODUCTION
- 23 -
I- INTRODUCTION
Zonne de
travail
SOUS
SCHÉMA
… Zonne de
travail
SOUS
SCHÉMA
(externe) (externe)
T
A
NOYAU M
SGBD P
O SCHÉMA
N
S (conceptuel)
SYSTÈME
D'EXPLOITATION
SCHÉMA DE
STOCKAGE
BASE (interne)
- 24 -
Page 12
I- INTRODUCTION
- 25 -
I- INTRODUCTION
1 RELATIONNEL D'ACCÈS
(conceptuel) (interne)
vue
n
DSC RDS DBSS
ARCHITECHTURE DU SQL/DS
(SYSTEM R) Base
- 26 -
Page 13
I- INTRODUCTION
- 27 -
I- INTRODUCTION
user n ARCHITECHTURE DU
SYSTÈME INGRES Base
- 28 -
Page 14
I- INTRODUCTION
- 29 -
I- INTRODUCTION
NOYAU Processus
DU de recherche 1 Base
SGBD
Processeur de
Communication ...
Schéma Processus
Relationnel de recherche n Base
Machine BD
Gestion des
communication Architecture Type
Programmes
usagers
- 30 -
Page 15
I- INTRODUCTION
- La gestion des vues, de l'intégrité et de la sécurité : Une partie sur les machines
hôtes, une partie sur la machine BD
- 31 -
I- INTRODUCTION
NOYAU Mémoire
ET VUES tampon
(8086) (1 MO)
iDBP
de l'INTEL
Multibus
Base
Contrôleur de Contrôleur de
communication disques
Base
- 32 -
Page 16
I- INTRODUCTION
- 33 -
I- INTRODUCTION
Outils
d'Aministration
Processeurs Vues et
des interfaces
schémas usagers
vers une
Achitecture de référence Processeurs
Noyau Base
- 34 -
Page 17
II- MODÈLE RELATIONNEL
ET SES LANGAGES
- 35 -
• ATTRIBUT (COLONNE) : Rôle d'un domaine dans une relation (nom unique dans une
relation)
Exemple: Voiture (NV : VNI,
Marque : VNOM,
Type : VNOM,
Puissance : VPF,
Couleur : VCOULEUR)
- 36 -
Page 18
II- MODÈLE RELATIONNEL
ET SES LANGAGES
- 37 -
• CLÉ PRIMAIRE :
L'attribut ou l'ensemble d'attribut dont chaque valeur détermine,
d'une manière unique, le tuple où elle appartient
• DOMAINE PRIMAIRE :
Tout domaine sur lequel est définie une clé primaire mono-attribut
• CLE ÉTRANGÈRE :
Tout attribut non clé défini sur un domaine primaire
• CONTRAINTE DE RELATION :
- 38 -
Page 19
II- MODÈLE RELATIONNEL
ET SES LANGAGES
• CONTRAINTE DE DOMAINE/ATRIBUT
- 39 -
2- ALGÈBRE RELATIONNELLE
2.1- OPÉRATIONS ENSEMBLISTES
• UNION
L'union de deux relations R et S unicompatibles (de même schéma) est une relation
U = R ∪ S de même schéma contenant l'ensemble des tuples appartenant à R ou S ou
aux deux relations
• DIFFÉRENCE
La différence de relation R par S (R - S) de même schéma est une relation D = R - S de
même schéma contenant les tuples appartenant à R et n'appartenant pas à S
• INTERSECTION
L'intersection de deux relations R et S de même schéma est une relation I = R ∩ S de
mêm schéma contenant l'ensemble des tuples appartenant aux deux relations
( remarque : I = R - (R - S) = S - (S - R) )
• PRODUIT CARTESIEN
Le produit cartésien de deux relations (de schéma quelconque) R et S est une relation
P = R x S, ayant pour attributs la concarténation de ceux de R et S et dont les tuples sont
toutes les concarténations d'un tuple de R à un tuple de S.
- 40 -
Page 20
II- MODÈLE RELATIONNEL
ET SES LANGAGES
2- ALGÈBRE RELATIONNELLE
2.2- OPÉRATIONS RELATIONNELLES
• PROJECTION
La projection d'une relation R de schéma R(A1, A2, ..., An) sur les attributs Ai1, Ai2, .., Aip
(avec ij ° ik et p < n) est une relation R'(Ai1, Ai2, .., Aip) = Proj (R / (Ai1, Ai2, ..Aip)) dont
les tuples sont obtenus par élimination des valeurs des attributs de R n'appartenant
pas à R' et par suppession des tuples en double
• SÉLECTION
La sélection de la relation R par une qualification Q est une relation R' = Sel (R /Q) de
même schéma, dont les tuples sont ceux de R satisfaisant la qualification Q
• JOINTURE
La jointure de deux relations R et S selon une qualification Q quelconque est une relation
R' de même schéma que celui du produit cartésien de R et S, notée R' = R x S (Q),
contenant les tuples de (R x S) satisfaisant la qualification Q
Cas particuliers : équi-jointure, jointure naturelle, autojointure
• DIVISION
La division de la relation R de schéma R(A1, A2, ..., An) par la sous-relations S de schéma
S(Ap+1, .., An) est une relation Q de schéma Q(A1, .., Ap) formée de tous les tuples
qui concaténés à chacun des tuples de S donne toujours un tuple de R
- 41 -
• DÉCOMPOSITION
Une décomposition de la relation R de schéma R(A1, A2, .., An) est
une remplacement de la relation R par une collection de
relations R1, R2, ...Rm obtenues par des projections de R et
telles que la jointure naturel R1 ⊗ R2 ⊗ .. ⊗ Rm est
une relation ayant le même schéma que R
- 42 -
Page 21
II- MODÈLE RELATIONNEL
ET SES LANGAGES
• DÉPENDANCE FONCTIONNELLE
Soient R(A1, A2, .., An) une relation et X, Y des sous-ensembles d'attributs de R. On dit
que X détermine Y ou Y dépend fonctionnelement de X, et notée X Æ Y, si pour tout
couple de tuples de R, si t1.X = t2.X on a aussi t1.Y = t2.Y
• PROPRIÉTÉS
Réflexivité : Y⊆X ⇒ X→Y
Augmentation : X→Y ⇒ XZ → YZ
Transitivité : X → Y et Y → Z ⇒ X→Z
Union : X → Y et X → Z ⇒ X → YZ
Pseudo-transitivité : X → Y et WY → Z ⇒ WX → Z
Décomposition : X → Y et Z ⊆ Y ⇒ X→Z
- 43 -
• FERMETURE TRANSITIVE
Soit F est un ensemble de dépendances fonctionnelles élémentaires sur un ensemble
d'attributs. On appelle la fermeture transitive de F, notée F+, est l'union de F avec
l'ensemble de toutes les dépendances engendrées de F par la transitivité
• COUVERTURE MINIMALE
Soit F est un ensemble de dépendances fonctionnelles élémentaires sur
un ensemble d'attributs E. On appelle F la couverture minimale si et
seulement si les deux propriétés suivantes sont vérifiées :
1) aucune dépendance dans F n'est redondant (F-f ° F)
2) Toute dépendance élémentaire sur E est dans F+
- 44 -
Page 22
II- MODÈLE RELATIONNEL
ET SES LANGAGES
• 1ère FORME NORMALE : Une relation est en première forme normale si et seulement
si tout attribut contient une valeur atomique
• 2ème FORME NORMALE : Une relation est en deuxième forme normale si et seulement
si elle est en 1ère forme normale et tout attribut n'appartenant pas à une clé ne dépend
pas que d'une partie de cette clé
• 3ème FORME NORMALE : Une relation est en troisième forme normale si et seulement
si elle est en 2ère forme normale et tout attribut n'appartenant pas à une clé ne dépend
pas d'un attribut non clé
- 45 -
- 46 -
Page 23
II- MODÈLE RELATIONNEL
ET SES LANGAGES
DÉPENDANCE MULTIVALUÉE
Soient R(A1, A2, .., An) une relation et X ey Y des sous ensembles d'attributs de R. On dit
que X →→ Y est multidétermine Y ou il y a une dépendance multivaluée de Y sur X si,
étant données des autres attributs Z = R - X - Y de la relation R
(X →→ Y) ⇔ {(x,y,z) et (x,y',z') ∈ R (x,y',z) et (x,y,z') ∈ R}
PROPRIÉTÉS
1) Complémentation : (X →→ Y) ¼ (X →→ R - Y - X)
2) Augmentation : (X →→ Y) et (V ⊆ W) ⇒ (XW →→ YV)
3) Transitivité : (X →→ Y) et (Y →→ Z) ⇒ (X →→ Z - Y)
4) Union : (X →→ Y) et (Y →→ Z) ⇒ (X →→ YZ)
- 47 -
NE →→ COURS NE →→ SPORT
- 48 -
Page 24
II- MODÈLE RELATIONNEL
ET SES LANGAGES
DÉPENDANCE DE JOINTURE
Soient R(A1, A2, .., An) une relation et X1, X2, .., Xm des sous ensembles d'attributs de R.
On dit qu'il existe une dépendance de jointure *[ X1, X2, .., Xm] si et seulement si R est la
jointure de ses projections sur X1, X2, .., Xm : R = R[X1] ⊗ R[X2] ⊗ .. ⊗ R[Xm]
CINQUIÈME FORME NORMALE
Un relation R est en forme normale si et seulement si toute dépendance de jointure est
impliqué par les clés candidates de R
EXEMPLE : Dépendances de jointure entre
(BUVEUR, CRU), (BUVEUR, PRODUCTEUR) et (CRU, PRODUCTEUR)
- 49 -
1e NF
2e NF
3e NF
BCNF
4e NF
5e NF
- 50 -
Page 25
II- MODÈLE RELATIONNEL
ET SES LANGAGES
4- LES LANGAGES
4.1- SQL
SELECT INSERT
FROM INTO
WHERE VALUES
GROUP BY UPDATE
HAVING SET
ORDER BY DELETE
WHERE
- 51 -
4- LES LANGAGES
4.2- QUEL
REPLACE
WHERE
DELETE
WHERE
- 52 -
Page 26
II- MODÈLE RELATIONNEL
ET SES LANGAGES
4- LES LANGAGES
4.3- QBE
- 53 -
4- LES LANGAGES
4.4- APPROCHES D'UTILISATION DEPUIS LES LANGAGES HÔTE
INTÉGRATION EXTENSION
Etendre le langage hôte par :
C
SQL
- par l'introduction des types spécifique (relation, clé,...)
SQL
- par la possibilité de définir des variables de type
Précompilation relation
- 54 -
Page 27
III- PERFORMANCES ET
STRUCTURES PHYSIQUES
- Introduction
- Quelques méthodes d'accès sélectifs
- 55 -
III- PERFORMANCES ET
STRUCTURES PHYSIQUES
1- INTRODUCTION
• Les critères d'accès aux données sont des critères sémantiques (accès par contenu)
• Par conséquent, l'organisation des chemins d'accès aux données doit être assurée
par l'utilisateur de la base de données
• Tout SGBD dispose des moyens pour aider les utilisateurs à organiser les chemins
d'accès aux données
- 56 -
Page 28
III- PERFORMANCES ET
STRUCTURES PHYSIQUES
1- INTRODUCTION
- les chemins d'accès sont intégrés dans des structures spécifiques de données (à
priori) qui favorisent l'accès rapide (CLUSTER, ...)
- intérêts : + réduction en général l'espace de stockage
+ mécanisme simple
- inconvenient : + structure figée, coût élevé si changement
+ dépendence physique
- les chemins d'accès sont indépendantes (pospriori) de structures de données qui sont
des structures favorisant l'accès rapide et contenant les pointeurs vers les données
(INDEX)
- intérêts : + structure dynamique et évolutive
+ sécurité (indépendance physique)
- inconvenients : +coût de stockage et de maintenance élevé
- 57 -
III- PERFORMANCES ET
STRUCTURES PHYSIQUES
• CLÉ D'ARTICLE
Identificateur d'un article permettant de sélectionner un article unique dans un fichier
Programmes
d'application
• ORGANISATION RELATIVE
i = valeur de la clé
l=longeur d'un article
AR= adresse relative
AR = l x i
Volume N
Catalogue
Label N
F1 F2 F3 ... Fn
F1 l
a1 a2 a3 a4 ... an
Clé i :
0 1 2 3 ... n-1
- 58 -
Page 29
III- PERFORMANCES ET
STRUCTURES PHYSIQUES
• Les articles doivent être de même longueur l. Dans le cas contraire, on prend la taille
maximale d'un article comme longueur
- 59 -
III- PERFORMANCES ET
STRUCTURES PHYSIQUES
f = fonction de répartition
i = valeur de la clé
L=longeur d'un paquet
ARP= adresse relative du paquet
ARP = f(i) x L
Volume N
Catalogue
Label N
F1 F2 F3 ... Fn
F1 L
P1 P2 P3 P4 ... Pn
Fonction de distribution f(i) :
0 1 2 3 ... n-1
- 60 -
Page 30
III- PERFORMANCES ET
STRUCTURES PHYSIQUES
- 61 -
III- PERFORMANCES ET
STRUCTURES PHYSIQUES
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28
ADRESSES RELATIVES INDEX
•INDEX HIÉRARCHISÉ
Un index à deux niveaux est un index trié divisé en paquets, possédant lui-même un
index dont la clé d'accès à chaque paquet est la plus grande du paquet. Un index à n
niveaux est un indes hiérarchisé à (n-1) niveaux possédant lui-même un index à un
niveau
24 40 Niveau 3
7 24 40 54 Niveau 2
2 3 5 7 9 14 20 24 25 30 40 45 50 54 Niveau 1
- 62 -
Page 31
III- PERFORMANCES ET
STRUCTURES PHYSIQUES
III- PERFORMANCES ET
STRUCTURES PHYSIQUES
l = 1 + logm+1((N+1)/2)
un B-tree
7 19 de degré 1 40 54
2 6 9 18 20 22 25 35 45 50 55 60
- 64 -
Page 32
III- PERFORMANCES ET
STRUCTURES PHYSIQUES
- 65 -
III- PERFORMANCES ET
STRUCTURES PHYSIQUES
- l'arbre balancé est utilisé pour le fichier et index : les clés d'accès et les articles sont
dans le même B-tree. Les clés sont dans les noeuds intermédiaires et les articles
dans les noeuds feuilles (VSAM de l'IBM)
- 66 -
Page 33
III- PERFORMANCES ET
STRUCTURES PHYSIQUES
24
7 20 40 54 Fichier d'index
2 7 9 20 21 24 25 40 45 54 56 57
9 21 2 40 7 20 25 24 45 57 54 56 Fichier d'articles
- 67 -
III- PERFORMANCES ET
STRUCTURES PHYSIQUES
- 68 -
Page 34
III- PERFORMANCES ET
STRUCTURES PHYSIQUES
- 69 -
III- PERFORMANCES ET
STRUCTURES PHYSIQUES
• les lignes sont regroupées suivant une même collonne dans un même bloc physique
[Département]
1 d1 21 92 paris
[Employé]
1 j 20 c1 21 90 20 2 1
2 a 25 c3 1 91 7 0 1
5 f 37 c2 1 87 8 0 1
- 70 -
Page 35
IV- CONTRÔLE D'ACCÈS CONCURRENTS
- Concepts de base
- Exécutions sans conflit et sérialisables
- Contrôle d'exécution sérialisable : estampilles
- Contrôle d'exécution sérialisable : verrouillage à deux phases
- Contrôle d'exécution sérialisable : autres algorithmes
- 71 -
1- CONCEPTS DE BASE
1.1- Notion de cohérence
- 72 -
Page 36
IV- CONTRÔLE D'ACCÈS CONCURRENTS
1- CONCEPTS DE BASE
1.2- Concept de transaction
• PROPRIÉTÉS :
- Une transaction est une unité logique atomique de traitement qui est soit
complètement exécutée soit complètement abandonée
- Si une transaction ne va pas à son terme pour une raison ou pour une autre, la base
de données est restaurée dans l'état où elle se trouvait avant que la transaction ne
démarre
- 73 -
1- CONCEPTS DE BASE
1.2- Concept de transaction
(2) lire C1
(3) C1 <— C1 - X
(4) écrire C1
(5) lire C2
(6) C1 <— C1 + X
(7) écrire C2
(8) fin transaction
Etat cohérent après
- 74 -
Page 37
IV- CONTRÔLE D'ACCÈS CONCURRENTS
1- CONCEPTS DE BASE
1.3- Vie d'une transaction
• UN ASSINSSINAT
Un évenement extérieur vient interrrompre l'exécution de la transaction de façon
irrémédiable. Cet arrêt de la vie d'une transaction peut provenir soit d'une panne soit
d'une action délibérée de la part du SGBD qui décide de supprimer telle ou telle
transaction
• UN SUICIDE
Aucours de son exécution, la transaction détecte certaines conditions qui font que la
poursuite de son exécution s'avère impossible. Elle peut, dans ce cas, décider de se
supprimer en sexécutant une instruction d'annulation
- 75 -
1- CONCEPTS DE BASE
1.4- Problèmes de concurrence d'accès
• EXEMPLE ILLUSTRE
Soient T1 et T2 deux transactions qui s'intéressent à un même objet A. Etant donnée
"lire" et écrire deux seules opérations possibles sur A, nous avons 4 cas possibles
- 76 -
Page 38
IV- CONTRÔLE D'ACCÈS CONCURRENTS
1- CONCEPTS DE BASE
1.4- Problèmes de concurrence d'accès
temps T1 T2 A
t1 lire A - A = 10
• Lecture-Ecriture : t2 A:=A+20 lire A
lectures non reproductives : t3 A:=A+10 -
T1 modifie la valeur de A entre t4 écrire A - A=30
deux lectures de T2 t5 - -
t6 - lire A
- 77 -
• GRANULE : On appelle granule l'unité de base de données dont l'accès est contrôlé
individuellement par un contrôleur
• OPÉRATION : Une opération est une suite d'actions élémentaires accomplissant une
fonction sur un granule en respectant sa cohérence interne
- 78 -
Page 39
IV- CONTRÔLE D'ACCÈS CONCURRENTS
• PROPRIÉTÉ
Une succession est une exécution sans perte d'opératons ni inconsistances
- 80 -
Page 40
IV- CONTRÔLE D'ACCÈS CONCURRENTS
• PROPRIÉTÉ : Deux opérations travaillant sur deux granules différents sont toujours
compatibles
• Note : En général, le résultat de <O1, O2> peut être différent de
celui de <O2, O1>
• Remarque
Il existe des opérations compatibles mais non permutables et inversement
- 81 -
• EXEMPLE :
O11- Lire A → a1 O21- Lire A → a2
a1 + 1 → a1 a2 * 2 → a2
Print a1 Ecrire a2 → A
- 82 -
Page 41
IV- CONTRÔLE D'ACCÈS CONCURRENTS
• TRANSFORMATIONS DE BASE
- Séparation d'opérations : La séparation d'opérations consiste à isoler des couples
des opérations compatibles dans une éxécution et de remplacer chaque couple E(Oi,
Oj) par la séquence donnant le même résultat : soit <Oi, Oj> soit <Oj, Oi>
- Permutation d'opérations : La permutation d'opérations consiste à isoler les couples
des opérations permutables et de changer l'ordre d'exécution des opérations dans
un même couple
• PROPRIÉTÉ
Les transformations de base : sélection d'opérations et permution d'opérations
conservent le résultat d'une exécution
- 83 -
- 84 -
Page 42
IV- CONTRÔLE D'ACCÈS CONCURRENTS
• EXEMPLE
Sérialisable :
T1: a1 + 1 Æ a1
T1
T2: a2 * 2 Æ a2
T1: b1 + 1 Æ b1 Non sérialisable :
T2: b1 * 2 Æ b2 T2 T1: a1 + 1 Æ a1
T1
T2: a2 * 2 Æ a2
T2: b1 * 2 Æ b2 T2
T1: b1 + 1 Æ b1
- 85 -
• ESTAMPILLE DE TRANSACTION
L'estampille d'une transaction est une valeur numérique affectée à la transaction au
moment ce son lancement. Ce numéro est une référence unique pendant la vie de la
transaction permettant d'ordonner cette transaction par rapport aux autres
transactions
• ESTAMPILLE DE GRANULE
L'estampille d'un granule est une valeur numérique associée à ce granule
mémorisant l'estampille de la dernière transaction ayant opéré sur ce granule
- 86 -
Page 43
IV- CONTRÔLE D'ACCÈS CONCURRENTS
• PRINCIPE
- Cet algorithme consiste à vérifier que les accès aux granules par les transactions
s'effectuent bien dans l'ordre affecté au lancement et répéré par les estampilles de
transactions
- Si deux transactions Ti d'estampille i et Tj d'estampille j avec i inférieur à j opèrent sur
un même granule, le contrôleur vérifie si Ti précéde Tj sur ce granule. Dans le cas
contraire, le contrôleur provoque la reprise d'une des deux transactions
• ALGORITHME
Procédure LIRE(Ti, g); Procédure ECRIRE(Ti, g);
Si (E(g) Š i) alors Si (E(g) Š i) alors
"exécuter la lecture"; "exécuter l'écriture";
E(g) = i; E(g) = i;
Sinon ABORT; Sinon ABORT;
finsi; finsi;
Fin LIRE; Fin ECRIRE;
- 87 -
- L'algorithme partiel consiste à vérifier que les séquences des opérations non
permutables s'effectuent bien dans l'ordre des estampilles affectées au lancement
des transactions
- Si une transaction Ti demande une lecture sur un granulle déjà demandé en écriture
par une transaction Tj, alors i doit être supérieur à j
- Si une transaction Ti demande une écriture sur un granulle déjà demandé en écriture
par une transaction Tj et en lecture par une transaction Tk, alors i doit être supérieur
à j et à k
- 88 -
Page 44
IV- CONTRÔLE D'ACCÈS CONCURRENTS
• PRINCIPE
- Pour chaque granule g, le système mantient :
- un ensemble d'estampilles écriture {EEi(g)} avac les valeurs associées {Vi(g)}
- un ensemble d'estampille lecture {ELi(g)}
- L'algorithme partiel multi-version consiste à éviter la reprise de transaction en lecture
de granulle.
- Si Ti demande une lecture sur g, il suffit de rechercher la version de valeur écrite par
une transaction Tj immédiatement inférieure à i. Ainsi Ti précédera toutes les
transactions d'estampilles supérieures écrivant sur le granule g, et suivra celle
d'estampilles inférieures. Ti est correctement séquencée.
- Si une transaction Ti demande une écriture sur g, deux politiques sont possibles :
- insérer la valeur écrire par Ti dans la liste des versions juste après celle d'estampille
immédiatement inférieure, soit Vj(g). Ensuite reprendre la transaction Tk (k > i) ayant
lu la valeur Vj(g) si elle exite
- inserer la valeur écrire par Ti dans la liste des versions juste après celle d'estampille
immédiatement inférieure, soit Vj(g), seulement dans le cas où Vj(g) n'est pas lue par
une autre transaction Tk (k > i). Dans le cas contraire, reprendre Ti
- 90 -
Page 45
IV- CONTRÔLE D'ACCÈS CONCURRENTS
• ALGORITHME
Procédure LIRE(Ti, g);
j := "numéro de la dernière version de g" ;
Tant que (EEj(g) > i) faire j := j - 1; fin-tant-que;
"exécuter la lecture de la version j de g";
ELj(g) = MAX(ELj(g), i);
Fin LIRE;
Procédure ECRIRE(Ti, g);
j := "numéro de la dernière version de g" ;
Tant que (EEj(g) > i) faire j := j - 1; fin-tant-que;
Si (ELj(g) Š i) alors
"exécuter l'écriture en inserant une version j+1 de g";
EEj+1(g) = i;
Sinon ABORT; finsi;
Fin ECRIRE;
- 91 -
1 1 5 7 8 8 10 10
- 92 -
Page 46
IV- CONTRÔLE D'ACCÈS CONCURRENTS
- 93 -
• DESCRIPTION
- 94 -
Page 47
IV- CONTRÔLE D'ACCÈS CONCURRENTS
m1
- De manière simulaire, on peut présenter le mode M m2
demandé lors de l'exécution d'une action LOCK (g,M) M = .
sur le granule g, par un vecteur de bits : mk
où : mj = 1 si le mode Mj
est demandé, et 0 sinon
- 95 -
M ⊂ ¬ ( ¬C * A(g,k))
k°i
- 96 -
Page 48
IV- CONTRÔLE D'ACCÈS CONCURRENTS
- A(g,k) est un vecteur de bits dont le bit j est à 1 si et seulement si le mode Mj est
en cours d'exécution sur g par la transaction k autre que Ti. ¬C est le complément de
la matrice compatibilité.
- On a donc:
¬C * A(g,k) est un vecteur de bits dont le bit j est à 1 si et seulement si le mode Mj
est incompatible avec un mode en cours d'exécution sur le granule g par une
transaction autre que Ti.
- Finalement, ¬(¬C * A(g,k)) est donc un vecteur de bits représentant tous les modes
d'opérations compatibles avec les modes en cours d'exécution sur le granule g par
une transaction autre que Ti. Tout vecteur inclus dans ce dernier correspond donc à
des modes compatibles avec ceux en cours d'exécution sur g par une transaction
autre que Ti. (CQFD)
- 97 -
- 98 -
Page 49
IV- CONTRÔLE D'ACCÈS CONCURRENTS
Nombre
de granules
verrouillés
• THÉORÈME : DE SÉRIALISABILITE
Toute exécution complète d'un ensemble de transaction deux-phases est sérialisable
- 99 -
- 100 -
Page 50
IV- CONTRÔLE D'ACCÈS CONCURRENTS
R1- Toute transaction doit exécuter LOCK avec le(s) mode(e) d'opération correct(s) et le
granule choisi avant d'exécuter( une opération sur ce granule;
R2- Toute transaction doit exécuter UNLOCK sur le granule choisi plus ou moins
longtemps après l'exécution de l'opération;
R3- Toute transaction ne peut exécuter LOCK après avoir exécuté UNLOCK
- 101 -
• INTERBLOCKAGE (Deadlock)
Le verrou mortel ou interblocage est la situation à laquelle on aboutit lorsque des
granules ont été verrouillés dans un ordre tel qu'un groupe de transactions vérifie les
deux propriétés suivantes :
1- Chaque transaction du groupe est blocquée en attente d'un granule;
2- L'exécution supposée de toutes les transactions n'appartenant pas au groupe ne
permet pas de débloquer une des transactions du groupe
T1 T2
- 102 -
Page 51
IV- CONTRÔLE D'ACCÈS CONCURRENTS
G1
- 103 -
- 104 -
Page 52
IV- CONTRÔLE D'ACCÈS CONCURRENTS
insertion
Consultation
Mise à jour
insertion
Consultation
Graphe des attentes
T2 Allocation Attente
G1 G2
"attend"
G1 Graphe d'allocation
T1 T3
"attend" G2
- 105 -
T1 T2 Ti ... Tn
G G G G
T0
- 106 -
Page 53
IV- CONTRÔLE D'ACCÈS CONCURRENTS
- E est une exécution valable mais le résultat de T1 est une liste de 3 nom alors que le
nombre de passagers est 4. Satre est un "fantôme" dans cette exemple
- 107 -
- 108 -
Page 54
IV- CONTRÔLE D'ACCÈS CONCURRENTS
2) recaculer les N(k) sur le graphe G réduit : en comptant les demandes qui peuvent
être satisfaites après la réduction et en décrémentant N(k) chaque fois que l'on
compte une demande de transaction Tk.
Page 55
IV- CONTRÔLE D'ACCÈS CONCURRENTS
• PRINCIPES
- contrôler que les accès conflictuels aux granules s'effectuent bien dans l'ordre ainsi
obtenu
- 111 -
Page 56
IV- CONTRÔLE D'ACCÈS CONCURRENTS
- d'assurer que l'enregistrement des écritures est effectué dans l'odre de certification des
transactions; les précédences WRITE/READ respectent donc l'ordre de certification
des transaction
- d'assurer qu'une transaction ne peut lire les écritures d'une autre transaction que si la
transaction écrivant a été certifiée et la transaction lisant ne l'a pas été, ceci par
définition de CERTIFIER ; les précédences WRITE/READ respectent donc également
l'ordre de certification des transactions
- d'assurer qu'une transaction certifiée avec succès ne peut avoir lu une entité ensuite
écrite par une transaction certifiée avant elle ; les précédences WRITE/READ
respectent donc également l'ordre de certification des transactions
- Finalement , toutes les opérations non permutables sont donc exécutées sur une
même entité dans l'ordre de certification des transactions. Ceci assure l'absence de
circuits dans le graphe de précédences et la correction de l'algorithme
- 113 -
- coût élévé en taille du graphe (une transaction ne peut pas en être retirée aussitôt
après la fin de da terminaison)
- 114 -
Page 57