Le modèle relationnel

Programming, Databases, Data Modeling · course

Voir tous les documents en bases de données

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