Vous êtes sur la page 1sur 72

Les Bases de données relationnelles

Le modèle relationnel

M. GUEYE

! Ce document n’est pas encore stable. Son contenu peut évoluer !


De quoi va-t-on parlé ?
1. Les Bases de données
 Quelques définitions et exemples
 Le SGBD (Système de Gestion de Base de Données)
 Petit historique des BD
2. Conception d’une base de données
─ Modèle relationnel
─ Dépendances fonctionnelles
─ Formes normales
3. Algèbre relationnel
4. SQL (Structured Query Language)
5. Les vues et triggers

2
Les Bases de données
Quelques définitions
 Définition 1: une données peut contenir une information
quelconque:
– le nom d’une personne,
– le numéro de téléphone du propriétaire d’un véhicule,
– l’enseignant d’un cours donné
–…

• Définition 2.a: une base de données est un grand


ensemble d’informations structurées mémorisées sur un
support permanent.

4
Quelques définitions
• Définition 2.b: une base de données peut aussi être vue
comme une collection d’informations modélisant une
organisation (entreprise, société …) du monde réel.

Techniquement c’est un ensemble de fichiers


─ reliés par des pointeurs multiples, aussi cohérents
entre eux que possible
─ organisés de manière à répondre efficacement à
une grande variété de questions

5
Quelques exemples
• Exemple (1) de base de données : les clients d’une banque et
leurs comptes.

COMPTE
Num_cli Nom Tel Num_Cte Solde
MF001 Moussa FALL 00221 77 485 13 29 1234 1.800.650
MF001 Moussa FALL 00221 77 485 13 29 3225 7.561.000
JD002 Jean DIATTA 00221 33 820 18 30 456 21.450.000
AG003 Astou GUEYE +221 76 545 88 75 618 12.945.500

6
Quelques exemples
• Exemple (1) de base de données : les clients d’une banque et
leurs comptes.

COMPTE
Num_cli Nom Tel Num_Cte Solde
MF001 Moussa FALL 00221 77 485 13 29 1234 1.800.650
MF001 Moussa FALL 00221 77 485 13 29 3225 7.561.000
JD002 Jean DIATTA 00221 33 820 18 30 456 21.450.000
AG003 Astou GUEYE +221 76 545 88 75 618 12.945.500

7
Quelques exemples
• Exemple (2) de base de données : les clients d’une banque et
leurs comptes.

CLIENT
Num_cli Nom Tel Num_Cte
MF001 Moussa FALL 00221 77 485 13 29 1234
JD002 Jean DIATTA 00221 33 820 18 30 456
AG003 Astou GUEYE +221 76 545 88 75 618

COMPTE
Num_Cte Solde
456 21.450.000
1234 1.800.650
8
618 12.945.500
Quelques exemples
• Exemple (3) de base de données : les clients d’une banque et
leurs comptes.
CLIENT
Num_cli Nom Tel
MF001 Moussa FALL 00221 77 485 13 29
JD002 Jean DIATTA 00221 33 820 18 30
AG003 Astou GUEYE +221 76 545 88 75

COMPTE
Num_Cte Solde Num_cli
1234 1.800.650 MF001
456 21.450.000 JD002
618 12.945.500 AG003
9
3225 7.561.000 MF001
Quelques exemples

10
Quelques exemples

11
Le SGBD
Problématique: Une base de données n’étant du moins qu’un ensemble
de fichiers. L’utilisation directe de ces fichiers soulève de très gros
problèmes :
• Lourdeur d’accès aux données. En pratique, pour chaque accès, même
le plus simples, il faudrait écrire un programme.
• Manque de sécurité. Si tout programmeur peut accéder directement aux
fichiers, il est impossible de garantir la sécurité et l’intégrité des
données.
• Pas de contrôle de concurrence. Dans un environnement où plusieurs
utilisateurs accèdent aux même fichiers, des problèmes de concurrence
d’accès se posent.

D’où le recours à un logiciel chargé de


─ gérer les fichiers constituant une base de données,
─ prendre en charge les fonctionnalités de protection et de sécurité,
─ fournir les différents types d’interface nécessaires à l’accès aux
données.
C’est le SGBD.
12
Le SGBD
Définition 3.a: Un Système de Gestion de Bases de
Données (SGBD) est un logiciel de haut niveau qui
permet de manipuler les informations stockées dans une
base de données.

