Vous êtes sur la page 1sur 56

Chapitre 2 :

Le modèle relationnel

1
Introduction
➢ Tout SGBD est conçu autour d’un modèle de données.

Modèle de données :

▪ – Correspond à l’organisation logique des données, la


forme sous laquelle les utilisateurs vont les percevoir ou
les représenter.
▪ – Des contraintes d’intégrité, que l’on peut définir sur
les données, afin d’en assurer l’intégrité et la cohérence
avec le monde réel et les besoins des applications.
▪ – Des langages de manipulation des données, pour les
mises à jour et les interrogations.

2
Conception d’une BD

3 phases :

➢ Modèle Entités/Associations(E/A)
➢ Modèle relationnel
➢ Implémentation sur un SGBD

Méthodes d'analyse : UML, Merise, etc.

3
Modèle E/A

➢ Conceptuel, distingue les entités(ou objets), les


attributs qui les composent et les associations

➢ Représentation graphique : MCD (Modèle Conceptuel


de Données)

4
Concepts du modèle E/A
Une entité(ou objet)
• C'est un objet identifiable représentée par une liste de
ses caractéristiques (attributs) :
Exple: ETUDIANT(Matricule, Nom, Niveau)

Les attributs :
• Sont des propriétés atomiques des entités (chaînes de
caractères, nombres, dates…)
Clé :
• une clé d'une entité E est un sous-ensemble d'un ou
plusieurs attributs qui identifie de manière unique
chaque instance de E.
➢ Chaque entité doit avoir au moins une clé appelée clé
primaire. 5
Les associations(ou relations) :

• Elles représentent un ensemble de liens sémantiques


