Partie1 BD

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 89

Evaluation

• Volume Horaire: 42 heures

• Moyenne(BD) = cc *40%+Examen*60%.

MME HIBA LAHMER 1


Bases de données
•Initiation aux bases de données
•Modèle Entité/Association
•Modèle relationnel
•Normalisation : 1FN , 2FN et 3FN
•L’algèbre relationnelle
•Le langage SQL : LDD , LMD , LID

MME HIBA LAHMER 2


Bases de données
Introduction
MME HIBA LAHMER 2A
2021/2022
Plan
•Problématique
•Limites de l’approche par fichiers
•Base de Données
•Système de Gestion de bases des données
•Etapes pour Mettre en place une base de données

MME HIBA LAHMER 4


Problématique
Une entreprise souhaite automatiser ses traitements en utilisant l’approche par les fichiers
séparés. Ainsi, elle devra
- créer ses propres fichiers pour stocker les données utilisées
- développer des programmes (C, Cobol, Pascal …) pour effectuer les traitements nécessaires.
Exemple :
Application 1 : gestion de la scolarité d’ESPRIT , nous voulons gérer les emplois des temps, les
examens, les convocations ….

MME HIBA LAHMER 5


Application de Gestion de scolarité :
Enseignants.txt
Service
Scolarité

Etudiants.txt
Département A votre avis :
Quels sont les problèmes
Classes.txt rencontrés ?

Direction des
études et des Personnels , Salles
stages

MME HIBA LAHMER 6


Limites de système à fichiers
• Dispersion
• Redondance : Une même donnée est stockée plusieurs fois Exemple: une enseignante (encadrante)
dans des fichiers différents change d’adresse mail
• L’adresse d’un enseignant est dupliquée x fois. Ainsi, risque
d’incohérence Service
• Absence de Contraintes d’intégrité : @valide : Scolarité
chaine@chaine .com
• Insécurité de données
• Forte dépendance entre code et Données (pour effectuer des Département
recherches , modification , Ajout , suppression ..)

Direction des
Solution : Centraliser toutes les données de toutes les
études et des
applications d’une organisation pour former ce qu’on appelle une
stages
base de données

MME HIBA LAHMER 7


Bases de données .. Pourquoi ?
Une base de données a pour objectif de:
◦ Stocker les données.
◦ Minimiser les redondances
◦ Préserver la complexité des relations entre les différentes thématiques.
◦ Faciliter l’exploitation des données: recherche, insertion, lecture et mise à jour des données.

MME HIBA LAHMER 8


Bases de données .. Quoi ?
Définition 1:
Une base de donnée est un ensemble structuré de données, centralisées ou non, servant les
besoins d’une ou plusieurs applications, interrogeables et modifiables par un groupe
d’utilisateurs en un temps opportun.
Définition 2:
Une base de données (BD) est un ensemble structuré permettant le stockage de données en vue
d’en faciliter l’exploitation

MME HIBA LAHMER 9


Système de Gestion de Base de Données
Le SGBD est un logiciel qui permet à des utilisateurs de définir, créer, mettre à
jour une base de données et d’en contrôler l’accès. Il agit comme interface entre
la base de données et l’utilisateur.

Il fournit les moyens d’exploiter les données tout en assurant la sécurité,


l’intégrité et la confidentialité indispensables dans un environnement multi-
utilisateurs.

Exemples : Microsoft Access , MySql , Oracle Database , Microsoft Sql Server..

MME HIBA LAHMER 10


Objectifs d’un SGBD
Indépendance Physique : La façon de définir les données doit être
indépendante des structures utilisées pour leur stockage
Indépendance Logique : Un utilisateur doit pouvoir percevoir uniquement la
partie des données qui l’intéresse (vue)
Manipulation aisée : Des données par des « non informaticiens »
Accès efficace aux données : Et obtention des résultats aux interrogation en un
temps « acceptable »
Administration Centralisée : Des données afin de faciliter l’évolution de leur
structure

MME HIBA LAHMER 11


Objectifs d’un SGBD
Non redondance : Une donnée ne doit être présente qu’une seule fois afin de
faciliter la mise à jour
Cohérence (ou intégrité) : Les données ne doivent présenter ni ambiguïté pour
pouvoir délivrer des informations sans erreur (nécessité de mécanisme de
contrôle lors des mises à jour)
Partage : Des données pour un accès multi-utilisateurs simultané aux mêmes
données.
Sécurité : Des données: robustesse vis-à-vis des pannes et protection par droits
contre les accès non autorisés

MME HIBA LAHMER 12


Niveaux de description d’un SGBD
• Décrit comment chaque utilisateur perçoit la BD (vues)
Niveau
• Interfaces conviviales
Extérieur

• appelé aussi MCD (modèle conceptuel des données) ou MLD


Niveau (modèle logique des données). Il définit l'arrangement des
Logique informations au sein de la base de données

• il définit la façon selon laquelle sont stockées les données et les


Niveau méthodes pour y accéder
Physique

MME HIBA LAHMER 13


Modèles de données
Il existe plusieurs types de SGBD. En effet, la différence essentielle entre ces types de
SGBD réside dans les modèles sur lesquels ils s’appuient pour représenter les données.
1. Le modèle hiérarchique : Dans ce modèle, les données sont représentées sous forme
d’arbre où chaque enregistrement n’a qu’un seul possesseur. Ce modèle utilise des
pointeurs entre les différents enregistrements.
Limites du modèle hiérarchique :
- La redondance des données
- La destruction d’un nœud cause l’élimination de ses successeurs (perte d’information)
- Impossible d’insérer un nœud sans successeurs
- Une modification d’une donnée doit être effectuée dans plusieurs endroits

