Vous êtes sur la page 1sur 38

18/02/2021

Cours : Bases de Données


Auditoire : GINF1

Enseignant Responsable

Dr. Mohamed TURKI


Maître Assistant en Informatique - ISIMS, Université de Sfax

Année Universitaire : 2020 – 2021

PLAN

Chapitre 1. Introduction générale

Chapitre 2. Modèle Entité-Association

Chapitre 3. Modèle relationnel

Chapitre 4. Normalisation

Chapitre 5. Langage SQL

Chapitre 6. Définition de Données avec SQL

Chapitre 7. Manipulation de Données avec SQL

Chapitre 8. Interrogation de Données avec SQL

Cours BD © M. TURKI (2020 / 2021) 2

1
18/02/2021

Cours : Bases de Données


Auditoire : GINF1

Chapitre 1 :
Introduction générale

Dr. Mohamed TURKI


Maître Assistant en Informatique, ISIMS - Université de Sfax

3 A.U. 2020 – 2021

Notions de base

Base de Données (BD) :


Une BD est un ensemble structuré de données persistantes, modélisant un
univers précis et accessible à plusieurs utilisateurs en même temps.

Système de Gestion de Base de Données (SGBD) :


Un SGBD est un logiciel informatique permettant de créer, de gérer et
d’interroger efficacement une base de données indépendamment du
domaine d’application.

Cours BD © M. TURKI (2020 / 2021) 4

2
18/02/2021

Architecture Logique des SGBD : ANSI/SPARC

L'architecture ANSI/SPARC (American National Standards Institute / Standard


Planning and Requirements Comittee), datant de 1975, définit trois niveaux
d'abstraction pour un système de gestion de bases de données :
Niveau interne (ou physique) : il définit la façon selon laquelle sont stockées les
données et les méthodes pour y accéder.
Niveau conceptuel : Il définit l'arrangement des informations au sein de la base de
données. Le schéma conceptuel est produit par une analyse de l'application à
modéliser et par intégration des différentes vues utilisateurs. Ce schéma décrit la
structure de la base indépendamment de son implantation.
Niveau externe : il définit les vues des utilisateurs. Le schéma externe correspond
à une description d’une partie de la BD obtenue à partir de la base physique
correspondante à la vision d’un programme ou d’un utilisateur.

Cours BD © M. TURKI (2020 / 2021) 5

Architecture Logique des SGBD : ANSI/SPARC

User 1 User 2 User 3

Niveau Externe Vue Externe 1 Vue Externe 2 Vue Externe 3

Niveau Conceptuel Schéma conceptuel

Niveau Interne Schéma Interne

Organisation physique de stockage BD

Cours BD © M. TURKI (2020 / 2021) 6

3
18/02/2021

Fonctions d’un SGBD

 Structuration et description des données.


 Recherche de données à travers un langage d’interrogation.
 Mise à jour des données : Insertion, modification,
suppression.
 Transformation de données : Le SGBD doit être capable de
faire des transformations entre chaque niveau, de manière à
transformer une requête exprimée en termes de niveau externe
en requête du niveau conceptuel puis du niveau physique.

Cours BD © M. TURKI (2020 / 2021) 7

Objectifs des SGBD


Indépendance physique : La façon dont les données sont définies doit être
indépendante des structures de stockages utilisées.
Indépendance logique : Un même ensemble de données peut être vu
différemment par des utilisateurs différents. Toutes ces visions personnelles des
données doivent être intégrées dans une vision globale.
Efficacité des accès aux données : Utilisation de langages permettant
d'obtenir des réponses aux interrogations en un temps "raisonnable". Ils doivent
donc être optimisés et, entre autres, il faut un mécanisme permettant de
minimiser le nombre d'accès disques. Tout ceci, bien sur, de façon complètement
transparente pour l'utilisateur.
Administration centralisée des données : Des visions différentes des
données (entre autres) se résolvent plus facilement si les données sont
administrées de façon centralisée.
Non redondance des données : Afin d'éviter les problèmes lors des mises à
jour, chaque donnée ne doit être présente qu'une seule fois dans la base.
Cours BD © M. TURKI (2020 / 2021) 8

4
18/02/2021

Objectifs des SGBD


Cohérence des données : Les données sont soumises à un certain nombre de
contraintes d'intégrité qui définissent un état cohérent de la base. Elles doivent pouvoir
être exprimées simplement et vérifiées automatiquement à chaque insertion, modification
ou suppression des données.
Partageabilité des données : Il s'agit de permettre à plusieurs utilisateurs d'accéder aux
mêmes données au même moment.
Sécurité des données : Les données doivent pouvoir être protégées contre les accès
non autorisés. Pour cela, il faut pouvoir associer à chaque utilisateur des droits d'accès aux
données.
Résistance aux pannes : Que se passe-t-il si une panne survient au milieu d'une
modification, si certains fichiers contenant les données deviennent illisibles ?
Les pannes, bien qu'étant assez rares, se produisent quand même de temps en temps. Il
faut pouvoir, lorsque l'une d'elles arrive, récupérer une base dans un état "sain". Ainsi,
après une panne intervenant au milieu d'une modification deux solutions sont
possibles : soit récupérer les données dans l'état dans lequel elles étaient avant la
modification, soit terminé l'opération interrompue.
Cours BD © M. TURKI (2020 / 2021) 9

