Chapitre 2:
MODELE RELATIONNEL
3ème Année Ingénieur
Semestre: S5
Ecole Supérieure
Département en Informatique
d’Informatique
Plan
I. Concepts de base du Modèle Relationnel
Relation &Schéma de Relation
Attribut &Clés
II. Règles de Transformation du Modèle E/A vers le
relationnel
III . Les Dépendances
IV.Normalisation & Conception
Le Modèle Relationnel
Le modèle relationnel a été introduit par E.F COOD (1970) et a pris
une importance grandissante dans le domaine du traitement et le
stockage des données informatiques.
La principale raison de son succès est sa simplicité technique : Toutes
les données manipulées sont structurées en Tableaux à deux dimensions
(ligne et colonne).
Exemple :
Nous allons illustrer le modèle relationnel à travers une base de données (ensemble
de tables) relative à la gestion de scolarité universitaire
Enseignant Etudiant
Mat Nom Adr diplome Grade Num-Ins Nom Adr Série bac Niveau
A1200 ALI SBA Magister Assistant 22001 ALI SBA Maths 1
A1201 Mohamed Oran Doctorat Prof 33003 Mohamed Oran Maths 2
B1300 Ahmed Alger Doctorat Prof 16004 Ahmed Alger Sciences 3
B1301 Said Annaba Magister Assistant 23001 Said Annaba science 1
Module
Salle
Num-Mod Désignatio Coef Num-Sall Type Capacité
M12 Analyse1 4 S01 Salle TD 25
INF13 Algo 5 S03 Salle TD 30
Inf15 Archi 4 A01 Amphi 200
B1301 Said Annaba
I. Concepts de base du Modèle Relationnel
Relation & Schéma de Relation
Attributs & Clés
Définition 1:
Le but du modèle relationnel est de percevoir une réalité sous la forme de
tableaux de valeurs appelés relations:
une relation a un nom ;
une colonne d’une relation est un attribut ;
une ligne d’une relation est un n-uplet ou un tuple ;
l’ordre des lignes et des colonnes n’a pas d’importance (car c’est
une relation ensembliste).
Relation
Dans un premier temps, puisque nous allons travailler avec des
relations, il faut définir sur quels ensembles les relations vont porter. On
introduit pour cela la notion de domaine.
Un domaine est un ensemble de valeurs que peut prendre un élément
donné (souvent un attribut). Il sera représenté par un type.
C'est le domaine définition d'un ou plusieurs attributs.
Exemple :
Dnom : chaînes de caractères de longueur maximale 30
Dnum : entiers compris entre 0 et 99999
Dcouleur : {"bleu", "vert", "jaune"}
Dâge : entiers compris entre 16 et 65
Les SGBD usuels offrent des domaines prédéfinis standard, comme
INTEGER, CHAR, VARCHAR, DATE…
Définitions de Relation
Définitin 2: Une relation est définie par : son nom, liste de couples
décrivant ses attributs (nom d'attribut : domaine), sa (ses) clé(s) et sa
définition (phrase en français).
Les trois premières informations: nom de la relation, liste des couples
(attribut : domaine) et clé(s) constituent le schéma de la relation.
Exemple : schéma de la relation Etudiant :
Etudiant (N° Ins : Dnum, Nom : Dnom, Adr: Dadr, Bac : Dbac, Niv: Dniv)
La population d'une relation est constituée de l'ensemble des tuples de la
relation.
C'est un ensemble au sens mathématique du terme: il n'y a donc ni
doubles, ni ordre (les nouveaux tuples sont rajoutés à la fin de la relation).
On appelle schéma d'une base de données relationnelle (ou Schéma
Relationnel) l'ensemble des schémas de ses relations.
On appelle base de données relationnelle, l'ensemble des populations de
toutes ses relations.
Définitions de Relation (1)
Définition 3: Soient R une relation et D1, . . . , Dn les domaines utilisés pour définir
les colonnes de la relation (des domaines peuvent être identiques). Alors R peut
être définie comme :
Un sous-ensemble du produit cartésien D1 × . . . × Dn
Un ensemble {t1, . . . , tm} de n-uplets de valeurs tel que ∀i ∈ {1, . . . , m} ti =
(di,1, . . . , di,n) ou pour tout j ∈ {1, . . . , n} di,j prend ses valeurs dans Dj .
On dira que m est la cardinalité de R. On dira que n est l’ ordre de R
Pour représenter une relation, on utilise la notation sous forme de tableau
suivante :
Attributs
La notion d'attribut dans le modèle relationnel est identique à celle vue
dans le modele E/A (chap 1).
Définition 4:
Un attribut est une classe de données qui ont toutes un comportement
homogène dans la base de données; leur signification réside seulement
dans leur appartenance à cette Classe.
Chaque Attribut est associé à un et un seul domaine. Une donnée
appartenant à la classe d’un attribut est représentée dans les données par
l’une des valeurs du domaine de cet Attribut
Définition 5: Un attribut est une fonction nommée d'une relation dans un
de ses domaines.
Par exemple, dans la relation Salle, l'attribut type est une fonction vers
l'ensemble des chaînes de caractères représentant les types de salles.
Clés
Définition 6 :
Une clé est un ensemble d’attributs qui détermine les valeurs de touts
les autres attributs.
En d’autres termes, c’est le plus petit sous-ensemble d’attributs tel qu’il
n’existe pas deux entités (ou n-uplets ) ayant les mêmes valeurs.
Si cette dernière condition n’est pas vérifiée, cet ensemble est appelé
Superclé.
Exemples :
Etudiant (N° INS, nom, Adr, …): Il n'y a pas deux étudiants qui ont le même
N° Inscription.
SQL offre deux concepts pour traduire la notion Clé: la clé primaire
(appelée "primary key") et les clés candidates (déclarée par la clause
"unique"), qui se différencient lors de la déclaration des clés externes (ou
Etrangères)..
Clé externe (ou Etrangère)
Certains attributs référencent des tuples d'une autre relation ; c-a-d que
leur valeur est toujours égale à celle de la clé d'un tuple existant dans
l'autre relation.
On les appelle clés externes (ou clés étrangères).
Exemple:
la relation Suit (Num-Mod, N°Ins) possède une clé (Num-Mod+N°Ins), et
deux Clés externes : Num-Mod et N°Ins.
Num-Mod référence un Module . De même, N°Ins référence un Etudiant.
II. Règles de Transformation du Modèle E/A vers le
relationnel
Règle 1:
Toute entité est transformée en une relation. La clé primaire de la relation
est l’identificateur de l’entité. Chaque propriété se transforme en attribut.
Etudiant
Num-Ins Nom Adr
Num- Nom Adr
Ins
Etudiant (Num-Ins, Nom, Adr)
Règle 2:
Toute association ayant des cardinalités 0...n ou 1...n des deux côtés est
transformée en une relation. La clé primaire est formée par la
concaténation (juxtaposition) l'ensemble des identifiants des entités
reliées.
1,N 1,N
Module Séance Salle
Num- Type Capacité
Heure Jour
Salle
Num- Désign Coef
Mod
Num-Mod Num-Salle Heure Jour
Séance(Num-Mod, Num-Salle, Heure, Jour)
Règle 3:
Toute association binaire ayant une cardinalité (1,1 ou 0,1) se traduit par
une clé étrangère. Les attributs de cette association sont ajoutés à l’entité à
laquelle elle est reliée avec cette cardinalité. La clé primaire de l’autre entité
qui participe devient clé étrangère dans la première entité.
1,1 1,N
Etudiant Encadre Professeur
Them- Matric Nom Adr
projet ule
Num- Nom Adr
Ins
Num-Ins Nom Adr Them-Proj MatProf
Etudiant(Num-Ins, Nom, Adre, Them-Projet, Mat-Prof)
Exception à la Règle 1:
Les entités n'ayant que leur identifiant comme attribut ne deviennent pas
des tables, mais des attributs dans les autres relations liées
Cas particulier des associations réflexives
Les associations réflexives suivent les règles 2 ou 3 selon les cardinalités
mais posent un problème particulier :
Une même propriété va se retrouver deux fois en attribut dans la
même relation.
Il faut alors donner un nom différent et significatif aux deux attributs
correspondants.
Réflexive hiérarchique (une branche à la cardinalité maxi à 1 et l'autre à n)
• Règle n°1: l'identifiant de SALARIE va devenir clé primaire et les autres
propriétés des attributs
• Règle n°2 : pour traduire l'association [1, n] encadrer, l'identifiant de
l'entité SALARIE devient clé étrangère
l'identifiant de SALARIE matricule se retrouve deux fois dans la relation :
comme clé primaire et comme clé étrangère
SALARIE(matricule, nom, prénom, fonction,… , #matricule_chef)
Réflexive non hiérarchique : Règle n°3
Lecture de l'association:
Une pièce entre dans la composition de 0 à plusieurs autres pièces.
Une pièce peut être composée de autres pièces.
Une pièce entre dans la composition d'une autre un certain nombre de fois.
Exemple :
La pièce "voiture" est composée de 4 pièces "roue".
La pièce "roue" est elle-même composée d'une pièce "pneu" et d'une pièce "jante".
Une pièce entrant dans la composition d'une autre est appelée composant.
Une pièce composée d'autres pièces est appelée composé.
Une roue est à la fois un composant (de voiture) et un composé (de pneu et jante)
Transformation du Lien Généralisation/Spécialisation
Trois solutions possibles :
Conserver uniquement la super-entité
Conserver uniquement les spécialisations
Conserver toutes les entités
III . Les Dépendances
Ce terme générique regroupe toute classe de règles d’intégrité statiques
(ensembliste).
Leur importance est due au fait qu’elles sont un point de convergence de
nombreux thèmes liés aux structures de Bases de Données Relationnelles.
Un premier thème considère que les dépendances permettre
d’exprimer une classe d’invariants qui sont essentiels pour comprendre
une modélisation.
Un autre thème traite du rôle des dépendances dans l’obtention des
modélisation du point vu sémantique.
Un troisième thème concerne le rôle des dépendances dans
l’utilisation cohérente d’une BDD tant lors d’interrogation ou
d’extraction de données que lors de modification apportées à la base.
Un quatrième thème est étroitement lié au problème de redondance
d’information dans la base de données
Dépendances Fonctionnelles
Introduites par E. F. CODD 1970
Définition 7 :
Soit le schéma de relation S = < , F>
Soient X et Y
Une Dépendance fonctionnelle DF: X Y est une contrainte qui vérifie
pour toute extension r (Relation ou Table ) de S SSI pour toute paire de
tuples t1 et t2 r : t1[X] = t2[X] t1[Y] = t2[Y]
X Y : X détermine Y Y dépend de X
X : source de la DF, Y : cible de la DF
La source peut être un ensemble d’attributs :
(nom, prénom) adresse
Propriétés des DF (ou Règles d’inférence)
Axiomes d’Armstrong
Réflexivité : Si Y X Alors X Y
Augmentation : si X Y alors (A, X) Y quelque soit A (DF non élémentaire)
ou Si X → Y , alors XZ → YZ (et XZ → Y )
Transitivité : si X Y et Y Z alors X Z (DF déduite)
Règles supplémentaires
Décomposition : Si X → YZ, alors X → Y et X → Z
Union: Si X → Y et X → Z, alors X → YZ
Pseudo-transitivité : Si X → Y et WY → Z, alors WX → Z
Les 3 dernières règles sont des conséquences des 3 premières.
Fermeture d'un ensemble de dépendances fonctionnelles
Définition :
Soit F : ensemble de DF: on appelle la fermeture d'un ensemble de
dépendances fonctionnelles (Noté F+), l'ensemble des dépendances
fonctionnelles pouvant être déduites d'un ensemble de départ à partir
des règles d’Armstrong.
Couverture minimale d’un ensemble F de DF
Dépendance fonctionnelle élémentaire- Une dépendance fonctionnelle
élémentaire est une dépendance fonctionnelle de la forme X → A, où A
est un attribut unique n'appartenant pas à X et où il n'existe pas X′ inclus
au sens strict dans X (i.e. X′ ⊂ X) tel que X′ → A.
Dépendance fonctionnelle directe- Une dépendance fonctionnelle X → A
est une dépendance fonctionnelle directe s'il n'existe aucun attribut B tel
que l'on puisse avoir X → B et B → A.
En d'autres termes, cela signifie que la dépendance entre X et A ne peut
pas être obtenue par transitivité.
Couverture minimale d’un ensemble F de DF (1)
On ne s’intéresse qu’aux DF élémentaires non déduites :
Elles expriment les faits élémentaires du monde réel.
Ce sont elles qui permettent de déterminer si une relation est bonne
et sinon comment la décomposer
Un ensemble F de DF couvre un ensemble G de DF si on peut inférer
chaque DF de G avec les DF de F.
Deux ensembles de DF F et G sont équivalents si F couvre G et G couvre F.
Une couverture minimale d’un ensemble F de DF est un ensemble minimal
de DF qui est équivalent à F.
On parle aussi de graphe minimum des dépendances
Graphe minimum des dépendances
Pour chaque relation il faut recenser toutes ses DFs élémentaires et non
déduites.
On les représente sous forme d'un graphe orienté
Graphe minimum des DF de la relation : Une relation peut avoir
plusieurs graphes minimum. Ils sont alors équivalents
Exemple de graphe minimum :
R (A, B, C, D, E)
EA EB EC (E A, B, C)
CD
Utilité du graphe des DF
Vérifier que le graphe est bien minimum
Trouver les clés de la relation
Tester si la relation est bonne (bien normalisée)
Sinon trouver les décompositions
Vérifier qu'un graphe est minimum
Dépendance Fonctionnelle F déduite
XD est déduite s'il existe un autre
chemin X A, B… ..E D
DF non élémentaire
X D est non élémentaire s'il existe
une DF Y D telle Y est un sous-ensemble
des attributs de X
(A,B,C) D est non élémentaire
Fermeture d’un ensemble d’attribut X
Définition : Fermeture d’un ensemble de DF
Soit F : ensemble de DF: on appelle la fermeture d'un ensemble de
dépendances fonctionnelles (Noté F+), l'ensemble des dépendances
fonctionnelles pouvant être déduites d'un ensemble de départ à partir
des règles d’Armstrong.
Soit le schéma de relation R(X,Y,Z, T).
La fermeture d’un ensemble d’attributs X, (X) + représente l’ensemble
des attributs de R qui peuvent être déduits de X a partir d’un ensemble F
de DF et des règles d’inférences.
La fermeture d’une clé est l’ensemble de tous les attributs de la relation.
Y est inclus dans (X) + si et seulement si X → Y
Le graphe minimum des DF permet de trouver les clés de la relation.
la clé d’une relation est l’ensemble (minimal) des nœuds du graphe
minimum à partir desquels on peut atteindre tous les autres nœuds
(via les DFs)
Exemple : R (A, B, C, D, E)
E est la clé de R
Autre exemple : R (A, B, C, D, E, F, G)
(F, G) est l'identifiant de R
IV. Normalisation & Décomposition
Objectifs
Soit le schéma de relation Ordinateur (type, cons, pays, rev, nb-postes,
mem max; uc, capa-lec, capa-disk)
Supposons que nous ayons les tuples suivants pour la relation :
Plusieurs problèmes apparaissent dans ce schéma :
l'information nous indiquant que le constructeur Bull a pour pays la
France apparaît deux fois dans l'instance de la relation. Elle
apparaîtra a chaque fois que l'on rajoutera un type d'ordinateur
construit par Bull ;
si l'on change par exemple le pays d'origine de Bull dans le premier
tuple, il n'y a aucune garantie que le pays d'origine soit également
change dans le deuxième tuple ;
si l'on efface le troisième tuple de l'instance, on perd l'information
qui nous indiquait que Apple était un constructeur dont le pays
d'origine est les USA.
Ainsi l’objectif est de définir correctement un schéma relationnel :
minimiser les redondances d'informations,
éviter les « anomalies de mises a jour »,
privilégier les dépendances entre attributs.
Les Formes Normales
On mesure la qualité d'une relation par son degré de normalisation :
Première et seconde forme normale
La première forme normale est très simple : elle stipule simplement
que les domaines des attributs doivent être atomiques (on ne peut pas
les décomposer en sous-relations
comme un attribut « adresse » par exemple).
Définition 8 :
Soit R une relation d'attributs A1, …, An. R est en première forme normale
(ou 1NF) ssi pour tout i {1, …, n}, les Ai a un domaine atomique.
La seconde forme normale permet de stipuler qu'une relation est telle
que les attributs de la relation n'appartenant pas a une clé dépendent
fonctionnellement des clés de la relation.
Définition 9:
Soit R une relation. R est sous seconde forme normale (ou 2NF) ssi R est
sous première forme normale et si tout attribut B n'appartenant pas a une
clé de la relation est en dépendance élémentaire avec toutes les clés de la
relation.
La troisième forme normale et 3 BCNF
Définition 10 :.
Soit R une relation. R est sous troisième forme normale (ou 3NF) ssi R est
sous seconde forme normale et si tout attribut B n'appartenant pas a une
clé de la relation ne dépend pas d'un attribut non clé.
Par exemple, la relation Ordinateur n'est pas 3NF : sa seule clé est type,
mais la dépendance cons pays existe.
Définition 11
Soit R une relation. R est en troisième forme normale de Boyce-Codd (ou
BCNF) si et seulement si R est 3NF et que les seules dépendances
élémentaires sont de la forme
A1 : : :An B ou (A1, …, An) est une superclé.
Normalisation par décomposition
Soit une relation R qui contient des redondances et pose des problèmes
lors des MAJ "Elle n'est pas normalisée«
Il faut la décomposer en plusieurs relations meilleures ("normalisées")
par projection …
en suivant les DF
cela assure d'obtenir des relations normalisées.
Il faut s'assurer de conserver le même contenu
La jointure des nouvelles relations = R
Si R = R1*R2* …*Rk
la décomposition est sans perte d'information
Les requêtes sur R et celles sur la nouvelle BD donneront toujours le même
résultat
Qualité d’une décomposition
Une « bonne » décomposition est une décomposition :
sans perte d’information
sans perte de DF
qui produit des relations meilleures (mieux normalisées)
Sans perte de DF :
Toute DF doit être dans l’une des relations obtenues par
décomposition.
Une DF ayant comme source une clé sera automatiquement vérifiée
par le SGBD
Une DF perdue => une contrainte d'intégrité implicite
=> Le SGBD ne peut pas la vérifier
Théorème de Heath
THEOREME :
R (X, Y, Z) est décomposable sans perte d’information en
R1 = p[X,Y]R
R2 = p[X,Z]R
si la DF XY existe
R1 est alors nécessairement normalisée (en 3FN).
Elle décrit le fait élémentaire XY
Les requêtes posées sur R et celles posées sur R1*R2 donnent le
même résultat