LE MODELE
RELATIONNEL
1- Introduction
Le modèle relationnel a été proposé par Codd à IBM-St-José en 1970.
Une BD relationnelle est une BD dont le schéma est un ensemble de schémas de relations
et dont les occurrences sont des tuples ou n-uplets de ces relations.
Autrement dit, les entités et les associations du modèle E/A sont représentées
Exclusivement par des relations (des tables). Une entité est représentée par sa liste
d'attributs. Une association est représentée par la liste des clés des entités qu'elle
associe et ses propres attributs. Les objets de la base sont les tuples (lignes) des tables.
2- Concepts de base du modèle
Le produit cartésien d'un ensemble de domaines D1, D2,...Dn, noté D1* D2*...*
Dn, est l'ensemble des n-uplets ou tuples < v1, v2,... vn > tels que vi Di. Par
exemple, le produit cartésien des domaines D1 = { NOIR, BLEU } et D2 = {0,1}
est composé de quatre tuples suivants :
NOIR 0
NOIR 1
BLEU 0
BLEU 1
Une relation est un sous-ensemble du produit cartésien d'une liste de domaines.
Une relation est généralement caractérisée par un nom.
Exemple
Soient les domaines suivants :
CODCLI = {C1, C2, C3, C4}, NOMCLI = {Ali, Salah} et VILLE = {Tunis, Nabeul}
On peut composer la relation CLIENT suivante :
CLIENT CODCLI NOMCLI VILLE
C1 Ali Tunis
Sameh BEN HAMIDA Page 1
C2 Ali Nabeul
C3 Salah Tunis
C4 Salah Nabeul
Plus simplement, une relation peut être vue comme un tableau à deux dimensions dont
les colonnes correspondent aux domaines et les lignes contiennent les tuples. On parle
alors parfois de table.
Pour distinguer les colonnes de chaque relation on attribut un nom à chaque
colonne que l'on appelle attribut.
Un schéma de relation est le nom de la relation suivi de la liste des attributs avec
leurs domaines. Un tel schéma sera alors écrit sous la forme R(A1:D1,
A2:D2,...,An:Dn)
Une clé d'une relation R(A1,...,An) est un ensemble d'attributs dont la
connaissance permet d'identifier un tuple unique de la relation. Toute relation
possède au moins une clé. Dans le cas où il en existe plusieurs, on en choisit une
de façon arbitraire (c'est elle que l'on appelle clé primaire). Les autres sont
qualifiées de clés candidates.
Une clé étrangère est un attribut de la relation qui est clé primaire dans une
autre relation.
Exemple
Client(Ncli,nomcli,adrcli)
Commande(Ncde, Datecde, Montcde, Ncli#)
Ncli est une clé étrangère dans la relation Commande et elle est primaire dans la relation
Client.
La cardinalité d'une relation est le nombre de tuples qu'elle contient.
Le degré d'une relation est le nombre d'attributs de celle-ci.
Exemple
Soit la relation Personne suivante :
NCIN Nom Prénom Âge
0000001 Ben mohamed Ali 25
0000002 Ben salah Soufien 36
0000003 Amri Ridha 41
La cardinalité de cette relation est 3, son degré est 4.
Sameh BEN HAMIDA Page 2
3- Les contraintes d'intégrité relationnelles
Les contraintes d'intégrité relationnelles sont des règles qui doivent être vérifiées par les
données contenues dans une base de données relationnelle.
• Contrainte d'unicité
Toute relation doit posséder au moins une clé.
• Contrainte d'entité
Toute relation doit posséder une clé primaire et tout attribut participant a cette clé
primaire doit être non NULL.
• Contrainte de domaine
Chaque attribut doit être manipulé uniformément à son domaine (l'attribut doit
appartenir à la plage ou la liste de valeurs définies par le domaine).
• Contrainte de référence
Une contrainte référentielle est un lien sémantique entre deux relations. Ce lien est
réalisé par une duplication de la clé primaire d'une relation dans une autre relation. Cette
clé dupliquée est appelée clé étrangère.
4- Traduction du modèle E/A en modèle relationnel
Pour passer d'un diagramme Entité-Association vers une base de données relationnelle, il
suffit d'appliquer les règles suivantes :
Règle 1
Chaque entité qui figure dans le diagramme E-A est traduite par une table (relation) avec
les mêmes attributs et la même clé.
Règle 2
Pour les associations de type 1 : N, il faut dupliquer l'identifiant de l'entité du côté 1 dans
la table (relation) correspondante à l'entité du côté N.
Règle 3
Pour les associations de type N : M, il faut créer une nouvelle table (relation) qui
contiendra :
- L'identifiant de la 1ère entité
- L'identifiant de la 2ème entité
- Les données portées par l'association.
La clé de cette nouvelle relation est formée par la concaténation des deux identifiants.
Règle 4
Chaque association 1-1 est prise en compte en incluant la clé primaire de l'une des tables
(relations) comme clé étrangère dans l'autre table (relation).
5- Les opérations relationnelles (l'algèbre
relationnelle)
5.1- Introduction
L'algèbre relationnelle a été inventée par CODD en 1970 comme une collection
d'opérations formelles sur les relations. Ces opérations peuvent être distinguées en
opérations ensemblistes et opérations relationnelles spécifiques.
Sameh BEN HAMIDA Page 3
5.2- Opérations ensemblistes
Ce sont des opérations binaires, c'est à dire qui, à partir de deux relations, on construit
une troisième. Il s'agit de l'union, l'intersection, la différence et le produit cartésien.
l'union
L'union de deux relations R1 et R2 de même schéma est une relation R3 de même
schéma constituée des tuples appartenant à R1 ou à R2 ou aux deux relations (les
duplications de tuples sont éliminées).
Notation : UNION(R1,R2) ou R1 R2
l'intersection
L'intersection de deux relations R1 et R2 de même schéma est une relation R3 de même
schéma contenant les tuples appartenant à la fois à R1 et R2.
Notation : INTERSECT(R1,R2) ou R1 R2
Sameh BEN HAMIDA Page 4
la différence
La différence de deux relations R1 et R2 de même schéma (dans l'ordre R1–R2) est une
relation R3 de même schéma constituée des tuples appartenant à R1 et n'appartenant
pas à R2.
Notation : MINUS(R1,R2) ou R1 - R2
le produit cartésien
Le produit cartésien de deux relations R1 et R2 (de schéma quelconque) est une relation
R3 ayant pour attributs la concaténation de ceux de R1 et R2 et dont les tuples sont
toutes les concaténations possibles d'un tuple de R1 à un tuple de R2.
Notation : TIMES(R1, R2) ou R1 x R2
T=RXS
Sameh BEN HAMIDA Page 5
X
R S
la jointure
C'est l'opération la plus importante et la plus utilisée. La jointure de deux relations R1 et
R2 selon une condition multi-attributs C est l’ensemble des tuples du produit cartésien R1
x R2 satisfaisant la condition C.
T
R S
Sameh BEN HAMIDA Page 6
la division
Le quotient de la relation R de schéma R1(A1, A2, ..., Ap, Ap+1, ..., An) par la relation S
de schéma R2 (Ap+1, ..., An) est la relation Q de schéma Q(A1, A2, ..., Ap) formée de tous
les tuples tels que leur concaténation à chacun des tuples de R2 donne toujours un tuple
de R1.
Notation : R1 R2 ou DIVIDE(R1 , R2)
5.3- Opérations unaires
la projection (sélection de colonnes)
La projection d'une relation R sur les attributs (A1, ... ,Ap) est une relation R'(A1, ... ,Ap)
dont les tuples sont obtenus par élimination des valeurs des attributs de R n'appartenant
pas à R' et par suppression des tuples en double.
Notation : PROJECT(R/A1, ..., Ap) ou R{A1, ...,Ap}
R'
A1,A2,...,Ap
R
Sameh BEN HAMIDA Page 7
la sélection (restriction)
La sélection d'une relation R par une condition C (appelée également qualification) est
une relation R' de même schéma que R dont les tuples sont ceux de R satisfaisant la
condition C.
Notation : R WHERE C ou R[C]
R'
5.4- Composition d’opérations
Avec les opérateurs, il est possible de composer la plupart des requêtes que l’on peut
faire sur une base de données relationnelle. Les requêtes s’expriment à laide d’une
succession d’opérations (UNION, PROJECTION, JOINTURE,…).
6- Dépendances fonctionnelles
6.1- Dépendance Fonctionnelle Élémentaire
Un attribut B est en dépendance fonctionnelle élémentaire d'un attribut A, si toute valeur
de A détermine une et une seule valeur de B. On note : A B et on lit : A détermine B.
Sameh BEN HAMIDA Page 8
Exemple :
- NCE Nom_Etud
- Codprod Libprod
6.2- Dépendance Fonctionnelle Directe
Un attribut B est en dépendance fonctionnelle directe avec un attribut A, s'il n'existe pas
un attribut C tel que A C et C B. Dans le cas contraire, on dit qu'il s'agit d'une
dépendance fonctionnelle transitive.
6.3- Dépendance Fonctionnelle Totale
Un attribut B est en dépendance fonctionnelle totale avec un attribut A, si aucune partie
de A ne détermine B. Dans le cas contraire, on dit qu'il s'agit d'une dépendance
fonctionnelle partielle.
Remarque : Si l'attribut A est élémentaire, alors la dépendance fonctionnelle est totale.
6.4- Couverture Minimale
La couverture minimale d'un ensemble de dépendances fonctionnelles est formée par
toutes les dépendances nécessaires, qui, en supprimant une dépendance entraîne une
insuffisance au niveau des informations : C'est le minimum de dépendances nécessaires
pour la définition de la base.
6.5- Fermeture transitive
Si on ajoute à l'ensemble des dépendances fonctionnelles toutes les dépendances
transitives, on obtient la fermeture transitive de cet ensemble de dépendances.
Remarque : Deux ensembles de dépendances fonctionnelles sont équivalents s'ils
donnent la même fermeture transitive, ou bien la même couverture minimale.
7- Normalisation
Le processus de normalisation permet de transformer une relation dite universelle en
plusieurs relations afin de la raffiner. Le but de la normalisation est d'assurer la
cohérence des relations, présentant les différentes données, pour pouvoir les manipuler
et les conserver d'une manière efficace.
Sameh BEN HAMIDA Page 9
7.1- Première Forme Normale (1FN)
Une relation est en première forme normale si tous ses attributs sont :
Atomiques, non décomposables.
En dépendance fonctionnelle élémentaire avec la clé.
Exemple :
date : jour, mois, année
7.2- Deuxième Forme Normale (2FN)
Une relation est en deuxième forme normale si :
Elle est en 1FN.
Tous les attributs non clés sont en dépendance fonctionnelle totale avec la clé.
7.3- Troisième Forme Normale (3FN)
Une relation est en troisième forme normale si :
Elle est en 2FN.
Tous les attributs non clés sont en dépendance fonctionnelle directe avec la clé.
Sameh BEN HAMIDA Page 10