Historique des BD

Jusqu’aux années 60: Organisation classique en fichier


Fin des années 60: apparition des premiers Systèmes de Gestion de Bases de
Données (SGBD), les systèmes réseaux et hiérarchiques.
Début des années 70: deuxième génération des SGBD, les systèmes
relationnels.
Début des années 90: troisième génération des SGBD, les systèmes orientés
objets.
Début des années 2000: apparition des entrepôts de données (data
warehouse), OLAP,
Vers les années 2010: apparition des BD NoSql

Cours BD © M.
10 TURKI (2020 / 2021)

10

5
18/02/2021

Utilisation des BD

Les smartphones
Enregistrer les paramètres des applications
Le stockage du carnet d’adresse et faciliter ainsi le tri des contacts
Données distantes mises en cache

Les navigateurs
Le stockage des signets
L’enregistrement des mots de passes
Le tri des vignettes de l’écran d’accueil

Les réseaux sociaux


Stockage des paramètres des comptes
Stockage des recherches effectuées
Stockages des photos, des vidéos…
11

11

Utilisation des BD
Applications informatiques au sein des organisations
Exemples d’applications au sein de l’ISIMS : gestion des emplois du
temps, gestion des examens, gestion des stages, gestion de
scolarité,… stockage des données sur les étudiants, enseignants,
les examens, les filières, les notes, les salles,etc

Applications mobiles

12

12

6
18/02/2021

Processus de conception d’une BD

modélisation

Cours BD © M. TURKI (2020 / 2021) 13

13

Conception/Modélisation de données
Les applications informatiques et les utilisateurs ont conjointement subi
d’importantes évolutions qualitatives et quantitatives.
Comme conséquence de la vulgarisation de l’informatique dans divers
domaines et la complexité sans cesse croissante des applications à informatiser,
il y a eu nécessité d’avoir une représentation intermédiaire entre le réel
perçu et ce qui va être effectivement implanté.
Cette représentation intermédiaire vise la réduction de l’écart entre le réel à
informatiser et son implantation physique finale. Et ce, en utilisant un modèle
de représentation.

Concevoir : c’est se prêter à un exercice intellectuel permettant de déterminer un


modèle ou un prototype avant de procéder à sa réalisation.

Concevoir un SI : c’est imaginer, créer et représenter de la manière la plus


sémantique possible le SI à travers des modèles.

Cours BD © M. TURKI (2020 / 2021) 14

14

7
18/02/2021

Conception/Modélisation de données

Un modèle est donc une abstraction du réel à informatiser (on dit aussi
l’ensemble du discours) en utilisant un ensemble de concepts et un ensemble
de règles.
Les concepts ont pour rôle de fournir les moyens de représenter les entités
du monde réel et les relations qui existent entre elles.
Les règles sont définies sur les concepts du modèle et régularisent leur
utilisation.
Une méthode de conception est un ensemble de modèles avec un certain
nombre de démarches ou processus de conception ou étapes.
Les étapes de conception servent à guider progressivement la transformation
de l’application vers l’implantation ; C’est la modélisation.

Cours BD © M. TURKI (2020 / 2021) 15

15

Le modèle de données relationnel

Introduit par Codd au début des années 70.

La vocation de ce modèle est de :


représenter les données à modéliser sous une forme formelle mais
simple.
interroger et contrôler les données qu’il gère.

Les objectifs de base de ce modèle peuvent se résumer :


Garantir l’indépendance Programmes / Données (= dichotomie D/T)
Garantir la cohérence et la non redondance des données et
Développer un LDD et un LMD basés sur les mathématiques.

Cours BD © M. TURKI (2020 / 2021) 16

16

8
18/02/2021

Le modèle de données relationnel

Application 3 :
Application 1 : Application 2 :
Gestion des
Planification des vols Gestion du personnel
réservations

P1 P2 P3

Bibliothèque standard de programmes généraux SGBDR

Réservoir commun de données BDR

Chaque application possède ses propres programmes de traitement (qui reposent sur une bibliothèque commune)
Les applications PARTAGENT un réservoir commun de données
Absence de redondance -> plus d ’incohérences de mises à jour
Généricité des traitements -> minimisation des développements
Minimisation de la maintenance
Le SGBD contient également une description complète des structures et des contraintes, stockée dans le catalogue
(méta-données)

Cours BD © M. TURKI (2020 / 2021) 17

17

Le modèle de données relationnel

Un domaine donné

Modélisation

Schéma Relationnel
Transformation
en modèle
relationnel Normalisation

Modèle Entité/Association
Schéma Relationnel en BCNF

Cours BD © M. TURKI (2020 / 2021) 18

18

9
18/02/2021

Cours : Bases de Données


Auditoire : GINF1

Chapitre 2 :
Modèle Entité-Association

Dr. Mohamed TURKI


Maître Assistant en Informatique, ISIMS - Université de Sfax

A.U. 2020 – 2021


19

19

Elément de contenu

Introduction
Concepts fondamentaux
Entité
Association
Propriété

Cours BD © M. TURKI (2020 / 2021) 20

20

10
18/02/2021