Définition 3.b: On peut encore le définir comme un


ensemble de logiciels systèmes permettant de stocker et
d’interroger un ensemble de fichiers interdépendants.

Mais aussi comme un outil permettant de modéliser et


de gérer les données d’une organisation.
13
Le SGBD
Le SGBD joue le rôle (pour l’accès aux fichiers d’une base de données)
de celui du système d’exploitation pour l’accès au matériel de
l’ordinateur !

14
Petit historique des BD
Années 1960:
• début 1960: Charles Bachmann développe le premier
SGBD, IDS, chez Honeywell
– modèle réseau: les associations entre les données
sont représentées par un graphe.

• fin1960: IBM lance le SGBD IMS


– modèle hiérarchique: les associations entre les
données sont représentées par un arbre.

• fin 1960: standardisation du modèle réseau Conference


On DAta SYstems Languages (CODASYL).

15
Petit historique des BD
Années 1970:
• 1970: Ted Codd définit le modèle relationnel au IBM San
Jose Laboratory(aujourd’hui IBM Almaden)
• 2 projets de recherche majeurs
– INGRES, University of California, Berkeley
• devint le produit INGRES, suivi par POSTGRES, logiciel libre, qui
sera le produit ILLUSTRA, racheté par INFORMIX
– System R, IBM San Jose Laboratory
• devint DB2, inspira ORACLE
• 1976: Peter Chen définit le modèle Entité-Association
(Entity-Relationship)

16
Petit historique des BD
Années 1980:
• maturation de la technologie relationnelle
• standardisation de SQL
Années 1990:
• amélioration constante de la technologie relationnelle
• support de la distribution et du parallélisme
• modèle objet, ODMG
• fin 1990 : le relationnel-objet, SQL3
• nouveaux domaines d’application: entrepôts de données
et décisionnel, Web, multimédia, mobiles, etc.
Années 2000:
• apparition de XML…

17
Conception d’une base de
données
Organisation logique des données

LE MODELE RELATIONNEL

19
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
─ Des contraintes qui permettent de spécifier les règles que doit
respecter une base de données.
─ Des opérations pour manipuler les données, en interrogation et en
mise à jour.

Les deux premières composantes relèvent du Langage de Définition de


Données (DDL) dans un SGBD. Le DDL est utilisé pour décrire le schéma
d’une base de données.

La troisième composante (opérations) est la base du Langage de


Manipulation de Données (DML) dont le représentant le plus célèbre est
SQL.
20
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.

Relation
Voiture  est représentée sous forme de tableau
imm marque annee idAg  a un nom (Ex.: Voiture)
1 Toyota 2012 1  est composée d’un ensemble de colonnes
2 Dacia 2013 1 désignées par un nom d’attribut (Ex.: imm)
3 Toyota 2014 1
 chaque colonne/attribut contient des
4 KIA 2010 2 valeurs d’un domaine défini (int, float, text,
5 Renault 2009 2 date…)
6 Peugeot 2015 3
 chaque ligne correspond à une entité
(ici, des voitures).
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
Voiture (imm:string, marque:string, annee:number, idAg:number)
Voiture (imm, marque, annee, idAg) // Format court

Voiture
imm marque annee idAg
Schéma (description de la relation en intention)
1 Toyota 2012 1

2 Dacia 2013 1

3 Toyota 2014 1 Instance


4 KIA 2010 2

5 Renault 2009 2 Tuple, n-uplet, enregistrement …


6 Peugeot 2015 3
22
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
Voiture (imm:string, marque:string, annee:number, idAg:number)
Voiture (imm, marque, annee, idAg) // Format court

Voiture
imm marque annee idAg
Schéma (description de la relation en intention)
Dégré : nombre d’attributs (de colonnes)
1 Toyota 2012 1

2 Dacia 2013 1

3 Toyota 2014 1 Instance


Cardinalité: nombre de tuples
4 KIA 2010 2

5 Renault 2009 2 Tuple, n-uplet, enregistrement …


6 Peugeot 2015 3
23
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.

Voiture
imm marque annee idAg
! L’ordre des lignes (tuples) et des
1 Toyota 2012 1 colonnes (attributs) n’a pas d’importance!
2 Dacia 2013 1

3 Toyota 2014 1

4 KIA 2010 2

5 Renault 2009 2

6 Peugeot 2015 3
24
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
─ Des contraintes qui permettent de spécifier les règles de gestion des
données.

