Académique Documents
Professionnel Documents
Culture Documents
Rappel
Selon le cycle de vie en cascade classique, la conception d’une base de données passe par plusieurs
étapes selon le schéma suivant :
Monde réel
Dossier
d'analyse
Modéle
conceptuel
de données
Modéle
logique de
données
Base de
données
Monde réel : Correspond au domaine étudié et couvre le périmètre de votre projet et vos besoins en
terme de données.
Dossier d’analyse : Les besoins sont formalisés dans un dossier d’analyse (ou cahier de charge). On
peut utiliser des méthodes d’analyse formelles pour rédiger ce document.
Modèle conceptuel de données : Basé sur une modélisation de haut niveau, il permet la description
des données ainsi que leur structuration. Il existe plusieurs modèles concurrents, on peut citer parmi
les plus utilisés : le modèle entité-association et le diagramme de classes UML. Les modèles
conceptuels sont indépendants des contraintes informatiques (codage, stockage…), ce qui permet de
décrire les données indépendamment de leur future implémentation informatique.
Modèle logique de données : Ce modèle a été introduit avec l’apparition du paradigme base de
données. Son rôle est de décrire votre base de données selon un modèle assimilable par un Système
de Gestion de Base de Données (SGBD) . Il existe plusieurs modèles logiques de données, mais le plus
utilisé est le modèle relationnel puisque la plupart des SGBD du marché sont basés sur celui-ci.
Le modele relationnel
Un Modèle Logique de Données (MLD) a pour rôle de décrire les données de la future base de
données dans un formalisme assimilable par le Système de Gestion des Bases de Données (SGBD)1.
Il existe plusieurs modèles logiques (hiérarchique, réseau…), mais le plus utilisé est le Modèle
Relationnel. On appelle Systèmes de Gestion de Bases de Données Relationnelles (SGBDR), les SGBD
qui utilisent le modèle relationnel, ce qui est le cas des principaux SGBD sur le marché. Oracle,
PostgreSQL ou Access de Microsoft sont des SGBDR. Ce modèle a été proposé par le britannique
Edgar CODD (1923 – 2003) dans un article paru en 1970.
Le modèle relationnel offre aux concepteurs des bases de données ce qu’on appelle un langage de
description de données (LDD). Un LDD décrit les objets qui constituent le schéma de la base de
données. A ce LDD va s’ajouter un langage de manipulation de données (LMD) dont le rôle est de
manipuler et d’interroger les informations stockées dans la base de données. Pour les SGBDR le LMD
utilisé est le langage SQL (Structured Query Language).
Notions de base
Le modèle relationnel est construit à partir de trois notions de base : le domaine de valeurs, La
relation (ou table) et l’attribut.
Domaine
Un domaine de valeurs est un ensemble de valeurs caractérisé par un nom. Ex : les domaines ENTIER,
REEL, BOOLEEN… On parle aussi de types de données.
Relation
Une relation, plus communément appelé une table, est défini comme le produit cartésien d’un
ensemble de domaines de valeurs, caractérisée par un nom. C’est l’objet de base du modèle
relationnel. Du fait de cette définition, une relation est assimilable à une table à deux dimensions
dont les colonnes sont les domaines du produit cartésien qu’on appellera des attributs et dont les
lignes sont les vecteurs de valeurs qu’on appellera des enregistrements.
Comme pour les entités dans le modèle entité-association, les relations (ou tables) vont modéliser
des objets pertinents, concrets ou abstraits, de la base de données.
Attribut
Un attribut (appelé aussi colonne) est une colonne de la relation vue comme une table à deux
dimensions.
Exemple
Soit la relation MONUMENT (REFERENCE : Chaîne de caractères, NOM : Chaîne de caractères, PAYS :
Chaîne de caractères)
1
SGBD : Logiciel de haut niveau en charge de la gestion et l’interrogation des bases de données. Ex : Oracle, MS
SQL Server, PostgreSQL, MySQL, MS Access…
Cette relation possède trois attributs auxquels sont associés les domaines de valeurs.
Contraintes relationnelles
L’une des forces majeures du modèle relationnel est la définition de contraintes ou règles d’intégrité
que doivent respecter les valeurs des enregistrements dans la base de données.
Contrainte de domaine
Les valeurs d’un attribut dans une relation doivent appartenir au domaine de valeurs de l’attribut
considéré.
Contrainte de clé
Une clé est un ensemble minimum d’attributs d’une relation dont la connaissance des valeurs
permet de déterminer un enregistrement unique de la relation considérée. La clé d’une relation est
l’équivalent d’un identifiant d’entité.
Chaque relation du schéma doit avoir au moins une clé identifiée (on parlera de clé primaire). Elle
peut posséder d’autres clés qu’on appellera clés secondaires.
Dans l’exemple précédent, la clé de la relation MONUMENT est composé de l’attribut REFERENCE.
On soulignera les attributs constituant la clé primaire.
Contrainte d’unicité
Si un attribut est défini avec une contrainte d’unicité, il ne peut pas y avoir dans la base de données
deux enregistrements différents ayant la même valeur pour l’attribut considéré.
Important ! Un attribut constituant la clé d’une relation doit respecter la contrainte d’unicité.
Attention ! L’unicité est une contrainte nécessaire mais pas suffisante pour définir une clé.
Contrainte de non-nullité
Le modèle relationnel introduit une valeur conventionnelle appelée valeur nulle (ou NULL). Cette
valeur nulle permet d’indiquer que pour un enregistrement donné, la valeur d’un attribut est soit
inconnue soit non applicable.
Définir un attribut avec une contrainte de non-nullité impose que tous les enregistrements de la
relation doivent avoir une valeur spécifiée pour l’attribut concerné et non une valeur nulle.
Notation : Dans un enregistrement on peut noter la valeur nulle soit pas un vide soit par NULL.
Contrainte d’entité
Cette contrainte impose que toute relation du schéma doit posséder une clé primaire (ou principale)
et que tout attribut participant à cette clé primaire soit non nul.
Contrainte référentielle
Le modèle relationnel ne possède pas de notion équivalente à l’association du modèle entité-
association.
On peut cependant définir une contrainte dite référentielle entre deux relations pour représenter un
lien entre ces dernières. Pour cela, on va ajouter à la première relation un ensemble d’attributs
correspondants à la clé primaire de la deuxième relation, de sorte que les valeurs de ces attributs
dans la première doivent apparaître comme valeurs d’une clé dans la deuxième. On appelle ces
attributs ajoutés à la première relation une clé étrangère.
Exemple :
CODE_GROUPE ANNEE
CSGA5 2015 – 2016
CSGA6 2016 – 2017
Dans le cas de l’enregistrement 2 de la table participant, la clé étrangère porte la valeur nulle ce qui
n’enfreint pas la contrainte référentielle puisque la valeur nulle correspond à une valeur non connue
de l’attribut.
Par contre, l’enregistrement 4 de la table participant enfreint la contrainte référentielle car la valeur
CSGA4 n’existe pas comme valeur de clé dans la table GROUPE. Donc cet enregistrement ne peut pas
exister dans la base de données.