Vous êtes sur la page 1sur 5

Module BDD : Le modèle relationnel Mme H.

CHELLAKH

Le modèle relationnel
1. Introduction :
Le modèle relationnel a été proposé en 1970, par Ted Codd, chercheur chez IBM, dans un
exposé désormais célèbre qui attira immédiatement l’attention grâce à la simplicité de son
fondement mathématique. Le modèle exploite la notion de relation mathématique, bloc de
construction qui se fonde sur la théorie des ensembles et la logique des prédicats de premier ordre.
Le modèle relationnel est aujourd’hui la base de nombreux systèmes, et les architectures
permettant d’accéder depuis une station de travail à des serveurs de données s’appuient en général
sur lui. Le relationnel a donc atteint ses objectifs au-delà de toute espérance.
Les objectifs du modèle relationnel ont été formulés par Codd comme suit :
1- Permettre un haut degré d’indépendance des programmes d’application et des activités
interactives à la représentation interne des données.
2- Fournir une base solide pour traiter les problèmes de cohérence et de redondance des
données.
3- Permettre le développement de langage de manipulation de données non procéduraux basés
sur les théories solides.
4- Etre un modèle extensible permettent de modéliser et de manipuler simplement des données
tabulaires, mais pouvant être étendu pour modéliser et manipuler des données complexes.
5- Devenir un standard pour la description et la manipulation des bases de données.

2. Les concepts du modèle relationnel :


Le modèle relationnel représente la base de données comme un ensemble de relations.
Chaque relation est une table de valeurs ou fichier d’enregistrements. Lorsqu’une relation est
conçue comme une table de valeurs, chaque ligne de la table représente un ensemble de valeurs
reliées.
Dans la terminologie du modèle relationnel, une ligne est appelée tuple, les entêtes de
colonnes sont appelés attributs et les tables sont appelées relations. Le type des données
introduites dans chaque colonne est représenté par un domaine de valeurs possibles.

2.1 Domaine, attribut et relation :


 Un domaine D est un ensemble de valeurs atomiques. Par valeur atomique, nous entendons
toute valeur incluse dans le domaine et indivisible dans le cas du modèle relationnel. Une
méthode courante de définition de domaine consiste à spécifier le nom du domaine suivi par le
type des données qui composent le domaine.
Exemple :
N° de téléphone national. Ensemble de 9 chiffre.
Nom. Chaîne de caractères identifiant la personne.
Age employé. La valeur doit être comprise entre 16 ans et 60 ans.
La liste qui précède est un ensemble de définitions logiques de domaine, un type de données (ou
format) est également nécessaire pour chaque domaine. Ainsi, le type de données du domaine
N°_de_téléphone_national peut être déclaré sous la forme suivante : n_nn_nn_nn_nn où chaque n
est un nombre de 0 à 9.
Un nom, un type de données et un format sont attribués à chaque domaine.
 Le schéma relationnel R, noté R (A1, A2,…, An) est constitué d’une relation nominale R et d’une
liste d’attributs A1, A2,…,An. Chaque attribut A est le mon du rôle joué par un domaine D dans le
schéma relationnel R. D est réputé domaine de A et est noté dom (A). les relations sont décrites

1
Module BDD : Le modèle relationnel Mme H.CHELLAKH

à l’aide d’un schéma relationnel ; R est le nom de cette relation. Le degré d’une relation est le
nombre d’attributs n de son schéma relationnel.
Exemple de schéma relationnel de degré sept décrivant les étudiants de l’université :

ETUDIANT (Nom, N°SS, Tel_dom, Adresse, Tel_bureau, Age, Moy_notes).


Si l’on utilise les types de données de chaque attribut, on aboutit à la définition suivante :
ETUDIANT (Nom : chaîne, N°SS : chaîne, Tel_dom : chaîne, Adresse : chaîne,
Tel_bureau : chaîne, Age : entier, Moy_notes : réel).
Figure 1 : Schéma de relation ETUDIANT
 Une relation r (ou état relationnel) ou encore schéma relationnel R (A1, A2,…,An), également
noté r(R), est un ensemble de n-tuples r=(t1, t2,…, tm ). Chaque n-tuple (ou n-uplet) est une liste
ordonnée de valeurs t=< v1, v2,…, vn > où chaque valeur v est un élément de dom (A) ou une
valeur spéciale nulle. La ie valeur du tuple t, qui correspond à l’attribut A, est réputée t(A) ( ou
t(i) si l’on utilise la notation positionnelle)

Nom de la Attributs
relation

Etudiant Nom N°SS Tel_dom Adresse Tel_Bureau Age Moy_notes

Arridj 820345666 035 68 12 48 25 rue 17 oct 035 68 12 12 19 12.5


Tuples Mehenni 812456778 035 68 10 90 Fg des jardins 035 68 15 14 18 15
Mebarkia 805677788 035 68 20 80 Lotis 12 hectars null 20 10.5

