Вы находитесь на странице: 1из 31

Université Saad Dahleb de Blida

Faculté des Sciences


Département d’Informatique
Licence ISIL
Semestre 5 (3ème année)

Module : Bases de Données


Avancées

Année Universitaire : 2019/2020

1
Chapitre 4: CONCEPTION ET
OPTIMISATION DE SCHÉMA
RELATIONNEL
Introduction et problématique

 Le modèle relationnel de données est proposé par Ted Codd


(1923-2003).
 Exp:
 Soit la table suivante, dans une base de données
relationnelle, avec le schéma relationnel suivant:

R(Entreprise, CH.Affaire, N°Facture, Client, Montant) Les


contraintes suivantes doivent être respectées:

Entreprise -> Ch.Affaire


Entreprise, N°Facture -> Client
Entreprise, N°Facture -> Montant

3
Introduction et problématique
(suite)
 Exemple:

Entreprise Ch.Affaire N°Facture Client Montant


Ent1 80M 01501 C1 450
Ent1 80M 01540 C2 10456
Ent2 50M 01502 C3 500
Ent3 100M 01503 C4 450
Ent4 45M 01510 C5 164
Ent4 45M 01518 C6 9789
… … … … …

4
Introduction et problématique
(suite)
 Exemple (suite):

 Une nouvelle facture à insérer dans la table <Ent2, 50M,


01541, C7, 450>
 Le chiffre d’affaire est une information redondante.
 Si une entreprise change de nom, toutes les lignes
contenant cette entreprise doivent être changées.
 Si une nouvelle entreprise se crée, sans clients au début, on
ne pourra pas l’ajouter à la table.

5
Introduction et problématique
(suite)
 Problèmes:
 Problème de redondances.
 Problème de mise à jour.
 Une ligne qui manque de données ne peut être insérée.

 Solution: Décomposer la table en plusieurs tables.

 Pour que cette décomposition soit dans les normes, nous


devons voir comment rendre la table en forme normale.

6
Introduction et problématique
(suite)
 La théorie de la normalisation est une théorie destinée à
concevoir un bon schéma d’une BD sans redondance d’information
et sans risques d'anomalie de mise à jour. Elle a été introduite
dès l'origine dans le modèle relationnel.

 La théorie de la normalisation est fondée sur deux concepts


principaux :
 Les dépendances fonctionnelles: Elles traduisent des
contraintes sur les données.
 Les formes normales: Elles définissent des relations bien
conçues.
 La mise en œuvre de la normalisation est fondée sur la
décomposition progressive des relations jusqu'à obtenir des
relations normalisées. 7
dépendance fonctionnelle

 Les dépendances fonctionnelles traduisent des contraintes


d’intégrité sur les données.

 Exp. Deux personnes différentes peuvent avoir même nom


et prénom mais jamais le même numéro de sécurité sociale.
SS -> Nom, Prénom

 Un numéro de sécurité sociale est associé un seul nom et


prénom.

 Les dépendances fonctionnelles possèdent trois propriétés


fondamentales qui ont été découvertes par William
Armstrong: Réflexivité, Augmentation, Transitivité.
8
Les axiomes d'Armstrong

 Soit X, Y, Z trois ensembles d’attributs. L’écriture X,Z est


une écriture simplifiée de l’union ensembliste X  Z.

1. Réflexivité:

Si Y  X ⇒ X  Y ; tout ensemble d’attributs détermine lui-


même ou une partie de lui-même.
Exp:
Nom,Prenom  Prenom càd On ne peut pas trouver une valeur
de (Nom,Prenom) qui détermine 2 valeurs différentes de
(Prenom).

9
Les axiomes d'Armstrong
(suite)
2. Augmentation:

Si X  Y  Z: X,Z  Y,Z ; si X détermine Y, les deux


ensembles d’attributs peuvent être enrichis par un même
troisième.

Exp:
Nom,Prenom  Adr  Nom,Prenom,Tel  Adr,Tel

10
Les axiomes d'Armstrong
(suite)
3. Transitivité:

Si X  Y et Y  Z  X  Z ; Une valeur de X détermine une


seule valeur de Y, et cette valeur de Y détermine une seule
valeur de Z, donc la valeur de X détermine la seule valeur de
Z.

Exp:
Nom,Prenom TelFixe et TelFixe Adr
 Nom,Prenom  Adr

11
Les axiomes d'Armstrong
(suite)
 À partir de ces trois propriétés on déduit d’autres:

4. Union:
Si X  Y et X  Z  X  Y,Z

Exp:
TelFixe  Nom et TelFixe  Prenom  TelFixe  Nom,Prenom

5. Décomposition
Si X  Y et Z  Y  X  Z

Exp:
TelFixe  Nom,Prenom  TelFixe  Nom et TelFixe  Prenom
12
Les axiomes d'Armstrong
(suite)
6. Pseudo-transitivité

Si X  Y et W,Y  Z  W,X  Z Parce que:


Par augmentation: X  Y  W,X  W,Y
Par transitivité: W,X  W,Y et W,Y  Z  W,X  Z

