I : Introduction :
Le modèle relationnel est le plus implémenté et le plus stable des modèles actuellement utilisés. Dans ce modèle, la gestion des données est simplifiée grâce aux contraintes d’intégrité.
L’unité de stockage est la Table. Chaque entité du modèle E/A devient une table Une table est constituée de lignes et de colonnes.
Exemple : la Table Livre
Nous remarquons que :
1- L’identifiant de l’entité Livre devient la clé Primaire de la table Livre
2- Chaque colonne définit un attribut. Un attribut est appelé également champ de la table. Les champs servent à donner la définition d’une table.
3- Chaque ligne définit une instance (ou occurrence) de la table Livre. Une ligne représente également un enregistrement d’une table.
4- Une table est donc un ensemble d’enregistrements. Pour définir un enregistrement on utilise des champs ou des attributs.
Chapitre III:
Le Modèle Relationnel
Dans une Base de Données MySQL, on utilise la commande CREATE pour créer une table
CREATE TABLE LIVRE (NumLivre INT(5), TitreLivre VARCHAR(20), Auteur VARCHAR(20), Langue VARCHAR(10)) ;
II : Passage du Modèle E/A au Modèle Relationnel
:Règle 1 : (Entité Table ):
1- Toute entité du modèle E/A devient une table dans le Modèle Relationnel 2- La clé Primaire de cette table est l’identifiant de l’entité.
3- Les attributs de la table sont les attributs de l’entité.
Règle 2: Relation binaire avec participation multiple :
• La Relation devient une table
• La nouvelle table hérite des clés primaires provenant des tables reliées pour devenir des clés étrangères. Ces clés étrangères forment également une clé primaire composé de la nouvelle table.
• Les clés étrangères sont auront des valeurs obligatoires (puisqu’elles forment une clé primaire composée) et la participation est multiple. (la valeur de la clé étrangère peut revenir plusieurs fois).
• Si la relation est porteuse de données alors ses propriétés sont des propriétés de la nouvelle table.
Exemple d’une entité porteuse de donnés :
Exemple d’une entité porteuse de donnés faisant partie de la clé primaire :
Règle 3: Relation binaire avec participation multiple d’une coté et unique de l’autre coté :
Migration de la clé Primaire de la table A (*,N) vers B (*,1) (donc il représente une clé étrangère dans B)
Exemple :Un étudiant peut effectuer un ou plusieurs stages dans une société, Un stage est effectué par zéro ou un seul étudiant, Une société propose zéro ou plusieurs stages
Description :
Un étudiant peut effectuer un ou plusieurs stages dans une société, Un stage est effectué par zéro ou un seul étudiant, Une société propose zéro ou plusieurs stages
• Migration de la clé primaire de la table ETUDIANT ver la table STAGE ( de ( *,N) vers ( *,1) ). Il représente une clé étrangère dans la table STAGE. 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.
• Migration de la clé primaire de la table ENTRPRISE ver la table STAGE (de ( *,N) vers ( *,1) ). Il représente une clé étrangère dans la table STAGE. Un stage est proposé par une et une seule entreprise (1,1) donc le champ NumEps doit obligatoirement avoir une valeur dans la table STAGE
Règle 4: Relation binaire avec participation une coté et unique des deux cotés :
Fusion entre les deux entités en une même entité ç-à-d une seule table : Exemple :
Un employé peut signé au maximum un seul contrat comme il ne peut pas signer (0,1) ou (1,1)
Si la cardinalité est (0,1) de Employé →Contrat, le champ ou l’attribut NumContrat peut être vide c’est-à-dire optionnel mais si la cardinalité est (1,1) donc il devient obligatoire.
Règle 6: Relation Réflexive avec participation unique d’une coté :
(*,N) (*,1)
L’Ajout d’un champ (Attribut) NumResponsable peut avoir une valeur nulle si la cardinalité est (0,1) et une valeur obligatoire dans le cas (1,1)
III : Schéma Relationnel ou Schéma de la BD :
NomTable1(Clé Primaire, champ1,champ2,…champ n)
NomTable2(Clé Primaire, champ1,champ2,…,#Clé Etrangère) Exemple :Location de voiture :
CLIENT (NumClt, CINCLT, PrénomCLT,AdresseCLT,TelCLT) VOITURE (NumV, MatriculeV, Modèle, Marque, Couleur) LOCATION (#NumClt, #Num, DateLoca,Durée, Prix)