25
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
─ Des contraintes qui permettent de spécifier les règles de gestion des
données ⇒ contraintes d’intégrité

26
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
─ Des contraintes qui permettent de spécifier les règles de gestion des
données ⇒ contraintes d’intégrité

Voiture
imm marque annee idAg

1 Toyota 2012 1

2 Dacia 2013 1

3 Toyota 2014 1 CLE PRIMAIRE


Unicité et obligation de valeur dans la(es)
4 KIA 2010 2
colonne(s) constituant la clé
5 Renault 2009 2  contrainte d’identification
6 Peugeot 2015 3 Il ne peut y avoir 2 tuples identiques
27
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
─ Des contraintes qui permettent de spécifier les règles de gestion des
données ⇒ contraintes d’intégrité

Voiture
imm marque annee idAg

1 Toyota 2012 1

2 Dacia 2013 1

3 Toyota 2014 1 CLE PRIMAIRE


La clé primaire est le plus petit sous
4 KIA 2010 2
ensemble d’attributs qui permet d’identifier
5 Renault 2009 2
chaque enregistrement
6 Peugeot 2015 3
28
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
─ Des contraintes qui permettent de spécifier les règles de gestion des
données.

CLE PRIMAIRE
Client (codeClient, nom, prenom, ville)
Produit (codeProduit, designation, prixUnitaire, tauxTVA, stock)
Commande (numCommande, date, prix, codeClient)
CommandeProduits (numCommande, codeProduit, quantite)
Fournisseur (codeFournisseur, nom, prenom, ville, telephone)
FournisseurProduits (codeFournisseur, codeProduit, prixUnitaire) 29
Le modèle relationnel
Un modèle de données définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
─ Des contraintes qui permettent de spécifier les règles de gestion des
données. Agence
idAg nom ville
Voiture
1 Thiès Ouest Thiès
imm marque annee idAg
2 Yoff Dakar
1 Toyota 2012 1
3 Dakar Plateau Dakar
2 Dacia 2013 1

3 Toyota 2014 1

4 KIA 2010 2

5 Renault 2009 2
CLE ETRANGERE
6 Peugeot 2015 3
Obligation de référencer une valeur existante*
 contrainte référentielle
Le modèle relationnel
Un modèle de données définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
─ Des contraintes qui permettent de spécifier les règles de gestion des
données. Agence
idAg nom ville
Voiture
1 Thiès Ouest Thiès
imm marque annee idAg
2 Yoff Dakar
1 Toyota 2012 1
3 Dakar Plateau Dakar
2 Dacia 2013 1

3 Toyota 2014 1

4 KIA 2010 2

5 Renault 2009 2
CLE ETRANGERE
6 Peugeot 2015 3
Présence de la clé primaire d’une relation dans
une autre.
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
─ Des contraintes qui permettent de spécifier les règles de gestion des
données.