Exp:
Nom,Prenom  Adr  Nom,Prenom,DateNais  Adr,DateNais
Nom,Prenom,DateNais  Adr,DateNais et Adr,DateNais 
Tel
 Nom,Prenom,DateNais  Tel
13
Dépendance fonctionnelle
élémentaire (DFE)
 C’est une dépendance de la forme : X  A , où A est un
attribut unique non inclus dans X ( A ⊄ X), tel que:  X’ 
X, il n’existe pas de dépendance fonctionnelle X’  A.

 Exp:
- AB→A n'est pas élémentaire car A est incluse dans AB.
- AB→CB n'est pas élémentaire car CB n'est pas un attribut, mais
un groupe d'attributs.
- N°SS→Nom, Prénom :n'est pas élémentaire.
- Soient les deux D.F. : (1) Num, NomAdr, (2) Num  Adr. La
D.F. (1) est une D.F. non élémentaire car Num  Num,Nom et il
existe la D.F. Num  Adr. Par contre la D.F. (2) est une D.F.
élémentaire.
14
Fermeture transitive

 C’est l’ensemble des DF élémentaires enrichi de toutes les


DF élémentaires déduites par transitivité.

 Exp:
F = { Matricule  Type; Type  Marque; Type  Puissance;
Matricule  Couleur}
on déduit la fermeture transitive :
F+ = F ∪ {Matricule  Marque; Matricule  Puissance}

15
Couverture minimale

 C’est un sous-ensemble minimal de DF permettant de


générer toutes les autres.

 Exp: idModule  idFilière idFilière  nomFilière


idModule  nomFilière (par transitivité)
jour, heure, salle  idEns
jour, heure, salle  idFilière (par transitivité)
jour, heure, salle  section
jour, heure, salle  groupe
jour, heure, salle  an_étude
jour, heure, salle  idModule
jour, heure, salle, idEns  idFilière, idEns (par augmentation)
16
Couverture minimale

 Remarque: Tout ensemble de DFE (et donc tout ensemble de


DF) admet au moins une couverture minimale (et en pratique
souvent plusieurs).

 Exp:

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}

17
Définition formelle d'une clé

 Soient une relation R(A1,A2,...,An) et K un sous-ensemble de A1,A2,...


,An. K est une clé de R si et seulement si :

 K→A1,A2,...,An
 et il n'existe pas X inclus dans K tel que X→A1,A2,...,An.

 Une clé est donc un ensemble minimum d'attributs d'une relation qui
détermine tous les autres.
 Remarque: Toute clé candidate détermine les autres clés candidates,
puisque qu'une clé détermine tous les attributs de la relation.

 Étant donné qu'une relation dispose forcément d'une clé, si une relation
R n'admet aucune clé K sous ensemble des attributs A1..An de R, alors
c'est que K=A1..An (la clé est composée de tous les attributs de R).

 On parle de relation "toute clé". 18


La décomposition d’une
relation
 L'objectif de la décomposition est de "casser" une relation en
relations plus petites afin d'en éliminer les redondances et
sans perdre d'information.

 La décomposition d'un schéma de relation R(A1,A2,...,An) est le


processus de remplacement de ce schéma par une collection de
schémas R1,R2,...,Rn telle qu'il est possible de reconstruire R
par des opérations relationnelles de jointure sur R1,R2,...,Rn.

Décomposition préservant les DF


Une décomposition d'une relation R en relations R1,R2,...Rn
préserve les DF si la fermeture transitive F+ des DF de R est la
même que celle de l'union des fermetures transitives des DF de
R1,R2,...,Rn. 19
La décomposition d’une
relation
 L'objectif de la décomposition est de "casser" une relation en
relations plus petites afin d'en éliminer les redondances et
sans perdre d'information.

 La décomposition d'un schéma de relation R(A1,A2,...,An) est le


processus de remplacement de ce schéma par une collection de
schémas R1,R2,...,Rn telle qu'il est possible de reconstruire R
par des opérations relationnelles de jointure sur R1,R2,...,Rn.

Décomposition préservant les DF


Une décomposition d'une relation R en relations R1,R2,...Rn
préserve les DF si la fermeture transitive F+ des DF de R est la
même que celle de l'union des fermetures transitives des DF de
R1,R2,...,Rn. 20
Les formes normales

 Les formes normales sont utiles pour supprimer (ou


minimiser) les redondances dans les relations.
 On peut recenser les 6 formes normales suivantes, de moins
en moins redondantes :

 la première forme normale


 la deuxième forme normale
 la troisième forme normale
 la forme normale de Boyce-Codd
 la quatrième forme normale
 la cinquième forme normale

 La troisième forme normale est généralement reconnue


comme étant la plus importante à respecter. 21
Les formes normales:
La première forme normale (1FN)

 Une relation est en première forme normale si elle possède


au moins une clé et si tous ses attributs sont atomiques.
 Un attribut est atomique si il ne contient qu'une seule
valeur pour un tuple donné, et donc s'il ne regroupe pas un
ensemble de plusieurs valeurs.
 Une relation qui n'est pas en première forme normale est
dite non normalisée.
 Exp:
Personne (IdPersonne, Nom, Prénom, Adresse(IdAdr, Num, Rue,
Ville, CodePostal, Pays))
 La relation Personne n’est pas en 1FN. Transformation en deux
relations:
Personne (IdPersonne, Nom, Prénom, IdAdr)
Adresse(IdAdr, IdPersonne, Num, Rue, Ville, CodePostal, Pays) 22
Les formes normales:
La deuxième forme normale (2FN)

 La deuxième forme normale permet d'éliminer les


dépendances entre des parties de clé et des attributs
n'appartenant pas à une clé.

 Une relation est en 2NF si elle est en 1NF et si tout attribut


qui n'est pas dans une clé ne dépend pas d'une partie
seulement d'une clé. C'est à dire encore que toutes les DF
issues d'une clé sont élémentaires.

Attention!!
La définition de la 2NF doit être vérifiée pour toutes les clés
candidates et non seulement la clé primaire (dans le cas où il y 23
a plusieurs clés).
Les formes normales:
La deuxième forme normale (2FN)

 Exp: Soit la relation Personne :


Personne(#Nom, #Profession, Salaire)

Soit les DF suivantes sur cette relation :


Nom,Profession→Salaire
Profession→Salaire

On note alors que la première DF est issue de la clé et qu'elle


n'est pas élémentaire (puisque Profession détermine Salaire) et
donc que le schéma n'est pas en 2NF.

Pour avoir un schéma relationnel en 2NF, il faut alors décomposer


Personne en deux relations :
Personne(#Nom, #Profession)
Profession(#Profession, Salaire) 24
Les formes normales:
La deuxième forme normale (2FN)

 Exp (suite):

On remarque que ce schéma est en 2NF (puisque Salaire dépend


maintenant fonctionnellement d'une clé et non plus d'une partie
de clé).

On remarque aussi que la décomposition a préservé les DF,


puisque nous avons à présent :

Profession→Salaire (DF de la relation Profession)

Nom,Profession→Profession (par Réflexivité)

Nom,Profession→Salaire (par Transitivité)


25
Les formes normales:
La troisième forme normale (3FN)

 La troisième forme normale permet d'éliminer les


dépendances entre les attributs n'appartenant pas à une clé.

 Une relation est en 3NF si elle est en 2NF et si tout


attribut n'appartenant pas à une clé ne dépend pas d'un
autre attribut n'appartenant pas à une clé. C'est à dire
encore que toutes les DFE vers des attributs n'appartenant
pas à une clé, sont issues d'une clé.

Attention!!
La définition concerne toutes les clés candidates et non
uniquement la clé primaire,
26
Les formes normales:
La troisiéme forme normale (2FN)

 Exp: Soit la relation Profession:


Personne (#Profession, Salaire, Prime)

Soit les DF suivantes sur cette relation :


Profession→Salaire
Profession→Prime
Salaire→Prime

Cette relation n'est pas en 3NF car Salaire, qui n'est pas une clé,
détermine Prime. Pour avoir un schéma relationnel en 3NF, il faut
décomposer Profession :

Profession(#Profession, Salaire)
Salaire(#Salaire, Prime)
27
Les formes normales:
La troisiéme forme normale (2FN)

 Exp (suite):

Ce schéma est en 3NF, car Prime est maintenant déterminé par


une clé.

On remarque que cette décomposition préserve les DF, car par


transitivité, Profession détermine Salaire qui détermine Prime, et
donc Profession détermine toujours Prime.

Profession→Salaire (DF de la relation Profession)

Salaire→Prime (DF de la relation Salaire)

Profession→Prime (par Transitivité) 28


Les formes normales:
Forme normale de Boyce-Codd

 La forme normale de Boyce-Codd permet d'éliminer les


dépendances entre les attributs n'appartenant pas à une clé
vers les parties de clé.

 Une relation est en BCNF si elle est en 3NF et si tout


attribut qui n'appartient pas à une clé n'est pas source
d'une DF vers une partie d'une clé. C'est à dire que les
seules DFE existantes sont celles dans lesquelles une clé
détermine un attribut.

Attention!!
Une décomposition en BCNF ne préserve pas toujours les DF.
29
Les formes normales:
Forme normale de Boyce-Codd

 Exp: Soit la relation Personne:


Personne (#N°SS, #Pays, Nom, Région)

Soit les DF suivantes sur cette relation :


N°SS,Pays→Nom
N°SS,Pays→Région
Région→Pays

Il existe une DFE qui n'est pas issue d'une clé et qui détermine un
attribut appartenant à une clé (Région→Pays). Cette relation est
en 3NF, mais pas en BCNF (car en BCNF toutes les DFE sont
issues d'une clé).

30
Les formes normales:
Forme normale de Boyce-Codd

 Exp (suite):

Pour avoir un schéma relationnel en BCNF, il faut décomposer


Personne

Personne(#N°SS, #Region=>Region, Nom)


Region(#Region, Pays)

Remarquons que les DF n'ont pas été préservées par la


décomposition puisque N°SS et Pays ne déterminent plus
Région.

31

Вам также может понравиться