0% ont trouvé ce document utile (0 vote)
162 vues178 pages

Introduction aux Bases de Données Relationnelles

Transféré par

abdellahfaiq1762021
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
162 vues178 pages

Introduction aux Bases de Données Relationnelles

Transféré par

abdellahfaiq1762021
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

BASES DE DONNÉES

Pr.HAJJI TARIK
Académie Royale Militaire de Meknès
Génie Informatique, 3eme année
2021-2022
INTRODUCTION

26/09/2023 bd 2
QU’EST CE QU’UNE BD ?

• Collection de données
stockées pour une
longue durée (souvent
des années …)
• Techniquement :
Collection de données «
structurée » gérée par
un SGBD
– Système de Gestion de
Bases de Données
26/09/2023 bd 3
SGBD

26/09/2023 bd 4
SGBD
✔Masse de données
✔Persistance
✔Sécurité
✔Multi-utilisateurs
✔Simplicité
✔Efficacité
✔Fiabilité
26/09/2023 bd 5
SGBD

26/09/2023 bd 6
PLAN DE COURS

• Bases de données relationnelles:


–Le modèle relationnel de données
–Le langage SQL
• Conception d’une base de données:
–Le modèle MCD
–Le modèle MLD

26/09/2023 bd 7
BASES DES DONNÉES

MODÈLE RELATIONNEL DE DONNÉES


MODÈLE DE DONNÉES ?
• Un modèle de données (Data Model) est une
notation pour décrire des données ou des
informations.
• La description se compose généralement de
trois parties:
– 1. Structure des données
– 2. Opérations sur les données
– 3. Contraintes sur les données

26/09/2023 bd 9
MODÈLE DE DONNÉES ?
• Deux modèles majeurs pour les systèmes de bases
de données actuels :
o Le modèle relationnel, y compris les extensions objet-
relationnel
• Simple et efficace !
• Présent dans tous les systèmes de gestion de bases de données
(SGBD).
• Objet de ce cours.
o Le modèle de données semi-structurées, y compris XML
et les normes associées
• Plus de flexibilité

26/09/2023 bd 10
MODÈLE DE DONNÉES ?

26/09/2023 bd 11
MODÈLE RELATIONNEL
• Modèle défini en 1970 par Codd:
– o « A Relational Model of Data for Large Shared Data
Banks »
• Un modèle simple et efficace.
• La majorité des SGBD se basent sur le modèle
relationnel.
• Les premiers SGBD bâtis sur ce modèle :
o SQL/DS (1981) et DB2 (1983) de IBM.
o Implémentent le langage SQL (SEQUEL) : langage de
manipulation de BD relationnelles (1974).

26/09/2023 bd 12
MODÈLE RELATIONNEL
• Repose sur de solides bases théoriques : algèbre
relationnel
• Le succès du modèle relationnel est due à :
– La simplicité de la structure des données:
• Une approche simple et limitée de la structuration des données
Une BD relationnelle est composée de tables (relations)
– La simplicité des opérateurs:
• Un nombre limité d'opérations sur les données
• Toute opération relationnelle sur une table génère une nouvelle
table

26/09/2023 bd 13
BASES DES DONNÉES

Base de données relationnelle


Base de données relationnelle
• Une base de données est un ensemble
de relations (ou tables)

Etudiant Ecole

26/09/2023 bd 15
Base de données relationnelle
• Une base de données est un ensemble de relations
(tables)
• Chaque relation a un ensemble d’attributs (ou colonnes)

code nom note photo nom ville eff

Etudiant Ecole

26/09/2023 bd 16
Base de données relationnelle
• Une base de données est un ensemble de relations (ou tables)
• Chaque relation a un ensemble d’attributs (ou colonnes)
• Chaque tuple (ou ligne) a une seule valeur pour chaque attributs
• Chaque attribut a un type ou domaine (integer, string, date …)
code nom note photo nom ville effectif
FC404 Amine 13 ENSAM Meknès 400
KL239 Fatima 14 ARM Meknès 500
PX354 Samir 15 EST Fès 600
… … … … … … …

Etudiant Ecole
26/09/2023 bd 17
VALEUR NULL
• La valeur NULL

– Une valeur spéciale pour « inconnu » ou « indéfini »

code nom note photo nom ville effectif


FC404 Amine 13 NULL ENSAM Meknès 400
KL239 Fatima 14 NULL ARM Meknès NULL
PX354 Samir 15 NULL EST Fès 600
… … … … … … …

Etudiant Ecole
26/09/2023 bd 18
CLÉ PRIMAIRE
• Clé d’une relation (Key)
– Un attribut (ou combinaison d’attributs) à valeur unique pour chaque tuple.
un type de contraintes sur les relations
• La clé primaire (PRIMARY KEY)
• Dans la pratique on utilise des clés artificielles (ID)