Figure 2 : Attributs et tuples de la relation Etudiant


Les précédentes définitions peuvent être reformulées plus formellement comme suit : une relation
(ou état relationnel) r(R) est une relation mathématique de degré n sur les domaines dom(A1 ),
dom(A2 ),…, dom(An), qui sont un sous ensemble du produit cartésien des domaines définissant R :

r ( R)  (dom( A1 )  dom( A2 )  ...  dom( An ))


Le produit cartésien spécifie toutes les combinaisons de valeurs possibles des domaines sous-
jacents.
Plusieurs attributs peuvent avoir le même domaine, dans ce cas ils référencent différents rôles ou
interprétations.

2.2 Extensions et intensions


Comme tous les modèles de données, le modèle relationnel permet de décrire des données
dont les valeurs varient en fonction du temps. En ce sens que les tuples sont ajoutés, supprimés et
modifiés dans une relation au cours de sa vie. Cependant, la structure d’une relation caractérisée par
les trois concepts de domaine, relation et attribut est un invariant pour la relation (elle ne change pas
en fonction du temps). Cette structure est capturée dans le schéma de la relation.
Le schéma d’une relation représente son intension, c'est-à-dire les propriétés (au moins
certaines) communes et invariantes des tuples qu’elle va contenir dans le temps (voir Figure 1 par
exemple). Au contraire, une table représente une extension d’une relation (voir Figure 2 par
exemple), c'est-à-dire une vue des tuples qu’elle contient à un instant donné. Une extension d’une
relation R est aussi appelée instance de R. L’intension est le résultat de la description des données,
alors qu’une extension (ou instance) fait suite à des manipulations et représente un état de la base.

2
Module BDD : Le modèle relationnel Mme H.CHELLAKH

3. Les règles d’intégrité structurelle :


Les règles d’intégrité sont les assertions qui doivent être vérifiées par les données contenues
dans une base. Il est possible de distinguer les règles structurelles qui sont inhérentes au modèle de
données, c'est-à-dire nécessaires à sa mise en œuvre, et les règles de comportement propres au
schéma particulier d’une application. Le modèle relationnel impose a priori une règle minimale qui
est l’unicité des clés. Il est commode et courant d’ajouter trois types de règles d’intégrités
supplémentaires afin d’obtenir les règles d’intégrité structurelle supportées par le modèle
relationnel : les contraintes de références, les contraintes d’entité et les contraintes de domaine.

3.1 Unicité de clé :


Par définition, une relation est un ensemble de tuples. Un ensemble n’ayant pas d’élément
en double, il ne peut exister deux fois le même tuple dans une relation. Afin d’identifier les tuples
d’une relation sans donner toutes les valeurs et d’assurer simplement l’unicité des tuples, la notion
de clé est utilisée.
De manière plus formelle, une clé d’une relation R est un ensemble d’attributs K tel que,
quels que soient les tuples t1 et t2 d’une instance de R, t1(K)  t2(K), c'est-à-dire que t1 et t2 ont
des valeurs de K différentes. Un ensemble d’attributs contenant une clé est appelé super-clé.
Généralement, toute relation (ou schéma relationnel) peut posséder plusieurs clés, auquel cas
chaque clé est appelée clé candidate. On désigne l’une des clés comme clé primaire. Il s’agit de la
clé dont les valeurs identifient les tuples de la relation.
Exemple :

VOITURE N°immatriculation N°sériemoteur Marque Modèle Année

739 AB 12 A69352 Fiat Tipo 96


3470 FL 14 B43698 Citroën XZ 99
2214 NY 22 X87654 Citroën XM 05
4328 TF 41 C35679 Mercedes 190-D 08
6294 FI 75 YB0987 Peugeot 407-HDI 98
9296 RS 95 UO23865 Jaguar XJS 98
Figure 3 : Attributs et tuples de la relation Voiture
N°immatriculation et N°sériemoteur sont deux clés candidates de la relation VOITURE
Comme le montre l’exemple les attributs formant la clé primaire sont soulignés. Lorsqu’une
relation possède plusieurs clés, le choix de la clé primaire est arbitraire, mais il est préférable de
sélectionner des clés primaires possédant un seul attribut ou un petit nombre d’attributs.

3.2 Contrainte de référence :


La contrainte d’intégrité référentielle est spécifiée entre deux relations et sert à assurer la
cohérence de leurs tuples. Elle précise que tout tuple qui référence une autre relation doit référencer
un tuple existant de cette relation. Par exemple dans la figure 4, l’attribut N°sce de la relation
employé indique le N° de service où travaille chaque employé. Par conséquent, sa valeur dans
chaque tuple employé doit correspondre à la valeur N°sce d’un tuple de la relation service.

