Beruflich Dokumente
Kultur Dokumente
I. Deux Exemples :
Exemple 1.
Employés Départements
NB. Le signe " ? " signifie valeur indéfinie: non applicable ou inconnue.
On parle de valeur NULL. (Ne pas confondre avec nulle, i.e. égale à zéro,
ni avec chaîne vide)
_______________________________________________________________________________________________________________
Najib Tounsi 1/16
On a :
✔ L’attribut NomD est Clé Primaire de la relation Departements. (Ang. Primary Key)
✔ Une « relation » entre les deux tables : La colonne Dept dans Employés fait référence à une
✔ Par Jointure, on peut savoir dans quel étage travaille un employé donné.
✔ Cela implique une contrainte sur les données: les valeurs de la colonne Dept dans Employés
_______________________________________________________________________________________________________________
Najib Tounsi 2/16
✔ Notation : R [A], désignant la projection de R sur la A. La contrainte s’exprime par la
formule
Intégrité Reférentielle
✔ Elle entraîne une contrainte sur les mises à jours des données. On ne peut pas toujours
supprimer un département ou changer son nom. Il y a peut-être des employés qui sont
affectés à ce département.
_______________________________________________________________________________________________________________
Najib Tounsi 3/16
Exemple 2
Livre
NumInv Titre Auteur Qte
323 Bases De C.J. Date 3
Données
124 Algorithmes D. Knuth 2
1110 Programmation B. Meyer 6
241 Langage C B. Kernighan 5
321 Unix K. Thompson 2
312 Langage Java J. Gosling 8
Abonné Prêt
_______________________________________________________________________________________________________________
Najib Tounsi 4/16
On a :
✔ NumInv, clé primaire de la relation Livre
✔ Numinv de la table Prêt, permet d’accéder à la table Livre pour connaître le nom du livre
emprunté.
✔ NumInv est une clé étrangère dans cette table Prêt. Elle fait référence à la table Livre.
✔ NB. Dans cet example, NumInv (resp. NumAb), est clé étrangère en plus du fait que la
combinaison (NumInv, NumAb) est clé primaire dans cette même table.
_______________________________________________________________________________________________________________
Najib Tounsi 5/16
II. Clés Primaire et Etrangère
✔ Clé primaire
On appelle Clé Primaire d’une relation, un attribut (ou collection d’attributs) dont la valeur
identifie chaque tuple de la relation. Autrement dit, dont la valeur est unique d’un tuple à un
autre.
✗ Dans le cas plus d’un attribut, la clé primaire doit être minimale (aucun attribut n’est
superflu).
✗ Il se peut qu’il existe plusieurs attributs (ou collections) ayant la propriété d’unicité et de
minimalité. On les appelle clés candidates.
✗ Exemples :
o Numinv dans la table Livre.
o (NumInv, NumAb) dans la table Prêt
o (NumInv, Nom) a la propriété d’unicité, mais pas celle de minimalité
o (Titre, Auteur) est clé candidate de la table Livre.
On appelle Clé Etrangère dans une relation S, un attribut (ou collection d’attributs) dont la
valeur est définie sur le même domaine que la clé primaire d’une autre relation C.
✗ Exemples :
o Départements (dont la clé primaire est NomD) est cible de la clé étrangère.
_______________________________________________________________________________________________________________
Najib Tounsi 7/16
III. Les Deux Contraintes du Modèle Relationnel
✔ Contrainte d’Entité
Dans une relation, la clé primaire ne peut être indéfinie. Ne peut accepter une valeur NULL,
c’est à dire indéfinie (inconnue ou inapplicable).
✗ Dans une relation, un n-uplet représente un objet ou une entité de l’application. Cette entité
✗ C’est d’ailleurs le seul moyen d’accéder à une ligne dans une table.
_______________________________________________________________________________________________________________
Najib Tounsi 8/16
✔ Contrainte Référentielle.
Dans une relation S, la valeur d’une clé étrangère (attribut E) est soit indéfinie (NULL), soit de
valeur v, où v est une valeur de clé primaire (attribut P) d’une relation cible C.
✗ Exemples :
_______________________________________________________________________________________________________________
Najib Tounsi 9/16
✗ Notation de schéma :
Employés
NumE NomE Status Dept
Départements
NomD Etage
Abonné
- NumAb
- Nom
Prêt - Prénom
- NumInv
- NumAb
- Date Livre
- NumInv
- Titre
- Auteur
- Qte
_______________________________________________________________________________________________________________
Najib Tounsi 10/16
✔ Exercice :
Etudier les clés primaires et étrangères des exemples suivants. En déduire les contraintes
référentielles.
_______________________________________________________________________________________________________________
Najib Tounsi 11/16
III. Les Règles de Mise à Jour Associées.
✔ Exemples :
1. Dans la table Livre, NumInv ‘323’ devient ‘626’. Dans la table Prêt ‘323’ figure
comme valeur de clé étrangère dans deux lignes (le livre est emprunté par deux
abonnés).
2. De même si on supprime dans la table Livre, la ligne ‘323’ concernant ce livre.
3. NB. La clé primaire ‘1110’ de Livre ne pose pas de problème. Il n’y a pas de clé
étrangère ayant cette valeur.
4. Dans la table Départements, même type de problème : la valeur clé primaire ‘Méca’
change ou est supprimée (le département ‘Méca’ change de nom ou est supprimé).
Dans la table Employés, ‘Méca’ figure comme valeur de clé étrangère (Il y a un
employé affecté à ce département).
_______________________________________________________________________________________________________________
Najib Tounsi 12/16
✔ Solution : Il y a trois type de solutions.
✗ Refuser, la mise à jour d’une clé primaire, si une contrainte référentielle est violée
(une clé étrangère de même valeur existe).
✗ Propager (Ang. Cascade) la mise à jour vers la valeur de clé étrangère ayant été
touchée (la modifier ou supprimer la ligne)
_______________________________________________________________________________________________________________
Najib Tounsi 13/16
✔ Exemples :
_______________________________________________________________________________________________________________
Najib Tounsi 14/16
On peut soit :
✗ Refuser. Le livre 323 figure dans la table Prêt (il est emprunté)
✗ Mettre à NULL. Impossible car NumInv ne peut être indéfini (Règle d’entité)
NumInv NumAb DatePrêt
Null 10 1/11/2007
124 12 2/11/2007
Null 12 3/10/2007
✗ Propager.
NumInv NumAb DatePrêt
626 10 1/11/2007
124 12 2/11/2007
626 12 3/10/2007
✗ Ici, on rend la valeur de la clé étrangère Null, car c’est possible dans ce cas.
✗ Sinon, il faut refuser, le temps de changer l’affectation des employés.
Exercice : Etudier les règles de mise à jours pour les exercices précédents (p11)
_______________________________________________________________________________________________________________
Najib Tounsi 16/16