entre les entités
• Elles sont de préférence binaires (si une association est
de cardinalité supérieure, elle peut être réduite à un
ensemble d'associations binaires)
• Elles peuvent avoir leurs propres attributs
• Elles peuvent être réflexives, et 2 associations peuvent
relier les mêmes entités
• Chaque association possède une contrainte de
cardinalités

6
Cardinalités :

• La cardinalité maximale d'une association A par rapport à une


entité E est le nombre maximal d'instances de A dans lesquelles
une entité de E peut apparaître

• La cardinalité minimale d'une association A par rapport à une


entité E est le nombre minimal d'instances de A dans lesquelles
une entité de E doit apparaître
• Les contraintes de cardinalités sont exprimées par un couple de
contraintes minimales et maximales.

7
Contrainte de cardinalité :

Exple:
• Situe(Magasin) est (1, 1) : un magasin est
toujours dans une (et une seule) ville.
• Situe(Ville) est (0, n) : une ville peut avoir 0 ou
plusieurs magasins.

Contrainte d'intégrité de domaine :


spécifie quelles valeurs peut prendre un attribut

8
Critères de qualité d'un schéma E/A

• Sa description doit être fidèle à la réalité et


conforme à l'application en vue
• Il doit éviter les redondances d'information
• Il doit choisir les bonnes associations
• Il doit choisir le bon niveau de
représentation : entités, attributs,
associations...

9
Le modèle relationnel
Concepts
• Défini en 1970 par Codd.
• Simple à comprendre,
• Fondé sur des bases mathématiques solides (logique et
théorie des ensembles)
• Matérialise le schéma conceptuel par un ensemble de
relations
• Les données sont organisées sous forme de tables à
deux dimensions(relations),
• Les lignes sont appelées n-uplet ou tuple en anglais ;
• Les données sont manipulées par des opérateurs de
l’algèbre relationnelle ;
• L’état cohérent de la base est défini par un ensemble de
contraintes d’intégrité. 10
Caractéristiques :

• La simplicité des concepts


• La facilité d'utilisation
• La standardisation du langage de définition des
données et du langage d'interrogation : SQL

Mais on note aussi…

• La pauvreté sémantique
• pas de représentation graphique

11
Eléments constitutifs :
Dans ce modèle, il n'y a que des relations

• Une relation(X1;X2;:::;Xn) peut être vue comme une table à deux


dimensions :
• les colonnes correspondent aux arguments x1; x2;:::; Xn de la
relation
• les lignes correspondent aux tuples (ou n-uplets) t1; t2 ;:::; tn
vérifiant la relation
• Une relation = un ensemble de tuples
• Un schéma de relation précise le nom de la relation ainsi que la
liste des attributs avec leurs domaines.

12
Exple : La relation PERSONNE(N°CIN : Entier, Nom : Chaîne,
Prénom : Chaîne)
PERSONNE

N°CIN Nom Prenom

802-25454524-56 Alain Moussa

800-25454524-51 Ali Paul

• Le degré d’une relation est son nombre d’attributs.


• Une clé étrangere dans une relation est formée d’un ou
plusieurs attributs qui constituent une clé primaire dans une
autre relation.
• Un schéma relationnel est constitué par l’ensemble des
schémas de relation avec mention des clés étrangères.
• Une base de données relationnelle est constituée par
l’ensemble des n-uplets des différentes relations du schéma
relationnel.
13
Passage du modèle E/A au modèle relationnel

Chaque entité est traduite en une relation:


• dont le nom est le nom de l'entité
• dont les arguments correspondent aux attributs
de l'entité.
• dont les tuples correspondent aux instances de
l'entité.
• les domaines des attributs correspondent aux
valeurs possibles de chaque argument.

14
Règles générales

1. Une normalisation devrait toujours être effectuée


avant le passage au modèle relationnel.

2. Chaque type-entité donne naissance à un schéma


de relation. Chaque attribut de ce type-entité
devient un attribut du schéma de relation.
L’identifiant est conservé en tant que clé du schéma
de relation. Il faut faire attention aux éventuels
type-entités spécifiques qui traduisent l’apparition
d’au moins une clé étrangère.
15
Règles générales

3. Chaque type-association maillé (chacune des pattes à


pour cardinalité maximale n) donne naissance à un
schéma de relation. Chaque attribut de ce type-
association devient un attribut du schéma de relation.
L’identifiant est formé par l’ensemble des identifiants
des types-entités qui interviennent dans le type-
association. Chacun de ces identifiants devient une clé
étrangère faisant référence au schéma de relation
correspondant au type-entité dont l’identifiant
provient. Le type-association maillé donne naissance à
un schéma de relation dont la clé primaire est
composée de clés étrangères. 16
Règles générales

4. Un type-association dont une patte a une cardinalité


maximale égale à 1 (il ne doit donc pas posséder d’attribut)
ne devient pas un schéma de relation. Il décrit en effet une
dépendance fonctionnelle. Le schéma de relation
correspondant au type-entité dont la patte vers le type-
association a une cardinalité maximale valant 1, se voit
ajouter comme attribut (et donc comme clé étrangère)
l’identifiant de l’autre type-entité. Attention, si la patte
correspond à un lien identifiant, l’attribut ajouté doit être
incorporé à la clé du schéma de relation.
Ainsi, un type-association fonctionnel ne devient pas un
schéma de relation mais se traduit simplement par une clé
étrangère. 17
Cas particulier d’un type-association 1 vers 1

Soit le schéma:

Le schéma relationnel adéquat devient donc ;


• PERSONNE(idPersonne, nom, prénom, adresse)
• LIVRET-A(idLivretA, solde, idPropriétaire) où idPropriétaire ,
nouveau nom de idPersonne, est une clé étrangère qui fait
référence au schéma de relation PERSONNE.

18
Cas particulier d’un type-entité sans attribut autre que sa clé

Lorsqu’un type-entité ne possède pas d’attributs en dehors de sa


clé, il ne faut pas nécessairement en faire un schéma de relation.
Voir Schema

Le schéma relationnel adéquat est :


• PATIENT(idPatient, numéroSécu, nom, prénom)
• MEDECIN(idMédecin, nom, prénom, spécialité)
• CONSULTER(idPatient, idMédecin, date) où idPatient et
idMédecin sont des clés étrangères qui font respectivement
référence aux schémas de relation PATIENT et MEDECIN.
Par contre, si le type-entité sans attribut autre que sa clé
correspond à un type énuméré (comme GENRE par exemple), il faut
le matérialiser par un schéma de relation.
19
Exercices d’application

20
21
22
Et

23
24
25
Normalisation

26
La Normalisation :

Elle consiste en différents stades de qualité


qui permette d’éviter certaines erreurs de
conception qui génèrent :
▪ de la redondance,
▪ la limitation ou la perte de données,
▪ l’incohérence ou l’effondrement des
performances des traitements.

27
La Normalisation :
• Hiérarchie dans les règles de normalisation(1FN,
2FN, 3FN et BCFN, 4FN, 5FN…)
• Est effectuée depreference durant la phase de
conception du modèle entités-associations.
• S’appuie sur la notion de dépendance
fonctionnelle

Il faut toujours vérifier que les relations obtenues


par le passage du modèle E-A au modèle relationnel
sont toujours en forme normale.
28
Avantages :

• limiter les redondances de données


(multiples écritures) ;
• limite donc l'espace disque nécessaire ;
• limiter les incohérences de données qui
pourraient les rendre inutilisables (multiples
écritures) ;
• évite donc les processus de mise à jour
(réécritures).
29
Inconvénients :

• Temps d'accès potentiellement plus longs si les


requêtes sont trop complexes (lectures plus
lentes): utilisation des index sur les clefs primaires;
• Une plus grande fragilité des données étant donné
la non-redondance;
• Difficulté de réorganiser la structure (dans le cas
où l'on ne sait pas à l'avance le lien entre les
entités, ce qui est à éviter si possible).

30
Remarque :

La dépendance fonctionnelle permet de


définir les premières formes normales jusqu’à
la forme de Boyce-Codd La dépendance
multivaluée permet de définir la quatrième
forme normale (4FN) et la dépendance de
jointure, la cinquième forme normale (5FN).

31
Remarque :

Petites bases de données :


Se limiter à la troisième forme normale (3FN)

Bases de données plus importantes :


Faire l'équilibre entre deux options :
• La génération dynamique des données via les
jointures entre tables ;
• L'utilisation statique de données correctement
mises à jour.

32
Dépendance fonctionnelle (DF)

Définition 1 :

Soit R(A1, A2, .., An), un schéma de relation,


et X et Y des sous-ensembles de A1, A2, .., An.

X détermine Y ou Y dépend fonctionnellement de X si,


et seulement si, des valeurs identiques de X
impliquent des valeurs identiques de Y.

Notation : X → Y
33
Dépendance fonctionnelle (DF)

Exemple :

Dépendances :

34
Dépendance fonctionnelle (DF)
Propriétés

Axiomes d’ARMSTRONG

35
Dépendance fonctionnelle (DF)
Propriétés

Propriétés déduites

36
Dépendance fonctionnelle (DF)

Graphe de dépendance fonctionnelle

37
Dépendance fonctionnelle (DF)

Dépendance fonctionnelle élémentaire

38
Dépendance fonctionnelle (DF)
Dépendance fonctionnelle directe
Une dépendance fonctionnelle X → A est une
dépendance fonctionnelle directe s’il n’existe
aucun ensemble d’attributs Y tel que X → Y et
Y → A.

En d’autres termes, cela signifie que la


dépendance entre X et A ne peuvent pas être
obtenue par transitivité.
39
Dépendance fonctionnelle (DF)

Couverture minimale

40
Dépendance fonctionnelle (DF)
Clé d’une relation

41
Dépendance fonctionnelle (DF)

Clé d’une relation

42
Les formes Normales
Première forme normale (1FN) : (contenu des champs)

▪ Tout champ d’une table contient une valeur atomique :


Une et une seule valeur par champ. Aucun attribut ne
doit contenir des valeurs multiples. La 1NF interdit la
présence de plusieurs valeurs dans un même champ.
▪ Pour qu’une relation puisse être qualifiée de première
forme normale, tous les attributs d’une relation doivent
être élémentaires (significatifs et indivisibles).

Exemple : un champ « adresse » n’est pas indivisible ni


élémentaire. Une adresse peut être divisée en plusieurs
champs, tels que rue, ville, province, code postal, pays…43
Les formes Normales
Exemple :

Soit la table LIVRE (#NoISBN, Titre, NbPages,


Auteurs, Éditeur).

La table LIVRES est-elle en première forme


normale?

44
Les formes Normales
Première approche : Multiplier les colonnes.

▪ Décomposer le champ ‘Auteur’ en plusieurs champs:


‘Auteur1’, ‘Auteur2’, ‘Auteur3’, ‘Auteur4’.
Cette solution transforme la table livres en première forme
normale, mais on ne sait pas d’avance combien de
colonnes d’auteurs insérer dans la table. On gaspillera de
l’espace inutilement pour des colonnes inutilisées. On
manquera de colonnes si un livre est écrit par plus que 4
auteurs. Cette solution est donc à rejeter.
Lorsque plusieurs colonnes peuvent être nulles, c’est
souvent le signe qu’une nouvelle table est nécessaire.
45
Les formes Normales
Deuxième approche :

▪ Décomposer la table (Créer une table auteurs)


La solution idéale consiste à créer une nouvelle entité :
Exemple : Auteurs (#NoAuteur, NomAuteur,
PrénomAuteur). Cette table est en première forme normale
puisque tous les champs ne contiennent qu’une seule
valeur élémentaire et non décomposable.
On pourra créer une table de liaison, AUTEUR-LIVRE
(#NoAuteur, #ISBN) , qui permettra de lier les auteurs aux
livres qu’ils ont écrits. On peut ainsi insérer autant d’auteurs
à un livre que nécessaire. Il s’agit d’une table de clés, sans
attribut. On lie tous les auteurs à un livre.
46
Les formes Normales
Deuxième forme normale(2NF)

Une relation est en deuxième forme normale si et


seulement si :
• Elle est en première forme,
• Tout attribut non clé primaire est dépendant de
la clé primaire entière. (dépend de tous les
attributs qui composent la clé).
Chaque attribut de la table doit dépendre de la clé
primaire au complet.

47
Les formes Normales
Remarque :

La deuxième forme normale ne s’applique qu’aux


tables dont la clé primaire est composée de
plusieurs champs.

Important : Une relation avec une clé primaire


réduite à un seul attribut est, par définition,
forcément en deuxième forme normale.

48
Les formes Normales
Troisième forme normale(3NF)

Une relation est en 3FN si et seulement si :

▪ Elle est en deuxième forme, et


▪ tout attribut non-clé dépend uniquement de la
clé (tout attribut non clé ne dépend pas d’un
attribut non clé).

49
Les formes Normales
Exemple 1:
Personne (#NoPersonne, NomPersonne, PrenomPersonne,
rue, ville, province, pays, codepostal).

Ici, le code postal, la rue, la ville, la province et le pays ne


dépendent pas de la clé NoPersonne. Ce sont des attributs
de l’adresse.
Décomposons avec une liaison une personne possède une
adresse:

Adresse (#NoAdresse, rue, ville, province, pays,


codepostal)
Personne (#NoPersonne, NomPersonne, PrenomPersonne,
NoAdresse) 50
Les formes Normales
Exemple 2 :

Soit la table des fournisseurs suivante:


FOURNISSEUR (NoFournisseur, NomFournisseur,
TelephoneFournisseur, ArticleFourni, PrixArticle)

La relation n’est pas en 3NF, puisque le prix dépend de


l’article. La solution normalisée consiste à décomposer :

FOURNISSEUR (NoFournisseur, NomFournisseur,


TéléphoneFournisseur)
PRODUIT (NoProduit, DescriptionDuProduit,
PrixDuProduit) 51
Les formes Normales

Exercices d’Application

52
Exercice 1 :

53
Exercice 2:

Soit la relation suivante:

Commande(NoComm, Date, TotalComm, CodClient,


NomClient, Adresse, CodProd, DescriptProd, Prix, Quantité,
TotalProd)

● Transformer en 2ème forme normale

54
Exercice 3:

Vérifier si les relations suivantes suivent la


3NF; les normaliser dans le cas contraire:

Commande(NoComm, Date, TotalComm,


CodClient, NomClient, Adresse);
ListeProds(NoComm, CodProd, Quantité,
TotalProd);
Produit(CodProd, Description, Prix).

55
56

Vous aimerez peut-être aussi