code nom note photo nom ville effectif


FC404 Amine 13 NULL ENSAM Meknès 400
KL239 Fatima 14 NULL ARM Meknès NULL
PX354 Samir 15 NULL EST Fès 600
… … … … … … …

Etudiant Ecole
26/09/2023 bd 19
SCHÉMA RELATIONNEL
• Schéma = Description structurelle des relations
(tables) de la base de données
– Etudiant (code, nom, note, photo)
– Ecole (nom, ville, eff)
• Etudiant (code : int , nom : string , note : float , photo :
string)
code nom note photo nom ville effectif
FC404 Amine 13 NULL ENSAM Meknès 400
KL239 Fatima 14 NULL ARM Meknès NULL
PX354 Samir 15 NULL EST Fès 600
… … … … … … …

Etudiant Ecole
26/09/2023 bd 20
INSTANCE D’UNE RELATION

• Une relation n'est pas statique, elle change avec le temps.


– o Insertion / suppression / modification de tuples
• Instance d'une relation = contenu à un instant de temps
donné de la relation

code nom note photo nom ville effectif


FC404 Amine 13 NULL ENSAM Meknès 400
KL239 Fatima 14 NULL ARM Meknès NULL
PX354 Samir 15 NULL EST Fès 600
… … … … … … …

Etudiant Ecole
26/09/2023 bd 21
Exemple: schéma d’une BD

26/09/2023 bd 22
Base de données

Création de schéma en SQL


Langage SQL
• SQL est le principal langage utilisé pour décrire et
manipuler des bases de données relationnelles.
– Norme ISO actuelle SQL:2011
– Les SGBD implémentent quelque chose de similaire,
mais pas identique, à la norme.
• Deux aspects en SQL:
– Data-Definition sublanguage : pour déclarer les
schémas
– Data-Manipulation sublanguage : pour interroger /
modifier les bases de données.

26/09/2023 bd 24
Création de tables
• L'instruction CREATE TABLE déclare le schéma d'une
relation :
– Déclare le nom de la table, ses attributs et leurs types.
– Permet également de déclarer une clé, ou plusieurs clés,
de la table.
– Aussi la déclaration des contraintes, des indexes, …

26/09/2023 bd 25
Création de tables - Exemple

26/09/2023 bd 26
Data types
• Chaines de caractères (string) :
– CHAR(n), VARCHAR(n)
• Les entiers :
– INT, INTEGER, SHORTINT, …
• Les nombres à virgule flottante :
– FLOAT REAL, DECIMAL(n, d), NUMERIC, …
• Dates et heures :
– DATE, DATETIME, …
• Booléens :
– BOOLEAN

26/09/2023 bd 27
Insertion de tuples

• L'instruction INSERT permet d’insérer un ou


plusieurs tuples (lignes) dans une table
(relation)

26/09/2023 bd 28
Insertion de tuples Exemple

26/09/2023 bd 29
BD – LES ÉTAPES
• Etapes de création et d’exploitation :
• 1. Conception du schéma de la BD
• 2. Création du schéma en utilisant SQL DDL
• 3. Chargement de données initiales (Bulk load)
• 4. Exécution de requêtes SQL d’interrogation
et de modification  DML

26/09/2023 bd 30
BASE DE DONNÉES

EXEMPLE AVEC SQLITESTUDIO


RELATION DES EMPLOYÉS EMP
• On considère le schéma relationnel suivant composé
de deux relations EMP et DEP:
• Relation des Employés EMP (ENUM, ENOM, PROF,
DATEEMB, SAL, COMM, DNUM*)
1. ENUM: numéro d’employé, clé primaire. ENOM: nom
de l’employé.
2. PROF: profession.
3. DATEEMB : date d’embauche.
4. SAL : salaire.
5. COMM: commission ou prime (un employé peut ne pas
avoir de commission).
6. DNUM: numéro de département où travaille
l’employé.

26/09/2023 bd 32
RELATION DES DÉPARTEMENTS DEP

• Relation des Départements DEP (DNUM,


DNOM, DIR*, VILLE)
– DNUM: numéro de département, clé primaire.
– DNOM: nom du département.
– DIR : numéro de l’employé directeur du
département.
– VILLE : lieu du département (ville).

26/09/2023 bd 33
EXEMPLES DE
TUPLES

26/09/2023 bd 34
DDL de la BD

26/09/2023 bd 35
ARCHITECTURE DE LA BD

SQLite
Studio

SQL
Lite

Base de
26/09/2023 bd donnes locale 36
BASE DE DONNÉES

