Documente Academic
Documente Profesional
Documente Cultură
et SGBD
Conception
Structure
Organisation
Michel Tuffery
Bases de Données
Système de Gestion
de Bases de Données
Présentation
Historique des Systèmes de Gestion de Bases
de Données (SGBD)
SGBD
BD
Une Base de Données est un ensemble structuré
d’informations enregistrées mis à la disposition de
manière sélective à un ensemble d’utilisateurs
SGBD
Un Système de Gestion de Base de Données permet de gérer
toutes les informations stockées (Description, Consultation,
Adjonction, Modification, Suppression, Autorisations) en
toute sécurité dans un contexte multi-utilisateurs.
Michel Tuffery 4
Objectifs des Bases de Données
• Centraliser l’information
– Ensemble unique de stockage
– Non redondance de l’information
• Centraliser les contrôles
– Contraintes d’intégrité au sein de la BD
– Modifications aisées des règles de gestion
• Rendre indépendant les données et les programmes
– Modification de la structure des données sans toucher aux
traitements
• Faciliter l’accès aux données
– Langage standard d’accès aux données : SQL
Michel Tuffery 5
Fonctions d’un SGBD
• Décrire l’information
– Création des objets avec leurs contraintes
– Modification des structures et des contraintes
– Gestion de l’espace disque
• Partager l’information
– Droits et devoirs des utilisateurs
– Notion de rôles et de privilèges
• Assurer la Sécurité de l’information
– Reprise après incident
• Respecter l’Intégrité de l’information
– Transaction : annulation ou confirmation
• Autoriser la Confidentialité des informations
– Tout le monde ne peut pas voir et faire n’importe quoi
Michel Tuffery 6
SGBD Hiérarchiques : définitions
Michel Tuffery 7
SGBD Hiérarchiques : présentation
ENSEIGNANT
CodeEns EMPLOYE PROJET
Enom CodeEmp CodeProjet
Egrade nomEmp
Salaire
1 1
1
N N
N
MATIERE EMPLOYE
CodeMat PROJET CodeEmp
Mnom CodeProjet nomEmp
Mcoeff BudgetProj
Mheures
Michel Tuffery 8
SGBD Hiérarchiques :
Avantages et Inconvénients
SGBD Réseaux
Michel Tuffery 9
SGBD réseaux : définitions
et de SET 1
1
FOUR-VEN PIECE-VEN
N N
VENDRE
PrixUnitaire RECORD
Qte
DelaiMinimum
SET
Michel Tuffery 10
SGBD réseaux : structure physique
RECORD Père
RECORDs Fils
Michel Tuffery 11
SGBD réseaux : avantages et inconvénients
• Avantages
– Problèmes des ajouts, suppressions, modifications
résolus
– Sécurité des données
– Accès rapide à l’information
• Inconvénients
– Langage navigationnel : parcours des SET
– Gestion des pointeurs physique à la charge du SGBD
SGBD Relationnels
Michel Tuffery 12
SGBD Relationnels : présentation succincte
Michel Tuffery 13
BD Relationnelle :
structure et accès aux données
Etudiant UV
IdUV NomUV Valeur
IdEtu Nom Adresse
Bd Bases de D. 5
100 Jean Tlse
C Langage C 3
200 Michel Paris
Or oracle 8
300 Sylvie Tlse
Cours
IdEtu IdUV Note
SELECT u.nomuv, u.valeur
c.note 100 Bd 12
FROM etudiant e, uv u, 100 C 15
cours c
WHERE e.idetu=c.idetu
100 Or 8
AND c.iduv=u.iduv 300 Bd 12
AND e.nom=‘Jean’
200 Bd 14
300 Or 13
Michel Tuffery 14
Structure d’une BD et
d’un SGBD
Concepts généraux
Michel Tuffery 16
Le Dictionnaire des données :
Organisation générale
Dictionnaire de Données
SGBD
Base de Données
Michel Tuffery 17
Le Dictionnaire des données :
Organisation avec Oracle
Michel Tuffery 18
Les composants d’une base de données :
Objets physiques (données)
Michel Tuffery 19
Les composants d’une base de données :
Objets physiques (programmes)
BD = Données + Programmes
Michel Tuffery 20
Les composants d’une base de données :
Objets virtuels
• Les vues
– Tables virtuelles
– Schémas externes ou sous-schémas
• Les synonymes
• Les database link
– Liens inter-bases
• Les contraintes
Michel Tuffery 21
Notion de ‘base de données’ :
Plusieurs ‘bases utilisateur’
Michel Tuffery 23
Notion de ‘base de données’ :
Instance
Michel Tuffery 24
Base de Données en architecture
Client-Serveur
• Le poste Client
– Interface de présentation
– Interface graphique
• Le Middleware
– Drivers de communication
• Le Serveur
– Base de données
– Sécurité, Intégrité et Confidentialité
Michel Tuffery 25
Base de données en Client-Serveur
Les composants du Client
SQL*Net
TCP/IP
Transport / Communication
Michel Tuffery 26
Base de données en Client-Serveur
Les composants du Serveur
SGBD BD
Listener
SQL*NET
TCP/IP
Transport / Communication
Michel Tuffery 27
Bases de Données et Intranet
Michel Tuffery 28
Conception d’une
Base de Données
Le Diagramme de Classes
UML
Conception d’une BD : les niveaux
• conceptuel
• logique
• physique
schéma
• externe
conceptuel
schéma
logique
Utilisateurs
schéma
physique
R1
R2
Michel Tuffery 30
Conception d’une BD : les étapes
Michel Tuffery 31
Le Diagramme de Classes (DC) :
concepts de base
• Classe
– Ensemble d’objets concrets ou abstraits de même nature
– Une classe est décrite par ses attributs, méthodes et
contraintes
– Exemples : Etudiant, Employe, Produit, …
• Attribut
– Propriété décrivant une classe
– Valeur unique pour chaque classe
– Exemple : nom, prenom, adresse , ….
• Identifiant
– Attribut particulier permettant de repérer une occurrence
– Exemple : idClient, idEtudiant, ….
• Association
– Permet de relier une classe à une ou plusieurs autres
– Æ
Michel Tuffery 32
Le Diagramme de Classes :
Notion d’Association
IneEtudiant Identifiant
NomEtudiant
AdrEtudiant
Attributs
Moyenne() Procédures
Méthodes
Modules_obtenus() Stockées
Inscription_correcte
Nombre_inscrits_dip Contraintes Déclencheurs
Michel Tuffery 34
Associations de type Mère-Fille (1-N)
Diplome Etudiant
Michel Tuffery 35
Associations de type multiple (N-N)
sans attributs
Etudiant Stage
IneEtudiant Choisir IdStage
NomEtudiant ThémeStage
AdrEtudiant * 1..* Entreprise
RespStage
Michel Tuffery 36
Associations de type multiple (N-N)
avec attributs
Fournisseur Produit
IdFour IdProduit
NomFour * 1..* NomProduit
AdrFour QtéStock
Fournir
Prix
Classe d’association DélaiLivraison
QuantitéMin
Michel Tuffery 37
Associations de type multiple (N-N)
N aires (N>2)
Conditionnement
IdCond
LibCond
Fournisseur Produit
IdFour *
IdProduit
NomFour NomProduit
AdrFour
* 1..* QtéStock
Fournir
Prix
DélaiLivraison
QuantitéMin
Michel Tuffery 38
Associations de type symétrique (1-1)
Etudiant Stage
IdStage
IneEtudiant Effectuer ThémeStage
NomEtudiant
Entreprise
AdrEtudiant 0..1 1
RespStage
Note stage
(Une association de type 1-1 est souvent le résultat d’un éclatement de classe)
Michel Tuffery 39
Associations réflexives
Æ 1-N réflexif
Enseignant
IdEnseignant
NomEnseignant
Fonction
indice
*
A pour responsable Æ
Michel Tuffery 40
Associations réflexives
Æ N-N réflexif
* Est composé de
Produit Composer
IdProduit Quantité
LibelléProduit
Prix
*
Entre dans la composition de
Michel Tuffery 41
Assemblage de classes
Reprise d’une classe d’association
Michel Tuffery 42
Reprise d’une classe d’association
Associations de type 1-N et N-N
Classes Tournoi
Joueur
stables IdTournoi
IdLicence
NomJoueur NomTournoi
Classement * * Ville
Date
Recevoir Obtenir
Amende Participer Prix
IdAmende * * Résultat * 0..1 IdPrix
Montant Montant
Association N-N Association 1-N
sans attribut
Etudiant UV
IneEtudiant 1..8 IdUV
Nom * IntUV
Inscrire
Note
Résultat
Michel Tuffery 44
Généralisation et Spécialisation
Personnel
IdPers
Nom
Indice
Michel Tuffery 45
Conception d’une
Base de Données
Le Modèle Logique
Conception d’une BD : les niveaux
• conceptuel
• logique
• physique
schéma
• externe
conceptuel
schéma
logique
Utilisateurs
schéma
physique
R1
R2
Michel Tuffery 47
Conception d’une BD : les étapes
Michel Tuffery 48
Schéma Logique : Schéma Relationnel
Présentation
Michel Tuffery 50
Schéma relationnel
Exemple
SERVICE EMPLOYE
IdSer NomSer NombreEmp IdEmp NomEmp IdSer IdEmp_Resp
10 Informatique 2 100 Michel 20 300
20 Achats 3 200 Sylvie 10 400
300 Bernard 20 ------
400 Claude 10 ------
500 Thomas 10 400
Clés Primaires
Michel Tuffery 51
Schéma relationnel
Quelques postulats
• Clé primaire
– Obligatoire pour toutes les relations
– Peut être composée de plusieurs attributs
– Ne peut pas avoir de valeur indéfinie (NULL)
• Clé étrangère
– Aucune ou plusieurs par relation
– Peut être composée de plusieurs attributs
– Æ Contrainte d’Intégrité Référentielle
• Clé candidate
– Accès rapide dans le schéma physique
Michel Tuffery 52
Passage du S. Conceptuel au S. Relationnel
Les règles de passage
Michel Tuffery 53
Association 1-N : Exemple
Diplome Etudiant
Michel Tuffery 54
Association N-N sans attribut : Exemple
Etudiant Stage
IneEtudiant Choisir IdStage
NomEtudiant ThémeStage
AdrEtudiant * 1..* Entreprise
RespStage
Michel Tuffery 55
Clé primaire composée : postulats
Michel Tuffery 56
Association N-N avec attributs : Exemple
Fournisseur Produit
* 1..*
IdFour IdProduit
NomFour NomProduit
QtéStock
AdrFour Fournir
Prix
DélaiLiv
QtéMin
Conditionnement
IdCond
LibCond
Fournisseur Produit
IdFour *
IdProduit
NomFour NomProduit
AdrFour
* 1..* QtéStock
Fournir
Prix
DélaiLiv
QtéMin
Michel Tuffery 58
Association de type N-aires : Exemple
Michel Tuffery 59
Association 1-N réflexive : Exemple
Enseignant
IdEns
NomEns
Fonction
* A pour responsable Æ
(nul autorisé)
Michel Tuffery 60
Association N-N réflexive : Exemple
* Est composé de
Produit Composer
IdProduit Qté
LibProduit
Prix
Michel Tuffery 61
Reprise de classe d’association : Exemple
Joueur Tournoi
IdLicence IdTournoi
NomJoueur NomTournoi
Classement * * Ville
Date
Recevoir Obtenir
Amende Participer Prix
IdAmende * * Résultat * 0..1 IdPrix
Montant Montant
Michel Tuffery 62
Reprise de classe d’association : Exemple
(nul autorisé)
2 clés étrangères
Michel Tuffery 63
Associations de type symétrique (1-1)
Règle N°4 : 3 cas possibles
C1 Association C2
IdC1 1 1 IdC2
UNIQUE
Etudiant Stage
IdStage
IneEtudiant Effectuer ThémeStage
NomEtudiant
Entreprise
AdrEtudiant 0..1 0..1
UNIQUE
Michel Tuffery 65
Généralisation et Spécialisation : Règle N°5
Michel Tuffery 66
Généralisation et Spécialisation : Exemple
Personnel
IdPers
Nom
Indice
Michel Tuffery 67
Généralisation et Spécialisation : Exemple
Attribut de Spécialisation
Michel Tuffery 68
Notion de Dépendance Fonctionnelle (DF)
• Objectifs des DF
• Conception du Schéma Logique
• Aide à la normalisation des relations
• Définition
• Soit a et b deux attributs, b est fonctionnellement
dépendant de a si à toute valeur de a correspond au
plus une valeur de b (notation : a→b)
• Exemples et contre exemple
• IneEtudiant → NomEtudiant
• IneEtudiant → AdrEtudiant
• NomEtudiant → AdrEtudiant
Michel Tuffery 69
Qualité des dépendances fonctionnelles
• DF Élémentaire
• a→b est une DF élémentaire si ∀ a’⊂a alors a’→b
n’est pas une DF
• IdLicence, IdTournoi, IdPrix → Résultat
est une DF non élémentaire
• DF Directe
• a→b est une DF directe si il n’existe pas b⊄c et c⊄a
tel que a→c et c→b
• une DF non directe est déduite par transitivité
Michel Tuffery 70
Propriétés des dépendances fonctionnelles
• Réflexivité
– a attribut de R ⇔ a→a est une DF
• Transitivité
– Si a→b et b→c sont des DF ⇒ a→c est une DF
• Pseudo-transitivité
– a→b et b,c→d DF ⇒ a,c→d DF
• Additivité (union)
– a→b et a→c DF ⇔ a→b,c est une DF
• Décomposition
– a→b,c DF ⇔ a→b et a→c DF
• Augmentation
– a→b DF et ∀ c ⇒ a,c→b DF
Michel Tuffery 71
Fermeture et couverture minimale
d’un graphe F (ensemble de DF)
• Fermeture
• la fermeture de F est l’ensemble de toutes les DF
résultant de l’application des propriétés des DF
(réflexivité...)
• Exemple : soit F={ a→b ;b→c}, F+ est composée de
21 DF en plus (a→a ; b→b ; a→c...)
• Couverture minimale
• la couverture minimale est un ensemble minimal de
DF (élimination des DF redondantes)
• Exemple : F = {a→b1 ;b→c2 ; c→d3 ;a→d4 ; c,f→g5 ;
a→b,c6 ;a,f→g7}, la couverture minimale de F
est {a→b1 ;b→c2 ; c→d3 ; c,f→g5}
Michel Tuffery 72
Conception directe du Schéma logique :
deux approches possibles
Michel Tuffery 73
Approche par Décomposition :
Normalisation
• Schéma
• Ensemble de relations
• Ensemble de DF
• Objectifs de la normalisation
• Classification des relations
• Minimiser la redondance d’informations
• Préserver l’intégrité des informations
• Dénormalisation
• Diminuer le nombre de relations
• Réduire les futures jointures
Michel Tuffery 74
Approche par Décomposition :
les formes normales
• 1e forme normale
• Tous les attributs non clé sont en DF avec la clé
• Pas d’attributs tableaux
• 2e forme normale
• Déjà en 1e forme normale
• Toutes les DF issues de la clé sont des DF élémentaires
• 3e forme normale
• Déjà en 2e forme normale
• Toutes les DF issues de la clé sont des DF directes
• 4e forme normale : test de validité du schéma
• Déjà en 3e forme normale
• Pas de DF à l’intérieur d’une clé
Michel Tuffery 75
Approche par Décomposition :
Les étapes de décomposition
ETUDIANT
Michel Tuffery 76
Approche par Décomposition :
Les étapes de décomposition (suite)
Michel Tuffery 77
Approche par Décomposition :
Les étapes de décomposition (suite et fin)
ETDIANT(Ine, nom, adresse)
Michel Tuffery 79
Approche par Synthèse : Présentation
• Généralités
• Concevoir ou modifier un schéma
• Point de départ : F = {a→b1 ;b→c2, … }, résultat
schéma relationnel normalisé : R1[a, b, …]...
• Étapes
• Construction de l’ensemble départ des DF
• Suppression des DF redondantes déduites par
transitivité, union et décomposition
• Regroupement des DF ayant même partie gauche
dans des sous ensembles, les DF de type x→y et
y→x doivent être regroupés dans le même sous
ensemble
Michel Tuffery 80
Approche par Synthèse :
la démarche
Michel Tuffery 81
Approche par Synthèse :
Exemple de mise en oeuvre
• Point de départ :
– A = {a, b, c, d, e, f, g, h, j, k}
– F = {a→b1 ; a→c2 ; a,b,h→e,g3 ; h→j4 ; j→k5 ; h→k6 ;
b→a7}
• 1ére étape : suppression des DF redondantes
– 6 est redondante car elle peut être obtenue avec 4 et 5
par transitivité : h→j ; j→k donne h→k
– 1 et 3 permettent de simplifier 3 par pseudo-transitivité
a→b et a,b,h→e,g donne a,a,h→e,g
a,a,h→e,g donne a,h→e,g3
Michel Tuffery 82
Approche par Synthèse :
Exemple de mise en œuvre (suite)
Michel Tuffery 83
Langage
Relationnel
Graphe de
Requêtes
Présentation
Michel Tuffery 85
Opérateurs relationnels
• Opérateurs unaires
– Sélection
– Projection
• Opérateurs binaires
– Union
– Intersection Opérateurs ensemblistes
– Différence
– Division
– Produit Cartésien
– jointure
Michel Tuffery 86
Sélection
• Définition
– Une sélection appliquée sur la relation R1[a1,...,an], selon
le prédicat p1 (condition) donne une relation R2[a1,...,an]
ayant les n-uplets satisfaisant la condition
R
• Symbole utilisé
Prédicat de Sélection
R1
Michel Tuffery 87
Sélection : exemple
ETUDIANT
Ine Nom Groupe Année R
100 Sylvie 1 2
200 Michel 3 2 Année = 2
300 Corinne 1 1 ET
Groupe = 3
400 Laurent 3 2
500 Jérôme 4 2
ETUDIANT
Étudiants du groupe 3
de deuxième année ? R
Ine Nom Groupe Année
200 Michel 3 2
400 Laurent 3 2
Michel Tuffery 88
Projection
• Définition
– la projection de la relation R1[a1,...,an] sur les attributs
ai,...,am (ai,...,am ⊂a1,...,an) est une relation R2[ai,...,am]
– Pas de duplication des n-uplets résultats
• Symbole utilisé
R
ai,...,am
R1
Michel Tuffery 89
Projection : exemple
ETUDIANT
Ine Nom Groupe Année R
100 Sylvie 1 2
200 Michel 3 2
300 Corinne 1 1 Année
400 Laurent 3 2
500 Jérôme 4 2
ETUDIANT
Quelles sont les années
existantes ? R
Année
1
2
Michel Tuffery 90
Union
• Définition
– Soient R1[a1,..., an] et R2[b1,..., bn] deux relations de
même schéma ,
– Le résultat de l’union R contient les tuples de R1 et les
tuples de R2 qui n’appartiennent pas à R1
– Opérateur commutatif
R
R1 U R2
• Symbole utilisé
U
R1 R2
Michel Tuffery 91
Union : Exemple
R (nom)
R
Contient l’ensemble des clients
de l’entreprise
nom nomclient
CLIENTS_TOULOUSE CLIENTS_BORDEAUX
Michel Tuffery 92
Intersection
• Définition
– Soient R1[a1,..., an] et R2[b1,..., bn] deux relations de
même schéma
– Le résultat de l’intersection R contient les tuples qui
appartiennent, à la fois, à R1 et R2
– Opérateur commutatif
R
R1 ∩ R2 ∩
• Symbole utilisé
R1 R2
Michel Tuffery 93
Intersection : exemple
R (nom)
R
Contient les clients de l’entreprise
à la fois, de Toulouse et Bordeaux
∩
nom nomclient
CLIENTS_TOULOUSE CLIENTS_BORDEAUX
Michel Tuffery 94
Différence
• Définition
– Soient R1[a1,..., an] et R2[b1,..., bn] deux relations de
même schéma ,
– Le résultat de la différence R contient les tuples de R1
qui n’appartiennent pas à R2
– Opérateur non commutatif
R
R1 R2
• Symbole utilisé
R1 R2
Michel Tuffery 95
Différence : exemple
R (nom)
R
Contient les clients de Toulouse
qui ne sont pas à Bordeaux
nom nomclient
CLIENTS_TOULOUSE CLIENTS_BORDEAUX
Michel Tuffery 96
Division
• Définition
– Soient R1[a1,...,an,b1,...,bn] et R2[b1,...,bn] deux relations telles
que la structure de R2 soit incluse dans la structure de R1
– R = résultat de la division de R1 par R2
– R est une relation de structure R[a1,...,an] qui contient les
tuples ti vérifiant :
ti ∈ R (ti est un tuple de structure [a1,...,an])
tj ∈ R2 (tj est un tuple de structure [b1,...,bn])
ti,tj ∈ R1 (ti,tj est un tuple de structure [a1,...,an,b1,...,bn])
• Opérateur non commutatif
• Sert à comparer un ensemble avec un autre ensemble (dit
de référence)
Michel Tuffery 97
Division (suite)
• Symbole utilisé
R
R1 de schéma S1,S2
R2 de schéma S2
R de schéma S1 R1 R2
Michel Tuffery 98
Division : exemple
VEHICULE BICOLORE
Codev Nomv Portes Couleur Coloris
BM1 316i 2P noir noir
BM1 316i 2P blanc blanc
BM2 318i 4P noir
S2
BM3 320d 4P blanc
S1 S2
Michel Tuffery 99
Division : exemple (suite)
R R
Nomv
Nomv 316i
VEHICULE BICOLORE
• Définition
– Soient R1[a1,...,an] et R2[b1,...,bm] deux relations de schéma
différent, R = résultat du produit R1× R2
– R est une relation de structure R3[a1,...,an,b1,...,bm] qui contient
les combinaisons des tuples de R1 et R2
• Opérateur
commutatif R
• Symbole utilisé
×
R1 R1
ETUDIANT MATIERE
Ine Nom IdM NomM
100 Sylvie BD Bases de Données
200 Michel ACSI Analyse
300 Laurent MATH Mathématiques
Question : Créer la relation COURS (Ine, IdM) sachant que chaque étudiant
suit toutes les matières ?
COURS
Ine IdM
COURS 100 BD
100 ACSI
100 MATH
Ine, IdM
200 BD
200 ACSI
× 200 MATH
300 BD
300 ACSI
ETUDIANT MATIERE
300 MATH
• Définition
– Soient R1[a1,...,an] et R2[b1,...,bm] deux relations, R =
jointure de ces relations avec un prédicat
– R[a1,...,an,b1,...,bm] contient les tuples de R1 et de R2
résultant un produit cartésien vérifiant le prédicat
• Opérateur fondamental (basé sur les valeurs)
• Le prédicat contient une clause de jointure et
éventuellement d’autres conditions
• Opérateur binaire commutatif
• Symbole utilisé
R
R1 de schéma S1
R2 de schéma S2
Prédicat
R de schéma S1,S2 R1 R1
Nom, Adresse
IdCli=C.IdCli
idCli CLIENTS C
IdOuv= O.IdOuv ET
DateEmp = ‘10/10/2003’
idOuv OUVRAGES O
Titre = ‘BD’
OUVRAGES
Michel Tuffery 107
Graphe des requêtes et SGBD
Tables
Fichier FT11
Tablespace T1
Fichier FT21
Tables
Tables
1 1
1..* 1..*
Extent 1 1..* Bloc
1..*
1
Extent Libre Extent utilisé 1..* 1 Segment
• Contraintes de tables
– - unique
– - primary key
– - foreign key
– - check
• Contraintes de colonnes
- not null
• Mises à la création de la table
– - dans le dictionnaire de données
– - nom de contrainte
ESPACE
LIBRE
DONNEES
K ème ligne
ROWID (I, J, K)
Michel Tuffery 126
Le segment de données : le cluster
Principe
• Création du cluster
create cluster personnel
(no_ser number) size 10K
storage (initial 100K
next 50K pctincrease 10);
• Création de l’index
create index ind_pers
on cluster personnel;
• Création des tables en cluster
Sécurité
Intégrité
Confidentialité
• Sécurité
– Reprise après incident
– Journalisation des transactions
• Intégrité
– Problème des accès concurrents
– Verrouillage des ressources
– Interblocages : détection et résolution
• Confidentialité
– Droits d’accès
– Sous-schémas ou schémas externes
• Atomicité
– Les opérations d’une transaction sont atomiques (tout
ou rien)
• Cohérence
– Passage d’un état cohérent à un autre état cohérent
• Isolation
– Degré total d’isolation entre deux transactions
concurrentes
• Durabilité
– Effets durables même en cas de panne (persistance)
BD : état cohérent
DEBUT TRANSACTION
FIN TRANSACTION
• Principe général
– Conservation de la trace des opérations sur la base
dans un fichier
– Plusieurs copies physiquement séparées
• Les informations enregistrées
– Utilisateur, date , …
– Code de l’opération (insert, update, delete)
– Ancienne valeur – nouvelle valeur
– commit et rollback
• Les sauvegardes sont notées
Transaction 2
SGBD
Update …
Insert … JOURNAL
Delete …
• Sauvegarde
BD
SAUVEGARDE
SGBD
SGBD
JOURNAL
• Reprise « à chaud » BD
SGBD
JOURNAL
• Reprise « à froid » : RECOVERY
JOURNAL
SAUVEGARDE
(J)
(J-1)
RECOVERY
BD
(J)
Michel Tuffery 141
Sécurité : reconstruction de la base ou
« recovery »
T1
T2
T3
Transactions
T4
T5
temps
sauvegarde
Lire nb_places
(10) Lire nb_places
(10)
nb_places=-5
(5) nb_places=-3
(7)
Update nb_places
(5)
Update nb_places
(7)
État incohérent
Michel Tuffery 143
Intégrité : problème des accès concurrents
Lire nb_places
avec verrou
Lire nb_places
(10)
Avec verrou
nb_places=-5
File d’attente sur (5) ATTENTE
les verrous
Update
1er arrivé Æ 1er nb_places
servi (5)
Commit
Lire nb_places
Avec verrou
(5)
ATTENTE
DEAD LOCK
INTERBLOCAGE
Michel Tuffery 145
Intégrité : résolution des interblocages
Méthode préventive
T1 T2 T3 T4
Verrou R1
Verrou R2
Verrou
Travail R1, R3
Travail Verrou
Attente
R2, R3
T3 T4
• Résolution de l’interblocage
– Arrêt et annulation de la transaction la « moins lourde »
(assassinat)
– Poursuite et fin de l’autre, reprise éventuelle et fin de la
transaction annulée
Michel Tuffery 148
Confidentialité dans les bases de données
Entrée
Utilisateur
Identification Reconnaissance de
(nom, code) l’utilisateur
Authentification
(agorithme,
voix, carte,…)
Affectation d’un
salaire Rôle
(sous-schéma)
update oui
Autorisations
d’accès
– Lectures simultanées
– Écritures avec écrasement (et verrouillage)