Introduction Requêtes SQL : Base
  mySQL Administration Insert, Delete et Update
  Base de données relationnelles Requêtes SQL : Avancée
  Notation Entitée-Relation Exercices

 

Relation 1: n

Considérons une base de données qui contient les informations sur des livres d'une bibliothèque.

table : livre
no titre sujet auteur Pages annee edition addresse telephone
1 Internet informatique Pierre Laroche 290 1998 Autodesk SilliconValley 555-1234
2 3ds Max informatique Brain Man 501 2008 Autodesk SilliconValley 555-1234
3 Linux OS Linus Torvalds 565 2005 Autodesk SilliconValley 555-1234
4 Les misérables romman Victor Hugo 294 1945 La plume Paris 555-3423
5 LaFontaine Conte Lafontaine 45 1950 La plume Paris 555-3423

On remarque que plusieurs informations sont répétitives. Si on considère qu'une bibli;thèque contient des milliers de livres, alors beaucoup d'espace en mémoire est simplement gaspillé. Pour résoudre ce problème, on va créer 2 tables et établir une relation entre les deux. La première table contiendra les informations sur les livres et la seconde pour la maison d'édition.

table : livre
no titre sujet auteur Pages annee noEdition
1 Internet informatique Laroche 290 1998 1
2 3ds Max informatique Brain Man 501 2008 1
3 Linux OS Torvalds 565 2005 1
4 Misérables romman Victor Hugo 294 1945 2
5 LaFontaine Conte Lafontaine 45 1950 2
table : edition
noEdition edition addresse telephone
1 Autodesk SilliconValley 555-1234
2 La plume Paris 555-3423

La relation entre les 2 tables est établie en ajoutant un champs noEdition à la table livre

table : edition
noEdition clé primaire
edition  
adresse  
telephone  

relation
1 à n

  • une maison d'édition peut avoir plusieurs livre
  • un livre à qu'une seule maison d'édition
table : livre
no clé primaire
titre  
sujet  
auteur  
pages  
noEdition clé étrangère

Relation m : n

Considérons la table ci-dessous

table : eleves
noEleve nom prenom annee cote titreCours description
1 Laroche Arthur 11 ICS3M Étude informatique informatique
2 Calloux Frédéric 11 ICS3M Étude informatique informatique
3 Calloux Frédéric 11 MAT3U Mesure et relations mathématiques
4 LeChien Dino 12 MAT3U Mesure et relations mathématiques
5 LeChien Dino 12 ICE4M Système informatique réseau

Encore ici, on a des données répétitives. La solution est de séparer les données en 2 table. Malheureusement, une relation 1 à n est impossible car un élève à plusieurs cours un un cours à plusieurs élèves. Donc on ne peut pas ajouter un champs dans l'une des 2 tables pour créer le lien.

table : eleve
noEleve clé primaire
nom  
prenom  
annee  

relation
m à n

  • un élève a plusieurs cours
  • un cours a plusieurs élèves
table : cours
cote clé primaire
titreCours  
description  

Pour créer le lien on doit créer une troisième table. La table suit cours a pour seul but de faire le lien entre un élève et cours ( tel élève suit tel cours ) . La table suitCours est composé des cléprimaires des 2 autres tables

table : eleve
noEleve clé primaire
nom  
prenom  
annee  

2 relations 1 à n

1 à n
n à 1
table : suitCours
noEleve clé primaire
cote clé primaire
table : cours
cote clé primaire
titreCours  
description  

 


Accueil