ALGÈBRE RELATIONNELLE ET SQL


SOMMAIRE

 Introduction
 Projection et sélection
 Jointures
 Opérateurs ensemblistes

26/09/2023 bd 38
ALGÈBRE RELATIONNELLE ET
SQL

PROJECTION ET SÉLECTION
ALGÈBRE RELATIONNELLE
 Une algèbre composée de relations (tables)
et d’opérateurs sur ces relations.
 Une requête (expression) sur un ensemble
de relations produit une relation comme
résultat.

26/09/2023 bd 40
ALGÈBRE RELATIONNELLE VS SQL
 L'algèbre relationnelle n'est pas utilisée
comme langage de requêtes dans les SGBD
actuels.
 SQL est le standard.
 Mais, une requête SQL est généralement
traduite en algèbre relationnelle par le SGBD
pendant l’exécution.
 Implémentation et optimisation de
requêtes
26/09/2023 bd 41
OPÉRATEURS
4 catégories d’opérateurs de l'algèbre
relationnelle :
 Opérateurs usuels sur les ensembles : union,
intersection et différence
 Opérateurs de sélection et projection sur
une seule table
 Opérateurs de jointures de deux ou
plusieurs tables
 Un opérateur pour renommer un attribut ou
une table
26/09/2023 bd 42
Project ion
PROJECTION

26/09/2023 bd 43
PROJECTION
• Exemples :
– La table Livre (idlivre, titre, annee, langue,
editeur, prix)

26/09/2023 bd 44
PROJECTION

26/09/2023 bd 45
PROJECTION

26/09/2023 bd 46
PROJECTION

26/09/2023 bd 47
PROJECTION
• En langage SQL

26/09/2023 bd 48
PROJECTION

26/09/2023 bd 49
PROJECTION
• En algèbre relationnel :
– « A relation is a set of
tuples »
• En SQL :
– « A relation is a bag of
tuples »

26/09/2023 bd 50
PROJECTION
• En algèbre relationnel :
– « A relation is a set of
tuples »
• En SQL :
– « A relation is a bag of
tuples »

26/09/2023 bd 51
LA SÉLECTION

26/09/2023 bd 52
LA SÉLECTION

26/09/2023 bd 53
LA SÉLECTION

26/09/2023 bd 54
LA SÉLECTION
• En langage SQL

26/09/2023 bd 55
LA SÉLECTION

26/09/2023 bd 56
LA SÉLECTION

26/09/2023 bd 57
COMBINAISON D’OPÉRATIONS

26/09/2023 bd 58
ALGÈBRE RELATIONNELLE ET
SQL

OPÉRATEURS DE JOINTURES
OPÉRATEURS DE JOINTURES

26/09/2023 bd 60
OPÉRATEURS DE JOINTURES

26/09/2023 bd 61
PRODUIT CARTÉSIEN
Soient 𝑅(𝐴1, 𝐴2,…, 𝐴𝑛) et 𝑆(𝐵1, 𝐵2,…,𝐵𝑚) deux schémas
relationnels de deux tables R et S.
Le produit 𝑅 × 𝑆 est une relation définie par :

𝑹 × 𝑺 = { (𝒕𝟏. 𝑨𝟏,…, 𝒕𝟏. 𝑨𝒏 , 𝒕𝟐. 𝑩𝟏,…, 𝒕𝟐.𝑩𝒎) / 𝒕𝟏 ∈ 𝑹 𝒆𝒕 𝒕𝟐 ∈ 𝑺}

On associe chaque tuple t1 de R à chaque tuple t2 de S.


La concaténation 𝑡1𝑡2 est un tuple de 𝑅 × 𝑆 .
Le schéma de 𝑅 × 𝑆 est composé des attributs de R puis de
S, dans l'ordre.
Si l'attribut A du même nom dans R et S: on utilise R.A et
S.A.
26/09/2023 bd 62
PRODUIT CARTÉSIEN
Exemple :

26/09/2023 bd 63
PRODUIT CARTÉSIEN

26/09/2023 bd 64
PRODUIT CARTÉSIEN
• En langage SQL

26/09/2023 bd 65
PRODUIT CARTÉSIEN

26/09/2023 bd 66
JOINTURE NATURELLE (NATURAL
JOIN)

26/09/2023 bd 67
JOINTURE NATURELLE
Exemple :

26/09/2023 bd 68
JOINTURE NATURELLE
• En langage SQL

26/09/2023 bd 69
JOINTURE NATURELLE

26/09/2023 bd 70
JOINTURE THÉTA (THETA-JOIN)

26/09/2023 bd 71
JOINTURE THÉTA

Exemple :

