Université Abdelmalek Essaâdi
Faculté des Sciences et Techniques de Tanger
Département : Génie Informatique
Base de Données Structurées et Non Structurées
Partie 6: Structure de base de données et règles d’intégrité
Prof. Badr-Eddine BOUDRIKI SEMLALI
Email:
[email protected] 2024/2025
Plan de cours
1. Introduction aux bases de données et méthode de conception MERISE
2. Modélisation des données: (MCD) → modèle « E/A »
3. Dépendances fonctionnelles et normalisation
4. Le Modèle Logique de Données (MLD), Modèle Physique de Données (MPD)
5. Le Modèle relationnel : Concepts de bases
6. Structure de base de données et règles d’intégrité
7. Langage SQL
Prof. Badr-Eddine Boudriki Semlali 2
SGBD: Structure d’une BD relationnelle
Etudiant(Id_Etud, Nom, Prénom, Age)
Propriété (attribut, colonne, champ)
Id_Etud Nom Prénom Age et type
11 SAIDI Ali 21 Tuple (n-uplet), ligne, enregistrement
12 RAHMONI said 22
- Indivisibilité : les données ne sont pas décomposables
- Domaine unique : les attributs ne peuvent prendre n’importe
quelle valeur (intervalle, type de données)
- Ordre : l’ordre des attributs n’a pas d’importance
Prof. Badr-Eddine Boudriki Semlali 3
SGBD: Structure d’une BD relationnelle
Une table porte un nom unique.
Le nom des colonnes désignent les attributs.
Les attributs d’une table appartiennent à un domaine précis qui a été prédéfini
lors de la création de la table (exemple : date).
Lorsqu’un attribut permet de définir de façon unique une ligne de La table, il
s’agit d’une clé.
La ligne d’une table est aussi appelé tuple.
On appelle schémas d’une table, ce qui permet de définir sa structure : c’est à
dire son nom suivi de la liste de ses attributs avec leurs domaines de valeurs.
Prof. Badr-Eddine Boudriki Semlali 4
SGBD: Structure d’une BD relationnelle
Le nom de chaque attribut est unique à l’intérieur d’une même table.
Une table peut contenir un nombre quelconque d’attributs, l’ordre des colonnes dans une
table est indifférent (ordre quelconque).
Unicité des tuples : il ne peut y avoir de tuples identiques.
L’un des attributs ou une combinaison d’attributs doit identifier de manière unique un tuple
dans une table et sera déclaré clé primaire.
=> identifiant (ou clé) : un ou plusieurs attributs permettent d’identifier un enregistrement
de la table.
Dans le modèle relationnel, chaque table est vue comme un ensemble non ordonnée de
tuples et un tuple ne peut donc apparaître qu’une seule fois dans une table.
Prof. Badr-Eddine Boudriki Semlali 5
SGBD: Quelques contraintes
▪ Deux tables d’une même base de données ne peuvent pas avoir le même nom.
▪ Deux champs de la même table ne peuvent pas avoir le même nom.
▪ Un même champ peut être présent dans plusieurs tables.
Prof. Badr-Eddine Boudriki Semlali 6
SGBD: Définition et propriétés d’une clé
Une clé d’identification ou clé d’une table est un attribut ou une combinaison
minimale d’attributs dont les valeurs permettent de définir de façon unique
chaque tuple de la table.
Les clés permettent l’accès à un ou plusieurs tuples sans ambiguïté et
optimisent ainsi le fonctionnement des SGBDR.
Prof. Badr-Eddine Boudriki Semlali 7
SGBD: Définition et propriétés d’une clé
Deux types de clé :
Clé simple : un seul attribut.
Clé composée : plusieurs attributs.
Une clé possède deux propriétés :
Unicité : chaque valeur clé identifie de manière unique un enregistrement
dans la table.
Minimalité : si une clé est composée par un ensemble d’attributs, cette
combinaison doit être minimale. Aucun attribut ne peut être retirer sans violer
la propriété d’unicité.
Prof. Badr-Eddine Boudriki Semlali 8
SGBD: Différents types de clés
Trois types de clés peuvent être définis :
Clé primaire : Elle doit permettre d’identifier chaque tuple d’une table sans
ambiguïté. En règle générale, il s’agit de l’identifiant de la table.
Clé secondaire : Elle doit permettre d’identifier un ou éventuellement
plusieurs tuples à partir de la connaissance d’un ou plusieurs attributs.
L’identifiant alternatif devient alors une clé secondaire.
Clé étrangère : Clé principale d’une autre table avec laquelle une relation est
établie.
Prof. Badr-Eddine Boudriki Semlali 9
SGBD: Règles d’intégrité structurelle
Problème ?
Mélanger dans une même relation des informations relatives à plusieurs entités
entraîne, en général des redondances d’information qui provoquent les
anomalies suivantes:
anomalies d’insertion ;
anomalies de mise à jour ;
anomalies de suppression.
Prof. Badr-Eddine Boudriki Semlali 10
SGBD: Règles d’intégrité structurelle
Exemple
Livre(ISBN, titre, éditeur, pays)
ISBN titre éditeur pays
Cette relation contient des redondances provoquant les
anomalies suivantes :
2-212-09283-0 Base de données Eyrolles France
1. Insertion: Si les valeurs nulles sont interdites, Il faut
connaitre toutes les caractéristiques du livre pour
l’enregistrer.
Fondements des bases
2-7117-8645-5 Vuibert USA
de données
2. Mise à jour: si l’éditeur Eyrolles change de pays, il faut
modifier ce pays pour chacun des livres qu’il a édités
Databases and
(autant de modifications qu’il y’ a de Eyrolles dans la
0-201-70872-8
Transaction Processign
Addition Wesley USA
base) .
3. Suppression : si l’unique livre publié par l’éditeur Vuibert
Internet/Intranet et base est supprimé, l’information sur cet éditeur est perdue.
2-212-09069-2 Eyrolles France
de données
Prof. Badr-Eddine Boudriki Semlali 11
SGBD: Règles d’intégrité structurelle
Solution :
La solution à ces problèmes consiste à normaliser la relation en cause en la
décomposant en plusieurs relations.
• Les questions à résoudre: S’il y’a redondance :
- Comment faut-il décomposer la relation?
- Y-a-t-il de l’information perdue par la décomposition?
- Existe-t-il des algorithmes qui permettent de déterminer la décomposition
adéquate?
La décomposition s’appuie sur les dépendances qui existent entre les attributs de la
relation initiale : dépendances fonctionnelles.
Par exemple, la dépendance entre l’ISBN d’un livre et son titre ou bien entre le nom d’un
éditeur et son pays.
Prof. Badr-Eddine Boudriki Semlali 12
SGBD: Optimisation des schémas de BD : La normalisation
L’objectif consiste à détecter et à étudier les dépendances à l’intérieur des
tables pour en éliminer les informations redondantes et les anomalies qui en
résultent.
La normalisation permet de:
✓éviter les redondances (perte de place et incohérences)
✓minimiser l’espace de stockage.
✓éviter les problèmes de mises à jour.
Normaliser un schéma relationnel c'est le remplacer par un schéma équivalent où
toutes les relations vérifient certaines propriétés. Ces propriétés sont basées sur
l'analyse des dépendances fonctionnelles à l’intérieur de chaque relation.
Prof. Badr-Eddine Boudriki Semlali 13
SGBD: Optimisation des schémas de BD : La normalisation
Exemple : soit la relation CommandeProduit :
NumProd Quantité NumFour AdresseFour
105 2000 901 Rue Maréchal joffre
➢ Cette relation présente différentes anomalies lors de la mise à jour.
Anomalies de modification :
Si on souhaite modifier l'adresse d’un fournisseur, il faut le faire pour tous les tuples concernés (produits qu'il
fournit).
Anomalies d’insertion :
Pour ajouter un nouveau fournisseur, il faut obligatoirement fournir des valeurs pour NumProd et Quantité
(ajouter un nouveau produit).
Anomalies de suppression :
La suppression par exemple du produit 105 fait perdre toutes les informations concernant le fournisseur 901.
Prof. Badr-Eddine Boudriki Semlali 14
SGBD: Optimisation des schémas de BD : La normalisation
Les normalisations ci-dessus ont pour but d’éliminer :
➢ les redondances (inutile de répéter la désignation du produit commandé chaque commande
d’un même produit).
➢ les anomalies de mise à jour ( si on annule un client on veut sans doute toutefois conserver
la catégorie de ce client).
Modèle normalisé = relations avec
➢ une clé, qui permet de distinguer chaque occurrence
➢ des attributs élémentaires (1FN)
➢ en dépendance de TOUTE la clé (2FN),
➢ et RIEN QUE de la clé (3FN)
Remarque:
Un MCD normalisé donne aussi un Modèle relationnel normalisé.
Prof. Badr-Eddine Boudriki Semlali 15
SGBD: Contraintes d’Intégrité (1)
l’intégrité référentielle doit avoir une place capitale dans les S.I. En effet, elle
définie le respect des règles d’interdépendance entre données.
Exemples : il est convenu que tout employé est rattaché à un service, le
contrôle d’intégrité référentielle doit garantir que dans la base de données, à
tout instant, chaque occurrence de l’entité « employé » est bien associée à une
occurrence de l’entité « service ».
l’enregistrement service « ACHAT » par exemple doit être créé avant que
l’employé ne soit affecté à ce service et que l’on interdise la suppression de
l’enregistrement service tant qu’il restera au moins un employé affecté à ce
service.
Prof. Badr-Eddine Boudriki Semlali 16
SGBD: Contraintes d’Intégrité (2)
Une contrainte d'intégrité est une propriété du schéma invariante dans le temps
qui traduit les caractéristiques sémantiques des données.
On peut distinguer plusieurs catégories de contraintes.
• Contraintes de clé ;
• Contraintes de types de données ;
• Contraintes d’intégrité référentielle (CIR).
Remarque :
La gestion de ces C.I se fait d’une manière automatique par le SGBD.
Prof. Badr-Eddine Boudriki Semlali 17
SGBD: Contraintes d’Intégrité
Contraintes de types clés
Un SGBD gère et vérifie la définition de clé primaire pour chaque relation ;
Quelle que soit la table, si une clé primaire est définie, elle doit être présente
pour chaque enregistrement, elle doit être unique et aucun de ses constituants
ne peut être NULL.
• Si la clé est omise ;
• S’elle est à valeur NULL ;
• Elle a déjà saisie pour un autre enregistrement de la table.
Une anomalie de clé est déclenchée par le SGBD
Prof. Badr-Eddine Boudriki Semlali 18
SGBD: Contraintes d’Intégrité
Contraintes de types de données
Le second type de contraintes d'intégrité traité par un SGBD permet de vérifier
les types des données saisies (entiers, réels, dates, chaînes de caractères,
booléens etc ...) et les domaines de validité pour chacune de ces données.
Exemple :
• Date postérieure au 01/01/2019 pour la gestion des commandes d'une
entreprise créée a cette date ;
• Entier compris entre 0 et 20 pour représenter une note d’étudiant ;
• …
Prof. Badr-Eddine Boudriki Semlali 19
SGBD: Contraintes d’Intégrité
Contraintes d’Intégrité Référentielle (CIR)
Gestion de données référencées dans plusieurs tables : une CIR peut
s’appliquer dès qu’une clé primaire d’une table R est utilisée comme référence
dans une autre table T (clé étrangère).
La gestion des contraintes d'intégrité permet aussi de vérifier automatiquement la
présence de données référenciées dans des tables différentes.
Présence du clé étrangère
Absence du clé primaire associée
Une anomalie d’I.R. est déclenchée par le SGBD
Prof. Badr-Eddine Boudriki Semlali 20
SGBD: Contraintes d’Intégrité
Contraintes d’Intégrité Référentielle (CIR)
Les CIR permettent au SGBD de vérifier automatiquement la cohérence de la BD par
rapport :
➢ Anomalie de suppression
Lorsqu’on supprime un client (Table Client), il faut supprimer toutes ses commandes
(Table Commande).
➢ Anomalie de modification
Lorsqu’on modifie le code d’un produit (Table Produit), il faut répercuter ces
modifications dans les commandes (Table Commande).
➢ Anomalie d’ajout
Lorsqu’on ajoute une commande, il faut s’assurer que le code client et le code produit
existent.
Prof. Badr-Eddine Boudriki Semlali 21
SGBD: Contraintes d’Intégrité
Contraintes d’Intégrité : Conclusion
Grâce à la gestion des CI, le SGBD s’occupe automatiquement, a chaque action sur
les données (saisie, modification, effacement) de vérifier la cohérence de la BD.
Exemple BD incohérente:
▪Saisir une commande d’un produit dont la réf. n’est pas présente dans la table des
produits.
▪Mettre une note à un étudiant qui ne figure pas dans la table des étudiants.
Prof. Badr-Eddine Boudriki Semlali 22
SGBD: Synthèse
Composant de Composant
stockage de Gestion
Données utilisateurs stockées Langage de définition et de
sous formes de table. manipulation de données relationnels
Données de descriptions et Fonctions centrales de réorganisation
données statistiques (table de de protection, de sécurité de données.
système).
Prof. Badr-Eddine Boudriki Semlali 23