Académique Documents
Professionnel Documents
Culture Documents
Relationnelles
Partie 1:Fondamentaux et
conception
Dr Edouard Ngor SARR
Maitre de conferences
Enseignant-chercheur en Informatique
Université Assane SECK de Ziguinchor
CERIDES UCAO & Check4Decision Project
Juin 2023
Introduction
• https://www.cours-gratuit.com/cours-informatique/telecharger-cours-systeme-d-information-pdf
Dr Edouard Ngor SARR 6
Base de données Relationnelles
Décideurs
Employés
Clients
Partenaires
Informaticiens
Analyste
Dr Edouard Ngor SARR 7
Base de données Relationnelles
• Nées à la fin des années 1960 pour combler les lacunes des
systèmes de fichiers et faciliter la gestion qualitative et
quantitative des données informatiques.
• Normalement ces données sont inter-reliées
• Porte le plus souvent sur un unique domaine
Dr Edouard Ngor SARR 8
Base de données Relationnelles
Modèle Relationnel
Le modèle relationnel Schéma d’une base de
S’appui sur trois concepts données relationnel
fondamentaux : • Schéma des relations :
– Le domaine Définition de l’Ensemble des
– L’attribut tables
– La relation ou table. • Schéma des attributs :
Définition de l’Ensemble des
Organisation des attributs
données • Les identifiants: la définition :
• Tables: relations – de son (ses) identifiant
• Colonnes: attributs – Ses identifiants externes:
• Lignes: n-uplets (ou
tuples)
La population
• Ensemble des tuples de la
relation (Table)
Dr Edouard Ngor SARR 13
Base de données Relationnelles
Modèle Relationnel
Domaine ou Type
• C’est ensemble de valeurs défini en extension
• Ensemble de valeurs que peut prendre un attribut
Modèle Relationnel
Attributs
– Chaque colonne est appelée attribut et contient un ensemble
des valeurs d’un domaine.
– Chaque ligne représente un tuple.
– Les attributs sont tous simples et monovalués.
– Toute valeur prise par un attribut pour un tuple est atomique
(non décomposable par le SGBD) et unique.
– Les notions d'attribut multi value ou complexe n'existent pas
dans le modèle relationnel. Un attribut peut être :
Modèle Relationnel
Identifiant d’une relation ou clé candidate
• L'identifiant d'une relation est un ensemble minimum d'attributs de
la relation, tel qu'il n'existe pas deux tuples ayant même valeur
pour cet identifiant.
• Un identifiant peut-être composé d'un ou plusieurs attributs. On
dira que la clé est composite.
• Une relation peut avoir plusieurs identifiants.
• L’identificateur est unique et est toujours obligatoire.
• Si la relation n'a qu'un seul identifiant, ce sera la clé primaire .
• Si la relation a plusieurs identifiants, il faut choisir pour clé
primaire "le meilleur": celui dont on est sûr que sa valeur ne sera
jamais nulle ni modifiée.
• Les autres identifiants seront déclarés avec la clause UNIQUE
Dr Edouard Ngor SARR 16
Base de données Relationnelles
Modèle Relationnel
Identifiant d’une relation ou clé candidate
• Une composante N d'un n-uplet est une clé primaire lorsque par
nature la valeur de cette composante est obligatoire et différente
pour chaque n-uplet de la relation
Modèle Relationnel
Identifiant d’une relation ou clé candidate
• Une composante N d'un n-uplet est une clé primaire lorsque par
nature la valeur de cette composante est obligatoire et différente
pour chaque n-uplet de la relation
Modèle Relationnel
Identifiant externe ou clé étrangère (1/2)
• Certains attributs référencent des tuples d'une autre relation (ou
parfois de la même); c'est-à-dire que leur valeur est toujours
égale à celle de l'identifiant d'un tuple existant dans l'autre
relation.
• Soient deux relations R1(X, Y) et R2 (V, W), où X, Y, V, W,
désignent des attributs ou des ensembles d'attributs, et où X est
un identifiant de R1
• On dit que W est un identifiant externe sur R1 (ou que W
référence R1) si pour tout tuple de R2, la valeur prise par W est
nécessairement la valeur de X pour un tuple existant de R1.
• Autrement dit, à tout instant, l'ensemble des valeurs prises par W
est compris dans l'ensemble des valeurs prises par X.
Modèle Relationnel
Identifiant externe ou clé étrangère (2/2)
• Une fois déclaré l'identifiant externe W de R2 sur R1, le SGBD
vérifie automatiquement :
– toutes les insertions de tuples dans R2: il vérifie que la valeur
de W existe dans R1. Si ce n'est pas le cas l'insertion est
refusée;
– toutes les modifications de W: il vérifie que la nouvelle valeur
de W existe dans R1. Si ce n'est pas le cas la modification est
refusée;
– toutes les suppressions de tuples de R1: il vérifie qu'il n'existe
pas de tuple dans R2 référençant ce tuple de R1 à supprimer.
S'il en existe, selon le SGBD soit la suppression est refusée,
soit la suppression est propagée: les tuples de R2 qui
référençaient cette valeur de X sont eux aussi supprimés
Dr Edouard Ngor SARR 20
Base de données Relationnelles
Modèle Relationnel
Identifiant externe ou clé étrangère (2/2)
– Une composante N d'un n-uplet est une clé étrangère lorsque
les valeurs de cette composante sont des références à une clé
primaire.
– Il y a une situation d'intégrité référentiellelorsqu'à chaque
valeur de la clé étrangère A correspond une valeur de la clé
primaire référencée B.
Modèle Relationnel
Les contraintes d’intégrité (1/3)
• Permettent d’assurer la cohérence des données.
• Les contraintes d’intégrité sont :
– NOT NULL: attribut obligatoire
– CHECK: domaine de valeurs particulier d'un attribut qui
permet de vérifier que la valeur de l'attribut satisfait une
condition
– TRIGGER: contrainte d'intégrité quelconque qui permet de
spécifier que lors de toute insertion (ou suppression ou
modification) d'un tuple dans telle relation telle condition doit
être satisfaite sinon telle action doit être entreprise
automatiquement par le SGBD, comme par exemple refuser
l'insertion ou envoyer un message d'alerte.
Modèle Relationnel
Les contraintes d’intégrité (2/3)
• Permettent d’assurer la cohérence des données.
• Les contraintes d’intégrité sont :
– Contrainte de clé : définit un sous-ensemble minimal des
colonnes tel que la table ne puisse contenir deux lignes ayant
mêmes valeurs pour ces colonnes.
• Il existe trois types de clés
– Clé primaire : Ensemble minimum d'attributs qui permet de
distinguer chaque n-uplet de la table par rapport à tous les
autres.Chaque table doit avoir une clé primaire.
– Clé candidate : Ensemble minimum d'attributs susceptibles
de jouer le rôle de la clé primaire.
– Clé étrangère : fait référence à la clé primaire d'une autre
table.
Dr Edouard Ngor SARR 23
Base de données Relationnelles
Modèle Relationnel
Les contraintes d’intégrité (3/3): Liaisons entre relations
• Les liens existants entre les N-uplets des relations (Tables)
• Sont stockés dans les champs des enregistrements sous forme
de clé primaire et clé étrangère.
Modèle Relationnel
Les contraintes d’intégrité (3/3): Liaisons entre relations
Modèle Relationnel
Les contraintes d’intégrité (3/3): Liaisons entre relations
SGBD
Définitions
• Un ensemble de programmes qui fait office d'unique interface
entre les utilisateurs et les données stockées dans la base.
SGBD
Tâches
– Définition de la structure
– Création de la BD (gestion des Contraintes)
– Manipulation des données (insertion, suppression, mis à
jours)
– Interrogation de la BD
– Sécurité de la base de données
– La protection des données (Fault-tolerance)
– Partage des données
– Contrôle de concurrence,
– Reprise après panne
SGBD
• Architecture ANSI/SPARC
• Permet une indépendance entre:
– Niveau interne ou physique: décrit le modèle de stockage
des données et les fonctions d’accès.
– Niveau conceptuel ou logique: décrit la structure de la
base de données vis à vis des utilisateurs, ce niveau
représente l’image fidèle du système réel.
– Niveau externe: correspond aux différentes vues des
utilisateurs. Chaque schéma externe donne une vue sur le
schéma conceptuel à une classe d’utilisateurs.
• Le SGBD doit être capable de faire des transformations entre
chaque niveau, de manière à transformer une requête exprimée
en terme du niveau externe en requête du niveau conceptuel
puis du niveau physique.
Dr Edouard Ngor SARR 35
Base de données Relationnelles
SGBD
• Architecture ANSI/SPARC
SGBDR
• SGBD Relationnel respecte au moins :
– les 12 règles de Codd
– La regle ACID
– Bonne gestion des contraintes qui garantissent l'intégrité
– Utilise le SQL comme langage d’interrogation de données
– Plusieurs SGBDR
SGBDR
Forces des SGBDR
• Il permet de gérer des BDD respectant les 4 critères ACID :
• Garantit donc la sécurité des transactions.
• Les données sont stockées et manipulées facilement grâce aux
requêtes SQL.
SGBDR
Faiblesses des SGBDR
• Pas adaptées à la gestion de données
– Non-structurées
– Volumineux (Big Data)
SGBDR
Gestion des transactions
• Une transaction un ensemble atomique de requêtes SQL dont le
traitement ne peut être fait séparément..
• Une transaction est une suite d'opérations interrogeant et/ou
modifiant la BD, pour laquelle l'ensemble des opérations doit être
soit validé, soit annulé.
SGBDR
Gestion des transactions
• Une transaction est constituée de trois primitives qui s’exécutent
dans le temps mais considérées comme une et une seule
opération
SGBDR
Gestion des transactions
• Si jamais il s'avérait impossible de traiter la totalité de la
transaction, le système revient à un état stable antérieur.
SGBDR
Gestion des transactions
• La règle ACID
– Atomicité: l’ensemble des opérations d’une transaction est
soit exécuté en bloc, soit annulé en bloc
– Cohérence : Une transaction fait passer une BD d’un état
cohérent à un autre état cohérent. Un état cohérent est un
état dans lequel les contraintes d’intégrité sont vérifiées.
– Isolation: Une transaction se déroule sans être perturbée par
les transactions concurrentes : tout se passe comme si elle se
déroulait seule.
– Durabilité: une fois une transaction confirmée, les données
correspondantes restent durablement dans la base, même en
cas de panne
SGBDR
Gestion des transactions
• DURABILITE + COHERENCE
– Valider la transaction en cours par la commande COMMIT. Les
modifications deviennent définitives et visibles à tous les
utilisateurs.
– Annuler la transaction en cours par la commande ROLLBACK.
Toutes les modifications depuis le début de la transaction sont
alors défaites.
• ISOLATION + COHERENCE
– En cours de transaction, seul l'utilisateur ayant effectué les
modifications les voit.
SGBDR
Gestion des concurrences
• De multiples utilisateurs doivent pouvoir accéder à la base de
donnée en même temps à problème d’accès concurrents
SGBDR
Gestion des concurrences
• Incohérence: Perte des mise à jour de T2
SGBDR
Gestion des concurrences
• Incohérence: Lecture impropre
SGBDR
Gestion des concurrences
• Incohérence: Lecture impropre de T1 (donnée non confirmée par T2)
SGBDR
Gestion des concurrences
• Incohérence: Lecture non reproductible de T2 entre deux instants
SGBDR
Gestion des concurrences
• Incohérence: Objet fantôme 4 lu par T1 et ajouter par T2
SGBDR
Gestion des concurrences
• Interblocage
• L’impasse générée par deux transactions (ou plus) qui attendent, l’une,
que des verrous se libèrent, alors qu’ils sont détenus par l’autre
SGBDR
Gestion des concurrences
• Interblocage : Résolution de l’interblocage
• Prévention
– Toutes les ressources nécessaires à la transaction sont verrouillées au
départ
– Problème : cas des transactions qui ne démarrent jamais ! • Méthode
peu utilisée aujourd’hui
• Détection :
– On inspecte à intervalles réguliers le graphe d’attente pour détecter si
un interblocage s’est produit. Dans ce cas on défait l’une des
transactions bloquées et on la relance un peu plus tard.
– On annule une transaction dont le temps d’attente dépasse un certain
seuil, et on la relance un peu plus tard.
Dr Edouard Ngor SARR 52
Base de données Relationnelles
SGBDR
Gestion des concurrences
• Solution 1: Verrouillage
– Le verrouillage est la technique la plus classique pour résoudre
les problèmes dus à la concurrence :
• Avant de lire ou écrire une donnée une transaction peut
demander un verrou sur cette donnée pour interdire aux autres
transactions d’y accéder.
• Si ce verrou ne peut être obtenu, parce qu’une autre transaction
en possède un, la transaction demandeuse est mise en attente.
– Afin de limiter les temps d’attente, on peut jouer sur :
• La granularité du verrouillage : pour restreindre la taille de la
donnée verrouillée (n-uplet, une table)
• Le mode de verrouillage: pour restreindre les opérations interdites
sur la donnée verrouillée
Dr Edouard Ngor SARR 53
Base de données Relationnelles
SGBDR
Gestion des concurrences
• Solution 1: Verrouillage
SGBDR
Gestion des reprises après panne
• Assurer que le système est capable, après une panne, de
récupérer l’état de la base au moment où la panne est survenue.
– On définit l’état de la base à un instant t comme l’état résultant de l’ensemble des
transactions validées à l’instant t.
SGBDR
Gestion des reprises après panne
• Règle 1
– L’état de la base doit toujours être stocké sur disque
– Pour le dire autrement, aucune donnée validée ne devrait être en
mémoire RAM et pas sur le disque, car elle serait perdue en cas de
panne.
– Durabilité (et atomicité): quand le système rend la main après
un commit (acquittement), toutes les modifications de la
transaction intègrent l’état de la base et
deviennent permanentes.
– Recouvrabilité (et atomicité): tant qu’un commit n’a pas eu
lieu, toutes les modifications de la transaction doivent pouvoir
être annulées par un rollback.
SGBDR
Gestion des reprises après panne
• Règle 1
– un commit, et l’image après remplace l’image avant dans l’état de la base;
– un rollback, et l’état de la base est restauré comme initialement, avec l’image
avant.
SGBDR
Gestion des reprises après panne
• Règle 2
– L’image après doit être sur le disque avant l’acquittement
du commit.
SGBDR
Gestion des reprises après panne
• Règle 3
– L’image après doit être sur le disque avant l’acquittement
du commit.
SGBDR
Gestion des reprises après panne
• Solution 1: journal des transactions¶
– Un journal des transactions (log en anglais) est un ensemble
de fichiers complémentaires à ceux de la base de données,
servant à stocker sur un support non volatile les informations
nécessaires à la reprise sur panne.
– Etat de la base = journaux de transactions + fichiers de la base
– Le journal contient les types d’enregistrements suivants:
• start(T)
• write(T, x, old_val, new_val)
• commit
• rollback
• checkpoint
SGBDR
Gestion des reprises après panne
• Solution 2: Algorithmes de reprise sur panne
– Si une panne légère (pas de perte de disque) survient, il faut
effectuer deux types d’opérations:
• Un langage de données
– est un langage de base de données relationnelle.
Références
1. Akoka, J., & Comyn-Wattiau, I. (2001). Conception de bases de données
relationnelles-En pratique.
2. Clouse, M. (2008). Algèbre relationnelle: guide pratique de conception
d'une base de données relationnelle normalisée. Editions ENI.
3. Gardarin, G., Gardarin, G., Gardarin, G., Gardarin, G., & Informaticien, F.
(1983). Bases de données: les systèmes et leurs langages. Eyrolles.
4. Elmasri, R., & Navathe, S. (2004). Conception et architecture des bases de
données. Pearson Éducation.
5. https://studylibfr.com/doc/4292713/chapitre-1---base-de-donn%C3%A9es-
relationnelles
6. http://webia.lip6.fr/~auzende/IFL-TICE/BD/Bases_donnees.pdf
7. https://www.univ-orleans.fr/lifo/Members/Mirian.Halfeld/Cours/BD/iutA2-
intro.pdf
8. http://tony3d3.free.fr/files/Passage-du-MCD-au-MLD.pdf
9. https://www.irit.fr/~Mohand.Boughanem/slides/BDA/Chap4_TransactionACI
D.pdf
Dr Edouard Ngor SARR 77
TP 1:
Conception d’un SII avec la méthode MERISE
(MCD & MLD) pour la gestion d’une agence
de location de maisons (Villa, App, Studio,
Chambre). Utiliser Power AMC
78
TP 2:
Conception d’un SII avec la méthode MERISE
(MCD & MLD) pour la gestion des
consultations dans une clinique généraliste
79
A SUIVRE
Partie 2: Algèbre relationnel & SQL