26/09/2023 bd 72
JOINTURE THÉTA
• En langage SQL

26/09/2023 bd 73
JOINTURE THÉTA

26/09/2023 bd 74
OPÉRATEURS ENSEMBLISTES: UNION,
INTERSECTION ET DIFFÉRENCE
• Soient 𝑅 et 𝑆 deux relations de même
schéma.
– L’union 𝑅 ∪ 𝑆 est une relation définie par
𝑹 ∪ 𝑺 ={ 𝒕| 𝒕 ∈ 𝑹 𝒐𝒖 𝒕 ∈ 𝑺}
– L’intersection 𝑅 ∩ 𝑆 est une relation
définie par 𝑹 ∩ 𝑺 ={ 𝒕| 𝒕 ∈ 𝑹 𝒆𝒕 𝒕 ∈ 𝑺}
– La différence 𝑅 − 𝑆 est une relation définie
par 𝑹 − 𝑺 ={ 𝒕 |𝒕 ∈ 𝑹 𝒆𝒕 𝒕 ∉ 𝑺}

26/09/2023 bd 75
UNION, INTERSECTION ET
DIFFÉRENCE

Exemple :

26/09/2023 bd 76
UNION, INTERSECTION ET
DIFFÉRENCE
• En langage SQL

26/09/2023 bd 77
UNION, INTERSECTION ET
DIFFÉRENCE

26/09/2023 bd 78
UNION, INTERSECTION ET
DIFFÉRENCE

26/09/2023 bd 79
SQL - AGRÉGATION ET
GROUPEMENT

AGRÉGATION
 Le salaire min, le salaire max et la moyenne des
salaires des employés?
 Le nombre d’employés ingénieurs?
 La moyenne des salaires par ville? Ou par profession ?
 Opérateurs d’agrégation
26/09/2023 bd et groupement 81
 Des opérateurs qui s’appliquent sur un
ensemble de valeurs (numériques, chaines,
…) et qui produisent une valeur agrégée
comme résultat.
 Ces opérateurs sont utilisés pour résumer ou
«agréger» les valeurs d’une colonne d'une
relation opérateurs d'agrégation.

26/09/2023 bd 82
 Les opérateurs standard :
 SUM
 MIN
 MAX
 AVG
 COUNT
 …

26/09/2023 bd 83
26/09/2023 bd 84
Le salaire min, le salaire
max et la moyenne des
salaires des employés?

26/09/2023 bd 85
Le nombre d’employés ingénieurs?

26/09/2023 bd 86
Le nombre de professions?
Attention à la répétition !

26/09/2023 bd 87
Le salaire moyen
des
ingénieur?
26/09/2023 bd 88
26/09/2023 bd 89
SQL - AGRÉGATION ET
GROUPEMENT

GROUPEMENT
Le salaire moyen par profession ?
26/09/2023 bd 91
 Regrouper les tuples d’une table en
sous groupes avant d’appliquer un
opérateur d’agrégation sur chaque
sous groupe.
 Le groupement se fait selon la
valeur d’une colonne (ou plusieurs
colonnes)
26/09/2023 bd 92
Le salaire moyen par profession ?
26/09/2023 bd 93
La somme et la moyenne des salaires par ville ?
26/09/2023 bd 94
La moyenne des salaires par prof dans chaque ville ?
26/09/2023 bd 95
SQL - AGRÉGATION ET
GROUPEMENT

SÉLECTION DANS UN GROUPEMENT


Les professions dont la
moyenne des
salaires est supérieure
à 1000 ?
26/09/2023 bd 97
 La clause HAVING permet la
sélection, après groupement, de
certains groupes selon une
condition qui dépend du groupe
dans son ensemble, plutôt que
des tuples individuels.
26/09/2023 bd 98
Les professions dont la moyenne
des26/09/2023
salaires est supérieure bdà 1000 ? 99
1. Donner les villes où la moyenne des salaires des
ingénieurs est supérieurs à 1000.
2. Donner la liste des employés qui ont un salaire
supérieur à la moyenne des salaires de tous les
employés.
3. Donner la liste des employés qui ont le salaire max
dans leurs départements.
4. Donner la liste des employés qui ont un salaire
supérieur au salaire moyen
26/09/2023 bd dans leurs villes. 100
SQL – BASE DE DONNÉES

SQL - MODIFICATIONS
1. Ajouter un nouveau
employé? Un nouveau
département ?
2. Mettre à jour les données
d’un ou plusieurs
employés?
3. Supprimer un ou
plusieurs employés?
4. Requêtes de
modification de
données : INSERT,
26/09/2023 bd UPDATE, DELETE 102
 Insertion de tuples dans une relation.
 La forme de base de l'insertion est :
