Le modèle relationnel
Mehdi HAJJI [email protected]
Conception BD – II2
Introduction
Le modèle relationnel a été formalisé par CODD en 1970. Quelques exemples de réalisation en sont : DB2(IBM), INFORMIX, INGRES, ORACLE.
Dans ce modèle, les données sont stockées dans des tables, sans préjuger de la façon dont les informations sont stockées dans la machine.
Un ensemble de données sera donc modélisé par un
ensemble de tables.
Le succès du modèle relationnel auprès des chercheurs, concepteurs et utilisateurs est dû à la puissance et à la simplicité de ses concepts.
Le modèle relationnel
-M. HAJJI-
2
Introduction
Les objectifs du modèle relationnel :
proposer des schémas de données faciles à utiliser, améliorer l'indépendance logique et physique, mettre à la disposition des utilisateurs des langages de haut niveau pouvant éventuellement être utilisés par des non informaticiens,
optimiser les accès à la base de données, améliorer l'intégrité et la confidentialité, fournir une approche méthodologique dans la construction des
schémas.
Le modèle relationnel
-M. HAJJI-
3
Introduction De façon informelle, on peut définir le modèle relationnel
de la manière suivante : Les données sont organisées sous forme de tables à deux
dimensions, encore appelées relations et chaque ligne n-uplet ou tuple,
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é.
Au modèle relationnel est associée la théorie de la
normalisation des relations qui permet de se débarrasser des incohérences au moment de la conception d'une base de données.
Le modèle relationnel
-M. HAJJI-
4
Définitions
Domaine ensemble de valeurs caractérisé par un nom Relation sous-ensemble du produit cartésien d'une liste de
domaines caractérisé par un nom unique représentée sous forme de table à deux dimensions colonne = un domaine du produit cartésien un même domaine peut apparaître plusieurs fois ensemble de nuplets sans doublon
Le modèle relationnel
-M. HAJJI-
5
Définitions Attribut une colonne dans une relation caractérisé par un nom et dont les valeurs appartiennent à un
domaine
les valeurs sont atomiques Degré Le degré d'une relation est son nombre d'attributs. Occurrence Une occurrence est un élément de l'ensemble figuré par une
relation. Cardinalité La cardinalité d'une relation est son nombre d'occurrences.
Le modèle relationnel
-M. HAJJI-
6
Définitions
Tuple (ou nuplet) Liste de n valeurs (v1, ..., vn) où chaque valeur vi est la
valeur d’un attibut Ai de domaine Di
Schéma d’une relation Nom de la relation, suivi de la liste des attributs avec
leurs domaines.
Le modèle relationnel
-M. HAJJI-
7
Définitions
Clé candidate Définition: Une clé candidate d'une relation est un ensemble
minimal des attributs de la relation dont les valeurs identifient à coup sûr une occurrence.
La valeur d'une clé candidate est donc distincte pour toutes
les occurrences.
La notion de clé candidate est essentielle dans le modèle
relationnel.
Toute relation a au moins une clé candidate et peut en avoir
plusieurs. Cela a pour conséquence qu'il ne peut jamais y avoir deux occurrences identiques au sein d'une relation : ces deux occurrences représenteraient en fait le même objet.
Le modèle relationnel
-M. HAJJI-
8
Définitions
Clé candidate Les clés candidates d'une relation n'ont pas forcément le
même nombre d'attributs.
Une clé candidate peut être formée d'un attribut
arbitraire, utilisé à cette seule fin.
Le contexte du domaine modélisé est essentiel pour
déterminer les clés candidates d'une relation. Le contenu de la relation peut être un indice, mais il est parfois trompeur.
Le modèle relationnel
-M. HAJJI-
9
Définitions
Clé primaire Définition: La clé primaire d'une relation est une de ses
clés candidates.
La notion de clé primaire est moins importante que celle
de clé candidate dans le modèle relationnel.
La clé primaire peut être choisie arbitrairement mais le contexte aide souvent à déterminer laquelle des clés candidates doit être considérée comme clé primaire.
Pour signaler la clé primaire, ses attributs sont
généralement soulignés.
Le modèle relationnel
-M. HAJJI-
10
Définitions
Clé étrangère Définition: Une clé étrangère d'une relation est formée
d'un ou plusieurs de ses attributs qui constituent une clé candidate dans une autre relation.
Le modèle relationnel
-M. HAJJI-
11
Les anomalies de mise à jour
Le modèle relationnel
-M. HAJJI-
13
Les anomalies de mise à jour
Redondance : À chaque fois qu’un film (titre) apparaît, les valeurs pour le genre, length et rating apparaissent aussi.
Mélange de la sémantique des attributs : attributs concernant la vidéo avec des attributs d’un film.
Anomalie de mise à jour
Que se passe t-il si la longueur (length) du film 90987 est mise
à jour et passe de 105 à 107
Incohérence ou besoin de modification de plusieurs n-uplet!
Le modèle relationnel
-M. HAJJI-
14
Les anomalies de mise à jour
Anomalie d’insertion
Que se passe t-il si avec l’insertion du n-uplet :
{102, 1/1/99, Elisabeth, drama, 110, PG13}
Incohérence ou interdiction d’insertion!
Anomalie de suppression
Que se passe t-il si avec la suppression de la vidéo numéro
123?
Perte des informations sur le film Annie Hall
Le modèle relationnel
-M. HAJJI-
15
Les anomalies de mise à jour Exemple Soit le schéma de relation
FOURNISSEUR (Nom_Fournisseur, Adresse, Produit, Prix). Une relation (table) correspondant à ce schéma pourra
éventuellement contenir plusieurs produits pour un même fournisseur. Dans ce cas, l'adresse du fournisseur sera dupliquée dans chaque n-uplet (redondance).
Si on souhaite modifier l'adresse d'un fournisseur, il faudra
rechercher et mettre à jour tous les n-uplets correspondant à ce fournisseur.
Si on insère un nouveau produit pour un fournisseur déjà référencé, il faudra vérifier que l'adresse est identique. Si on veut supprimer un fournisseur, il faudra retrouver et supprimer tous les nuplets correspondant à ce fournisseur (pour différents produits) dans la table.
Le modèle relationnel
-M. HAJJI-
16
Notion de dépendances fonctionnelles
Définition Une dépendance fonctionnelle, notée DF, indique que la valeur d'un ou plusieurs attributs est associée à au plus une valeur d'un ou plusieurs autres attributs.
B dépend fonctionnellement de A si, étant donné une
valeur de A, il lui correspond une unique valeur de B (quel que soit l'extension)
A et B sont des ensembles d'attributs Notation A —› B
Le modèle relationnel
-M. HAJJI-
17
Notion de dépendances fonctionnelles Exemple
Anniversaire(numéro : Entier, amie : Chaîne, ville : Chaîne,
cadeau : Chaîne) :
numéro
amie
ville
cadeau
1
2
4
12
14
Sylvie Dupont
Sylvie Dupont
Nice
Nice
Corinne Durand
Menton
Juliette Dubois
Nice
Corinne Durand
Menton
Fleurs
Collier
Fleurs
Livre
Livre
On peut déterminer les DF suivantes pour cette relation :
numéro →Anniversaire amie, ville, cadeau amie →Anniversaire ville
Le modèle relationnel
-M. HAJJI-
18
Notion de dépendances fonctionnelles Exemple
BUVEURS(nb, nom, prénom, ville) COMMANDES(nc, datec, nv, qtéc, nb) EXPEDITIONS(nc, dateexp, qtéexp)
NOM VILLE ? NB NV ? QTEC QTEEXP ?
NB NOM NB PRENOM NB VILLE NC DATEC NC NB NC NV NC QTEC NC, DATEEXP QTEEXP
Le modèle relationnel
-M. HAJJI-
19
Notion de dépendances fonctionnelles
Soit le schéma de relation PERSONNE (No_SS, Nom,
Adresse, Age, Profession).
Les dépendances fonctionnelles qui s'appliquent sur ce
schéma de relation sont les suivantes : No_SS Nom, No_SS Adresse, No_SS Age,
No_SS Profession. On pourra aussi écrire :
No_SS Nom Adresse Age Profession.
L'attribut No_SS détermine tous les attributs du schéma de relation. Il s'agit d'une propriété de la clé d'un schéma de relation.
Le modèle relationnel
-M. HAJJI-
20
Notion de dépendances fonctionnelles Types de dépendances fonctionnelles Soient X, Y et Z des ensembles d'attributs non vides d'une
relation R avec X →R Y. Cette DF est alors dite :
triviale
si et seulement si Y ⊆ X
élémentaire
si et seulement si ∀ Z tel que Z ⊂ X on n'a pas Z →R Y
canonique
Publicité
si et seulement si Y n'a qu'un seul attribut
directe
si et seulement si X →R Y est élémentaire et ∀ Z tel que Z ≠ X
∧ Z ≠ Y on n'a pas X →R Z ∧ Z →R Y
Le modèle relationnel
-M. HAJJI-
21
Notion de dépendances fonctionnelles
Propriétés de dépendance fonctionnelle Soient W, X, Y et Z des ensembles d'attributs non vides
d'une relation R.
Propriétés (Axiomes d’Armstrong):
Réflexivité
(X ⊆ W) ⇒ (W →R X)
Augmentation
(W →R X) ⇒ (W, Y →R X, Y)
Transitivité
(W →R X ∧ X →R Y) ⇒ (W →R Y)
Le modèle relationnel
-M. HAJJI-
22
Notion de dépendances fonctionnelles
Propriétés de dépendance fonctionnelle Propriétés (déduites):
Union
(W →R X ∧ W →R Y) ⇒ (W →R X, Y)
Pseudo-transitivité
(W →R X ∧ X, Y →R Z) ⇒ (W, Y →R Z)
Décomposition
(W →R X ∧ Y ⊆ X) ⇒ (W →R Y)
Le modèle relationnel
-M. HAJJI-
23
Notion de dépendances fonctionnelles
Graphe de dépendances fonctionnelles Nœuds = Attributs Arcs = DF
nc
nb
datec
nv
qtec
nom
prénom ville
dateexp
qtéexp
Le modèle relationnel
-M. HAJJI-
24
Notion de dépendances fonctionnelles
Fermeture transitive Fermeture transitive d'un ensemble F de DF est notée F+ F+ = F U DF Par exemple
NC NB et NB NOM donc NC NOM NB NOM donc NB, NV NOM, NV essentiellement transitivité et pseudo-transitivité
Le modèle relationnel
-M. HAJJI-
25
Notion de dépendances fonctionnelles
Graphe de fermeture transitive
nc
nb
datec
nv
qtec
nom
prénom ville
dateexp
qtéexp
Le modèle relationnel
-M. HAJJI-
26
Notion de dépendances fonctionnelles Dépendance fonctionnelle élémentaire Une dépendance fonctionnelle X A est dite
élémentaire si A n’est pas inclus dans X il n’existe pas X’ inclus dans X tel que X’ A
Dépendance fonctionnelle élémentaire = le plus petit
nombre d’attributs en déterminant un autre.
Permet de simplifier la fermeture transitive (sinon on
peut toujours créer de nouvelles DF par augmentation)
Exemple :
NB NOM NB, NV NOM non DFE
Le modèle relationnel
-M. HAJJI-
27
Notion de dépendances fonctionnelles
Dépendance fonctionnelle élémentaire L’ensemble des DF forme un graphe, mais sans aucun
intérêt car comportant trop d’arcs.
L’ensemble des DFE est modélisé par un graphe dit « graphe des dépendances fonctionnelles élémentaires ».
Le modèle relationnel
-M. HAJJI-
28
Notion de dépendances fonctionnelles
Couverture minimale Sous ensemble minimum de DF élémentaires permettant
de générer toutes les autres
Exemple
(nb nom; nb prénom; nb ville;
nc datec; nc nb; nc nv; nc qtéc; nc, dateexp qtéexp)
Théorème
Tout ensemble de DF admet une couverture minimale, en
général non unique
Le modèle relationnel
-M. HAJJI-
29
Notion de dépendances fonctionnelles
Couverture minimale Calcul de la couverture minimale
Décomposer chaque DF pour avoir un seul attribut à droite Supprimer les attributs en surnombre à gauche Supprimer les DF redondantes Cela suffit. (On peut inverser les étapes 2 et 3 mais il faut alors
itérer).
Le modèle relationnel
-M. HAJJI-
30
Notion de dépendances fonctionnelles
Couverture minimale Soit la relation R(I, J, K, L) et les dépendances
fonctionnelles : JK → L J → I IK → L
Graphe de dépendance fonctionnelle
Le modèle relationnel
-M. HAJJI-
31
Notion de dépendances fonctionnelles
Couverture minimale Rendre canoniques & élémentaires les DFs qui ne le sont
pas J → I permet de dire que dans la DF IK → L l’attribut I peut
être remplacé par J et donc cela donne : JK → L Donc si JK → L se déduit il reste les DFs suivantes :
IK → L J → I
Le modèle relationnel
-M. HAJJI-
32
Notion de dépendances fonctionnelles
Couverture minimale Représenter les nouvelles Dfs sous forme d'un graphe dont les nœuds sont les attributs impliqués dans les Dfs et les arcs les Dfs elles-mêmes Construction de l'ensemble des DFs composées d'un seul
attribut source de DF
Lister les DFs non encore intégrées (qui n'apparaissent pas
dans le graphe représentant l'ensemble des DFs en 1) : IK → L
Placer les DFs avec comme source un sous-ensemble
d'attributs déjà source de DF : aucunes
Intégrer les DFs où l'un des attributs non affectés apparaît
comme source :
Le modèle relationnel
-M. HAJJI-
33
Notion de dépendances fonctionnelles Couverture minimale
J
I
K
.
Exemple1
L
L'ensemble F = {A→B, A→C, B→C, C→B} admet les deux
couvertures minimales :
CM1 = {A→C, B→C, C→B} et CM2 = {A→B, B→C, C→B}
Exemple2
L'ensemble F = {AB→C, B→A, A→D, D→C} admet la
couverture minimale : F1 = {B→A, A→D, D→C}
AB→C B→A
BB→C B→C
Le modèle relationnel
-M. HAJJI-
34
Notion de dépendances fonctionnelles
Couverture minimale Exemple
AB → C C → A BC → D ACD → B D → EG BE → C CG → BD CE → AG Couverture minimale?
Le modèle relationnel
-M. HAJJI-
35
Les formes normales
Objectif : détecter et étudier les dépendances à l’intérieur des tables pour en éliminer les informations redondantes et les anomalies qui en résultent.
Un attribut dans une table est redondant lorsque ses valeurs
peuvent être éliminées de cette table sans perte d’information.
La normalisation est utile:
pour limiter les redondances de données, pour limiter les pertes de données, pour limiter les incohérences au sein des données et pour améliorer les performances des traitements.
Le modèle relationnel
-M. HAJJI-
39
Les formes normales FOURNISSEUR (NomFournisseur, AdresseFournisseur, Produits,
Prix)
NomFournisseur
AdresseFournisseur
10, Rue des Gras - Clermont
Produit
Chaise
Table
86, Rue de la République - Moulins
Bureau
26, Rue des Dômes - Vichy
39, Rue des Buttes - Moulins
Lit
Lampe
Table de chevet
Lebras
Dupont
Lajoie
Dupont
Prix
20
35
60
50
18
25
Il n’y a pas de clé primaire : on ne sait pas si les deux Dupont sont différents ou pas (si c’est le même Dupont, il y a une des deux adresses qui est fausse.
L’adresse n’est pas décomposée. Si on veut par exemple rechercher tous les fournisseurs qui habitent la même ville, ça ne va pas être possible
Le modèle relationnel
-M. HAJJI-
Publicité
40
Les formes normales Une relation (table) correspondant à ce schéma pourra
éventuellement contenir plusieurs produits pour un même fournisseur. Dans ce cas, il faudra faire face à un certain nombre de problèmes : l'adresse du fournisseur sera dupliquée dans chaque n-uplet
(redondance),
si on souhaite modifier l'adresse d'un fournisseur, il faudra
rechercher et mettre à jour tous les n-uplets correspondant à ce fournisseur,
si on insère un nouveau produit pour un fournisseur déjà référencé,
il faudra vérifier que l'adresse est identique,
si on veut supprimer un fournisseur, il faudra retrouver et supprimer tous les n-uplets correspondant à ce fournisseur (pour différents produits) dans la table.
Le modèle relationnel
-M. HAJJI-
41
Processus de Normalisation
La normalisation élimine les redondances, ce qui
permet : une diminution de la taille de la base de donnée sur le disque une diminution des risques d’incohérence d’éviter une mise à jour multiple des mêmes données
Le modèle relationnel
-M. HAJJI-
42
Processus de Normalisation
La première forme normale Une relation est normalisée en première forme normale si :
1)
2)
3)
elle possède une clé identifiant de manière unique et stable chaque ligne chaque attribut est monovalué (ne peut avoir qu’une seule valeur par ligne) aucun attribut n’est décomposable en plusieurs attributs significatifs
La première forme normale est notée 1NF (1FN en
français).
Si besoin est, on décompose les attributs ou la relation
pour respecter la 1NF.
Le modèle relationnel
-M. HAJJI-
43
Processus de Normalisation
La première forme normale Un employé peut avoir plusieurs enfants et plusieurs diplômes.
En outre, ces attributs sont décomposables : diplôme est décomposable en Nature et Année, et Enfants est décomposable en Prénom et Année de Naissance.
Le modèle relationnel
-M. HAJJI-
44
Processus de Normalisation
La première forme normale Par exemple,
Pers1(nom, prénom, rueEtVille, prénomEnfants) n'est pas en
1NF
alors que Pers2(nom, prénom, nombreEnfants) est en 1NF. La 1NF ne résout pas tout car aucune DF n'est prise en
compte. Par exemple, Commande(codeClient, codeArticle, client,
article) est en 1NF.
Il est cependant possible d'y trouver les occurrences ⟨20, 5,
Dupont, Table⟩, ⟨21, 5, Dupont, Table⟩ et ⟨22, 5, Durand, Chaise⟩, ce qui est incohérent.
Le modèle relationnel
-M. HAJJI-
45
Processus de Normalisation La première forme normale Exercice
type
commandants
numéro
avion
Bernard
100
110
200
221
222
Airbus A320 A1247
Airbus A320
Gilbert
Boeing 747
B1248
Boeing 737
B323
Airbus A330 A100
Boeing 747
Joséphine
Gilbert
Marianne
Boeing 747
B222
Boeing 737
Gilbert
Vol
Avion
(numéro, constructeur, nom avion, numéro vol) (constructeur, nom avion, commandant)
Le modèle relationnel
-M. HAJJI-
46
Processus de Normalisation La première forme normale Exercice
Personne1(numéroSécu, nom, prénom, adresse, prénomEnfants,
âgeEnfants)
Personne2(nom, prénom, natureDiplômes,
lieuExamenDiplômes, dateExamenDiplômes, prénomEtÂgeEnfants)
Personne1(numéroSécu, nom, prénom, numéro, rue,
codePostal, ville, prénomEnfants, ageEnfant) Personne2(nom, prénom, natureDiplômes,
lieuExamenDiplômes, dateExamenDiplômes, prénomEnfants, ageEnfant)
Le modèle relationnel
-M. HAJJI-
47
Les formes normales La deuxième forme normale Une relation R est en deuxième forme normale si et seulement si :
1)
elle est en 1FN et tout attribut non clé est totalement dépendant de toute la clé.
2) Autrement dit, aucun des attributs ne dépend que d’une partie de la clé.
La 2FN n'est à vérifier que pour les relations ayant une clé composée. Une
relation en 1FN n'ayant qu'un seul attribut clé est toujours en 2FN
La deuxième forme normale est notée 2NF (2FN en français). Un relation peut être en 2NF par rapport à une de ses clés candidates et
ne pas l'être par rapport à une autre.
Pour rechercher une 2NF, il est au préalable nécessaire de déterminer
toutes les DF et de choisir une clé candidate. Il est recommandé de trouver toutes les clés candidates afin de ne pas en laisser passer une plus intéressante qu'une autre.
Si besoin est, on décompose les attributs ou la relation pour respecter la
2NF.
Une relation avec une clé candidate choisie réduite à un seul attribut est,
par définition, forcément en 2NF.
Le modèle relationnel
-M. HAJJI-
48
Les formes normales La deuxième forme normale
Cette relation est en première forme normale (existence d’une
clé valide et aucun attribut n’est décomposable) MAIS elle n’est pas en 2° forme normale car on a
DésignationProd ne dépend pas de toute la clé mais seulement de RéférenceProd:
RéférenceProd DésignationProd pour connaître l’attribut désignationProd, on n’a pas besoin de
connaître le numéro de commande.
Le modèle relationnel
-M. HAJJI-
49
Les formes normales La deuxième forme normale Déterminez toutes les DF et clés candidates des relations suivantes puis passez les en 2NF. (La détermination des DF dépend notablement du contexte. En l'absence de celui-ci, il convient toujours de faire des hypothèses raisonnables, justifiées explicitement.) Personne1(numéroSécu, nom, prénom, adresse, prénomEnfants,
âgeEnfants)
Personne2(nom, prénom, natureDiplômes, lieuExamenDiplômes,
dateExamenDiplômes, initialeNom, prénomEtÂgeEnfants)
Commande1(codeClient, codeArticle, client, article) Commande2(numCommande, numProduit, libelléProduit,
quantitéCommandée)
Enseignement1(nomÉtudiant, âge, cours, jourCours) Chaque cours n'a
lieu qu'une fois par semaine.
Enseignement2(cours, joursCours, nomProfesseur, salaireProfesseur) Chaque cours n'a qu'un enseignant et n'a lieu qu'une fois par semaine.
Le modèle relationnel
-M. HAJJI-
50
Les formes normales La deuxième forme normale Personne1(numéroSécu, nom, prénom, adresse,
prénomEnfants, âgeEnfants) (numéroSécu) et (nom,prénom)
Personne2(nom, prénom, natureDiplômes,
lieuExamenDiplômes, dateExamenDiplômes, initialeNom, prénomEtÂgeEnfants) (nom, prénom)
Commande1(codeClient, codeArticle, client, article)
La table doit être scindée en plusieurs tables (codeClient, codeArticle) (codeClient, client) (codeArticle, article) av
Le modèle relationnel
-M. HAJJI-
51
Les formes normales
La deuxième forme normale Commande2(numCommande, numProduit, libelléProduit,
quantitéCommandée) La table doit être scindée (numProduit, libelléProduit) avec numProduit la clé primaire (numCommande, numProduit, quantitéCommandée)
Enseignement1(nomÉtudiant, âge, cours, jourCours)
Chaque cours n'a lieu qu'une fois par semaine. (nomEtudiant, age, cours, jourCours)
Le modèle relationnel
-M. HAJJI-
52
Les formes normales
La deuxième forme normale Enseignement2(cours, joursCours, nomProfesseur,
salaireProfesseur) Chaque cours n'a qu'un enseignant et n'a lieu qu'une fois par semaine. La table doit être scindée (cours, jourCours, nomProfesseur) (nomProfesseur, salaireProfesseur)
Le modèle relationnel
-M. HAJJI-
53
Les formes normales La troisième forme normale Une relation est en 3° forme normale si et seulement si :
1)
2)
elle est en 2FN et tout attribut doit dépendre directement de la clé, c'est-à-dire qu’aucun attribut ne doit dépendre de la clé par transitivité.
Autrement dit, aucun attribut ne doit dépendre d’un autre attribut non clé.
La troisième forme normale est notée 3NF (3FN en français). Un relation peut être en 3NF par rapport à une de ses clés
candidates et ne pas l'être par rapport à une autre.
Si besoin est, on décompose les attributs ou la relation pour
respecter la 3NF.
Une relation en 2NF avec au plus un attribut qui n'appartient pas à la clé candidate choisie est, par définition, forcément en 3NF.
Le modèle relationnel
-M. HAJJI-
54
Les formes normales
La troisième forme normale Par exemple, Commande(numéroCommande, codeClient, client,
article) avec les DF numéroCommande →Commande codeClient, client, article et codeClient →Commande client n'est pas en 3NF alors que Pers(nom, prénom, âge,
nombreEnfants) avec la DF
nom, prénom →Pers âge, nombreEnfants est en 3NF.
Le modèle relationnel
-M. HAJJI-
55
Les formes normales
La troisième forme normale Par exemple,
Le modèle relationnel
-M. HAJJI-
56
Les formes normales La troisième forme normale Exercice: Passez les relations suivantes en 3NF.
Université(étudiant, matière, enseignant, note) Admettez
étudiant, matière →Université enseignant, note et enseignant →Université matière
Personne1(numéroSécu, nom, prénom, adresse, prénomEnfants,
âgeEnfants)
Personne2(nom, prénom, natureDiplômes, lieuExamenDiplômes,
dateExamenDiplômes, initialeNom, prénomEtÂgeEnfants)
Commande1(codeClient, codeArticle, client, article) Commande2(numCommande, numProduit, libelléProduit,
quantitéCommandée)
Enseignement1(nomÉtudiant, âge, cours, jourCours) Chaque cours
n'a lieu qu'une fois par semaine.
Enseignement2(cours, joursCours, nomProfesseur, salaireProfesseur)
Publicité
Chaque cours n'a qu'un enseignant et n'a lieu qu'une fois par semaine.
Le modèle relationnel
-M. HAJJI-
57
Les formes normales La troisième forme normale Université(étudiant, matière, enseignant, note)
La table doit être scindée (enseignant, matière) (étudiant, enseignant, note)
Personne1(numéroSécu, nom, prénom, adresse,
prénomEnfants, âgeEnfants) La table doit être scindée (numéroSécu, nom, prénom) (nom, prénom, numéro de rue, rue, code postal, ville) (nom, prénom, prénomEnfants) (nom, prénomEnfants, âgeEnfants)
Le modèle relationnel
-M. HAJJI-
58
Les formes normales Le troisième forme normale Personne2(nom, prénom, natureDiplômes,
lieuExamenDiplômes, dateExamenDiplômes, initialeNom, prénomEtÂgeEnfants) La table doit être scindée (nom, prénom, initialeNom) (nom, prénom, prénomEnfants) (nom, prénomEnfants, âgeEnfants) (natureDiplômes, lieuExamenDiplômes, dateExamenDiplômes) (nom, prénom, natureDiplômes, lieuExamenDiplômes) Commande1(codeClient, codeArticle, client, article)
La table doit être scindée (codeClient, codeArticle) (codeClient, client) (codeArticle, article)
La transformation en 2NF permet de passer directement à la 3NF
Le modèle relationnel
-M. HAJJI-
59
Les formes normales Le troisième forme normale Commande2(numCommande, numProduit, libelléProduit,
quantitéCommandée) La table doit être scindée (numProduit, libelléProduit) (numCommande, numProduit, quantitéCommandée) Enseignement1(nomÉtudiant, âge, cours, jourCours)
La table doit être scindée (cours, jourCours) (nomÉtudiant, âge, cours)
Enseignement2(cours, joursCours, nomProfesseur, salaireProfesseur)
La table doit être scindée (cours, joursCours, nomProfesseur) (nomProfesseur, salaireProfesseur)
Le modèle relationnel
-M. HAJJI-
60
Les formes normales
Forme normale de Boyce-Codd Une relation est en forme normale de Boyce-Codd si et
seulement si : 1) Elle est en 3NF
2)
ses clés candidates sont les uniques sources de DF. La forme normale de Boyce-Codd est notée BCNF
(FNBC en français).
Si une relation est en BCNF, elle l'est par définition pour
toutes ses clés candidates.
Si besoin est, on décompose les attributs ou la relation
pour respecter la BCNF.
Le modèle relationnel
-M. HAJJI-
61
Les formes normales
Forme normale de Boyce-Codd Par exemple, Université(étudiant, matière, enseignant,
note) avec les DF étudiant, matière →Université enseignant, note et enseignant →Université matière n'est pas en BCNF alors que Pers(nom, prénom, âge,
nombreEnfants) avec la DF
nom, prénom →Pers âge, nombreEnfants est en BCNF.
Le modèle relationnel
-M. HAJJI-
62
Les formes normales
Forme normale de Boyce-Codd Par exemple
Le modèle relationnel
-M. HAJJI-
63
Les formes normales Forme normale de Boyce-Codd Toutes les DF sont prises en compte par la BCNF. On considère généralement qu'une base de données de
bonne qualité ne contient que des relations qui respectent la BCNF.
Cependant, la BCNF ne résout pas tout. Il existe d'autres types de dépendance dont la prise en compte peut encore améliorer la qualité des relations. Notamment, les dépendances multivaluées ont permis de
définir la 4NF
Et les dépendances de jointure ont donné naissance à la 5NF. Leur usage reste cependant plus marginal que celui de la BCNF.
Le modèle relationnel
-M. HAJJI-
64
De l’entité-association au relationnel
Passage d’un modèle à deux structures (entités +
associations) à un modèle à une structure (relations)
Règle 1 : entités
Pour chaque entité du schéma E/A
1. On crée une relation de même nom que l’entité 2. Chaque propriété de l’entité, y compris l’identifiant, devient un
attribut de la relation (une colonne) Les attributs de l’identifiant constituent la clé de la relation
3.
Le modèle relationnel
-M. HAJJI-
65
De l’entité-association au relationnel
Film (idFilm, titre, année, genre, résumé)
Artiste (idArtiste, nom, prénom, annéeNaissance)
Internaute (email, nom, prénom, région)
Pays (code, nom, langue)
Le modèle relationnel
-M. HAJJI-
66
De l’entité-association au relationnel
Règle 2 : associations de un à plusieurs
Soit une association de un à plusieurs entre A et B.
1. On crée les relations RA et RB correspondant respectivement aux
entités A et B L’identifiant de B devient un attribut de RA.
2.
Film (idFilm, titre, année, genre, résumé)
Artiste (idArtiste, nom, prénom, annéeNaissance)
Internaute (email, nom, prénom, région)
Pays (code, nom, langue)
Film (idFilm, titre, année, genre, résumé, idMES)
Artiste (idArtiste, nom, prénom, annéeNaissance)
Internaute (email, nom, prénom, région)
Pays (code, nom, langue)
Le modèle relationnel
-M. HAJJI-
67
De l’entité-association au relationnel Règle 3 : associations avec type entité faible
Une entité faible est toujours identifiée par rapport à une autre
entité (e.g. salle de cinéma).
Il s’agit d’une association “un à plusieurs”. Même règle de passage : on utilise un mécanisme de clé étrangère
pour référencer l’entité forte dans l’entité faible. La clé étrangère est une partie de l’identifiant de l’entité faible.
Cinéma (nomCinéma, numéro, rue, ville) Salle (nomCinema, no, capacité)
Le modèle relationnel
-M. HAJJI-
68
De l’entité-association au relationnel Règle 4 : associations binaires de plusieurs à plusieurs
Soit une association binaire de n-m entre A et B.
1. On crée les relations RA et RB correspondant respectivement aux entités A
et B
2. On crée une relation RA-B pour l’association 3.
La clé de RA et la clé de RB deviennent des attributs de RA-B La clé de cette relation est la concaténation des clés des relations RA et RB Les propriétés de l’association deviennent des attributs de RA-B.
4.
5.
Film (idFilm, titre, année, genre, résumé, iDMES, codePays) Artiste (idArtiste, nom, prénom, annéeNaissance) Internaute (email, nom, prénom, région) Role (ideFilm, idActeur, nomRôle) Notation (email, idFilm, note)
Le modèle relationnel
-M. HAJJI-
69
De l’entité-association au relationnel Choix des identifiants Il est préférable, en général, de choisir un identifiant “neutre” qui ne soit pas une propriété de l’entité Chaque valeur de l’identifiant doit caractériser de manière
unique une occurrence Ex : Titre pour la relation Film ou nom pour la relation Acteur ne
sont pas de bons choix
Si on utilise un ensemble de propriétés comme identifiant, la
référence à une occurrence est très lourde Ex : si on prenait pour clé de Cinéma l’identifiant (nom, rue, ville) L’identifiant sert de référence externe et ne doit jamais être
modifiable (il faudrait répercuter les mises à jour) Ex : Titre pour la relation Film ou nom pour la relation Acteur ne
sont pas de bons choix
Le modèle relationnel
-M. HAJJI-
70
Exercice1 Un organisme départemental souhaite mettre en place une base de données pour le suivi des films projetés dans les salles de cinéma du département. Pour simplifier, on considère qu'une salle de cinéma ne projette qu'un seul film à une heure donnée. Toutefois, un même film peut être projeté simultanément dans plusieurs salles. Pour des raisons d'organisation et d'espace, une salle de cinéma ne projette chaque film qu'une seule fois par jour et toujours à la même heure. On représentera les films actuellement à l'affiche. On ne souhaite pas archiver l'historique des projections des films par salle. L'organisme départemental effectue régulièrement des sondages sur un groupe de spectateurs fidèles pour recueillir leur impression sur tous les films qu'ils ont vus. Pour simplifier, on considère que chaque spectateur émet une appréciation qui peut être résumée par bien, quelconque, nul. On ne s'intéresse pas à l'information sur la salle dans laquelle il a regardé ce film.
Le modèle relationnel
-M. HAJJI-
71
Exercice1
On dispose pour chaque salle des données suivantes : nom, adresse et liste des films projetés avec l'heure de leur projection dans la salle. Les informations stockées sont celles de la semaine en cours. Chaque spectateur est identifié par un numéro. On connaît d'autre part son nom, son prénom, son adresse, sa date de naissance et sa catégorie professionnelle. Pour chaque film, on souhaite stocker son visa d'exploitation, son titre, le nom du réalisateur et son année de sortie. Enfin, on enregistre, pour chaque spectateur interrogé, la liste des films visionnés et son impression sur chacun des films.
Le modèle relationnel
-M. HAJJI-
72
Exercice1 Modèle entité association
On considère que 2 salles ne peuvent porter le même nom. De plus, les cardinalités minimales sont égales à 0, ce qui permet une grande souplesse pour enregistrer des salles sans films, des films non projetés, des spectateurs nouveaux, des films non encore visionnés etc..
Modèle relationnel ?
Le modèle relationnel
-M. HAJJI-
73
Exercice1 Modèle relationnel
SALLE_CINEMA(nom_salle, adresse) (3NF) FILM(visa, titre, réalisateur, année_sortie) (2NF si on considère qu'un
titre est unique)
SPECTATEUR(numéro, nom, prénom, adresse, date_naissance,
cat_prof)
Les types d'association :
PROJECTION(nom_salle,visa, heure)
(nom_salle, heure) est une clé candidate car un lm passe toujours à la même heure. On peut aussi choisir celle-ci comme clé primaire.
APPRECIATION(visa, numéro, impression)
La clé primaire de APPRECIATION est composée de la clé étrangère
formée des clés primaires des deux TE mis en relation.
La clé primaire de PROJECTION est composée de la clé étrangère
formée des clés primaires des deux TE mis en relation.
Le modèle relationnel
-M. HAJJI-
74
Exercice1
Contraintes d'inclusions (intégrité référentielles): visa de PROJECTION est référencé par visa de FILM. nom_salle de PROJECTION est référencé par nom_salle de
SALLE.
visa de APPRECIATION est référencé par visa de FILM numéro de APPRECIATION est référencé par numéro de
SPECTATEUR.
Le modèle relationnel
-M. HAJJI-
75
Exercice 2 La cuisine centrale à Montpellier voudrait gérer les données relatives à la cantine scolaire à l'aide d'une base de données relationnelle. Elle explique que le prix du repas dépend de la tranche dans laquelle l'enfant se situe et du type d'école (jardin d'enfant, maternelle, primaire). La tranche est définie en fonction du quotient familial. Chaque enfant à une carte de cantine personnelle avec un numéro. Les familles approvisionnent la carte d'un certain montant. La cuisine centrale voudrait enregistrer tous les paiements journaliers, puis par la suite mettre à jour l'information du montant total versé. Chaque jour, elle voudrait établir et archiver une liste des enfants ayant mangé à la cantine ainsi que le menu du jour. Le menu est composé d'une entrée, d'un plat et d'un dessert.
Le modèle relationnel
-M. HAJJI-
76
Exercice 2
Modèle relationnel ?
Le modèle relationnel
-M. HAJJI-
77
Exercice 2 Les contraintes de domaines et schéma relationnel :
Les associations CORRESPOND, APPARTIENT sont simple-multiple : on
ne crée pas de relation pour ces associations.
L'association FREQUENTE : elle est complexe car un élève peut très bien changer d'établissement dans l'année. Et si on veut archiver cette information, il faut pouvoir stockés tous les établissements fréquentés.
FREQUENTE(id, code) MANGE(id,date) TARIFEE(tranche, code_type,montant) ENFANT(id, nom, prénom, adresse, télP, télM, montantVersé,
mondantPayéTotal, quotientFamilial,tranche)
REPAS(date, entrée, plat:, dessert) ETABLISSEMENT(code, nom, adresse, directeur, télDirecteur, code_type) TRANCHE(tranche, libellé) TYPE(code_type, libellé)
Le modèle relationnel
-M. HAJJI-
78
Exercice 2
Avec ce schéma, l'association mange permet de d'archiver et de lister les enfants mangeant chaque à la cantine. Pour savoir quel montant ils ont payé chaque jour, il sera nécessaire d'établir une vue reliant enfant-date-tranche et tarifée. On pourrait aussi créer une association PAIE, ce qui impliquerait : PAIE(id, date, tranche, code_type, montant).
Mais ceci provoque une redondance de l'information :
montant par tranche et type. On pourrait choisir de ne plus représenter, alors, l'association TARIFEE en relation, mais la table PAIE n'est pas en 3NF.
Le modèle relationnel
-M. HAJJI-
79
Publicité
Exercice 3 Lors d’une élection communale, faisant fi de tout secret électoral, un