CLE ETRANGERE
Client (codeClient, nom, prenom, ville)
Produit (codeProduit, designation, prixUnitaire, tauxTVA, stock)
Commande (numCommande, date, prix, codeClient)
CommandeProduits (#numCommande, #codeProduit, quantite)
Fournisseur (codeFournisseur, nom, prenom, ville, telephone)
FournisseurProduits (#codeFournisseur, #codeProduit, prixUnitaire)
32
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
─ Des contraintes qui permettent de spécifier les règles de gestion des
données.

Contrainte d’unicité
Unicité de la valeur dans les colonnes spécifiées
CLE PRIMAIRE
Contrainte d’existence
Obligation de valeur dans les colonnes spécifiées

Contrainte de domaine
La valeur doit être du type spécifié au niveau de l’attribut concerné
33
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
─ Des contraintes qui permettent de spécifier les règles de gestion des
données.
─ Des opérations pour manipuler les données, en interrogation et en
mise à jour.

• Créer, modifier et supprimer des relations


• Ajouter, modifier et supprimer des enregistrements
• Rechercher de l’information à travers des requêtes
d’interrogation
34
Une instance de la base de données de cette société
Voiture
imm marque annee idAg Agence
1 Toyota 2012 1 idAg nom ville

2 Dacia 2013 1 1 Thiès Ouest Thiès

3 Toyota 2014 1 2 Yoff Dakar

4 KIA 2010 2 3 Dakar Plateau Dakar

5 Renault 2009 2

6 Peugeot 2015 3

Location Client
idLoc imm idCli ddebut dfin montant idCli nom

1 1 1 22/11/2014 21/01/2015 1.500.000 1 Gueye

2 3 2 02/01/2015 17/01/2015 876.000 2 Dia

3 6 3 12/01/2015 18/02/2015 514.500 3 Sagna


Une instance de base de données

Un schéma relationnel est constitué d’un ensemble de schémas de relations qui décrivent
chacun le contenu d’une relation.
Client (idCli, nom, prenom, sexe, tel, ville)
Agence (idAg, nom, ville)
Voiture (imm, marque, annee, #idAg)
Location (idLoc, #imm, #idCli, ddebut, dfin, montant)
Organisation logique des données

DÉPENDANCES
FONCTIONNELLES
37
Les dépendances fonctionnelles
Relation
Est une partie du produit cartésien d’une liste de domaines (c-à-d., des
ensembles de valeurs)

A1 An A1*A2 * … *An
A2
a11 a21 an1 (a11, a21, …an1)
a12 an2 (a12, a21, …an1)
a22 (a13, a21, …an1)
a13 an3
… …
… …
⇒ …
(a11, a22, …an1)
a1k a2l anm (a12, a22, …an1)

(a1k, a2l, …anm)

38
Les dépendances fonctionnelles
Relation
Est une partie du produit cartésien d’une liste de domaines (c-à-d., des
ensembles de valeurs)
Relation
Voiture  est représentée sous forme de tableau
imm marque annee idAg  a un nom (Ex.: Voiture)
1 Toyota 2012 1  est composée d’un ensemble de colonnes
2 Dacia 2013 1 désignées par un nom d’attribut (Ex.: imm)
3 Toyota 2014 1
 chaque colonne/attribut contient des
4 KIA 2010 2 valeurs d’un domaine défini (int, float, text,
5 Renault 2009 2 date…)
6 Peugeot 2015 3
 chaque ligne correspond à une entité
(ici, des voitures).
39
Les dépendances fonctionnelles
Relation
Est une partie du produit cartésien d’une liste de domaines (c-à-d., des
ensembles de valeurs)

A1 40
Les dépendances fonctionnelles
Relation
Est une partie du produit cartésien d’une liste de domaines (c-à-d., des
ensembles de valeurs)

A1
a11
a12
a13

a1k

card(A1) = K = 6
A1 41
Les dépendances fonctionnelles
Relation
Est une partie du produit cartésien d’une liste de domaines (c-à-d., des
ensembles de valeurs)

A2
a21
a22

a2l

A2 card(A2) = L = 5 42
Les dépendances fonctionnelles
Relation
Est une partie du produit cartésien d’une liste de domaines (c-à-d., des
ensembles de valeurs)

A2
a21
a22

a2l

A2 card(A2) = L = 5 43
Les dépendances fonctionnelles
Relation
Est une partie du produit cartésien d’une liste de domaines (c-à-d., des
ensembles de valeurs)

An card(An) = M = ?? 44
Les dépendances fonctionnelles
Relation
Est une partie du produit cartésien d’une liste de domaines (c-à-d., des
ensembles de valeurs)

A1 An A1*A2 * … *An
A2
a11 a21 an1 (a11, a21, …an1)
a12 an2 (a12, a21, …an1)
a22 (a13, a21, …an1)
a13 an3
… …
… …
⇒ …
(a11, a22, …an1)
a1k a2l anm (a12, a22, …an1)

(a1k, a2l, …anm)

45
Les dépendances fonctionnelles
Relation
Est une partie du produit cartésien d’une liste de domaines (c-à-d., des
ensembles de valeurs)
 Soit 𝑅 un ensemble d’attributs, un tuple 𝑡 sur 𝑅
est une application
𝑇: 𝑅 → ∪ 𝐷𝑜𝑚 𝐴 𝑎𝑣𝑒𝑐 𝑡 𝐴 ∈ 𝐷𝑜𝑚(𝐴)
 Une relation 𝑟 sur 𝑅 est un ensemble de tuple.
𝑅 est dit schéma de la relation 𝑟.
𝑅 𝐴1 , 𝐴2 , 𝐴3 , … 𝐴𝑛
𝑅 ∶ 𝑁𝑜𝑚 𝑑𝑒 𝑙𝑎 𝑟𝑒𝑙𝑎𝑡𝑖𝑜𝑛
𝐴1 , 𝐴2 , 𝐴3 , … 𝐴𝑛 ∶ 𝑁𝑜𝑚𝑠 𝑑𝑒𝑠 𝑎𝑡𝑡𝑟𝑖𝑏𝑢𝑡𝑠

46
Les dépendances fonctionnelles
Pourquoi ?
 Pas de perte d’informations
 Pas de création d’informations incohérentes
 Pas de redondance d’information inutile

Comment ?
 Décomposition des relations suivant des règles de dépendance

47
Les dépendances fonctionnelles
 Définition 4: Soit 𝑋 ⊆ 𝑅 un ensemble d’attribut, 𝐴 ∈ 𝑅.
Soit 𝑟 son extension. 𝐴 est en dépendance fonctionnelle
avec 𝑋 ou 𝑋 détermine 𝐴 ssi :
∀ 𝑡𝑖 , 𝑡𝑗 ∈ 𝑟 2 , 𝑡𝑖 𝑋 = 𝑡𝑗 𝑋 ⇒ 𝑡𝑖 𝐴 = 𝑡𝑗 𝐴

 On note 𝑟 ⊧ 𝑋 → 𝐴
 La connaissance d’une valeur de 𝑋 dans 𝑅 ⇒ la connaissance d’au
plus une seule valeur de 𝐴.
noEtudiant → nom
 Exemples: noEtudiant → prenom
matiere → responsable
matiere, noEtudiant → noteCC
codeProduit → prixUnitaire
immatriculation → modeleVoiture
48
prenom, nom → noEtudiant
Les dépendances fonctionnelles
 On a une dépendance fonctionnelle (DF) si et seulement
- si deux tuples 𝑡𝑖 et 𝑡𝑗 de la relation 𝑟 ont les mêmes
valeurs sur 𝑋,
- alors 𝑡𝑖 et 𝑡𝑗 ont les mêmes valeurs sur l’attribut 𝐴.

 𝑋 appelé la source et 𝐴 la cible.

∀ 𝑡𝑖 , 𝑡𝑗 ∈ 𝑟 2 , 𝑡𝑖 𝑋 = 𝑡𝑗 𝑋 ⇒ 𝑡𝑖 𝐴 = 𝑡𝑗 𝐴

49
Les dépendances fonctionnelles
 On a une dépendance fonctionnelle (DF) si et seulement
- si deux tuples 𝑡𝑖 et 𝑡𝑗 de la relation 𝑟 ont les mêmes
valeurs sur 𝑋,
- alors 𝑡𝑖 et 𝑡𝑗 ont les mêmes valeurs sur l’attribut 𝐴.

 𝑋 appelé la source et 𝐴 la cible.

 On note 𝑑𝑒𝑝 𝑟 l’ensemble des DF de 𝑟.


𝑑𝑒𝑝 𝑟 = 𝑋 → 𝐴 𝑋 ∪ 𝐴 ⊆ 𝑅, 𝑟 ⊧ 𝑋 → 𝐴

50
Les dépendances fonctionnelles
 On a une dépendance fonctionnelle (DF) si et seulement
- si deux tuples 𝑡𝑖 et 𝑡𝑗 de la relation 𝑟 ont les mêmes
valeurs sur 𝑋,
- alors 𝑡𝑖 et 𝑡𝑗 ont les mêmes valeurs sur l’attribut 𝐴.

 𝑋 appelé la source et 𝐴 la cible.

A B C D E A→B
A→C
a1 b1 c1 d3 e2
BC → D
a1
a2
b1
b2
c3
c4
d4
d2
e3
e1
AC → D
B→D
??
a3 b1 c1 d3 e2 D→E
a2 b2 c4 d2 e1 AC → E 51
Les dépendances fonctionnelles
 On a une dépendance fonctionnelle (DF) si et seulement
- si deux tuples 𝑡𝑖 et 𝑡𝑗 de la relation 𝑟 ont les mêmes
valeurs sur 𝑋,
- alors 𝑡𝑖 et 𝑡𝑗 ont les mêmes valeurs sur l’attribut 𝐴.

 𝑋 appelé la source et 𝐴 la cible.

A B C D E A→B oui
A→C non
a1 b1 c1 d3 e2
BC → D oui
a1 b1 c3 d4 e3 AC → D oui
a2 b2 c4 d2 e1 B→D non
a3 b1 c1 d3 e2 D→E oui
a2 b2 c4 d2 e1 AC → E oui 52
Dépendance fonctionnelle élémentaire
 Définition 5: Dépendance fonctionnelle élémentaire (DFE)
Une DF 𝑋 → 𝐴 est dite élémentaire ou minimale si 𝐴 ne
dépend d’aucun sous ensemble propre de 𝑋, autrement dit:
𝑋 → 𝐴 𝑒𝑠𝑡 é𝑙é𝑚𝑒𝑛𝑡𝑎𝑖𝑟𝑒 ⇔ ∀ 𝑌 ⊂ 𝑋, 𝑒 𝑌 → 𝐴 ∉ 𝑑𝑒𝑝 𝑟

o Exemple: 𝑋 = 𝐴, 𝐵, 𝐶 𝑒𝑡 𝑋 → 𝑍 ⇒ 𝐴, 𝐵 ↛ 𝑍

53
Notion de clé
 Définition 6: Notion de clé
Une clé 𝐾 d’une relation 𝑅 est un attribut ou un groupe
d’attributs tel qu’il existe une dépendance fonctionnelle
élémentaire entre 𝐾 et tout autre attribut de 𝑅.

𝑅 𝑋, 𝑌, 𝑍, 𝑉, 𝑈, 𝑇

54
Notion de clé
 Définition 6: Notion de clé
Une clé 𝐾 d’une relation 𝑅 est un attribut ou un groupe
d’attributs tel qu’il existe une dépendance fonctionnelle
élémentaire entre 𝐾 et tout autre attribut de 𝑅.

𝐾
𝑅 𝑋, 𝑌, 𝑍, 𝑉, 𝑈, 𝑇

55
Propriétés des DF (Axiomes d’Armstrong)
 Réflexivité
𝑌⊆𝑋 ⇒ 𝑋→𝑌
 Augmentation
𝑋 → 𝑌 ⇒ 𝑋, 𝑍 → 𝑌
 Transitivité
𝑋 → 𝑌 𝑒𝑡 𝑌 → 𝑍 ⇒ 𝑋 → 𝑍
 Union
𝑋 → 𝑌 𝑒𝑡 𝑋 → 𝑍 ⇒ 𝑋 → 𝑌, 𝑍
 Pseudo transitivité
𝑋 → 𝑌 𝑒𝑡 𝐴, 𝑌 → 𝑍 ⇒ 𝐴, 𝑋 → 𝑍
 Décomposition
𝑋 → 𝑌 𝑒𝑡 𝑍 ⊆ 𝑌 ⇒ 𝑋 → 𝑍

56
Fermeture transitive

 Définition 7: Fermeture transitive d’un ensemble de DF


+
La fermeture transitive 𝑑𝑒𝑝 𝑟 d’un ensemble de DFE
𝑑𝑒𝑝 𝑟 est constituée de ses propres dépendances et celles
obtenues en appliquant les axiomes d’Armstrong.
+
• 𝑑𝑒𝑝 𝑟 = 𝑑𝑒𝑝 𝑟 ∪ 𝐷𝐹𝐸 𝑜𝑏𝑡𝑒𝑛𝑢𝑒𝑠 𝑎𝑣𝑒𝑐 𝑙𝑒𝑠 𝑎𝑥𝑖𝑜𝑚𝑒𝑠
+
• ∀𝑓 ∈ 𝑑𝑒𝑝 𝑟 , 𝑑𝑒𝑝 𝑟 ⊧ 𝑓

57
Fermeture transitive

 Définition 7: Fermeture transitive d’un ensemble de DF


+
La fermeture transitive 𝑑𝑒𝑝 𝑟 d’un ensemble de DFE
𝑑𝑒𝑝 𝑟 est constituée de ses propres dépendances et celles
obtenues en appliquant les axiomes d’Armstrong.
+
• 𝑑𝑒𝑝 𝑟 = 𝑑𝑒𝑝 𝑟 ∪ 𝐷𝐹𝐸 𝑜𝑏𝑡𝑒𝑛𝑢𝑒𝑠 𝑎𝑣𝑒𝑐 𝑙𝑒𝑠 𝑎𝑥𝑖𝑜𝑚𝑒𝑠
+
• ∀𝑓 ∈ 𝑑𝑒𝑝 𝑟 , 𝑑𝑒𝑝 𝑟 ⊧ 𝑓

o Exemple: 𝑑𝑒𝑝 𝑟 = 𝐴 → 𝐵, 𝐵 → 𝐶, 𝐵 → 𝐷, 𝐴 → 𝐸
+
𝑑𝑒𝑝 𝑟 = 𝑑𝑒𝑝 𝑟 ∪ 𝐴 → 𝐶, 𝐴 → 𝐷
58
Fermeture transitive

 Définition 7: Fermeture transitive d’un ensemble de DF


+
La fermeture transitive 𝑑𝑒𝑝 𝑟 d’un ensemble de DFE
𝑑𝑒𝑝 𝑟 est constituée de ses propres dépendances et celles
obtenues en appliquant les axiomes d’Armstrong.
+
• 𝑑𝑒𝑝 𝑟 = 𝑑𝑒𝑝 𝑟 ∪ 𝐷𝐹𝐸 𝑜𝑏𝑡𝑒𝑛𝑢𝑒𝑠 𝑎𝑣𝑒𝑐 𝑙𝑒𝑠 𝑎𝑥𝑖𝑜𝑚𝑒𝑠
+
• ∀𝑓 ∈ 𝑑𝑒𝑝 𝑟 , 𝑑𝑒𝑝 𝑟 ⊧ 𝑓

! La fermeture transitive peut être lourde à calculer


59
Exercice 1
En considérant les dépendances fonctionnelles suivantes,
démontrer que 𝐴𝐵 → 𝐵𝐸
• 𝐴→𝐵
• 𝐵𝐶 → 𝐷
• 𝐴𝐶 → 𝐷
• 𝐷→𝐸
• 𝐴𝐶 → 𝐸

60
Couverture minimale
 Définition 8: Couverture minimale
La couverture minimale 𝑚𝑖𝑛(𝐹) d’un ensemble de DF 𝐹 est
un ensemble 𝐺 tel que 𝐹 + = 𝐺 + et qui respecte les trois (03)
propriétés suivantes:
1. Les cibles des DF de G n’ont qu’un seul élément
𝑋𝑌𝑍 → 𝐴

2. Aucune source de DF ne contient d’élément redondant


∀ 𝑋 → 𝐴 ∈ 𝐺 𝑒𝑡 𝑌 ⊂ 𝑋 ⇒ 𝐺 − 𝑋 → 𝐴 ∪ 𝑌 → 𝐴 + ≠ 𝐺+

3. Il n’y a pas de DF superflue


∀𝑋 →𝐴 ∈𝐺 ⇒ 𝐺− 𝑋 →𝐴 + ≠ 𝐺+ 61
Organisation logique des données

FORMES NORMALES
Les formes normales permettent d’obtenir une décomposition d’une
relation en déterminant sa « qualité » (par rapport à la redondance)
avec l’utilisation des dépendances fonctionnelles.
62
Les formes normales
 Définition 9: 1ère Forme normale (1NF)
Une relation est en première forme normale si :
• Tout attribut est atomique. Il n’est pas décomposable
• Tout attribut non clé est en dépendance fonctionnelle
avec la clé

𝑅 𝑋, 𝑌, 𝑍, 𝑉, 𝑈, 𝑇

63
Les formes normales
 Définition 10: 2ème Forme normale (2NF)
Une relation est en deuxième forme normale si :
• Elle est en 1NF
• Tout attribut non clé primaire est en dépendance
fonctionnelle élémentaire avec la clé primaire.

NON 2NF

𝑅 𝑋, 𝑌, 𝑍, 𝑉, 𝑈, 𝑇

Tout attribut non clé dépend entièrement de la clé 64


Les formes normales
 Définition 10: 3ème Forme normale (2NF)
Une relation est en troisième forme normale si :
• Elle est en 2NF
• Il n’existe aucune dépendance entre deux attributs non clé

NON 3NF 3NF


Z est une clé
candidate
𝑅 𝑋, 𝑌, 𝑍, 𝑉, 𝑈, 𝑇 𝑅 𝑋, 𝑌, 𝑍, 𝑉, 𝑈, 𝑇

Tout les attributs non clé sont en dépendance fonctionnelle élémentaire 65


directe avec la clé. Il n’existe pas de dépendance transitive
Les formes normales
 Définition 10: Forme normale de Boyce-Codd (BCNF)
• Une relation est en BCNF si les seules dépendances
fonctionnelles élémentaires sont du type:
clé candidate  attribut

NON BCNF

𝑅 𝑋, 𝑌, 𝑍, 𝑉, 𝑈, 𝑇

Elle généralise la 3NF aux relations à plusieurs identifiants. Elle permet


d’éliminer les dépendances fonctionnelles de parties de clés entre elles. Pour 66
obtenir la BCNF il peut y avoir perte lors de la décomposition.
ALGORITHMES DE CONSTRUCTION DU SCHEMA
Algorithme de décomposition :
-Soit F un ensemble de dépendances fonctionnelles définies sur
l'ensemble U des attributs.
-Déterminer ELE(F+).
-Rechercher la couverture minimale de F , MIN(F).

-Construire la relation universelle, relation composée de tous les


attributs et de toutes les dépendances entre attributs.
R ( U, ELE(F+))
-Déterminer la clé primaire de la relation R, à partir de MIN(F).
-Décomposer la relation R en deux nouvelles relations :

La relation R (A, B, C | B—>C) n'étant pas en 3 BCNF,


à cause de B—> C, elle sera décomposée en :

R1 (A, B) et R2 (B, C)

-Appliquer le processus de décomposition sur les relations


obtenues jusqu'à l'obtention de relations en 3BCNF. La décomposition
peut être représentée sous forme d'arbre, les feuilles de l’arbre
constituent les relations de la base.
A,B C, E
A F
F D, G, H
D I, J, K

R (A, B, C, D, E, F, G, H, I, J, K)

R1 (A, B, C, E) R2 (A, D, F, G, H, I, J, K)

R21 (A, F) R22 (F, D, G, H, I, J, K)

R221 (F, D, G, H) R222 (D, I, J, K)


Algorithme de synthèse :

Soit F un ensemble de dépendances :


-Déterminer ELE(F+).
-Eliminer les dépendances redondantes. Trouver une
couverture minimale.

-Partitionner l’ensemble obtenu en groupes tels que toutes


les dépendances d’un même groupe aient la même partie
gauche.

-Reconnaître les clés équivalentes, regrouper les ensembles


ayant des clés équivalentes. Les clés équivalentes sont des
attributs qui déterminent le même ensemble d’attributs.
A  X,B
B  X,A
A et B sont des clés équivalentes.

-Pour chaque ensemble de dépendances fonctionnelles


obtenu, construire une relation contenant l’ensemble des
attributs.

La clé primaire de la relation est constituée par la partie


Exercice 2
Pour chaque relation ci-dessous:
- identifier les redondances éventuelles dans sa population,
- établir le (un) graphe minimum de ses dépendances,
- définir son (ses) identifiant(s),
- définir sa forme normale et la justifier,
- si nécessaire, proposer une décomposition optimale.

Pièce (N°pièce, prix-unit, TVA, libellé, catégorie) décrit des pièces


employées dans un atelier de montage avec les dépendances
fonctionnelles suivantes:
 N°pièce → prix-unit, TVA, libellé, catégorie
 catégorie → TVA

70
Exercice 3
Pour chaque relation ci-dessous:
- identifier les redondances éventuelles dans sa population,
- établir le (un) graphe minimum de ses dépendances,
- définir son (ses) identifiant(s),
- définir sa forme normale et la justifier,
- si nécessaire, proposer une décomposition optimale.

Prime (N°type-machine, nom-machine, N°techn, montant-prime, nom-


techn) liste les primes attribuées au personnel technique en fonction du
type de machine sur lequel il travaille. Les dépendances fonctionnelles
sont les suivantes:
 N°type-machine → nom-machine
 N°techn → nom-techn
 (N°type-machine, N°techn) → montant-prime 71
Exercice 4
Pour chaque relation ci-dessous:
- identifier les redondances éventuelles dans sa population,
- établir le (un) graphe minimum de ses dépendances,
- définir son (ses) identifiant(s),
- définir sa forme normale et la justifier,
- si nécessaire, proposer une décomposition optimale.

Employé (NoEmp, NoLab, NoProj, NomEmp, NomProj, adresse) décrit


un employé travaillant sur un projet d'un laboratoire. Les dépendances
fonctionnelles sont les suivantes:
 (N°Emp, NoLab) → NoProj
 N°Emp → NomEmp
 N°Emp → adresse
72
 N°Proj → NomProj

Vous aimerez peut-être aussi