INSERT INTO R (A1, A2, …, An) VALUES (v1, v2, …, vn);
 Un tuple sera créé en utilisant les valeurs vi pour les
attributs Ai.
 Si la liste des attributs n'inclut pas tous les attributs
de la relation R, alors le tuple créé a des valeurs par
défaut pour tous les attributs manquants.
 Forme simplifiée :
INSERT INTO R VALUES (v1, v2, …, vn);

26/09/2023 bd 103
INSERT INTO emp
VALUES (105, ‘ADIL’,
‘Ingénieur’, 1100, 10);
26/09/2023 bd 104
INSERT INTO emp (enom,
enum) VALUES (‘ZAID’, 106);

26/09/2023 bd 105
On peut insérer un ensemble de tuples en
utilisant les sous requêtes :
INSERT INTO R (A1, A2, …, An)
SELECT B1, B2, …, Bn
FROM T
WHERE Condition;
26/09/2023 bd 106
 Suppression de tuples d’une relation
vérifiant une condition.
 La forme de base de la suppression est :
DELETE FROM R WHERE Condition;
 Cette requête a pour effet que chaque
tuple de R qui satisfait la condition sera
supprimé de la relation R.

26/09/2023 bd 107
Supprimer les employés
qui ont un salaire supérieur
à 1100.

DELETE FROM
emp
WHERE
sal >= 1100;
26/09/2023 bd 108
Supprimer les employés
qui travaillent à Casa.
DELETE FROM emp
WHERE dnum IN
(SELECT dnum FROM
dep WHERE
ville=‘Casa’);

26/09/2023 bd 109
 Changer les valeurs des composants (attributs) d’un
ou plusieurs tuples d’une relation.
 La forme de base de la mise à jour est :
UPDATE R SET A1=v1, A2=v2, …, An=vn WHERE
Condition;
 L'effet de cette instruction est de trouver tous les tuples
de R qui satisfont la condition.
 Chacun de ces tuples est ensuite modifié en affectant les
valeurs vi aux composants Ai du tuple.

26/09/2023 bd 110
UPDATE emp
SET sal = sal + sal*10/100
WHERE prof=‘Technicien’;

Augmenter de 10% les


salaires des employés
techniciens ?

26/09/2023 bd 111
UPDATE emp
SET sal = sal + sal*10/100 ;

Augmenter de
10% les salaires
de tous
les employés ?
26/09/2023 bd 112
BASES DES DONNÉES

Conception Des Bases De Données


Relationnelles
BASES DES DONNÉES

Normalisation Des Relations


 Objectif :
 Concevoir un bon schéma relationnel.
 Plusieurs schémas possibles
 Comment choisir (concevoir) le meilleur ?
 Un bon schéma relationnel est un schéma
ne contenant pas d’anomalies.

26/09/2023 bd 115
 Gestion des candidatures des élèves aux
écoles post-Bac.
 Données manipulées :
 Numéro de l’élève, nom, tél et email.
 Série et moyenne de Bac
 Nom de l’école, ville et nombre de places
 On peut utiliser la relation :
 Candidature (num, nom, serie, moy, tel, email,
ecole, ville, places).

26/09/2023 bd 116
• Quelques tuples possibles :

 Y a-t-il des anomalies ?


 Oui !!
26/09/2023 bd 117
 Anomalies :
 Redondances
 Des informations qui se répètes. (123 ALI SM …)
 Mise à jour
 Ex. Modifier le tél d’un élève  modification de
plusieurs occurrences.
 Ex. Modifier le nombre de places d’une école !
 Suppression
Ex. Supprimer la série LSH de la candidature à
l’ENSAM.
 supprimer complètement la série et/ou l’élève.

26/09/2023 bd 118
 Un bon schéma  pas d’anomalies :
 Redondances
 Plusieurs fois la même information.
  des valeurs peuvent être éliminées sans perte
d’information
 Problème de mise à jour
 Une occurrence d’une information est modifié et pas les
autres.
 Problème de suppression
 Une information pertinente est perdue en supprimant un
tuple.
 La normalisation des relations permet d’éviter
ces anomalies.
26/09/2023 bd 119
 Normalisation = Ensemble de règles
introduites dans le modèle relationnel dès son
origine qui, une fois satisfaites, garantissent :
 La non redondance des données
 La cohérence lors de la manipulation des
données (insertion, mise à jour, suppression).
 Ces règles sont appelées :
 Formes Normales (FN)

26/09/2023 bd 120
 Les FN sont dépendantes :
 Une relation en 3FN est nécessairement en

2FN et 1FN.
 Normaliser un schéma relationnel passe

