Vous êtes sur la page 1sur 55

Introduction aux Base de Données

Safa BETTOUMI ZOGHLAMI

September 11, 2023

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 1 / 55
1 Dépendances fonctionnelles

2 Normalisation

3 Algèbre relationnelle

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 2 / 55
Dépendances fonctionnelles

Dépendances fonctionnelles

• Dans la phase de conception sur le modèle entités-associations et


dans le modèle relationnel pour éviter:
• La redondance de données
• La perte de données
• Les incohérences
• L’effondrement de performance des traitements.
• Dépendance fonctionnelle !

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 3 / 55
Dépendances fonctionnelles

Définition des Dépendances fonctionnelles


• Les dépendances fonctionnelles expriment la relation qui existent
entre les propriétés. On dit qu’une propriété B d’une entité E2
dépend fonctionnellement d’une propriété (ou groupe de propriétés) A
d’une autre entité E1, si pour chaque valeur A détermine une et une
seule valeur de B.
• On note conventionnellement:

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 4 / 55
Dépendances fonctionnelles

Définition des Dépendances fonctionnelles

• Exemple:
Soit les deux propriétés suivantes:
• N◦ d’immatricualtion
• La marque du véhicule
Est ce qu’il y a une dépendance fonctionnelle entre les deux propriétés?

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 5 / 55
Dépendances fonctionnelles

Dépendance Fonctionnelle élémentaire

• Dépendance Fonctionnelle élémentaire:


• Est une dépendance de la forme X → A où A est un attribut unique
n’appartenant pas à X et où il n’existe pas X’ inclus au sens strict dans
X (i.e X’ ⊂ X) tel que X’ → A.
• Autrement dit: Une dépendance fonctionnelle est élémentaire lorsque la
cible A ne peut être déterminée par une partie seulement de la source
X.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 6 / 55
Dépendances fonctionnelles

Dépendance Fonctionnelle élémentaire

• Exemples:
• RefProduit → LibProduit
est élémentaire( deux rubriques)
• (NumFacture, RefProduit) → QtéFacturée
est élémentaire (ni la réfrence produit seule, ni le numéro de facture
seul permettent de déterminer la quantité)
• (NumFacture, RefProduit) → LibProduit
n’est pas élémentaire puisque la référence du produit suffit pour
déterminer le libellé

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 7 / 55
Dépendances fonctionnelles

Dépendances Fonctionnelles (DF)


• Règle 1: les attributs d’une entité doivent dépendre
fonctionnellement de son identifiant.

• Règle 2: pour association un à plusieurs, l’identifiant de l’entité du


coté cardinalité maximale égale à 1 doit déterminer fonctionnellement
l’identifiant de l’autre entité.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 8 / 55
Dépendances fonctionnelles

Dépendances Fonctionnelles (DF)


• Règle 3: pour une association un à un, l’identifiant de l’une des deux
entités doit dépendre fonctionnellement de l’identifiant de l’autre
entité.
• Règle 4: pour une association plusieurs à plusieurs, les attributs
d’une association porteuse doivent dépendre fonctionnellement des
deux identifiants des deux entités liées par cette association (valable
aussi pour une association n-aire).

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 9 / 55
Dépendances fonctionnelles

Dépendances fonctionnelles

• Exemple:

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 10 / 55
Dépendances fonctionnelles

Dépendances fonctionnelles

Les dépendances fonctionnelles permettent de:


• Raffiner les schémas de base.
• Déterminer la clé primaire d’une table R.
• Fixer certains DF qui devront être satisfaites par le contenu de la
table.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 11 / 55
Dépendances fonctionnelles

Dépendances fonctionnelles

Déf: Soit F un ensemble de dépendances fonctionnelles et f une dép.


font. On dit que F implique f ( f est impliquée par F) ssi toute
relation r satisfaisant toutes dép.fonc. éléments de F satisfait aussi f.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 12 / 55
Dépendances fonctionnelles

Dépendances fonctionnelles

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 13 / 55
Dépendances fonctionnelles

Dépendances fonctionnelles

• Dans l’exemple, on a vérifié des implications en utilisant la définition


d’implication déjà donnée.
• Existe-t-il une autre façon de faire?
=⇒ Le système axiomatique dit d’Armstrong est correct et
complet par rapport à la notion d’implication définie.
Thèorème: F implique f ssi il existe une déduction de f à partir de F
dans le système d’Armstrong.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 14 / 55
Dépendances fonctionnelles

Les axiomes d’Armstrong

