• Aucun résultat trouvé

Le Modèle Relationnel de Données Les Contraintes du Modèle

N/A
N/A
Protected

Academic year: 2022

Partager "Le Modèle Relationnel de Données Les Contraintes du Modèle"

Copied!
16
0
0

Texte intégral

(1)

Le Modèle Relationnel de Données Les Contraintes du Modèle

I. Deux Exemples :

Exemple 1.

Employés Départements

NumE NomE Status Dept NomD Etage E12 Aziza Technicien Elec Info 1 E03 Amine Administratif Info Elec 2

E01 Fatima Stagiaire ? Indus 2

E02 Ali Technicien Info Meca 3

E45 Khalid Ingénieur Meca

E06 Karim Administratif Elec E09 Saida Ingénieur Info

Clés soulignées 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,

(2)

On a :

L’attribut NumE est Clé primaire de la relation Employés

✔ 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 ligne de la table Départements.

✔ Par Jointure, on peut savoir dans quel étage travaille un employé donné.

✔ On appelle une telle colonne Clé Etrangère. (Ang. Foreign Key)

✔ Cela implique une contrainte sur les données: les valeurs de la colonne Dept dans Employés

doit figurer parmi les valeurs de la colonne NomD de la Départements.

(3)

✔ Notation : R [A], désignant la projection de R sur la A. La contrainte s’exprime par la formule

Employés [Dept] Départements [NomD]

✔ On appelle cette 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.

(4)

Exemple 2

Livre

NumInv Titre Auteur Qte 323 Bases De

Données

C.J. Date 3 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

NumAb Nom Prénom NumInv NumAb DatePrêt

12 Benali Ali 323 10 1/11/2007

10 BenSaid Said 124 12 2/11/2007

32 Karim Karima 323 12 3/10/2007

14 Rajaoui Rajaa 241 32 3/10/2007

321 14 13/10/2007 323 32 13/09/2007

(5)

On a :

NumInv, clé primaire de la relation Livre

NumAb, clé primaire de la relation Abonné

✔ La combinaison (NumInv, NumAb) clé primaire de Prêt.

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.

✔ On a donc la contrainte référentielle :

Prêt [NumInv] Livre [NumInv].

✔ Le même raisonnement permet de dire :

Prêt [NumAb] Abonné [NumAb].

✔ 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.

(6)

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.

✗ La clé primaire est soulignée dans le schéma d’une relation.

Prêt (NumInv, NumAb, Date) Départements (NomD, Etage)

(7)

✔ Clé Etrangère

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.

S est dite source de la clé étrangère, et C cible de la clé étrangère.

C et S, ne sont pas nécessairement distinctes. (voir exemple plus loin)

✗ Exemples :

o Dept est clé étrangère dans Employés.

o Départements (dont la clé primaire est NomD) est cible de la clé étrangère.

(8)

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é

n’existerait pas si elle n’était pas identifiée

✗ La clé primaire représente cet identifiant

✗ C’est d’ailleurs le seul moyen d’accéder à une ligne dans une table.

NumAb Nom Prénom

? Benali Ali

et

NumInv NumAb DatePrêt

323 ? 1/11/2007

N’auraient pas de sens.

(9)

✔ 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.

On note :

S [ E ] ⊆ C [ P ]

C n’est pas forcément distincte de S.

✗ Exemples :

o Prêt [NumInv] ⊆ Livre [NumInv]

o Prêt [NumAb] ⊆ Abonné [NumAb]

o Employés [Dept] ⊆ Départemens [NomD]

(10)

✗ Notation de schéma :

Employés

NumE NomE Status Dept

Départements

NomD Etage

Abonné

Prêt

- NumAb - Nom - Prénom - NumInv

- NumAb

- Date Livre

- NumInv - Titre - Auteur - Qte

(11)

✔ Exercice :

Etudier les clés primaires et étrangères des exemples suivants. En déduire les contraintes référentielles.

Client (NumC, Nom, Adresse)

Commande (NumCde, DateCde, NumCli)

Client (NumC, Nom, Adresse)

Commande (NumCde, DateCde, NumCli)

DétailCommande (NumCde, NumLigne, NumProd, Qte) Produit (NumP, NomP, Prix)

Employé (NumE, NomE, Salaire, Dept)

Département (Nomd, Etage, Mgr)Mgr est le n° Employé du chef de département

Employé (NumE, NomE, Salaire, Mgr)

(12)

III. Les Règles de Mise à Jour Associées.

✔ Problème : Modification/suppression de valeur de clé primaire. Que se passe t-il pour les clés étrangères qui y font référence ?

✔ 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).

(13)

✔ 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).

Rendre NULL, la valeur de clé étrangère ayant été touchée

Propager (Ang. Cascade) la mise à jour vers la valeur de clé étrangère ayant été touchée (la modifier ou supprimer la ligne)

(14)

✔ Exemples :

1er cas : La valeur NumInv 323 devient 626.

NumInv Titre Auteur Qte 626 Bases De

Données

C.J. Date 3

323

NumInv NumAb DatePrêt 323 10 1/11/2007 124 12 2/11/2007 323 12 3/10/2007

(15)

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

✗ Le concepteur doit donc choisir refuser ou propager selon l’application.

(16)

4e cas : La valeur ‘Méca’ change ou est supprimée dans la table Départements .

Employés Départements

NumE NomE Status Dept NomD Etage E01 Fatima Stagiaire Null Indus 2 E02 Ali Technicien Info Proc 3 E45 Khalid Ingénieur Null Meca

✗ 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)

Références

Documents relatifs

Dans le cas d'une table d'objets de type T-Personne et dans celui d'un attribut de type T- Personne, suivant le principe de substituabilité, l'utilisateur peut y insérer des valeurs

Un stage peut ne pas être effectué comme il peut être effectué par un seul étudiant (0, N) : donc ce champs NumET peut avoir une valeur optionnelle dans la table STAGE. Il

Exemple 2 : Dans la table LIGNE-FACUTRES, il existe deux clés étrangères : - Référence du produit, qui référence la clé primaire de PRODUITS ; - N° facture, qui fait

Cette relation est en première forme normale car tous les attributs sont élémentaires et en dépendance fonctionnelle de la clé primaire (la connaissance du matricule d’un

2ème forme normale : Une relation est en deuxième forme normale si elle est en première forme normale et si tous les attributs sont en dépendance fonctionnelle de l’intégralité

Ait Taleb TECC Techniques cinématographiques Informatique et gestion d’organisation Informatique et gestion d’entreprise. 3.1 Intérêt de

Alami Ali IGE Informatique et gestion d’entreprise Slaoui Rachid IGE Informatique et gestion d’entreprise Nasri Hind IGE Informatique et gestion d’entreprise Belhaj Amina

Schéma de la relation (intention) : Définition structurelle de la relation R 1(Ncli, Nom, Prénom, Adr, Ville) Un n-uplet correspond à une ligne de la relation.  Cardinalité :