essentiellement
par l’étude des
dépendances
fonctionnelles.
26/09/2023 bd 121
BASES DES DONNÉES

Dépendances Fonctionnelles
 Normaliser un schéma relationnel
passe essentiellement par l’étude
des dépendances fonctionnelles.
 Un concept clé dans la conception

de bases de données relationnelles.

26/09/2023 bd 123
 On considère deux attributs moy et mention d’une
relation étudiant
 Avec les règles suivantes :
 16 ≤ moy mention = T. bien
 14 ≤ moy < 16 mention = Bien
 12 ≤ moy < 14 mention = A. bien
 10 ≤ moy < 12 mention = Passable
 Deux étudiants qui ont la même moy ont
nécessairement la même mention
 On dit que la mention dépend fonctionnellement de
la moy :
 Moy  Mention

26/09/2023 bd 124
 Soit R une relation et A, B deux attributs de R
 On dit que B dépend fonctionnellement de A
(ou A détermine B) ssi à toute valeur de A
correspond une et une seule valeur de B.
 Autrement dit : si deux tuples de R ont la
même valeur sur A alors ils ont aussi la
même valeur sur B.

26/09/2023 bd 125
 A1 , A2 , … , An  B1 , B2 , … , Bm;
 Si deux tuples de R ont les mêmes

valeurs sur les attributs A1, A2, …,


An, alors ils ont aussi les mêmes
valeurs sur les attributs B1, B2, …,
Bm;

26/09/2023 bd 126
école , ville  places num  nom
num , école , ville  classement num  série
num , école , ville  nom, série, num  moy
moy, tél, email, num  tél
26/09/2023 places. bd num  email
127
 Remarque:
 Les DF sont basées sur la
compréhension du domaine
étudié (le système
d’information).

26/09/2023 bd 128
 AB,C => AB et AC (Décomposition)
 AB et AC => A B,C (Combinaison)
 A B et B C => AC (transitivité)
 Si B est une partie de A alors AB
(dépendance triviale)
 Si AB alors A , CB

26/09/2023 bd 129
 AB est une dépendance fonctionnelle
élémentaire si
 Aucune partie de A ne détermine B
 B ne dépend pas d’une partie de A
 Exemples :
 Num_facture , Ref_produitQuantité_achetée
 Est élémentaire.
 Code_Etudiant , Num_Livre , Date_emprunt 
Date_retour
 N’est pas élémentaires.

26/09/2023 bd 130
école , ville  places num  nom
num , école , ville  classement num  série
num , école , ville  nom, série, num  moy
moy, tél, email. num  tél
26/09/2023 bd
num  email
131
 AB est une dépendance fonctionnelle directe
si:
 il n’existe pas d’attribut C tel que AC et CB (càd
A C B).
 AB ne peut pas être déduite par transitivité
 Exemples :
 Ref_produitTaux_TVA
 Ref_produitCatégorie
 CatégorieTaux_TVA
 Donc Ref_produitTaux_TVA n’est pas directe, elle est
transitive

26/09/2023 bd 132
BASES DES DONNÉES
 Les FN : règles pour éviter les anomalies dans un
schéma relationnel

26/09/2023 bd 134
26/09/2023 bd 135
 Une relation R est en 1FN si :
 R possède une clé
 Les domaines des attributs de R sont constitués
de valeurs atomiques :
chaque valeur d’un attribut provienne d’un
domaine non structuré.
 Pas d’ensemble.
 Pas de type énuméré.
 Pas de groupes répétitifs.

26/09/2023 bd 136
 Exemple : employés et projets
 MembreProjet ( id_emp , Nom , Fonction , id_proj )

26/09/2023 bd 137
26/09/2023 bd 138
 Une relation R est en 2FN si :
 R est en 1FN
 Il existe une dépendance
fonctionnelle élémentaire reliant la
clé de R à chaque attribut non clé.
 tout attribut hors clé ne dépend
pas d’une partie de la clé

26/09/2023 bd 139
 Soit R (A , B , C , D) :

 Décomposition en 2 NF :
 Isoler la DF partielle dans une nouvelle relation
 Eliminer la cible de la DF de la relation initiale
26/09/2023 bd 140
Relation:
Candidature (num , nom , série , moy , tél , email ,
école , ville , places , classement)
Clé:
(num , école, ville)
26/09/2023 bd 141
 Candidature (num, nom, série, moy, tél , email , école , ville , places ,
classement)
 Clé de la relation :
 (num , école, ville)
 DF :
 numànom , série , moy , tél , email
 école , ville àplaces
 num , école, ville àclassement
 Décomposition en 2FN :
 Élève (num , nom , série , moy , tél , email)
 Ecole (école , ville , places)
 Candidature (num , école, ville , classement )