MME HIBA LAHMER 14


Modèles de données
2. Le modèle réseau ou codasyl : Dans ce modèle, les données sont représentées sous forme de
graphe. Ce modèle utilise des pointeurs entre les différents enregistrements.

Limites :
- Les programmes ne sont pas indépendants de la structure logique de la base et du chemin d’accès
aux données.
- Il faut décrire comment retrouver les données (on parle de navigation dans la base) et si par
exemple on enlève un index, tous les programmes qui l’utilisaient doivent être réécrits.
- Le langage de travail est complexe.

MME HIBA LAHMER 15


Modèles de données
3. Le modèle relationnel : Il a été formalisé par CODD en 1970. Dans ce modèle, les données
sont stockées dans des tables sans préjuger de la façon dont les informations sont stockées dans
la machine.
Un ensemble de données sera donc modélisé par un ensemble de tables. Exemple : table
Agence, table Employé, table Projet et table Travaille

4. Le modèle objet : Dans ce modèle, les données sont représentées sous forme d’objets au sens
donné par les langages orientés objet.

MME HIBA LAHMER 16


Cycle de vie d’une BD
Le cycle de vie d’une BD comporte les quatre étapes suivantes
1. Conception de la base (schéma conceptuel)
2. Implantation des données grâce à un Langage de Définition de Données
3. Utilisation (interrogation, mises à jour) grâce à un Langage de Manipulation de Données
4. Maintenance (correction, évolution)

MME HIBA LAHMER 17


Bases de données
Modèle Entité Association
MME HIBA LAHMER 2A
2021/2022
Plan
• Introduction
• Analyse de données
• Modèle Entité Association
• Entité
• Association

MME HIBA LAHMER 19


Introduction
• Documentation
Analyse de • Observation
données • Maquettes

Modèle • Modèle E/A


conceptuel

Modèle
• Modèle Relationnel
logique

Modèle • Création des tables


Physique • Insertion des clés etc

MME HIBA LAHMER 20


Analyse de données
Il s’agit, à partir de la réalité perçue, de spécifier les données nécessaires pour la construction d’une
base de données.
Une démarche: Formulation du problème à l’aide de phrases simples qui décrivent la réalité à
modéliser.
Ces phrases se présentent sous la forme « sujet-verbe-complément », avec une tournure active
quand cela est possible.
Le but est d’obtenir deux types de phrases :
◦ Celles qui décrivent les liens entre les objets du monde réel – généralement une action ou une
propriété
Exemple : Un lecteur emprunte un livre. Un livre a un auteur.
◦ Celles qui caractérisent la manière dont sont reliés ces objets.
Exemple : • Un lecteur est considéré comme lecteur s’il a au moins déjà emprunté un livre.
• Un livre peut être emprunté par plusieurs lecteurs.
• Il n’y a pas de livres anonymes, un livre est écrit par au moins un auteur.

MME HIBA LAHMER 21


Analyse de données
Pour obtenir ce résultat, quelles questions faut-il se poser et quelles questions doit-on poser aux
acteurs de l’organisation ?
1. Décrire l’activité globalement, en termes simples, sans entrer dans les détails, pour identifier les
objets et leurs liens éventuels.
2. Indiquer quelles sont les « procédures » utilisées dans l’activité pour caractériser les liens entre
les objets. Les procédures permettent d’énoncer les contraintes qui seront intégrées ensuite dans
la base de données.
Exemple: • une personne emprunte un DVD,
• une voiture est achetée par un client
3. préciser les données qui constituent les objets ainsi que celles qui caractérisent les liens entre les
objets.
4. Intégrer la notion de temps: Une erreur classique est de confondre l’aspect simultané d’une
action avec la possibilité de la réitérer durant la période concernée.
Exemple:
un livre peut être emprunté plusieurs fois

MME HIBA LAHMER 22


Modèle Entité Association
En anglais Entity-Relationship (ER)
Modèle conceptuel conçu en 1976 par Peter Chen.
• Il utilise une représentation graphique
• très utilisé pour les bases données, notamment les bases de données relationnel

Il est basé sur 2 notions:


◦ Les objets: concrets ou abstraits: Entités
◦ Les liens entre eux: Associations

MME HIBA LAHMER 23


Modèle Entité Association :
Entité
Entité: Une entité est un objet concret ou abstrait du monde réel. Une entité est représentée
graphiquement par un rectangle .
Par convention, une entité est désignée par un nom au pluriel.

Exemples : Une personne, une voiture, un chien, un évènement, …

Voitures

MME HIBA LAHMER 24


Modèle Entité Association :
Entité
Attribut: Un attribut est un champ de données (ou la plus petite unité de données) possédant
un nom . C’est une Information ayant des valeurs qualifiant une occurrence d'une entité.

Exemples:
Nom, Prénom, CIN, Adresse, Moyenne, DateNaissance, Age, ISBNLivre, RaceChien, …

Personnes
CIN
Nom
Prenom
DateNaissance
Tel

MME HIBA LAHMER 25


Modèle Entité Association :
Entité
Un Attribut:
Peut être
◦ Atomique ou élémentaire (exemple: Nom, Prénom, Age, …).
◦ Composé peut être divisé en sous parties d’attributs atomiques (ex. Adresse=Numéro+ Rue + Code
Postal + Ville)