• Réflexivité
Tout groupe d’attributs se détermine lui même et détermine chacun
des ses attributs (ou sous groupe des ses attributs):
XY → XY et XY→ X et XY →Y
• Augmentation
Si un attribut X détermine un attribut Y, alors tout groupe composé
de X enrichi avec d’autres attributs détermine un groupe composé:
X→ Y alors XZ → YZ
• Transivité
Si un attribut X détermine un attribut Y et que cet attribut Y
détermine un autre attribut Z:
X → Y et Y→ Z alors X→Z

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 15 / 55
Dépendances fonctionnelles

Les axiomes d’Armstrong

• Propriétés déduites
• Union
X→ Y et X→ Z alors X → YZ
• Pseudo-transivité
X→ Y et YW→ Z alors XW→ Z
• Décomposition
X→ Y et Z ⊂ Y alors X→ Z

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 16 / 55
Dépendances fonctionnelles

Les axiomes d’Armstrong

• Le système des axiomes d’Armstrong est complet mais ne fournit


aucun algorithme pour tester si F implique f de façon mécanique!
• Comment calculer de façon mécanique si f est impliquée par un
ensemble de dépendances fonctionnelles F?
• Donc, pour savoir si F implique X→Y, il suffit de savoir calculer la
fermeture de X par rapport à F, notée XF+
• Thèorème F implique X → Y ssi Y ⊆ XF+

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 17 / 55
Dépendances fonctionnelles

Fermeture d’un ensemble d’attributs

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 18 / 55
Dépendances fonctionnelles

Fermeture d’un ensemble d’attributs

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 19 / 55
Normalisation

Normalisation: Pourquoi?

• Exemple: on veut décrire les produits et leurs fournisseurs