Introduction
Il est difficile de modéliser un domaine sous une forme
directement utilisable par un SGBD. Une ou plusieurs
modélisations intermédiaires sont donc utiles.
Un modèle est une représentation d'un système réel, qu'elle
soit mentale ou physique, exprimée sous forme verbale,
graphique ou mathématique.
Le modèle Entité-Association (E/A), appelé aussi Objet-
Association ou Objet-Relation, constitue l’une des premières
et des plus courantes modélisations. Ce modèle, présenté par
Chen (1976), permet une description naturelle du monde réel
à partir des concepts d’entité et d’association.

Cours BD © M. TURKI (2020 / 2021) 21

21

Concepts fondamentaux
Par analogie avec la programmation et l'algorithmique, dans le
domaine des bases de données le modèle E/A joue le même
rôle qu’un algorithme, il intervient dans le cycle suivant :

Enoncé Programmation
Programme codifié

Analyse et
résolution Codification

Algorithme Système Hiérarchique


d'information Réel perçu Conception Relationnel
Modèle de données
de l'entreprise Réseau

Modélisation Traduction

Représentation graphique
des données

Diagramme
E/A
Cours BD © M. TURKI (2020 / 2021) 22

22

11
18/02/2021

Concepts fondamentaux

La représentation du modèle entité-association


s’appuie sur trois concepts de base :
L’entité ou objet,
l’association,
la propriété.

Cours BD © M. TURKI (2020 / 2021) 23

23

Concept « Entité »
Entité
Une Entité peut être un objet, une personne, un lieu, un statut, un
événement qui ont une existence dans le monde réel. Il peut être
physique (ou concret), virtuel, conceptuel, imaginaire, artificiel (ou
abstrait).
Le seul critère qui permet de juger de la pertinence d'une entité dans
un modèle est son utilité pour l'utilisateur.
Toute entité possède un certain nombre de caractéristiques
(attributs) qui lui sont spécifiques.

Exemples:
L’étudiant Mohamed Salah : objet concret
La commande N°123 : objet concret
Le cours Base de données : objet abstrait
Evénement SBB : objet abstrait

Cours BD © M. TURKI (2020 / 2021) 24

24

12
18/02/2021

Concept « Entité »
Type-entité
Un type d’entité est un ensemble d'entités qui possèdent les
mêmes caractéristiques.
Un type d’entité est donc décrit par son nom et ses attributs.
Représentation graphique d’un type d’entité :

Nom Type Entité

Exemples :
Exemples de type-entité : Personne, Automobile, Région…
Exemples d'entité : Mohamed, Ahmed, Meriam, ma voiture, Sfax
Exemple de représentation graphique d'un type-entité :
Personne

Cours BD © M. TURKI (2020 / 2021) 25

25

Concept « Association »
Association
Une association (ou relation) est un lien entre plusieurs entités.
Une Association est une correspondance entre des entités et
éventuellement entre une entité et elle-même. De manière générale,
on désigne une association par un verbe.
Exemples :
Commander, livrer, enseigner, s’inscrire, participer, suivre, etc.
Type-Association
Un type-association(ou un type-relation) désigne un ensemble de
relations qui possèdent les mêmes caractéristiques. Le type-
association décrit un lien entre plusieurs type-entités. Les associations
de ce type-association lient des entités de ces type-entités.
Représentation graphique Type Association

Cours BD © M. TURKI (2020 / 2021) 26

26

13
18/02/2021

Concept « Association »
Exemples :
Liaison ENSEIGNER (ENSEIGNANT, COURS)
Liaison COMMANDER (CLIENT, COMMANDE)
« La voiture X appartient à la personne Y » est une association entre les
entités voiture X et personne Y.

Voiture Appartient Personne

« L’enseignant W travaille dans le Département Z » est une association


entre les entités Enseignant W et Département Z

Enseignant Travailler Département

Remarque :
Comme les type-entités, les type-associations sont définis à l’aide d’attributs qui prennent
leur valeur dans les associations.
Cours BD © M. TURKI (2020 / 2021) 27

27

Concept « Association »
Degré d’une association
Nombre de types d’entités qui interviennent dans cette association. Une
association entre deux éléments est une association binaire.
Exemple :
Voiture Appartient Personne

Type-association réflexif
Un type-association est qualifié de réflexif quand il matérialise une relation
entre un type-entité et lui-même.
Exemple :
Employé Diriger

Cours BD © M. TURKI (2020 / 2021) 28

28

14
18/02/2021