Peut avoir
◦ Une valeur: monovalué (exemple: Age )
◦ Plusieurs Valeurs: multivalué (exemple: Diplômes )

Possède un domaine: l’ensemble des valeurs admissibles pour un attribut; utile pour vérifier la validité
d’un attribut (exemple : Pour l’attribut Note, le domaine est [0..20])

MME HIBA LAHMER 26


Modèle Entité Association :
Entité
Type d’entité:
Un Type d’entité permet de définir de façon conceptuelle une entité dont tous les membres
partagent les mêmes caractéristiques
Simplification de la terminologie - On appellera:
◦ entité un type d’entité
◦ occurrence d’une entité: un individu particulier faisant partie de l’entité.
Exemple:

MME HIBA LAHMER 27


Modèle Entité Association :
Entité
Identifiant d’une entité:
C’est un groupe minimal d’attributs permettant de distinguer sans ambiguïté les occurrences
d’entités dans l’ensemble considéré . L’identifiant doit être souligné.
Exemple: L’attribut CIN de l’entité Personne caractérise de manière unique une occurrence de
l’entité Personne.

Personnes
CIN
Nom
Prenom
DateNaissance
Tel

MME HIBA LAHMER 28


Modèle Entité Association :
Association
Association: Une association est une liaison perçue entre plusieurs entités. Elle représente un lien où
chaque entité liée joue un rôle bien déterminé
Degré d’une Association: Le degré d’une association correspond au nombre d’entités participant à cette
association
1. Réflexive / récursive ou Cyclique 2. Binaire (de degré 2) : 3. N-aire (ternaire)
le cas le plus fréquent
Personnes
Personnes Chiens Vendeurs Vendre Voitures
Est marié Posséder

Clients

MME HIBA LAHMER 29


Modèle Entité Association :
Association
Cardinalité d’une association
La cardinalité d’une association spécifie le nombre minimum et maximum de participations de
chaque occurrence d’entité à chaque rôle de l’association

Une association peut avoir une ou plusieurs propriété(s) si


celle-ci dépend de toutes les occurrences d'entités qu'elle
relie.

Matchs Joueurs
N°Match 0..n Jouer 0..n N°Joueur
NbSpectateurs Nbpoints NomJoueur
NbPtsLocaux PrénomJoueur
NbPtsVisiteur

MME HIBA LAHMER 30


Modèle Entité Association :
Association
Exemples : Matchs Une Equipe
Un chanteur chante au moins une N°Match Fait Jouer de
Une chanson est chantée par 0 (une
chanson et peut chanter N chansons NbSpectateurs 5àn
instrumentale) ou plusieurs (N) chanteurs
NbPtsLocaux Joueurs.
NbPtsVisiteur
5..n
1..N 0..N
Chanteurs Chanter Chansons
Fait-jouer

Une Personne possède aucune (0) ou Une Voiture appartient à 0 (pas encore 1..1
plusieurs (N) Voitures vendue) ou une seule Personne
Joueurs Un Joueur
joue dans 1
N°Joueur et au plus 1
0..N Posseder 0..1 NomJ
Personnes Voitures Equipe.
PrénomJ

MME HIBA LAHMER 31


Modèle Entité Association :
Association réflexive
Une association réflexive est une association binaire qui fait intervenir au moins deux fois la
même entité.
0-1
Est dirigé par
Employés
IdEmp
Nom
Prenom Diriger

0-N
Dirige

MME HIBA LAHMER 32


Modèle Entité Association :
Association
Nous pouvons avoir plusieurs associations entre deux entités

0-N Posséder 1-N

Clients Logements
Idclt IdLog
Nom Localisation
Prenom Superficie
Tel

1-N
0-N Vendre

MME HIBA LAHMER 33


Modèle Entité Association :
Sous-entité
Une sous-entité exprime la notion d’héritage. Les sous-entités héritent des attributs de la classe
mère avec quelques spécifications qui sont ses attributs.
Collaborateurs
Matricule
Nom
Prenom
Adresse

Indépendant Salarié
DébutContrat Embauche
FinContrat HoraireMensuel
CoutHoraire SalaireBrut

MME HIBA LAHMER 34


Modèle Entité Association :
Entité faible
Une entité faible : entité sans identifiant propre et qui dépend d’une autre entité dite forte , son
identification s’effectue relativement à une autre entité via une association

L'identifiant de l’entité faible est constituée de celui de l’entité faible et de celui de l’entité forte
liée

Bâtiments Salles
1-N 1-1
Numéro Localiser Numéro
Adresse Capacité

On numérote les salles de cours relativement à un


bâtiment

MME HIBA LAHMER 35


Modèle Entité Association :
Entité faible
En prenant l’exemple de Salles et de Bâtiments, on doit mettre en place les mécanismes
suivants:
1. Quand on insère une salle dans la base, on doit toujours l’associer à un bâtiment ;
2. quand un bâtiment est détruit, on doit aussi détruire toutes ses salles;
3. quand on modifie la clé d’un bâtiment, il faut répercuter la modification sur toutes ses salles.

Bâtiments Salles
1-N 1-1
Numéro Localiser Numéro
Adresse Capacité

MME HIBA LAHMER 36


Modèle Entité Association :
Agrégation
➢Une agrégation permet d’associer une entité à un couple d’entités en associations.
➢L’agrégation constitue alors une entité dont l’identifiant est composé des identifiants des
entités en association

Enseignants Assurer Cours

Suivre

Classes

MME HIBA LAHMER 37