• Deux solutions:
• Solution 1:
Produit (NP,NomP, Couleur, Poids)
Fournisseur (NF, NomF, Adr, Tél)
Livraison(NL, #NP, #NF, Date, QTé)
• Solution 2:
Produit (NP,NomP, Couleur, Poids)
Fournisseur (NF, NomF, Adr)
Livraison(NL, #NP, #NF, Date, QTé, TélF)

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 20 / 55
Normalisation

Normalisation: Pourquoi?

• Cas de la solution 2:
Produit (NP,NomP, Couleur, Poids)
Fournisseur (NF, NomF, Adr)
Livraison(NL, #NP, #NF, Date, QTé, TélF)
• Problèmes rencontrés:
• S’il n’y a plus de livraison pour un fournisseur son numéro de téléphone
est perdu →anomalie de suppression.
• S’il existe N livraisons pour un fournisseur, le numéro TélF est répété N
fois, il faut vérifier que c’est le même→ redondance et risque.
• Pour insérer une nouvelle livraison, il faut enregistrer à nouveau ce
numéro TélF → anomalie d’insertion.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 21 / 55
Normalisation

Normalisation: Pourquoi?

• Ces problèmes n’existent pas avec le schéma 1 qui est meilleur que le
second schéma.
• Le processus de transformation d’une relation posant des problèmes
lors des mises à jour en relations n’ayant pas ces problèmes, est
appelé processus de normalisation.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 22 / 55
Normalisation

Définition de la normalisation

• La normalisation est un processus qui consiste de partir d’une table


universelle composée de la totalité des attributs , sur laquelle on
applique un algorithme de normalisation pour avoir plusieurs tables.
• Cet algorithme de normalisation est constitué des étapes qui vérifient
si les tables sont des états bien définies. Ces états s’appellent: Les
formes normales.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 23 / 55
Normalisation

Processus de normalisation

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 24 / 55
Normalisation

Les Formes Normales

• Codd ( Fondateur du modèle relationnel ) a proposé trois formes


normales: 1NF, 2FN, 3FN.
• D’autres formes ont été proposée: Boyce-codd, 4NF, 5NF.
• Il y en a d’autres...

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 25 / 55
Normalisation

1 ème Forme Normale (1FN)


• Définition:
Une relation est en 1FN si tout attribut contient une valeur atomique
(unique), simple, constante dans le temps (date de naissance au lieu
d’âge) et non répétitive.
• Exemple:

→ Une telle relation doit être décomposée en répétant les


noms pour chaque profession.
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 26 / 55
Normalisation

2 ème Forme Normale (2FN)

• Définition:
Une relation est en 2FN ssi:
• Elle est en 1ère forme normale.
• Tout attribut non clé ne dépend pas d’une partie clé.

• Schéma:

→ Une telle relation doit être décomposée en R1(K1,K2,X) et


R2(K2,Y).
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 27 / 55
Normalisation

2 ème Forme Normale (2FN)

• La deuxième forme normale permet d’assurer l’élimination de


certaines redondances en garantissant qu’aucun attribut n’est
déterminé seulement par une partie de la clé.
• Exemple 1:

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 28 / 55
Normalisation

2 ème Forme Normale (2FN)

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 29 / 55
Normalisation

2 ème Forme Normale (2FN)

• Exemple 2:
• Fournisseur (nom, article, adresse, prix)
• La clé est (nom, article)
• Mais nom → adresse : pas en 2NF
• Décomposition en 2NF
• Fournisseur (nom, article, prix)
• Ad-Fournisseur (nom, adresse)

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 30 / 55
Normalisation

3 ème Forme Normale (3FN)


• La troisième forme normale permet d’assurer l’élimination des
redondances dues aux dépendances transitives
• Une relation R est en troisième forme normale si et seulement si:
1. Elle est en deuxième forme.
2. Tout attribut n’appartenant pas à une clé ne dépend pas d’un
autre attribut non clé.
→ Les dépendances fonctionnelles entre deux attributs ordinaires (
ne faisant pas partie de la clé) ne sont pas autorisées.

→ Une telle relation doit être décomposée en R1(K,X,Y) et R2(X,Z)


Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 31 / 55
Normalisation

3 ème Forme Normale (3FN)

• Exemple
• Soit la relation: Profession(Profession, Salaire, Prime)
Profession→ Salaire
Profession→ Prime
Salaire→ Prime
• Cette relation n’est pas en 3FN 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)
• → Ce schéma est en 3NF, car Prime est maintenant déterminé par une
clé.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 32 / 55
Normalisation

Forme normale de Boyce-Codd (BCNF)


• Définition:
Une relation est en BCNF (Boyce-Codd Normal Form) ssi:
• Aucun attribut faisant partie de la clé ne dépend d’un attribut ne
faisant pas partie de la clé primaire.
• Les seules dépendances fonctionnelles sont de type clé détermine
attribut non clé.
• Plus simple que 3NF, un peu plus fort

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 33 / 55
Normalisation

Forme normale de Boyce-Codd (BCNF)

• Une relation est en BCNF si et seulement si les seules dépendances


fonctionnelles élémentaires sont celles dans lesquelles une clé entière
détermine un attribut.
• Une relation est en BCNF si et seulement si:
• Aucun attribut faisant partie de la clé ne dépend d’un attribut ne
faisant pas partie de la clé primaire.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 34 / 55
Normalisation

Forme normale de Boyce-Codd (BCNF)

• Exemple
• Soit la relation: Personne(N◦ SS,Pays, Nom, Région)
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é. Cette relation est en 3NF, mais pas en
BCNF (car en BCNF sont issues d’une clé)
• Pour avoir un schéma relationnel en BCNF, il faut décomposer
Personne:
• Personne(N◦ SS, Nom, #Région)
• Région(Région,Pays)

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 35 / 55
Algèbre relationnelle

Algèbre relationnel

• Ensemble d’opérateurs qui s’appliquent aux relations.


• Langage abstrait, avec des operations qui travaillent sur une (ou
plusieurs) relation(s) pour definir une nouvelle relation sans changer
la (ou les) relation(s) originale(s).
• Résultat : nouvelle relation qui peut à son tour être manipulé.
• L’algèbre relationnelle permet de faire des recherches dans les
relations.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 36 / 55
Algèbre relationnelle

Algèbre relationnel

• Les opérandes: relation du modèle relationnel


• Les opérateurs : peuvent être classifiés en:
• Opérateurs unaires qui sont les plus simples (projection,sélection) et
qui portent sur une seule table.
• Opérateurs binaires ensemblistes (union,intersection,différence) entre
deux ensembles (relations).
• Opérateurs binaires ou n-aires (produit cartésien,jointure,division) entre
deux ou plusieurs ensembles (tables).

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 37 / 55
Algèbre relationnelle

La sélection

La sélection σpredicat (R)


• Soit R(a1 ,a2 ,...,aN ) une relation.
• La sélection travaille sur R et définit une relation qui ne contient que
les tuples de R qui satisfont a la condition (ou prédicat) specifiée.
• La sélection : une sélection d’un sous ensemble qui vérifie une
condition.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 38 / 55
Algèbre relationnelle

La sélection
• Exemple:
Soit la table Inscrit:

• Les inscrits en BD : σCodeUV =0 BD 0 (Inscrit)


• Les majors (note > 15) en BD : σCodeUV =0 BD 0 et note>15 (Inscrit)

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 39 / 55
Algèbre relationnelle

La projection

La projection πa1 ...ak (R)


• La projection travaille sur R et définit une relation restreinte à un
sous-ensemble des attributs de R, en extrayant les valeurs des attributs
specifiés et en supprimant les doublons.
• La sélection de certaines colonnes d’une relation.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 40 / 55
Algèbre relationnelle

La projection
• Exemple:
Soit la table Etudiant:

• Les adresses de étudiants: πadresse (Etudiant)

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 41 / 55
Algèbre relationnelle

L’union
L’union: T ← R ∪ S
• L’union de deux relations R et S définit une relation qui contient tous
les tuples de R, de S ou a la fois de R et S, les tuples en double etant
éliminés.
• L’union s’applique sur des relations ayant la même structure.
• Intégrer toutes les lignes de la première relation puis les lignes de la
deuxième relation sans prendre en compte les doublons.
Exemple:

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 42 / 55
Algèbre relationnelle

La différence
La différence: T ← R - S
• La difference d’ensemble définit une relation qui comporte les tuples
qui existent dans la relation R et non dans la relation S.
• La différence s’applique sur deux relations ayant la même structure.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 43 / 55
Algèbre relationnelle

L’intersection
L’intersection: T ← R ∩ S
• L’intersection définit une relation constituée de l’ensemble de tous les
tuples présents à la fois dans R et dans S.
• L’intersection s’applique sur deux relations ayant la même structure.
• Nous comparons chaque ligne de la première relation avec les lignes de
la deuxième relation et dans le cas ou elle figure dans la deuxième
relation, la ligne est ajouté au résultat.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 44 / 55
Algèbre relationnelle

Le produit Cartésien

Le produit Cartesien: R × S
• Le produit cartésien définit une relation constituée de la concaténation
de tous les tuples de la relation R avec tous ceux de la relation S.
• Pour pouvoir faire le produit cartésien, il faut que les schémas des deux
relations soient disjoints.
• Shéma du résultat
• R(a1 , a2 , ..., an ,), S(b1 , b2 , ..., bp ,)
• T← R× S, T(a1 , a2 , ..., an , b1 , b2 , ..., bp )

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 45 / 55
Algèbre relationnelle

Le produit Cartésien
• Exemple:
• Pour chaque ligne de la première relation, nous les combinons avec
toutes les lignes de la deuxième relaton jusqu’à la fin de l’opération.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 46 / 55
Algèbre relationnelle

Opérateur de renommage

• L’opérateur de renommage est noté ρ


• Changer le nom d’un ou plusieurs attribut d’une relation R:
• Ecriture: ρAttribut1→Attribut2 (R)

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 47 / 55
Algèbre relationnelle

Opérations de jointure

• Jointure thêta (Θ-join): R o


np S :
La thêta-joiture définit une relation qui contient les tuples qui
satisfont le prédicat P du produit cartésien R et S. Le prédicat P est
de la forme R.ai ΘS.bj où Θ est l’un des opérateurs de
comparaison(>, 6, 6=, <, >, =).
• Jointure naturelle: R * S :
La jointure naturelle est une équijointure des relations R et S sur tous
les attributs communs en retirant les occurrences multiples d’attributs.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 48 / 55
Algèbre relationnelle

Thêta-jointure
• La thêta-jointure: consiste en un produit cartésien doublé d’une
sélection. On ne retient que les occurrences qui vérifient une
condition.

• Pour répondre à la question: Donnez le nom des employés qui gagnent


plus qu’un chef de service ⇒ On a besoin d’une thêta-joiture.
⇒ Consiste à faire:
• Un produit cartésien
• Ajouter une restriction pour choisir les lignes respectant la condition
salaire emp > salaire chef.
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 49 / 55
Algèbre relationnelle

Thêta-jointure

• Thêta-jointure
• Employé o
nsalaireemp >salairechef chef

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 50 / 55
Algèbre relationnelle

Jointure naturelle

• Jointure naturelle noté o


n:
• Equijointure dont la condition porte sur des attributs identiques (de
même domaine et même nom). ⇒Un seul des attributs est conservé
dans le résultat.
• Pour appliquer une jointure naturelle, il faut que les deux relations
opérandes aient au moins un attribut ayant le même nom en commun.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 51 / 55
Algèbre relationnelle

Jointure naturelle
• Exemple:

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 52 / 55
Algèbre relationnelle

Opération de division

• Division R ÷ S
• Supposons que la relation R soit définie sur l’ensemble d’attributs A et
que la relation S soit définie sur l’ensemble d’attributs B, de telle sorte
que B ⊆ A. Soit C = A - B.
• La division définit une relation sur les attributs C, constituéé de
l’ensemble des tuples de R qui correspondent à la combinaison de tous
les tuples de S.
• Pour faire la division, il faut que les attributs de S soit strictement
inclus dans R.
• Le schéma du résultat est formé des attributs de la première relation
qui ne figurent pas dans la deuxième relation.

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 53 / 55
Algèbre relationnelle

Exemple de division

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 54 / 55
Algèbre relationnelle

Exercice

Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 55 / 55

Vous aimerez peut-être aussi