26/09/2023 bd 142
26/09/2023 bd 143
26/09/2023 bd 144
 Une relation R est en 3FN si :
 R est en 2 FN
 Tout attribut hors clé de R est en DF
directe par rapport à la clé
(pas de transitivité)
 Tout attribut de R, n’appartenant
pas à la clé, ne dépend que de la clé

26/09/2023 bd 145
 Soit R (A , B , C , D) :

 Décomposition en 3 NF :
 Isoler la DF transitive dans une nouvelle relation
 Eliminer la cible de la DF de la relation initiale

26/09/2023 bd 146
 On considère la relation suivante pour la gestion des
ventes :
 vente (facture , date , ref , design , pu , categ , tva , qte)
 Clé de la relation ( facture , ref )
 DF :
 facture , refàdate , design , pu , categ , tva , qte
 facture  date Décomposition en 3FN :
 Refdesign, pu, categ, tva facture ( facture , date )
produit (ref , design , pu , categ )
 facture , refqte Categ (categ , tva )
 Categtva vente ( facture , ref , qte)
 La relation vente n’est pas en 2FN

26/09/2023 bd 147
26/09/2023 bd 148
 Une relation R est en BCNF si :
 Pour toute dépendance fonctionnelle (non
triviale) AB sur les attributs de R, A est une
clé de R.
 C’est-à-dire :
 Tout attribut non clé de la relation n'est pas
source de DF.
 Les seules DF élémentaires qu’elle comporte
sont celle où une clé détermine un autre
attribut.
26/09/2023 bd 149
 Remarques:
 Si une relation R est en BCNF
alors elle est en 3 NF.
 Si R est en 3 NF alors elle n’est

pas forcément en BCNF.

26/09/2023 bd 150
 Soit R (A , B , C , D , E) :

 Décomposition en BCNF :
 Isoler la DF problématique dans une nouvelle
relation
 Eliminer la cible de la DF problématique et la
remplacer par sa source dans la relation initiale

26/09/2023 bd 151
 On considère la relation suivante :
 Enseignement ( section , prof , matière , séance ,
salle)
 Un prof enseigne une matière à une section
pendant une séance
 DF :
 section , matièreprof , séance , salle
 On suppose qu’un prof enseigne une seule matière
 Donc : profmatière
 Clé de la relation (section , matière)
 La relation est en 3FN, mais n’est pas en BCNF

26/09/2023 bd 152
 Remarques:
 Toute relation a une
décomposition en BCNF sans
perte d’information.
 Mais, une décomposition en

BCNF ne préserve pas


généralement les DF.
26/09/2023 bd 153
BASES DES DONNÉES
 Le MCD est un schéma graphique qui obéit à
quelques conventions très simples et à quelques
règles de construction, peu nombreuses mais
très précises qui font la puissance et la
pertinence de cet outil de conception.
 Le MCD permet une représentation conceptuelle
de l'ensemble des données manipulées et des
règles de gestion d’un Système d’Information.

26/09/2023 bd 155
 Le MCD contient 3 concepts de base :
 Entité
 Association (lien)
 Propriété (attribut)
 Modèle entité-association

26/09/2023 bd 156
 Une propriété est une donnée élémentaire manipulée dans
le SI et ayant un sens.
 Elémentaire (ou atomique) non décomposable.
 Règles :
 Une propriété ne doit pas être composée
 Attention : date, adresse ?
 Une propriété ne doit pas être calculée ou dérivée (prix TTC, durée,
âge…).
 Une propriété ne doit jamais être redondante dans le MCD :
 Pas de synonymes (ex : référence article et numéro produit).
 Pas de polysèmes : même signifiant pour plusieurs signifiés (ex :
"adresse" qui désigne "adresse client" et "adresse fournisseur").
 On crée deux propriétés avec deux noms différents.

26/09/2023 bd 157
 Une entité est un ensemble de propriétés caractérisant un
type d'objets du SI.
 Exemples : étudiant, enseignant, filière, module, élément,
note, …
 Exemples : employé, service, produit, client, fournisseur,
commande, facture …
 Parmi les propriétés d'une entité, une propriété (ou sous-
ensemble de propriétés) joue le rôle d’identifiant
 Identifier d’une manière unique chaque occurrence de
l’entité.
 Exemples : code Massar, matricule employé, référence
produit, …
 Le plus souvent, l’identifiant est un numéro, code, référence …

26/09/2023 bd 158
 Dans une entité, les propriétés n’appartenant
pas à l’identifiant sont en dépendances
fonctionnelles élémentaires et directes
(DFED) par rapport à l’identifiant
 Exemple : Entités Etudiant et Ecole