Quelques conventions à Retenir
• Les entités sont représentées dans des rectangles et s'écrivent en lettres majuscules
avec un nom au pluriel.
• Le nom de l’association est un verbe à l’infinitif.
• L'identifiant d'une entité est le premier attribut cité et est souligné. Les autres
attributs sont placés à la suite.
• Les associations sont placées dans des ellipses ou des losanges avec

leurs attributs respectifs.

MME HIBA LAHMER 38


Etapes à suivre
Voici une méthode possible pour réaliser un schéma E/A :
1. Etablir la liste des entités
2. Déterminer les attributs de chaque entité en choisissant un
identifiant
3. Etablir les relations entre les différentes entités : les Associations
4. Déterminer les attributs de chaque relation et définir les
cardinalités
5. Vérifier la cohérence et la pertinence du schéma obtenu

MME HIBA LAHMER 39


Exercices d’application :
Exercice 1 : Une bibliothèque peut contenir plusieurs livres. Un livre a un auteur, une date
d’édition et un numéro d’identification. Un étudiant a un numéro d’identification, un nom et un
prénom. Il peut emprunter plusieurs livres et ne peut pas garder un livre plus de trois mois.
Exercice 2: Un cinéma a un numéro d’identification, un nom et une adresse, et projette plusieurs
films à des horaires et dates spécifiques. Un film a un titre, des acteurs qui y jouent un certain
rôle, un réalisateur et une date de réalisation. Les acteurs et les réalisateurs peuvent ont tous un
identificateur et un nom.

Etablir les modèles entité/association

MME HIBA LAHMER 40


Bases de données
Modèle Relationnel
MME HIBA LAHMER 2A
2021/2022
Plan
• Définition
• Relation
• Clé Primaire
• Clé Etrangère
• Règles de passage du modèle E/A au modèle relationnel

MME HIBA LAHMER 42


Introduction
Analyse de • Documentation
• Observation
données • Maquettes

Modèle • Modèle E/A


conceptuel

Modèle
• Modèle Relationnel
logique

• Création des tables


Modèle • Insertion des clés etc
Physique

MME HIBA LAHMER 43


Définition
Introduit par Edgar Frank Codd en 1970.
Le modèle relationnel est un modèle logique de
représentation de des bases de données
Il est associé aux SGBDs relationnels.
Il repose sur des principes mathématiques:
la théorie des ensembles et la notion de relation.

MME HIBA LAHMER 44


Relation / schéma de relation
Une relation R est définie par ce schéma de relation:

R(A1:D1, A2:D2, A3:D3, …, An:Dn)


avec:
◦ R: nom de la relation
◦ A1, …, An: noms des attributs
◦ D1, …, Dn: Domaines des attributs
Exemple:
Personne(CIN: integer, Nom: char(20), Prenom: char(20), Age: integer, Ville: char(20))
La relation R est notée R(A1, A2, A3, …, An)
◦ Exemple: Personne(CIN, Nom, Prenom, Age, Ville)

MME HIBA LAHMER 45


Relation / schéma de relation
La relation (ou table) Personne est représentée sous forme d’un tableau à 2 dimensions où:

◦ Chaque colonne (attribut) porte un nom différent.


◦ Une ligne (tuple, n-uplet, enregistrement) correspond aux données d’une personne, instance
de la relation Personne <08567311, ‘Mejri’, ‘Leyla’, 53, ‘Monastir’>

Personne CIN Nom Prenom Age Ville


06785642 Salmi Lamia 45 Tunis
08567311 Mejri Leyla 53 Monastir
02340956 Gasmi Hamed 16 Gafsa

MME HIBA LAHMER 46


Clé Primaire
Clé: l’attribut CIN correspondant au numéro de carte d’identité nationale d’une personne
identifie de manière unique une personne. On dit que CIN est la clé primaire de la relation
Personne. Elle est notée comme suit:
Personne(CIN, Nom, Prenom, Age, Ville)

Une clé primaire d’une table est un attribut ou une combinaison d’attributs qui satisfait la
contrainte:
1. D’unicité: chaque valeur clé désigne de manière unique une ligne de la table.
2. De minimalité: Si une clé est composée d’un ensemble d’attributs, cette combinaison doit
être minimale

MME HIBA LAHMER 47


Clé étrangère
Clé étrangère: attribut dans une relation R qui est clé primaire d’une relation R’
◦ Exemple:

Produit(numPd, designPd, puPd, #numFr)


Contrainte d’intégrité: une clause permettant de contraindre la modification de tables par
l’intermédiaire de requêtes d’utilisateurs afin que les données saisies dans la base soient
conformes aux données attendues.
Les clés primaires et secondaires sont des contraintes d’intégrité.
La clé étrangère est suivie ou précédée par #

MME HIBA LAHMER 48


Règles de passage du modèle E/A au
modèle relationnel
Il s’agit de représenter sous forme de tables les entités et associations obtenues dans le modèle
E/A. Pour cela, on applique les règles suivantes:
1. Chaque entité est traduite en une table distincte, dont la clé primaire est celle de l’entité ou
une autre clé candidate. Les autre attributs sont reportés comme attributs de la nouvelle
table. Personnes
CIN
Personne ( CIN , Nom , Prenom, Age)
Nom
Prenom
Age

2. La conversion d’une association dépend de sa cardinalité

MME HIBA LAHMER 49


Règles de passage du modèle E/A au
modèle relationnel:
• Une association de dimension 2 de type simple-complexe ne nécessite pas la création d’une nouvelle table
• Elle est traduite en définissant la clé primaire de l’entité du côté « complexe » comme clé étrangère du
R1 coté « simple » de l’association

• Une association de degré 2 de type simple-simple (exemple: 0..1, 1..1) est traitée de la même manière en
choisissant d’introduire la clé étrangère dans la table située du côté (1,1) de l’association.
R2
• Une association de degré 2 de type complexe-complexe (par exemple 0..N, 1..N) est représentée par une
table distincte contenant les identifiants des 2 entités associées comme clés étrangères. Ces attributs
constituent souvent à eux deux la clé primaire de la nouvelle table.
R3 • Si l’association comporte d’autres attributs, ceux-ci sont également rajoutés à la table.

• Une association de degré supérieur à 2 se traduit selon la règle R3.


R4
MME HIBA LAHMER 50
Association binaire Simple-Simple
1 ère possibilité :
Femme (id_femme, nom)
Homme (id_homme, #id_femme, date_mariage)

2 -ème possibilité :
Femme(id_femme, nom, #id_homme,
date_mariage)
Homme (id_homme)

MME HIBA LAHMER 51


Association binaire simple-simple

MME HIBA LAHMER 52


Association binaire simple-complexe
Departements Employes
Num_Dep 1-N 1-1 Cin_Emp
Nom_dep Travailler Nom_Emp
Localisation Prenom_Emp
Adresse

Departements(Num_Dep , Nom_dep , Localisation )


Employes(Cin_Emp , Nom_Emp , Prenom_Emp , Adresse , #Num_Dep)

MME HIBA LAHMER 53


Association binaire Complexe-Complexe
Toute association de type (*,n) , (*,n) est traduite par la création d’une nouvelle table ayant
comme clé primaire les clés primaires des entités reliées . Les attributs de l’association devront
être insérés dans cette tables (comme étant attributs simples )
Commandes Articles
Num_Cmd 1-N 1-1 Réf_Art
Concerner
Date_Cmd Désignation
Qte
Etat_Cmd

Commandes(Num_Cmd , Date_Cmd , Etat_Cmd)


Articles (Réf_Art , Désignation )
Concerner(Num_Cmd#, Réf_Art#,Qte)

MME HIBA LAHMER 54


Association n-aires
Enseignants Etudiants
Cin_Ens 1-N 1-N Cin_Etu
S’inscrire
Nom_Ens Nom_Etu
Année
Prénom_Ens Prenom_Etu
1-N Adresse
Adresse_Ens
Matieres
NumMat
NomMat
Coefficient

Enseignants(Cin_Ens , Nom_Ens , Prénom_Ens , Adresse_Ens)


Etudiants( Cin_Etu,Nom_Etu , Prenom_Etu , Adresse)
Matieres (NumMat , NomMat, Coefficient )
S’inscrire( # Cin_Ens ,# Cin_Etu,# NumMat, Année )

MME HIBA LAHMER 55


Association réflexive
Association réflexive (0,n)-(0,1)
La relation se traduit par l’ajout d’une clé étrangère
dans la table mais portant un nom différent.

MME HIBA LAHMER 56


Entité faible
Articles
Batiments
Num 0-N NumSalle
1-1
Superficie Se composer Capacité
Adresse

Batiments(Num, Superficie, Adresse)


Articles (NumSalle,#Num, Capacité )

MME HIBA LAHMER 57


Héritage: Sous-entité
Personnes
IdPerso
Nom 1ére solution:
Prenom Personnes(IdPerso, Nom , Prenom, Age , Adresse )
Age Enseignants(#IdPerso , Spécialité , Diplôme)
Adresse
1ére solution:
Personnes(IdPerso, Nom , Prenom, Age , Adresse )
Enseignants Enseignants(#IdPerso , Nom , Prenom, Age , Adresse Spécialité , Diplôme)
Spécialité
Diplôme

MME HIBA LAHMER 58


Bases de données
Normalisation
MME HIBA LAHMER 2A
2021/2022
Plan
•Objectifs
•1ère Forme Normale (1FN)
•Dépendance Fonctionnelle
•2ème Forme Normale (2FN)
•3ème Forme Normale (3FN)
•Application
•Conclusion

MME HIBA LAHMER 60


Pourquoi normaliser ?
Une mauvaise modélisation E/A peut mener à:
◦ Des redondances inutiles
◦ Des anomalies de mutations:
◦ Anomalies d’ajout
◦ Anomalies de mise à jour
◦ Anomalies de suppression

Un processus de normalisation appliqué sur toutes les tables de la base de données permet de
remédier à ces problèmes.
E. F. Codd a défini 3 formes normales: 1FN, 2FN et 3FN
Il en existe d’autres plus restrictives: FN de Boyce-Codd (BCNF), 4FN, etc. mais que l’on rencontre
moins fréquemment.

MME HIBA LAHMER 61


Problématique
Nous sommes demandé de mettre en place une base de données d’une entreprise
Nous caractérisons un employé par un identifiant, un nom un prénom, sa ville et son pays de
résidence.
L’entreprise désire également sauvegarder les prénoms des enfants de ses employés.
Un projet est identifié par un identifiant (1, 2, ...) et un nom.
Un employé peut être affecté à plusieurs projets.
Plusieurs employés peuvent travailler sur un même projet

MME HIBA LAHMER 62


Normalisation: exemple
MODÈLE E/A – PROPOSITION DE MODÈLE E/A – PROPOSITION DE
L’ÉTUDIANT N°1 L’ÉTUDIANT N°2

Employés
Employés
idEmp
0..N 0..N Projets idEmp
NomEmp 0..N 0..N Projets
idProjet NomEmp
prEmp Affecter
prEmp Affecter idProjet
VilleEmp nomProjet
VilleEmp nomProjet
Pays
Pays
prEnf
prEnf1
prEnf2
prEnf3

MME HIBA LAHMER 63


Normalisation: exemple
Modèle E/A – proposition de l’étudiant N°3

Employés
idEmp
NomEmp 0..N 0..N Projets
prEmp Affecter idProjet
VilleEmp nomProjet Enfants
Pays 0..N
1..1 PrEnf
Posséder
prEnf

MME HIBA LAHMER 64


Normalisation: exemple
Table Employes (Proposition de l’étudiant N°1)
Employes idEmp nomEmp prEmp villeEmp paysEmp prEnf
1 Salmi Lamia Tunis Tunisie Lina
2 Mejri Leyla Ariana Tunisie Eya, Mohamed, Beya
3 Gasmi Hamed Ariana Tunisie
4 Ksouri Ridha Tunis Tunisie Samar, Wided, Youssef, Hamza
Table Employes (Proposition de l’étudiant N°2)
Employes idEmp nomEmp prEmp villeEmp paysEmp prEnf1 prEnf2 prEnf3
1 Salmi Lamia Tunis Tunisie Lina
2 Mejri Leyla Ariana Tunisie Eya Mohamed Beya
3 Gasmi Hamed Ariana Tunisie

MME HIBA LAHMER 65


Normalisation: 1ère forme normale (1FN)

Une relation est en 1ère forme normale (1FN ou 1NF) si tous les attributs sont des attributs
atomiques et monovalué.

Toute intersection de ligne(enregistrement) et de


colonne(champ) ne doit
contenir qu'une seule information

MME HIBA LAHMER 66


Normalisation: 1ère forme normale (1FN)
Enfants #idEmp prEnf
• Garder dans la table Employes les attributs monovalués 1 Lina
• Créer une nouvelle table pour les attributs multivalués (ici:
2 Eya
prénoms des enfants).
• Ajouter dans la clé de cette table nouvellement créée la clé de la 2 Mohamed
table initiale (référence) 2 Beya
• Cette modélisation rejoint la proposition de l’étudiant N°3. 4 Samar
4 Wided
Employes idEmp nomEmp prEmp villeEmp paysEmp
4 Youssef
1 Salmi Lamia Tunis Tunisie
4 Hamza
2 Mejri Leyla Ariana Tunisie
3 Gasmi Hamed Ariana Tunisie
4 Ksouri Ridha Tunis Tunisie

MME HIBA LAHMER 67


Normalisation: 1ère forme normale (1FN)

Si l’on reprend l’exemple de la table CLIENT où adrCl était un attribut composé:


CLIENT(numCl, nomCl, prenomCl, dateNaissCl, adrCl)
1FN

CLIENT(numCl, nomCl, prenomCl, dateNaissCl, rueCl, codePostalCl, villeCl)


Si un CLIENT a plusieurs adresses il faut créer une nouvelle table
Adresses (idAd, rueCl,codePostalCl,villeCl, #numCl)

MME HIBA LAHMER 68


Normalisation: 2ème forme Normale (2FN)
On suppose que l’une des conceptions a abouti à cette relation

Affectation idEmp idPrj nomEmp prEmp villeEmp paysEmp nomPrj

1 1 Salmi Lamia Tunis Tunisie SiteWebEnstab


1 2 Salmi Lamia Tunis Tunisie SiteWebIstic
2 1 Mejri Leyla Ariana Tunisie SiteWebEnstab
3 1 Gasmi Hamed Ariana Tunisie SieWebEnstab
3 2 Gasmi Hamed Ariana Tunisie SieWebIstic
4 2 Ksouri Ridha Tunis Tunisie SiteWebIstic

MME HIBA LAHMER 69


Normalisation: 2ème forme normale (2FN)
Dépendance Fonctionnelle:
◦ Définition: Un attribut Y dépend fonctionnellement d'un attribut X si et seulement si une
valeur de X induit une unique valeur de Y. ( Pas l’inverse )
◦ Notation: X -> Y.
◦ Exemple: Si X est l’identifiant de l’employé idEmp et Y le prénom de l’employé prEmp alors
idEmp -> prEmp.

Par contre, on n’a pas prEmp->idEmp car deux employés peuvent porter le même prénom.

MME HIBA LAHMER 70


Normalisation: 2ème forme normale (2FN)
Un attribut non clé primaire ne doit pas dépendre d'une
partie de la clé
primaire. Il doit en dépendre entièrement.
Une relation est en 2ème forme normale (2FN ou 2NF):
◦ Si elle est en 1FN
◦ Et si tout attribut non clé dépend fonctionnellement de toute la clé (et pas seulement d’une
partie de celle-ci).

MME HIBA LAHMER 71


Normalisation: 2ème forme Normale (2FN)
Il faut repérer les dépendances fonctionnelles

Affecta idEmp idPrj nomEmp prEmp villeEmp paysEmp nomPrj


ation
1 1 Salmi Lamia Tunis Tunisie SiteWebEnstab
1 2 Salmi Lamia Tunis Tunisie SiteWebIstic
2 1 Mejri Leyla Ariana Tunisie SiteWebEnstab
3 1 Gasmi Hamed Ariana Tunisie SieWebEnstab
3 2 Gasmi Hamed Ariana Tunisie SieWebIstic
4 2 Ksouri Ridha Tunis Tunisie SiteWebIstic

MME HIBA LAHMER 72


Normalisation: 2ème forme Normale (2FN)
Affectation #idEmp #idPrj • Pour normaliser en 2FN une table ayant une clé
1 1 composée, il faut la décomposer en:
• Des tables, formée chacune d’une partie de
1 2 la Clé et des attributs qui dépendent de
2 1 cette partie.
3 1 • Une table formée de la clé composée et
éventuellement des attributs restants.
3 2
Projet idPrj nomPrj
4 2
1 SiteWebEnstab
Employe idEmp nomEmp prEmp villeEmp paysEmp
2 SiteWebIstic
1 Salmi Lamia Tunis Tunisie
2 Mejri Leyla Ariana Tunisie
3 Gasmi Hamed Ariana Tunisie
4 Ksouri Ridha Tunis Tunisie

MME HIBA LAHMER 73


Normalisation: 3ème forme normale (3FN)
Un attribut non clé primaire ne doit pas dépendre d'un
autre champ non clé primaire.

Une relation est en 3ème forme normale (3FN ou 3NF):


◦ Si elle est en 2FN
◦ Et si tout attribut non clé ne dépend pas fonctionnellement d’un attribut non clé.

MME HIBA LAHMER 74


Normalisation: 3ème forme Normale (3FN)

Employe idEmp nomEmp prEmp villeEmp paysEmp


1 Salmi Lamia Tunis Tunisie
Ville villeEmp paysEmp
2 Mejri Leyla Ariana Tunisie
Tunis Tunisie
3 Gasmi Hamed Ariana Tunisie
Ariana Tunisie
4 Ksouri Ridha Tunis Tunisie
• Pour normaliser en 3FN une table ayant une
DF transitive, il faut la décomposer en: Employe idEmp nomEmp prEmp #villeEmp
• Une table formée de l’attribut 1 Salmi Lamia Tunis
redondant et de l’attribut dont il 2 Mejri Leyla Ariana
dépend (dans notre exemple villeEmp).
• Une table formée de la clé, de l’attribut 3 Gasmi Hamed Ariana
villeEmp comme clé étrangère et des 4 Ksouri Ridha Tunis
autres attributs.

MME HIBA LAHMER 75


Normalisation: Application
Vérifier si cette relation est en 1FN: PUBLICATIONS(idP, titreP, auteursP)
PUBLICATIONS idP titreP auteursP
3214 Conception des BD Emna Ayed, Jamel Gueddich
1237 Les BD relationnelles Omar Ezzine, Safa Bouraoui, Kacem Joudi
9756 Les Bases de données Faycel Frigui
4208 Du MCD au MLD Jamel Gueddich, Safa Bouraoui

Appliquer le processus de normalisation sur la table COMMANDE définie


par:
COMMANDE(numCde, date, numClient, nomClient, nomArt, designArt,
qtite).
MME HIBA LAHMER 76
Normalisation: Récapitulation
• Une relation est en première forme normale si et seulement
si tout attribut contient une valeur atomique.
1FN
• elle est en première forme normale ;
• tout attribut non-clé ne dépend pas que d'une partie de
2FN cette clé. Il en dépend entièrement.

• elle est en deuxième forme normale ;


• tout attribut n'appartenant pas à la clé ne dépend pas d'un
3FN attribut non-clé

MME HIBA LAHMER 77


Bases de données
Algèbre Relationnelle
MME HIBA LAHMER 2A
2021/2022
Plan
• Introduction
• La Sélection
• L’Union
• L’Intersection
•La différence
•Produit Cartésien
• Jointure

MME HIBA LAHMER 79


Introduction
Le modèle relationnel est un modèle d'organisation des données sous forme de relations (tables), Les
colonnes des tables s'appellent des attributs et les lignes des n-uplets ou enregistrements.
l’algèbre relationnelle est un ensemble d’opérations manipulant des relations.
✓ l’union de deux relations
✓ l’intersection de deux relations
✓ La différence de deux relations,
✓ Sélectionner une partie de la relation,
✓ Effectuer des produits cartésiens ou des projections.
Une requête est une expression algébrique qui s’applique à un ensemble de relations (opérandes )et
produit une nouvelle relation (le résultat de la requête).

MME HIBA LAHMER 80


La sélection
La sélection T = σC(R) ou T = SELECTION (R, condition) permet d’extraire de la relation R les
lignes les qui satisfont un critère de sélection C
Le critère C peut être:
◦ Une comparaison d’un attribut Ai à une constante a ou un autre attribut Aj (>, ≥, <, ≤, =, ≠).
◦ Une combinaison de critères en utilisant les opérateurs logiques NON, ET (Λ), OU (V)

Exemple :
EMPLOYE idEmp nomEmp prEmp #villeEmp
1 Salmi Lamia Tunis
Nous voulons sélectionner les
2 Mejri Leyla Ariana
employés qui habitent à Ariana ?
3 Gasmi Hamed Ariana
4 Ksouri Ridha Tunis

MME HIBA LAHMER 81


La sélection
EMPLOYE idEmp nomEmp prEmp #villeEmp
1 Salmi Lamia Tunis
2 Mejri Leyla Ariana
3 Gasmi Hamed Ariana
4 Ksouri Ridha Tunis
Resultat = SELECTION (EMPLOYE,
• Exemple: Resultat = σvilleEmp=‘Ariana’(EMPLOYE) villeEmp=‘Ariana’)

Une condition est exprimée à l'aide des


EMPLOYE idEmp nomEmp prEmp #villeEmp opérateurs arithmétiques ( =, >, =, <=, <>) ou
logiques de base (ET, OU, NON).
2 Mejri Leyla Ariana
3 Gasmi Hamed Ariana

MME HIBA LAHMER 82


La projection
La projection EMPLOYE idEmp nomEmp prEmp #villeEmp
T = A, B, C(R) extrait de la relation R un 1 Salmi Lamia Tunis
2 Mejri Leyla Ariana
sous-ensemble d’attributs {A, B, C}
3 Gasmi Hamed Ariana
Notation:
4 Ksouri Ridha Tunis
Resultat = PROJECTION (EMPLOYE,
Resultat = nomEmp, prEmp(EMPLOYE)
nomEmp,prEmp)
EMPLOYE nomEmp prEmp
Salmi Lamia
Mejri Leyla
Gasmi Hamed
Ksouri Ridha

MME HIBA LAHMER 83


L’Union
L’union T = R ꓴ S entre deux relations R et S ayant le même schéma, contient tous les tuples
appartenant aux deux relations R et S
Resultat = R UNION S
R idEmp nomEmp prEmp #villeEmp
Ou
1 Salmi Lamia Tunis Resultat = UNION(R, S)
2 Mejri Leyla Ariana
3 Gasmi Hamed Ariana R ꓴ S idEmp nomEmp prEmp #villeEmp
1 Salmi Lamia Tunis
S idEmp nomEmp prEmp #villeEmp 2 Mejri Leyla Ariana
1 Salmi Lamia Tunis 3 Gasmi Hamed Ariana
4 Ksouri Ridha Tunis 4 Ksouri Ridha Tunis

MME HIBA LAHMER 84


L’Intersection
L’intersection T = R ∩ S entre deux relations R et S ayant le même schéma, contient tous les
tuples appartenant à la fois à R et à S.

R idEmp nomEmp prEmp #villeEmp


1 Salmi Lamia Tunis R∩S idEmp nomEmp prEmp #villeEmp
2 Mejri Leyla Ariana 1 Salmi Lamia Tunis
3 Gasmi Hamed Ariana

S idEmp nomEmp prEmp #villeEmp Resultat = INTERSECTION(R1, R2)


1 Salmi Lamia Tunis
4 Ksouri Ridha Tunis

MME HIBA LAHMER 85


La différence
La différence T = R - S entre deux relations R et S ayant le même schéma, permet de retirer de R
tous les tuples qui existent dans S.
R idEmp nomEmp prEmp #villeEmp
Resultat = DIFFERENCE (R,S)
1 Salmi Lamia Tunis
2 Mejri Leyla Ariana R-S idEmp nomEmp prEmp #villeEmp
3 Gasmi Hamed Ariana 2 Mejri Leyla Ariana
3 Gasmi Hamed Ariana
S idEmp nomEmp prEmp #villeEmp
1 Salmi Lamia Tunis
4 Ksouri Ridha Tunis

MME HIBA LAHMER 86


Produit Cartésien
Le produit cartésien T = R x S entre deux relations R et S, permet de créer une nouvelle relation
T où chaque tuple de R est associé à chaque tuple de S.

T = PRODUIT ( R, S)
R idEmp nomEmp prEmp
1 Salmi Lamia T
2 Mejri Leyla RxS idEmp nomEmp prEmp nomPrj

3 Gasmi Hamed
x 1 Salmi Lamia SiteWebEsprit

2 Mejri Leyla SiteWebEsprit

S nomPrj R S 3 Gasmi Hamed SiteWebEsprit

SiteWebEsptit 1 Salmi Lamia SiteWebClub

2 Mejri Leyla SiteWebClub


SiteWebClub
3 Gasmi Hamed SiteWebClub

MME HIBA LAHMER 87


Jointure
La jointure T = R ⋈A=BS est équivalente à
Produit cartésien R x S et restriction A=B sur les attributs A de R et B de S.
La jointure consiste à rapprocher les lignes de deux relations pour lesquelles les valeurs d’un (ou
plusieurs) attributs sont identiques.
R ⋈CS  σC(RxS)

ça s’exprime souvent sous forme d’égalité liant un attribut de S à un attribut de R

MME HIBA LAHMER 88


Jointure EMPLOYE idEmp nomEmp prEmp #villeEmp
1 Salmi Lamia Tunis
Exemple: EMPLOYE ⋈ idEmp = idEmp ENFANT
2 Mejri Leyla Ariana
R = JOINTURE (EMPLOYE, ENFANT,
3 Gasmi Hamed Ariana
EMPLOYE.prEmp= ENFANT.prEmp) 4 Ksouri Ridha Tunis
ENFA #idE prEnf
NT mp EMPLOYE idEmp nomEmp prEmp #villeEmp prEnf
1 Lina 1 Salmi Lamia Tunis Lina
2 Eya 2 Mejri Leyla Ariana Eya
2 Moham 2 Mejri Leyla Ariana Mohamed
ed 2 Mejri Leyla Ariana Beya
2 Beya 4 Ksouri Ridha Tunis Samar
4 Samar 4 Ksouri Ridha Tunis Wided
4 Wided 4 Ksouri Ridha Tunis Youssef
4 Youssef 4 Ksouri Ridha Tunis Hamza
4 Hamza
MME HIBA LAHMER 89

Vous aimerez peut-être aussi