3
Module BDD : Le modèle relationnel Mme H.CHELLAKH

R1 : EMPLOYE N°ss Prénom Nom Date nais Adresse Salaire N°sce

7123454 Mohammed Gharbi 23/07/71 Fg des jardins 30000 5


6967889 Mourad Mehanni 12/12/69 Rue 17 oct 25000 5
6278990 Fatima Chaâbane 11/05/62 Cité750 Logts 28000 4

R2 : SERVICE N°sce Libellé sce

Clé 1 Recherche
primaire 4 Administration Clé
5 Comptabilité étrangère

Figure 4 : Attributs et tuples des relations Employé et Service

Le concept d’intégrité référentielle est lié au concept de clé étrangère. Les conditions
d’existence d’une clé étrangère imposent l’existence d’une contrainte d’intégrité référentielle entre
les schémas R1 et R2.
L’ensemble d’attributs FK du schéma relationnel R1 est une clé étrangère de R1 qui
référence la relation R2 si les deux règles suivantes sont respectées :
1- Les attributs de FK doivent avoir le ou les mêmes domaines que les attributs de clé
primaire PK de R2 ; on dit alors que les attributs FK référencent la relation R2.
2- La valeur en FK d’un tuple t1 de l’état courant r1(R1) doit avoir la valeur en PK d’un
tuple t2 de l’état courant r2(R2), faute de quoi elle est NULL. Dans le premier cas, nous
avons t1(FK)=t2(PK). On dit alors que le tuple t1 référence le tuple t2.
Selon cette définition, R1 est appelée relation référençante et R2 relation référencée.

3.3 Valeurs nulles et clés :


Lors de l’insertion de tuples dans une relation, il arrive fréquemment qu’un attribut soit
inconnu ou non applicable ; exemple le salaire d’un employé peut être non fixé au départ, on est
alors amené à introduire dans la relation une valeur conventionnelle, appelée valeur nulle.
 Contrainte d’intégrité imposant que toute relation possède une clé primaire et que tout
attribut participant à cette clé primaire soit non nul.
 Le modèle relationnel n’impose pas que les clés étrangères qui n’appartiennent pas à une clé
primaire soient non nulles. Cela peut permettre une certaine souplesse, par exemple
d’enregistrer des employés qui ne sont attachés à aucun service.

3.4 Contraintes de domaines :


En théorie, une relation est construite à partir d’un ensemble de domaines. En pratique les
domaines gérés par les systèmes sont souvent limités aux types de base entier, réel, chaîne de
caractères parfois monnaie et date. Afin de spécialiser un type de données pour composer un
domaine plus fin (par exemple les moyennes des étudiants sont des réels compris entre 0 et 20), la
notion de contrainte de domaine est souvent ajoutée aux règles d’intégrité structurelle du
relationnel. Cette notion peut être introduite comme suit :
 Contrainte d’intégrité imposant qu’une colonne d’une relation doit comporter des valeurs
vérifiant une assertion logique.
 L’assertion logique est l’appartenance à une plage de valeurs ou à une liste de valeurs ; par
exemple moyenne >= 0 et <= 20.

4
Module BDD : Le modèle relationnel Mme H.CHELLAKH

4. Règles de passage du modèle Entité/Association au modèle


relationnel :
Le passage du modèle E/A au modèle relationnel est direct et peut se faire en suivant les
principes suivants :

Modèle E/A Modèle relationnel


Identifiant Clé primaire
Propriété Attribut
Entité Relation
Relation Relation

Remarque : pour éviter toute confusion avec la relation du modèle E/A, la relation au sens
relationnel sera toujours appelée Table relationnelle.
Règle 1 : Chacune des entités du modèle E/A devient une table relationnelle.
Règle 2 : L’identifiant des entités du Modèle E/A devient la clé primaire des tables relationnelles.
Règle 3 : Les propriétés portées par les entités du modèle E/A deviennent des attributs des tables
relationnelles.
Règle 4 : Une relation R du modèle E/A de type :

O,1
A O,N R B
ou 1 ,1
ou 1,N

a. R n’est pas porteuse de propriétés : elle disparaît dans le modèle relationnel, l’identifiant de
A devient une clé étrangère dans la relation B
b. R est porteuse de propriétés : celles-ci migrent vers B (c'est-à-dire deviennent des attributs
de B).

Règle 5 : Une relation R du modèle E/A de type

O, N O, N
A R B
ou 1,N ou 1 ,N

La relation R devient une table relationnelle, sa clé primaire étant obtenue par la
concaténation des identifiants des entités qui participent à la relation, si elle est porteuse de
propriétés celles-ci deviendront des attributs.
Règle 6 : Si la relation est de dimension supérieure à 2, elle devient une table relationnelle avec
comme clé primaire la concaténation des identifiants des entités qui participent à la relation.

Vous aimerez peut-être aussi