26/09/2023 bd 159
 Une association représente les liens qui existe
entre les objets (instances des entités) du
système d’information modélisé.
 Une association relie deux ou plusieurs entités
(binaire, ternaire, n-aire, réflexive)
 Exemples :
 Un employé est affecter à un service
 Une commande concerne un ou plusieurs produits
 Un employé est chef d’un employé
 Un module contient un ou plusieurs éléments
 Un étudiants est inscrit dans des modules

26/09/2023 bd 160
 Représentation et règles de gestion
 Règles de gestion:
 Un employé est affecté à un et un seul service
 Un service contient plusieurs employé
 Un service peut ne contenir aucun employé

26/09/2023 bd 161
 Une association peut être porteuse ou non de
propriétés.
 Les propriétés d’une association sont en dépendances
fonctionnelles élémentaires et directes par rapport
aux identifiants de leurs entités.
 Exemple : Le classement d’un étudiant dans une
candidature à une école.

26/09/2023 bd 162
 Les cardinalités représente pour chaque couple
(entité, association) les nombres minimum et
maximum d'occurrences de l'association que peut
avoir un objet.
 Chaque sens de lecture d’une association est
entièrement décrit lorsqu'on précise le couple
(cardinalité minimale, cardinalité maximale).

26/09/2023 bd 163
 Cardinalités possibles :
 (0,1)
 (1,1)
 (0,n)
 (1,n)
 Les cardinalités traduisent les règles de
gestion.

26/09/2023 bd 164
 Lorsque la cardinalité maximale de l'un des côtés d’une association vaut 1 on
dit que l'association binaire est fonctionnelle.
 On l’appelle dépendance fonctionnelle (DF) ou contrainte d'intégrité
fonctionnelle (CIF).
 Les associations binaires ayant les cardinalités (x, 1) constituent une CIF

D’une manière générale :


Une CIF traduit une DF entre entités : Entité 1 , Entité 2 , …  Entité N

26/09/2023 bd 165
BASES DES DONNÉES
 Etape 1 : Dégager la liste des propriétés
 À partir de l’analyse de l’existant dans le
Système d’Information à modéliser
 À partir des documents recueillis
 À partir des questionnaires
 À partir de l’énoncé du problème
 …

26/09/2023 bd 167
 Exemple :
 Nom client
 Adresse client
 N°, rue, CP, ville
 Numéro facture
 Date facture
 Numéro commande
 Échéance
 Quantité
 Désignation
 Prix unitaire HT
 Montant HT
 Total HT
 Total TVA
 Total
 Numéro client
 Référence produit
 Catégorie Produit
 TVA

26/09/2023 bd 168
 Étape 2 : Établir le dictionnaire de données
 Nom abrégé de la propriété
 Nom détaillé de la propriété
 Sa nature : E (Élémentaire), CA (Calculée) et CO (Concaténée)
 Type : N (Numérique), A (Alphabétique), AN (AlphaNum.),
Date, …
 Remarques : si la propriété est calculée, on écrit l’expression
du calcul; si elle est concaténée, on écrit l’expression de
décomposition.

26/09/2023 bd 169
26/09/2023 bd 170
 Étape 3 : Tracer le graphe de dépendances
fonctionnelles élémentaires et directes
(GDFED):
 Dégager l’ensemble des DF entre les propriétés
 Tracer ces DF sous forme d’un graphe
 Ne garder sur le graphe que les DF élémentaires
et directes

26/09/2023 bd 171
26/09/2023 bd 172
26/09/2023 bd 173
 Étape 4 : Déduire le MCD à partir du GDFED
 Un MCD est composé d’entités et d’associations.
 Règles
 Les propriétés qui dépendent d’une seule propriété forment
une entité
 Les propriétés qui dépendent d’une propriété composée des «
clés d’entités » forment une relation qui associe ces entités
 Les cardinalités des associations sont déduites des règles de
gestion

26/09/2023 bd 174
 Transformation du GDFED en MCD
 Toute propriété du GDF devienne une propriété dans
le MCD.
 N.B. chaque propriété figure une et une seule fois sur le
GDFED et sur le MCD
 Les propriétés sources de DF (celles qui sont
soulignées sur le graphe) représentent les
identifiants des entités dont les attributs sont les
cibles de ces DF.
 Les flèches restantes deviennent des associations.
 Les propriétés déterminées par une DF conjointe
deviennent des attributs portés par l’association.
 Les règles de gestion doivent permettre de trouver
les cardinalités.
26/09/2023 bd 175
26/09/2023 bd 176
26/09/2023 bd 177
26/09/2023 bd 178

Vous aimerez peut-être aussi