Concept « Association »
Cardinalités d’une association
C’est le nombre maximal de participations d’une instance
(occurrence) de l’entité dans l’association.
1-1 une entité de E1 est reliée à au plus une entité de E2; de plus,
une entité de E2 est reliée à au plus une entité de E1.
1-N une entité E1 est reliée à un nombre arbitraire d'entités de E2
(donc, il n'y a pas de maximum); de plus, une entité de E2 est reliée à
au plus une entité de E1.
M-N une entité E1 est reliée à un nombre arbitraire d'entités de E2
(donc, il n'y a pas de maximum); une entité E2 est reliée à un
nombre arbitraire d'entités de E1 (donc, il n'y a pas de maximum)

Cours BD © M. TURKI (2020 / 2021) 29

29

Concept « Association »
Cardinalités d’une association :

Les différents types de cardinalités peuvent êtres résumés par la figure suivante :
E1 E2 E1 E2 E1 E2

N-M 1-N 1-1


Une instance de E1 peut être liée à Une instance de E1 peut L’instance de E1 peut être liée qu’à
plusieurs de E2 et réciproquement être liée à plusieurs de E2. une seule instance de E2 et
Une instance de E2 ne réciproquement
peut être liée qu’à une
instance de E1
Cours BD © M. TURKI (2020 / 2021) 30

30

15
18/02/2021

Concept « Association »
Exemples :
Association de type 1-N : Liens hiérarchiques
1 N
Client Passer Commande

Une occurrence de Client permet de déterminer une ou plusieurs occurrences de Commande et une occurrence de
Commande correspond au plus à une occurrence de Client.

Association de type N-M : Liens maillés


N M
Produit Commander Commande

On n'a aucune restriction sur le nombre d'occurrences de Produit et de Commande intervenant dans l'association.
En effet, un produit peut être commandé dans plusieurs commandes et dans une commande on peut commander
plusieurs produits.

Association de type 1-1 :


1 1
Commande Facturer Facture

Le lien 1:1, exprime qu'à une occurrence de Commande correspond au plus une occurrence de Facture et inversement.

Cours BD © M. TURKI (2020 / 2021) 31

31

Concept « Propriété »
Propriété
Une propriété (ou un attribut) est une caractéristique associée
à un type-entité ou à un type-association. Les propriétés
décrivent une entités (ex : nom, âge, adresse, salaire …). Ce
sont les attributs des entités qui possèdent des valeurs.
Représentation graphique des propriétés :

Type- Entité Type-association

Propriété1 Propriété1
Propriété2 Propriété2
….. …..

Cours BD © M. TURKI (2020 / 2021) 32

32

16
18/02/2021

Concept « Propriété »

La description des type-entités est présentée de la façon


suivante :
Nom Type-entité [Nom-Att1, Nom-Att2,…]

La description des type-associations est présentée de la façon


suivante :
Nom Type-association (Nom-Type-entité1, Nom-Type-entité2,…)
Nom Type-association[-Att1, Att2, …]

Cours BD © M. TURKI (2020 / 2021) 33

33

Concept « Propriété »
Exemple: Type d’entité

Employé Numéro Nom DateNaiss

97000 Ali Tounsi 21/10/60


Numéro
Nom 97001 Mohamed Frikha 03/05/64

DateNaiss 97002 … …

Nom du type-entité : EMPLOYE


Les attributs/rubriques : Numéro, Nom, DateNaiss
Entité : Correspond à une ligne du tableau :
<97000, Ali Tounsi, 21/10/60> est une entité
Description du type-entité: EMPLOYE [Numéro, Nom, DateNaiss]

Cours BD © M. TURKI (2020 / 2021) 34

34

17
18/02/2021

Concept « Propriété »
Exemple Type-association
CodeFrs CodePr PUVente
FR1 PR2 21.000
FR2 PR1 19.500
FR2 PR3 35.000
FR3 PR1 19.000
… … …

La rubrique PUVente est ni descriptive de Fournisseur, ni descriptive de Produit, elle dépend à la fois
d’un Fournisseur et d’un Produit. C’est une rubrique de liaison (appelée aussi rubrique d’association).
La description de la Liaison :
FOURNIR (FORNISSEUR, PRODUIT) se présente comme suit :
FOURNIR [CodFrs, CodPr, PUVente]
Au niveau du type-entité ou du type-association, chaque attribut possède un domaine qui définit
l’ensemble des valeurs possibles qui peuvent être choisies pour lui (entier, chaîne de caractères,
booléen, . . .).
Au niveau de l’entité, chaque attribut possède une valeur compatible avec son domaine. Exemple :
code postal : numérique, code article : alphanumérique, date naissance : date, …

Cours BD © M. TURKI (2020 / 2021) 35

35

Concept « Propriété »
Domaines ou types des attributs :
C’est l’ensemble des valeurs que peut prendre l’attribut.
Exemple : Nom : Ali Tounsi, Mohamed Frikha, …

Propriété Identifiant
Un attribut ou groupe d’attributs dont la valeur (valeurs combinées)
diffère pour chaque entité de l'ensemble. Sa valeur permet d'identifier
chaque entité de façon unique. Elle correspond à la notion de clé
primaire.
Ensemble de propriétés dont la valeur ne peut pas appartenir à plus
qu’une entité.
Les propriétés identifiants doivent être :
Fixées pour chaque type-entité
Soulignées dans le diagramme ER
Cours BD © M. TURKI (2020 / 2021) 36

36

18
18/02/2021

Concept « Propriété »
Exemple: Référence de type-entité : Employé

Numéro
Nom
Dat-Nais

Exemple: Référence d’un type-association :


FOURNIR [Cod-frs, Cod-PR, PU-vente]
Cod-frs, Cod-PR représentent la référence de la liaison FOURNIR.

Fournir

Cod_frs
Cod_pr
PU_vente

Cours BD © M. TURKI (2020 / 2021) 37

37

Cours : Bases de Données


Auditoire : GINF1

Chapitre 3 :
Modèle Relationnel

Dr. Mohamed TURKI


Maître Assistant en Informatique, ISIMS - Université de Sfax

38 A.U. 2020 – 2021

38

19
18/02/2021

Elément de contenu

Introduction
Concepts fondamentaux
Domaine
Schéma de relation
Relation
Clé d’une relation
Schéma de BD et contrainte d’intégrité
Règles de passage du modèle E/A au modèle Relationnel

Cours BD © M. TURKI (2020 / 2021) 39

39

Introduction
Le modèle relationnel a été proposé par Edgar Frank Codd en
1970.
Il est souvent considéré comme le plus simple et le plus élégant
des modèles. Sa simplicité est due à une vision tabulaire des
données très intuitive. Son élégance résulte de bases formelles
issues de la théorie mathématique des ensembles.
Parmi les objectifs du modèle relationnel nous retenons deux :
Permettre un haut degré d'indépendance entre les applications
(programmes, interfaces) et la représentation interne des données
(fichiers, chemins d'accès)
Etablir une base solide pour traiter les problèmes de cohérence et de
redondance des données.
Cours BD © M. TURKI (2020 / 2021) 40

40

20
18/02/2021

Introduction

Le modèle relationnel présente également de nombreux


avantages dus au fait qu'il soit basé sur la théorie des ensembles.
Il offre un langage de manipulation des données ensemblistes
grâce à l'algèbre relationnelle et grâce à des langages
assertionnels qui permettent de spécifier ce que l'on souhaite
obtenir sans dire comment l'obtenir.
Le SGBD est responsable de la politique d'exécution des
requêtes.

Cours BD © M. TURKI (2020 / 2021) 41

41

Concepts fondamentaux

Plusieurs concepts fondamentaux se rapportent au


modèle relationnel dont nous citons:
Domaine
Schéma de relation
Relation
Clé d’une relation

Cours BD © M. TURKI (2020 / 2021) 42

42

21
18/02/2021

Notion de « Domaine »
Un domaine D est un ensemble de valeurs caractérisé par un
nom. Du point de vue du modèle relationnel, chaque valeur du
domaine est atomique et donc indivisible.
Cette notion permet de définir les ensembles de départ.
Un domaine peut être défini en extension en donnant la liste
des valeurs composantes ou en compréhension en définissant
une propriété caractéristique du domaine.
Du point de vue de la réalisation informatique, le domaine se
restreint à la notion de type de données.
Exemple :
Domaine(coleur) = { bleu, rouge, blanc,…}
Domaine(prénom) = { ali, salah,…}

Cours BD © M. TURKI (2020 / 2021) 43

43

Notion de « Schéma de relation »


Un schéma de relation R, dénoté R(A1:D1, A2:D2, ..., An:Dn)
est un ensemble d’attributs.
Chaque attribut Ai est le nom d’un rôle joué par son domaine
Di dans le schéma de relation R. Un schéma de relation R est
utilisé pour décrire une relation.
Définir un schéma de relation revient à spécifier un nouveau
type de données équivalent à un type RECORD en langage
Pascal par exemple.
Le modèle relationnel n’autorise qu’un seul niveau de structure :
Il n'est pas possible par exemple de définir un attribut Adresse
qui se décompose en Rue, Ville et CodeP.

Cours BD © M. TURKI (2020 / 2021) 44

44

22
18/02/2021

Notion de « Relation »
Une relation r dénotée r(R) du schéma de relation R(A1:D1,
A2:D2, ..., An:Dn) est un ensemble d'enregistrements.
Chaque enregistrement ei est une liste ordonnée de n valeurs ei
= <v1,v2,..,vn> ou chaque vi est une valeur du domaine de
l’attribut Ai ou une valeur nulle spéciale représentant l’absence
d’information.
Enregistrement : C’est une séquence ordonnée d’information.
Appelé également n-uplet ou tuple.
Degré de la relation : c’est le nombre de domaines.
Cardinalité de la relation : c’est le nombre de tuple.

Cours BD © M. TURKI (2020 / 2021) 45

45

Notion de « Relation »
Exemple

Degré (étudiant) = 4
Cardinalité (étudiant) = 2
Cours BD © M. TURKI (2020 / 2021) 46

46

23
18/02/2021

Notion de « Clé d’une relation »

Une clé de relation est un sous-ensemble d'attributs qui


permet de caractériser tout enregistrement d'une relation.
Par définition, une relation est un ensemble d’enregistrement et
il ne peut donc pas y avoir deux enregistrements strictement
identiques dans la même relation.
Il existe généralement un sous-ensemble SC d’attributs d’un
schéma de relation R pour lequel deux enregistrements de
toute relation r(R) ne peuvent avoir la même combinaison de
valeurs pour ces attributs.

Cours BD © M. TURKI (2020 / 2021) 47

47

Notion de « Clé d’une relation »

Tout ensemble d'attributs vérifiant cette propriété est appelé


clé du schéma R. Il existe au moins une clé qui est l'ensemble de
tous les attributs.
Une clé C d'un schéma R est une clé ayant la propriété
suivante : si l'on enlève un attribut à C alors C n'est plus une
clé.
De manière informelle, une clé est un ensemble minimum
d'attributs dont la connaissance des valeurs permet d'identifier
un enregistrement unique de la relation considérée.
Une clé est invariante dans le temps.

Cours BD © M. TURKI (2020 / 2021) 48

48

24
18/02/2021

Notion de « Clé primaire »


En général, il peut y exister plusieurs clés pour une même
relation R.
Parmi les clés possibles, il est obligatoire de choisir une clé
appelée clé primaire.
Lors de la définition d'un schéma cette clé primaire est mise en
évidence (soulignement).

Exemple :
ETUDIANT (MAT_ET, NOM_ET, ADR_ET, DATE_NAIS)
PRODUIT (NUM_PDT, DES_PDT, COUL_PDT)

Cours BD © M. TURKI (2020 / 2021) 49

49

Notion de « Clé étrangère »


Clé étrangère : soit la relation R1(A,B,…,#S,…) : On dit que S
est une clé étrangère de R1 s’il y a une relation R2 ayant pour
clé primaire S.

Exemple :
PRODUIT (NUM_PDT, DES_PDT, COUL_PDT, #NUM_MAG)
MAGASIN (NUM_MAG, ADR_MAG, SRFACE,…)

 Si on connaît la clé primaire d’un produit, on dispose des


informations concernant ce produit ainsi que celles du magasin
où il est stocké.

Cours BD © M. TURKI (2020 / 2021) 50

50

25
18/02/2021

Schéma de BD et contraintes d’intégrité


Un schéma de base de données relationnelle S est un
ensemble de schémas de relation S = {R1, R2, …, Rp} et un
ensemble de contraintes d'intégrité CI.
Une contrainte d’intégrité est une propriété du schéma,
invariante dans le temps et qui doit être vérifiée au moment de
la manipulation de données afin que le résultat soit considéré
correct et cohérent.
A tout instant de l’existence d’une BD, on doit pouvoir ajouter,
modifier ou supprimer une contrainte d’intégrité et le SGBD
doit être capable de vérifier que la base est toujours cohérente
vis à vis du changement apporté à son environnement ; dans le
cas contraire ; il doit rejeter toute intervention.

Cours BD © M. TURKI (2020 / 2021) 51

51

Schéma de BD et contraintes d’intégrité


Il existe différents types de contraintes d'intégrité :
Unicité de la clé d'une relation : le SGBD doit accepter la déclaration
d'un constituant ou d'un groupe de constituants comme clé primaire
(duplication interdite) ou secondaire (duplication possible). Dans tous les
cas, il doit rejeter tout tuple contenant une partie nulle dans la clé.
CI individuelles : il s'agit de contraintes d'intégrité qu'on applique à
chaque tuple individuellement telles que : les contraintes de plage de
valeurs, la liste des valeurs possibles, contraintes entre constituants, etc.

Exemple :
200000 ≤ SALAIRE ≤ 2000000
COULEUR є {bleu, rouge, jaune}
QTE_STK ≥ QTE_CDE

Cours BD © M. TURKI (2020 / 2021) 52

52

26
18/02/2021

Schéma de BD et contraintes d’intégrité


CI intra-relation (dans la relation) : il s'agit des contraintes
entre les champs d'une même relation.
Exemple :
SALAIRE ≤ 2 * Moyenne (SALAIRE).

CI inter-relations (entre les relations) : on les trouve


généralement dans les clés étrangères.
Les contraintes dynamiques : elles concernent le passage
de la base de données d'un état à un autre.
Exemple :
Si on met à jour la table EMPLOYE (SALAIRE),
il faut que Nouveau_SALAIRE ≥ Ancien_SALAIRE.

Cours BD © M. TURKI (2020 / 2021) 53

53

Règles de passage du modèle E/A au


modèle Relationnel
Règle 1 : Toute entité se transforme en une relation dont
l'identifiant sera la clé primaire et admettant comme attributs
les propriétés de l’entité.
Règle 2 : Toute association de type 1-N se traduit par
l'introduction d'une clé étrangère de l'entité source (côté 1)
vers l'entité cible (côté N).
Règle 3 : Toute association de type N-M se traduit par la
création d'une relation dont la clé primaire sera la
concaténation des identifiants des entités participants à cette
association et admettant comme attributs les propriétés
portées par l’association.

Cours BD © M. TURKI (2020 / 2021) 54

54

27
18/02/2021

Cours : Bases de Données


Auditoire : P-GINF

Chapitre 4 :
Normalisation

Dr. Mohamed TURKI


Maître Assistant en Informatique, ISIMS - Université de Sfax

55 A.U. 2020 – 2021

55

Elément de contenu
Qu’est ce que la normalisation
Les dépendances
Les dépendances fonctionnelles
Propriétés des dépendances fonctionnelles
Dépendances fonctionnelles élémentaires
Dépendances fonctionnelles directes
Le processus de normalisation
1ère forme normale (1FN)
2ème forme normale (2FN)
3ème forme normale (3FN)
Forme normale de BOYCE-CODD (BCNF)

Cours BD © M. TURKI (2020 / 2021) 56

56

28
18/02/2021

Qu’est ce que la normalisation


La normalisation constitue un ensemble de règles introduites
dans le modèle relationnel afin de garantir la cohérence de la
BD lors des différentes manipulations de mise à jour.
Son importance commence avec la conception de la structure
de la base puisqu'elle permet d'affecter correctement les
attributs dans les différentes relations ce qui permet de donner
à la base une sémantique traduisant au mieux le monde réel.
Le processus de normalisation passe par plusieurs étapes
constituant les différentes formes normales qui se représentent
comme des règles de construction.
 Normaliser c'est donc représenter sous une forme normative en
respectant certains critères qui assurent la sémantique de la
structure et l'intégrité des données.
Cours BD © M. TURKI (2020 / 2021) 57

57

Les dépendances

Une dépendance est une contrainte que doit vérifier les


données pour que la base soit dans un état cohérent par
rapport à la réalité du monde qu'elle est sensée représenter.
On dit alors que les dépendances sont des contraintes
d'intégrité de la base de données.
Exemple : Un produit ne peut être fourni que par un seul
fournisseur  le produit dépend du fournisseur.

Cours BD © M. TURKI (2020 / 2021) 58

58

29
18/02/2021

Dépendances fonctionnelles

Etant donné une relation R définie de la manière suivante, qui


contient entre autres les attributs A et B : R (…,A,…,B…).
On dit qu'il existe une DF entre l'attribut A et l'attribut B, si et
seulement si, à toute valeur de A on ne peut attribuer à un
instant donné qu'une seule valeur de B.
On note : AB et on lit A donne B ou A détermine
fonctionnellement B.

Cours BD © M. TURKI (2020 / 2021) 59

59

Dépendances fonctionnelles
Remarques:
Si un attribut ou groupe d'attributs d'une relation R détermine par la
dépendance fonctionnelle tous les autres attributs de la même relation, on
dit que cet attribut (ou groupe d'attributs) constitue la clé de la relation (par
convention la clé est toujours soulignée).
Une clé A est dite clé candidate de la relation R, si et seulement si,∀ B un
attribut de R différent de A, B dépend fonctionnellement de A on a : AB et
il n'existe aucun sous attribut B'⊂ B qui peut dépendre fonctionnellement
d'un sous attribut A'⊂ A.
A ⊃A'  B'⊂ B

Une clé A est dite clé primaire si et seulement si A est une clé candidate
de R et toutes les valeurs de A sont définies (A ne contient pas de valeurs
nulles).

Cours BD © M. TURKI (2020 / 2021) 60

60

30
18/02/2021

Propriétés des dépendances fonctionnelles (axiomes


d'amstrong)
Les DF obéissent à des propriétés mathématiques
particulières, dites axiomes d'Armstrong.
Réflexivité: Tout groupe d'attributs se détermine lui même
et détermine chacun de ses attributs (ou sous groupe de ses
attributs).
Soient X et Y des 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é de Y et enrichi des mêmes
autres attributs.
Soient X, Y et Z des attributs :
X→Y ⇒ XZ→YZ

61 Cours BD
© M. TURKI (2020 / 2021)

61

Propriétés des dépendances fonctionnelles (axiomes


d'amstrong)
Transitivité : Si un attribut X détermine un attribut Y et que cet attribut Y
détermine un autre attribut Z, alors X détermine Z.
Soient X, Y et Z des attributs :
X→Y et Y→Z ⇒ X→Z

A partir des axiomes d'Amstrong, on peut déduire un certain nombre de


propriétés supplémentaires :

Pseudo-transitivité : Si un attribut X détermine un autre attribut Y, et que Y


appartient à un groupe G qui détermine un troisième attribut Z, alors le groupe
G' obtenu en substituant Y par X dans G détermine également Z.
Soient, W, X,Y et Z des attributs :
X→Y et WY→Z ⇒ WX→Z
Cette propriété est déduite de l'augmentation et de la réflexivité :
X→Y et WY→Z ⇒ WX→WY et WY→Z ⇒ WX→Z
62 Cours BD © M. TURKI (2020 / 2021)

62

31
18/02/2021

Propriétés des dépendances fonctionnelles (axiomes


d'amstrong)
Union : Si un attribut détermine plusieurs autres attributs, alors il détermine tout
groupe composé de ces attributs.
Soient X, Y et Z des attributs :
X→Y et X→Z ⇒ X→YZ
Cette propriété est déduite de la réflexivité, de l'augmentation et de la transitivité :
X→Y et X→Z ⇒ X→XX et XX→XY et YX→YZ ⇒ X→YZ

Décomposition : Si un attribut détermine un groupe d'attribut, alors il


détermine chacun des attributs de ce groupe pris individuellement.
Soient X, Y et Z des attributs :
X→YZ ⇒ X→Z et X→Y
Cette propriété est déduite de la réflexivité et de la transitivité :
X→YZ ⇒ X→YZ et YZ→Z ⇒ X→Z
X→YZ ⇒ X→YZ et YZ→Y ⇒ X→Y

63 Cours BD © M. TURKI (2020 / 2021)

63

Dépendance fonctionnelle élémentaire

Une DF est dite élémentaire (AB), si et seulement si, il


n'existe aucun A'⊂ A / A'B

Exemples :
numCommande, codeArticle  QteComArt : est élémentaire.

codeEmp, codeFonc  desFonc : n'est pas élémentaire car


codeFoncdescFonc

Cours BD © M. TURKI (2020 / 2021) 64

64

32
18/02/2021

Dépendance fonctionnelle directe

Une DF AB est dite directe si et seulement il n'existe aucun


attribut X de R tel que AX et XB.

Exemple :
codeP  codTva, tauxTva : n'est pas directe car
codeP  codTva et codeTva  tauxTva

Cours BD © M. TURKI (2020 / 2021) 65

65

Fermeture transitive

On appelle fermeture transitive F+ d'un ensemble F de DF,


l'ensemble de toutes les DF qui peuvent être composées par
transitivité à partir des DF de F.
Exemple :
Soit l'ensemble F = {A→B, B→C, B→D, A→E}.
La fermeture transitive de F est F+ = { A→B, B→C, B→D, A→E,
A→C, A→D }

Cours BD © M. TURKI (2020 / 2021) 66

66

33
18/02/2021

Processus de normalisation

Le processus de normalisation conduit à la décomposition de


la relation initiale en un certain nombre d'autres relations sur
lesquelles seront appliquées à nouveau les mêmes règles pour :
Minimiser les données redondantes.
Eviter les anomalies de mise à jour.
Réduire les données incohérentes.
Concevoir des structures de données pour faciliter la maintenance.
Les différentes formes normales sont dépendantes et
structurées. En effet, une relation ne peut être en deuxième
forme normale que si elle est déjà en première forme normale.

Cours BD © M. TURKI (2020 / 2021) 67

67

1ère Forme Normale (1FN)

Une relation R est dite en 1FN si et seulement si:


Elle possède une clé.
Tous ses attributs sont atomiques
Un attribut atomique est un attribut n'ayant à un instant
donné qu'une seule valeur et ne regroupant pas un ensemble
de valeurs.

Cours BD © M. TURKI (2020 / 2021) 68

68

34
18/02/2021

1ère Forme Normale (1FN)

Exemple :
Employé (code, nom, caractéristiques)
E01 X architecte,12/01/2016
E02 Y programmeur,13/04/2018
On constate que les valeurs de l'attribut caractéristiques sont
hétérogènes (appartiennent à plusieurs domaines) donc non
atomiques. Si on les sépare, on obtient :
Employé (code, nom, fonction, date_embauche)
E01 X architecte 12/01/2016
E02 Y programmeur 13/04/2018

Cours BD © M. TURKI (2020 / 2021) 69

69

2ème Forme Normale (2FN)

Une relation R est dite en 2FN si et seulement si:


Elle est en 1FN.
Toutes ses DF sont élémentaires.

Cours BD © M. TURKI (2020 / 2021) 70

70

35
18/02/2021

2ème Forme Normale (2FN)

Exemple :
Salarié (cod_s, cod_dip, nom, intitulé_dip, adresse)
Cette relation est en 1FN mais non en 2FN car les DF (cod_s,
cod_dip)  nom, intitulé_dip, adresse ne sont pas élémentaires
puisque :
Cod_dipintitulé_dip et cod_s nom, adresse

La solution réside dans la décomposition de la relation :


Salarié (cod_s, nom, adresse, #cod_dip)
Diplome (Cod_dip, intitulé_dip)
 Dans la relation Salarié cod_dip figure en tant que clé étrangère.

Cours BD © M. TURKI (2020 / 2021) 71

71

3ème Forme Normale (3FN)

Une relation R est dite en 3FN si et seulement si:


Elle est en 2FN.
Toutes ses DF sont directes.

Cours BD © M. TURKI (2020 / 2021) 72

72

36
18/02/2021

3ème Forme Normale (3FN)

Exemple :
Produit (cod_pdt, design, cod_tva, tauxtva)
Cette relation est en 1FN et en 2FN mais non en 3FN car la DF
cod_pdttauxtva n'est pas directe puisque :
cod_pdtcod_tva et cod_tvatauxtva

La solution réside dans la décomposition de la relation :


Produit (cod_pdt, design, #cod_tva)
TVA (cod_tva ,tauxtva)
Dans la relation Produit, cod_tva figure en tant que clé étrangère.

Cours BD © M. TURKI (2020 / 2021) 73

73

La Forme Normale de BOYCE-CODD (BCNF)

Une relation R est dite en BCNF si et seulement si:


Elle est en 3FN.
Tout attribut non clé de la relation n'est pas source
de DF vers une partie de la clé.

Cours BD © M. TURKI (2020 / 2021) 74

74

37
18/02/2021

La Forme Normale de BOYCE-CODD (BCNF)


Exemple :
Soit la relation suivante : Personne(NSS, Pays, Nom, Ville)
Soit les DF suivantes sur cette relation :
NSS, Pays  Nom
NSS, Pays  Ville
Ville  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 toutes les DFE sont issues d'une clé).
Pour avoir un schéma relationnel en BCNF, il faut décomposer Personne :
Personne (N°SS, #Ville, Nom)
Region (Ville, Pays)

Cours BD © M. TURKI (2020 / 2021) 75

75

Application 1
Soit la relation : R (no_vol, jour, no_pilote, no_avion, typ_vol)
no_vol  typ_vol
no_pilote  no_vol
no_vol, jour  no_pilote
no_vol, jour  no_avion

Questions :
1. Trouver la fermeture transitive F+.
2. Trouver la clé de la relation.
3. Est-ce que cette relation est en BCNF ? Sinon procéder à sa
décomposition.
Cours BD © M. TURKI (2020 / 2021) 76

76

38

Vous aimerez peut-être aussi