CHAPITRE II:
MODÈLE RELATIONNEL
Modèle relationnel
❑ Le modèle relationnel représente la BD comme un ensemble de
relations
❑ Les relations sont des tables à 2 dimensions (lignes, colonnes)
❑ Chaque ligne de la table est un enregistrement représenté par
un ensemble de valeurs reliées correspondant à une réalisation
d’entité ou d’association dans le monde réel
❑ Chaque colonne de la table représente un champ de la BD
❑ Représentation des données issue du modèle Entité/Association
❑ Propriété→ Champ ou Attribut ou Colonne
❑ Occurrence→ Enregistrement ou Tuple ou Ligne
❑ L’ensemble de ces tables constituent une base de données
relationnelle ayant un schéma
2
Modèle relationnel
Noms des Attributs ou Colonnes
Nom de la table (Relation) (Champs)
Etudiant ID Nom Ville
1 Kamal Rabat
Tuples ou Lignes
(Enregistrements)
2 Mohamed Marrakech
3 Amin Wajda
❑ Toutes les valeurs d’une colonne sont de même type
❑ Le type de données introduites dans chaque colonne est représenté par un domaine
de valeurs possibles
❑ Le domaine est l’ensemble fini ou infini des valeurs possibles des données :
Entier {0,…., infini}, Booléen {0, 1}, Date, Sexe {M, F}, Noms {Chaine de car}, ..
3
Modèle relationnel
❑Degré de relation : Nombre d’attributs
❑ Cardinalité de relation : Nombre de tuples ou
instances
❑ La gestion, la lecture, le stockage, la mise à jour, le
partage, la cohérence et la sécurité des données sont
assurés par un SGBD Relationnel
❑ Ce modèle est à la base de nombreux systèmes :
Oracle, MS SQL Server, MySQL,..
4
Modèle relationnel
❑ Le Schéma d’une BD est la description de la BD, obtenue en employant
un modèle de données
❑Le schéma d’une table, appelé aussi le schéma en intention, comporte le
nom de la relation, ses attributs + format et la clé primaire.
❑ Le Schéma est la structure de la relation caractérisée par les trois
concepts : Relation, Attribut et Domaine
❖ Schéma d’une relation : R (A1 : D1, A2 : D2, …….., An : Dn)
❖ Exemple : Etudiant (Num : Integer, Nom : Varchar, Commune :
Varchar)
❖ Format plus simple : Etudiant (Num , Nom, Commune)
❑ Schéma d’une BD relationnelle est un ensemble de schémas de tables
relationnelles
❖Exemple : Etudiant (NumE, Nom, Age)
Cours (DesC, Horaire, Lieu)
Suivre (#NumE, #DesC) 5
Modèle relationnel : Clé primaire
❑L’identifiant de l’entité du modèle conceptuel devient
une clé primaire de la table relationnelle
❑C'est un ensemble minimum d'attributs tel qu'il
n'existe jamais 2 tuples ayant mêmes valeurs pour tous
ces attributs regroupés
❑En général, la clé est un seul attribut, comme elle peut
contenir l'ensemble des attributs de la relation
❑ La valeur de la clé sert à identifier un et un seul tuple
❑ Toute relation doit avoir une et une seule clé primaire
(Primary Key : PK)
❑La clé primaire est souvent soulignée (et/ou mise en
gras) 6
Modèle relationnel : Clé primaire
❑Clé primaire : Unicité et Présence de valeur
❖La clé primaire doit être unique : Contrainte d’unicité (UNIQUE)
❖Laclé primaire doit être renseignée : Contrainte de présence de valeur
(NOT NULL)
7
Modèle relationnel : Problème de Redondance des données
OUVRAGES
Côte Titre Année NbExem Thème NomAuteur PrénAuteur
12TA1 BD 1998 10 R Tanenbaum Henri
13GO1 RI 1994 5 AG Goldberg Stephen
13GO1 RI 1994 5 AG Holland John
15TA2 SE 1993 6 UNIX Cardy Ronald
15TA2 SE 1993 6 UNIX Dumar Eric
15TA2 SE 1993 6 UNIX Tannenbaum Henri
❑La redondance = répétition des informations.
❑Un des objectifs des SGBD est (de nous permettre) de représenter les
données avec le moins de redondance possible
❑Comment éliminer les redondances ?
8
Modèle relationnel : Problème de Redondance des données
❑Pour éliminer les répétitions nous allons dans premier temps
construire une table auteur comportant tous les auteurs
❖La table auteur est décrite par AUTEURS (NumAuteur,
NomAuteur, PrénomAuteur). Nous avons rajouté l’attribut
NumAuteur pour représenter la clé. NumAuteur est un numéro
qui peut être donné automatiquement par le SGBD.
❑Nous allons construire une table ECRIT qui permet de relier les
OUVRAGES et leurs AUTEURS.
❖Le schéma de la table ECRIT est : ECRIT (cote, NumAuteur) , il
suffit donc de prendre les clés primaires des tables OUVRAGES
et AUTEURS et former une nouvelle table, en l’occurrence
ECRIT.
❑Rappelons qu’un des intérêts d’un SGBD est sa possibilité de
créer des liens entre les objets. 9
Modèle relationnel : Problème de Redondance des données
OUVRAGES Côte Titre Année NbExem Thème
12TA1 BD 1998 10 R
13GO1 RI 1994 5 AG
15TA2 SE 1993 6 UNIX
ECRIT
AUTEURS
Côte NumAuteur
NumAuteur NomAuteur PrénAuteur
12TA1 1
1 Tanenbaum Henri
13GO1 2
2 Goldberg Stephen
13GO1 3
3 Holland John
15TA2 4
4 Cardy Ronald
15TA2 5
5 Dumar Eric
15TA2 1 10
Modèle relationnel : Problème de Redondance des données
❑ La base de données décrivant les OUVRAGES sera composé des
tables suivantes :
❖ AUTEURS(NumAuteur, Nom, Prénom)
❖ OUVRAGES(cote, Titre, NbExemplaire, Année, Editeur, Thème)
❖ ECRIT (#cote, #NumAuteur)
❑ Noter que nous avons supprimé l’attribut NumAuteur de la table
OUVRAGES
11
Modèle relationnel : Clé étrangère
❑Une clé étrangère est un attribut d’une relation qui fait référence à une clé primaire
déclarée dans une autre relation de la même BD (Foreign Key : FK)
❑ La table contenant la clé primaire est dite Père, celle qui contient la clé étrangère
est dite Fils
❑ FK implémente le lien conceptuel entre deux entités, utile pour joindre les deux
tables
❑ La PK et la FK doivent partager le même domaine (Même type et même taille)
❑ La définition d’une FK impose une contrainte d’intégrité référentielle aux
enregistrements des tables père et fils. SI B fait référence à A, alors A doit exister :
❖Interdire de saisir une note pour un étudiant qui n’existe pas
❖Interdire de supprimer un client ayant des factures
❑ NumAuteur et Cote sont des clés étrangères dans la table ECRIT
❑ Par convention, Une clé étrangère commence par le symbole “#”
12
Modèle relationnel
Clé étrangère : Example
Client
NoClient
CarteMember
Nom
NoCarte
Prénom
Adresse TypeAbonnement
CodePostal DateCréation
Localité #NoClient
Client(NoClient, Nom, Prénom, Adresse, CodePostal, Localité)
CarteMember(NoCarte, TypeAbonnement, DateCréation, #NoClient)
13
Modèle relationnel
Clé étrangère : Example
Patient
Medecin Hospitaliser NumPatient
NumMedecin #NumPatient NomPatient
NomMedecin #NumMedecin PrenomPatient
PrenomMedecin NumChambre
DuréeHospti
Medecin(NumMedecin, NomMedecin, PrenomMedecin)
Patient(NumPatient, NomPatientn, PrenomPatient)
Hospitaliser(#NumPatient, #NumMedecin, NumChambre, DuréeHospti) 14
Modèle relationnel : Contraintes d’intégrités
❑Un des avantages des bases de données par rapport à une
gestion de fichiers traditionnelle réside dans la possibilité
d’intégrer des contraintes que doivent vérifier les données à
tout instant.
❑Exemple : on souhaite poser les contraintes suivantes :
❖le nombre d’exemplaire de chaque OUVRAGE doit être
supérieur à 0 (zéro)
❖chaque OUVRAGE doit avoir au moins un auteur
❑Ceci est possible grâce à la notion de contraintes d’intégrité
❑Contraintes d’intégrité « sont des assertions qui doivent être
vérifiées à tout moment par les données contenues dans la
base de données »
15
Modèle relationnel : Contraintes d’intégrités
Trois types de C.I. Obligatoires :
❑Contrainte de clé : une relation doit posséder une clé primaire
❑Contrainte d’entité : un attribut d’une clé ne doit pas posséder de
valeurs nulles (vides)
❑Contrainte de référence (pour les clés étrangères), c’est une
contrainte exprimée entre deux tables. Tout tuple d’une relation
faisant référence à une autre relation doit se référer à un tuple qui
existe.
❖Intuitivement, cela consiste à vérifier que l'information utilisée dans
un tuple pour désigner un autre tuple est valide, notamment si le
tuple désigné existe bien
❖En d’autre terme, quand on désigne un attribut comme clé étrangère,
les seules valeurs que peut prendre cet attribut sont celles qui sont
déjà saisies dans la table qu’il référence (voir exemple sur la page
suivante). 16
Modèle relationnel : Contraintes d’intégrités
❑Contrainte optionnelle
❖Contrainte de domaine : liée au domaine de définition d'un
attribut.
✓Exemple: NbExemplaire > 0
❑Les contraintes d’intégrité sont vérifiées (exécutées) à chaque
mise à jour de la base de données (ajout, suppression ou
modification d’un tuple). Si, lors d’une mise à jour une
contrainte n’est pas satisfaite, cette mise à jour ne peut pas
avoir lieu.
17
Modèle relationnel : Contraintes d’intégrités
❑OUVRAGES(cote, Titre, NbExemplaire, Année, #NumEditeur,
Thème)
❖clé primaire : cote
❖Contrainte de domaine : NbExemplaire >0
❖Contrainte référentielle : [Link] est une
clé étrangère et fait référence à [Link]
18
Modèle relationnel
Langages de définition et manipulation de données
❑ Comment définir le schéma d’une BD relationnelle ?
❑ Comment ajouter de nouvelles données dans une BD ?
❑ Comment modifier et supprimer les données d’une BD ?
❑ Comment chercher, afficher, imprimer les données d’une
BD ?
❑ Besoin de langage pour manipulation et interrogation des
données
❑ Les données d’une BD Rel sont manipulées par le langage le
langage informatique « SQL »
19