Académique Documents
Professionnel Documents
Culture Documents
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
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 3 / 55
Dépendances fonctionnelles
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 4 / 55
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
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 6 / 55
Dépendances fonctionnelles
• 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
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 8 / 55
Dépendances fonctionnelles
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
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 11 / 55
Dépendances fonctionnelles
Dépendances fonctionnelles
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
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 14 / 55
Dépendances fonctionnelles
• 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
• 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
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 17 / 55
Dépendances fonctionnelles
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 18 / 55
Dépendances fonctionnelles
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 19 / 55
Normalisation
Normalisation: Pourquoi?
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
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
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 25 / 55
Normalisation
• 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:
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 28 / 55
Normalisation
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 29 / 55
Normalisation
• 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
• 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
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 33 / 55
Normalisation
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 34 / 55
Normalisation
• 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
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 36 / 55
Algèbre relationnelle
Algèbre relationnel
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 37 / 55
Algèbre relationnelle
La sélection
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:
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 39 / 55
Algèbre relationnelle
La projection
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 40 / 55
Algèbre relationnelle
La projection
• Exemple:
Soit la table 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
Safa BETTOUMI ZOGHLAMI Introduction aux Base de Données September 11, 2023 47 / 55
Algèbre relationnelle
Opérations de jointure
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.
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
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