Introduction à la Conception de Bases de Données
Introduction à la Conception de Bases de Données
Conception de BD
RK 3
I. Introduction
• I.2. Pourquoi les BD?
– Pour pallier aux problèmes des systèmes traditionnels (systèmes de
fichiers):
• Redondance des données:
– Particularisation des fichiers en fonction des traitements.
• Insécurité des données:
– Accès non autorisés
– Abandon d’un ensemble d’opérations
• Incohérence des données:
– MAJ d’une partie des données redondantes
– Non respect des contraintes d’intégrités
Conception de BD
RK 4
Limites des systèmes de fichiers
Fichiers Applications
BP 2536
Facturation
BP 2536 Commercial
BP 2536
Prospects
Délais de mise à jour
Conception de BD
RK 5
Avec base de données
BP 2536 Facturation
Commercial
Prospects
Conception de BD
RK 6
Propriétés d’une BD
– Une BD permet de :
• Combiner toutes les données
• Centraliser les données
• Partager les données entre plusieurs traitements
– Limitation de la redondance des données
• Appliquer les MAJ qu’une seule fois
• Respecter les contraintes d’intégrités (age d’une personne doit être
un nombre positif)
• Sécuriser les accès
• Abandonner facilement les opérations erronées non validées
• Résister aux pannes éventuelles
Conception de BD
RK 7
I.3. Qu’est ce qu’une BD?
Conception de BD
RK 8
I.4. Avantages des BDs
Conception de BD
RK 9
SGF v.s. SGBD
Figure prise du livre de Rob & Coronel, Database Systems: Design, Implementation,
and Management, Sixth Edition Conception de BD
RK 10
Vision simplifiée d’un SGBD
SGBD externe
SGBD interne
Terminaux
Conception de BD
RK 11
I.5. Architecture fonctionnelle type d’un SGBD
• Architecture Ansi/Sparc – 3 niveaux:
– Niveau externe: le niveau d’expression des besoins des users. Il formalise la
manière dont les utilisateurs voient les données.
• Environnement de programmation / interfaces graphiques / deboggueurs / …
– Niveau conceptuel: décrit la structure de la base de données globalement à
tous les utilisateurs (limite la redondance) .
• Compilation / optimisation des requêtes / maintien de l’intégrité / gestion de la
confidentialité.
– Niveau interne: relatif à la mémoire physique
• Gestion de la mémoire secondaire (fichiers), schéma, index
• Gestion de la concurrence
• Reprise après panne
Conception de BD
RK 12
Architecture à niveaux Ansi/Sparc
Correspondance
externe/conceptuelle
Description
Niveau Conceptuel
Unique
Correspondance
Conceptuelle/physique
Conception de BD
RK 13
Avantage de la séparation en 3 niveaux
Conception de BD
RK 15
Architecture Fonctionnelle de Référence
Requête
Analyse syntaxique
ANALYSEUR Analyse sémantique
Gestion des schémas
Modification de requêtes
META-BASE TRADUCTEUR Contrôle d'intégrité
Contrôle d'autorisation
Ordonnancement
OPTIMISEUR Optimisation
Élaboration d'un plan
Exécution du plan
Plan d'Accès EXECUTEUR Méthodes d'accès
Contrôle de concurrence
Atomicité des transactions
BD
Conception de BD
RK 16
Types de SGBD
• SGBD Hiérarchique:
– Les données sont représentées dans la base sous forme de structure
arborescente.
• Manipulation des données (balayage ascendant/descendant).
– E. g. IMS-IBM
• SGBD réseau:
– Les données sont représentées dans la base sous forme d ’un graphe
quelconque.
– Les programmes:
• ne sont pas indépendants de la structure logique de la base
• doivent indiquer le chemin d’accès aux données
• utilisent un langage complexe pour travailler avec les données.
Conception de BD
RK 17
Types de SGBD
• SGBD relationnel:
– fondé sur la théorie mathématique des relations;
– représentation très simple des données (tables);
– langage non procédural (déclaratif), puissant et simple d’emploi
– SQL est un standard parmi ces langages
– dominent le marché:
• Exemples : Oracle, DB2, SQLServer, Access, DBase, Paradox, … etc.
• SGBD Objet:
– enregistre les données sous forme d’objets
– E. g. O2
• … les « Data WareHousing »!
Conception de BD
RK 18
II. Les Systèmes de Fichiers et
les SGBDs
Conception de BD
RK 19
II. 1. Introduction aux fichiers (1)
SGBD
Demande Enregistrement
d’enregistrement mémoire
mémoire retourné
Gestionnaire
de Fichiers
Demande Page
de page mémoire
mémoire retournée ?
Gestionnaire
de disque
Opération Données
d’entrée/sortie lues sur
sur disque le disque
BD
Conception de BD
RK 20
II. 1. Introduction aux fichiers (2)
• Fichier
Notion introduite dans les années 1950s afin de simplifier
l’utilisation des mémoires secondaires des ordinateurs,
fournir des récipients de données plus manipulables aux
programmes.
• Système d’exploitation : contient un SGF standard.
• SGBD : deux niveaux indépendants (logique et physique)
Traiter et conserver des quantités importantes de
données, et de partager ces données entre plusieurs
programmes.
En général, n’utilise pas le système de fichiers standard
pour des raisons de performance;
Basé au niveau interne des SGBD, complété par des
méthodes d’accès spécifiques.
offre d'autres fonctionnalités :
concurrence, reprise sur pannes,
Conception de BD confidentialité…
RK 21
II. 1. Introduction aux fichiers (3)
données
Données
Metabase
statistiques
Conception de BD
RK 22
Les couches logiciels
Conception de BD
RK 23
II.3. Notions de base sur les
fichiers et SGF (1)
(i-1)*longueur de l'enregistrement.
– Méthodes d'accès: sélective sur le numéro et
Conception de BD
RK 30
éventuellement séquentiellement.
II.5.2. Organisation aléatoire (2)
RK déplacement du fichierConception
lors de son extension
de BD
31
Le Hachage
• Fichier à N enregistrements
• Table T de N pointeurs vers les blocs de données
• Fonction mathématique H
– H : domaine de la clé [0..N-1]
– Un enregistrement de clé K se trouve dans le bloc pointé par
T[H(K)]
• Accès direct au bloc
• Statique/dynamique (moins utilisé)
– Dynamique: selon le nombre d’enregistrements, la taille de T est
1, 2, 4, 8, …, 2N
• Gain de place
• Collision possible
0
1
Ki H(K i )
2
3
T
Conception de BD
RK 32
Techniques de débordement de
blocs
• Avantages:
se dégradent.
– Le taux de remplissage est faible (environ 75%).
Insertion
• index dense : insérer la clé dans l’index si elle n'y est pas
Suppression
ier avec un index trié dense (i.e., toutes les clés existantes y sont répert
Conception de BD
RK 38
Index hiérarchisé --Exemple
Index
Conception de BD
RK 39
Coût de recherche dans un index
nécessairement identifiants.
naissance, ...
Conception de BD
RK 43
• Avantage des index secondaires:
– Plusieurs accès sélectifs selon des attributs différentes
possibles, en plus des accès dus à l'organisation de base du
fichier.
• Inconvénients:
– Multiplier les index secondaires multiplie les E/S lors des
mises à jour des fichiers.
• Il n'est intéressant de faire un index sur une clé que si:
– le nombre d'accès en lecture sur cette clé est très supérieur
au nombre de mises à jour (suppressions, insertions,
modifications de l'attribut clé secondaire) d'enregistrements
– la valeur de la clé est stable (rarement modifiée)
– le "pouvoir sélectif", p, de la clé (nombre total de valeurs
prises par la clé dans le fichier) est supérieur au facteur de
blocage des enregistrements. En effet, une recherche
séquentielle des enregistrements répondant au critère:
attribut = valeur, coûte: N/b E/S
• La même recherche via un index secondaire sur cet
Conception de BD
RK attribut coûte en moyenne: v + N/p E/S (v=nombre de 44
Les méthodes d’accès --Résumé
indépendance logique/physique
• Chaque SGBD a son propre SGF avec ses caractéristiques:
– Les fichiers sont souvent de taille fixe
– des organisations et des accès appropriés
• méthode indexée (données + index avec clé): la plus
courante
implantations différentes selon le SGBD
– Arbre-B les plus utilisés dans les SGBD
• Hachage statique très utilisé
Conception de BD
RK 46
III. Les principaux modèles de
données
1. Introduction
2. Le modèle hiérarchique
3. Le modèle réseau
4. Le modèle Entité-
Association
5. Le modèle relationnel
Conception de BD
RK 47
III.1 Introduction aux modèles de
données
• La vue conceptuelle:
– la représentation de l’ensemble des informations contenues
dans la base de données.
– Vue globale de la BD
– Définie par un schéma conceptuel: (des entités, des
attributs, des relations, des contraintes d'intégrité, …)
• le résultat de la modélisation de l’entreprise.
• écrit au moyen de LDD conceptuel (la modélisation des
données de manière abstraite, indépendamment de la
manière dont elles seront stockées physiquement.)
– Elle se fait indépendamment de toute référence aux
représentations des champs en mémoire, à l’indexage,
aux pointeurs,…bref à l’implémentation en machine.
Modélisation sémantique au
Conception de BD problème de la
RK 48
conception de la base de données.
III.2. Modèle Hiérarchique
III.2.1 Principes
• Modèle hiérarchique (1960)
• Schéma de base arborescent dans lequel les relations entre les
éléments d’un niveau à ceux du niveau immédiatement
inférieur sont de type un à « plusieurs ».
• Il permet une représentation approchée du réel au prix d’une
redondance plus ou forte des données.
• Il impose un chemin d’accès unique à chaque élément de
données (depuis la racine).
• Inconvénient majeur: pas de séparation nette entre le niveau
conceptuel (la représentation du monde) et le niveau physique
Conception de BD
(c-à-d
RK l’indépendance entre données et traitements n’est pas
49
III.2.1 Principes (suite)
nom.
Segment: collection de champs rangés consécutivement
et les applications
Arbre de segments (segment tree): collection de
segments reliés par des associations père-fils sous la
RK
forme d’hiérarchie. Conception de BD
50
III.2.2 Caractéristiques du modèle
• Permet aux type de segments d’être reliés par
des relations parents-enfants (1:n) Enseignant
1
n
Etudiant
Conception de BD
RK 51
III.2.3 Limitations du modèle
comprendre et à utiliser.
Conception de BD
RK 54
Exemple
Conception de BD
RK 55
III. 3. Le Modèle Réseau
III.3.1 Principe
• Le modèle réseau apporte plus de souplesse car il permet de
créer des liens logiques entre des faits ou objets différents.
• L’accès aux données n’est pas limité aux chemins
descendants/ascendants du modèle hiérarchique, peut se faire
de plusieurs façons différentes pour une même donnée.
• Article (Record): collection d’atomes (champs) –type d’articles
• Lien (Set): type d’association orientée entre articles
propriétaires
RK
vers n articles membres.
Conception de BD
56
III.3.2 Caractéristiques
• Les liens entre les articles sont de type 1:n et représentés par
une flèche portant le nom du lien.
• La différence majeure avec le modèle hiérarchique est la
capacité du modèle réseau à représenter les parents multiples
d’un type d’articles.
• Exemple:
Compagnie Division
Pièces détachées
Employés
Conception de BD
RK 57
III.3.2 Caractéristiques (suite)
Conception de BD
RK 58
En conclusion ….
Conception de BD
RK 60
III.4. Modèle Entité / Association
(suite)
• Type d’entité (TE): représentation abstraite d’un ensemble
d’entités perçues comme similaires, ayant les mêmes
caractéristiques et le même comportement.
– Exemple: toutes les personnes (PERSONNE), les véhicules
(VEHICULE), les clients (CLIENTS), …, etc.
– Un attribut associe à chaque entité une valeur
appartenant à un domaine.
• Type d’association (TA): représentation d’un ensemble
d’associations ayant la même sémantique et décrites par les
mêmes caractéristiques.
– Nombre de liens autorisés entre entités
Conception de BD
RK 61
–
Ali Khaled
Jamel
Salem Kamel
modélisé par
Personne
Conception de BD
RK 62
III.4.1 Exemples d’associations
• Unaire: 1 Mari
Personne Marié
1 femme
Conception de BD
RK 63
III.4.1 Exemples d’associations
(suite)
• Plusieurs associations entre 2 types d’entité.
Personne
possède conduit
• Ternaires
Fournisseur Voiture
Conception de BD
RK 64
III.4.2. Diagramme
Entité/Association
• Un graphe entité–association constitue une technique pour
représenter la structure logique d’une base de données de
manière graphique:
Moyen simple et facilement compréhensible pour
communiquer les caractéristiques principales de la
conception d’une BD particulière.
Chaque entité est représentée par un rectangle contenant
le nom du type de l’entité correspondante.
Chaque type d’association est représenté par un losange
contenant le nom de l’association considérée.
Les attributs attachés aux entités sont représentés par des
ellipses (en pointillé).
Dans le diagramme E/A les
Conception clés sont soulignés
de BD
RK 65
III.4.3. Types des associations
• Association binaire (A), reliant deux entités (E et F)
– de type 1:1 (un-à-un): si à une entité de E peut
correspondre par l’association A au plus une entité de F, et
réciproquement.
– de type 1:n (un-à-plusieurs): si à une entité de E peut
correspondre par l’association A plusieurs entités de F
mais à une entité de F au plus une entité de E
– de type n:m (plusiuers-à-plusieurs): si à une entité de E
peut correspondre par l’association
N:m A plusieurs entités de F
et réciproquement.
Personne Voiture
Possède
Entité
Entité Association
Conception de BD
RK 67
III.4.4. Les Attributs
NomPrénom
Date mariage
Conception de BD
RK 68
III.4.4. Attributs (suite)
• Simple (atomique) non décomposé de valeur atomique
(jour)
• Composé: décomposé en d’autres attributs (valeurs
composées)
Exemples: date (jour,mois,année), adresse
( rue,ville,codep)
• Mono-valué: une seule valeur par occurrence
Exemples: nom, date de naissance
• Multi-valué: plusieurs valeurs par occurrence
Exemples: prénoms, téléphones
• Obligatoire: une valeur au moins par occurrence
Exemples: noms, prénoms,
Conception de BD
•RK Manquant/optionnel: peut ne pas prendre de valeur 69
III.4.5. Identifiants des TE et TA
• Identifiant (clé): un attribut ou un ensemble minimum
d’attributs dont les valeurs identifient de manière unique les
instances d’une entité (resp. association)
– Exemple : ETUDIANT( n°E, nom, prénoms, ddn, adresse)
• n°etudiant forme une clé. Par contre nom+prénom ne
forment pas une clé car deux étudiants ne sont pas
époux employé (si
distingués par les instances du TE étudiant
Salaire Person Mariée à
l’un ou l’autre sont toujours uniques). épouse
ne
– Identifiant d’un TA: NomPrénom
Date mariage
é[Link] + é[Link]
Jour Mois année
association
(0:n)
NumE Employé (0:1) Chef
Fournisseur
(0:1) (0:n)
Salaire
NomF Adresse
emploi Livraison
Quantité
(0:n) (0:n)
(0:n)
(0:n) (0:n)
Rayon Vente Article
Conception de BD
RK 74
Exercice: VPC
• Vente par correspondance – spécifications
– Les clients sont caractérisés par un numéro de client, leur
nom, prénom, date de naissance, rue, code postal et ville.
– Ils commandent des produits à une date donnée et dans
une quantité donnée
– Les produits sont caractérisés par un numéro de produit,
leur désignation et leur prix unitaire.
– Chaque produit est fourni par un fournisseur unique (mais
un fournisseur peut fournir plusieurs produits).
– Les fournisseurs sont caractérisés par un numéro de
fournisseur et leur raison sociale.
• Donnez le diagramme E/A correspondant au VPC.
Conception de BD
RK 75
Représentation multiple
Articles
Habillement
HI-FI
Alimentaire
P. Laitiers Plusieurs points de vues
Fruits légumes • un article
viandes • un article alimentaire
• un produit laitier
Conception de BD
RK 76
Généralisation et Spécialisation
TE générique
Articles
Lien IS-A
Spécialisation Généralisation
Articles Articles Articles
Alimentaires habillement HI-FI
TE spécifique
Conception de BD
RK 77
Entité Faible
Conception de BD
RK 78
Exemple
• Prenons l'exemple d'un cinéma, et de ses salles. On peut considérer chaque
salle comme une entité, dotée d'attributs comme la capacité, l'équipement en
son Dolby, ou autre. Il est difficilement imaginable de représenter une salle
sans qu'elle soit rattachée à son cinéma. C'est en effet au niveau du cinéma que
l'on va trouver quelques informations générales comme l'adresse ou le numéro
de téléphone.
• Il est possible de représenter le lien en un cinéma et ses salles par une
association classique. La cardinalité « 1..1 » force la participation d'une salle à
un lien d'association avec un et un seul cinéma. Cette représentation est
correcte, mais présente un inconvénient : on doit créer un identifiant artificiel
id pour le type d'entité Salle, et numéroter toutes les salles, indépendamment
du cinéma auquel elles sont rattachées.
• On peut considérer qu'il est beaucoup plus naturel de numéroter les salles par
un numéro interne à chaque cinéma. La clé d'identification d'une salle est alors
constituée de deux parties :
1. la clé de Cinéma, qui indique dans quel cinéma se trouve la salle ;
2. le numéro de la salle au sein du cinéma.
• En d'autres termes, l'entité salle ne dispose pas d'une identification absolue,
mais d'une identification relative à une autre entité. Bien entendu cela force la
salle a toujours être associée à un et un seul cinéma.
Conception de BD
RK 79
Exemple
Cinéma
1:n
1:1
Salle
Conception de BD
RK 80
III. 5. Le modèle relationnel
III.5.1. INTRODUCTION
• Le modèle relationnel a été proposé par E.F. Codd (
Edgar Frank Codd) en 1970 (IBM SAN-JOSE, Californie).
• 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ématiqueConception
des ensembles.
de BD
• RK
Aujourd'hui utilisé par beaucoup de SGBD relationnels 81
III. 5. 1. Introduction (suite)
• Les objectifs du modèle relationnel étaient différents de ceux
des modèles réseau et hiérarchique :
– 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.
LMD (ensembliste) déclaratif (non procédural):
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).
LDD intégré au LMD.
Conception de BD
RK 82
Un Standard
III.5.2. Les modèles
•
relationnels
Deux modèles relationnels
1. Modèle formel: une représentation mathématique abstraite
des bases de données. Il définit les structures de données, les
opérations possibles sur ces structures et les règles qui
régissent ces opérations de manière formelle.
relation, attribut, tuple, identifiant…
normalisation
algèbre relationnelle
calculs relationnels
2. Modèle logique, implémenté : SQL: une représentation
conceptuelle des données et de leurs relations dans une base de
données. Il se concentre sur la manière dont les utilisateurs
perçoivent la structure de la base de données et la manière dont
ils interagissent avec elle.
table, colonne, ligne, clé primaire…
SQL - définition et modification du schéma
SQL - entrée et mise à jour des données
SQL - requêtes
Conception de BD
RK 83
Le Modèle Relationnel Formel –
Concepts de Base
• Ensemble de concepts pour formaliser la description
des objets du monde réel.
• Monde réel Relationnel
objet relation
propriété (simple, monovaluée)
attribut
lien (binaire, sans attribut)
identifiant externe
représentation multiple /
Conception de BD
RK 84
Concepts de Base (2)
• Etudiant (N°Etud, nom, prénom, ddn)
Etudiant
Schéma
N°Etud nom prénom ddn
8/11/1984
Tuple/occurrence 23403 Salah Youssef
11/8/1983
Conception de BD
RK 87
Exemple de relations
Etudiant N°Etud Nom Prénom Age
136 Tounsi Med
20
253 Ben Foulen Ali
19
101
<253, Ben Foulen, Ali, 19> constitue un tuple
Cherif
Cherif
Cardinalité de Etudiant = Nombre de tuples
20
Cours NomC Horaire Prof
Algorithmique Lundi 10:30-12 Mr X
Système
Lundi 14-15:30
Suit N°Etud NomC Melle Y
136 Algorithmique
253 Système
101 Conception de BD
RK 88
Exercice
Etudiant N°Etud Nom Prénom Age
136 Tounsi Med
20
253 Ben Foulen Ali
19
Cours 101NomC Horaire Prof
Cherif
Algorithmique
Cherif Lundi 10:30-12 Mr X
Système 20
Lundi 14-15:30
Suit N°Etud NomC Melle Y
136 Algorithmique
253 Système
101
Déterminer le degré et la cardinalité de chaque relation.
Système
Conception de BD
RK 89
Clé d’une relation – Clé
•
primaire
Une clé de relation est un sous-ensemble (minimal) d'attributs
qui permet d’identifier de manière unique chaque tuple de la
relation.
– Il n'existe jamais 2 tuples ayant mêmes valeurs pour tous
ces attributs
– Une clé n'admet jamais de valeurs nulles.
• Toute relation doit posséder au moins une clé (identifiant).
– La clé choisie est appelée clé primaire
– Par convention, lors de la définition d'un schéma cette clé
est mise en évidence (soulignement ou gras).
• Exemple
– Etudiant ( N°Etud , nom , prénom , age)
– Cours ( NomC , horaire, prof )
– Suit ( N°Etud , NomC )
• N°Etud référence un Etudiant
• NomC référence un Cours
Conception de BD
RK 90
Clé Etrangère
• Groupe d’attributs devant apparaître comme clé primaire dans
une autre relation
– Décrit les liens binaires entre les relations (TA)
• Les clés étrangères définissent les contraintes d’intégrité
référentielles.
– Lors d'une insertion, la valeur des attributs doit exister dans
la relation référencée
– Lors d'une suppression dans la relation référencée les
tuples référençant doivent disparaître.
• Exemple: la relation Suit contient les clés de Etudiant et Cours
– Suit traduit un TA entre Etudiant et Cours
– La valeur de N°Etud dans Suit est :
• celle de l'identifiant d'un tuple existant de Etudiant
RK (intégrité référentielle)
Conception de BD
91
Exemple de Schéma
• Cours (NomC,Horaire,Prof)
• Suit (#N°Etud,#NomC)
• Clés etrangères
Conception de BD
RK 92
Diagramme des Liens
Conception de BD
RK 93
Exercice
Conception de BD
RK 94
Exercice
Conception de BD
RK 95
Solution
Conception de BD
RK 96
Contraintes d’intégrité (CI)
• Une contrainte d’intégrité est une propriété du schéma,
invariante dans le temps.
– Chaque relation doit respecter les contraintes d’intégrité
• Il existe différents types de contraintes d'intégrité:
– Structurelles ou statiques (liées au modèle)
– Applicatives ou dynamiques (contraintes de cohérences
liées à l’application)
• CI de domaine
– «toute valeur d’un attribut doit appartenir à son domaine
de définition»
• CI de relation
– «toute valeur de clé primaire existe et est unique»
• CI de référence
– «Toute valeur de clé étrangère (CE) existe dans la clé
primaire CP associée»
Conception de BD
– la valeur d'attribut de la relation R doit apparaître comme 97
RK
Vérification de l'intégrité
• Automatiquement, parréférentielle
le SGBD
• Si un utilisateur veut entrer (INSERT) un tuple dans Suit avec un NomC
qui n'existe pas dans Cours
refus
• Si un utilisateur veut modifier (UPDATE) le nom du cours d'un tuple dans
Suit avec un NomC qui n'existe pas dans Cours
refus
• Si un utilisateur veut supprimer (DELETE) un tuple de Cours pour lequel il
existe des tuples dans Suit
• refus? L'utilisateur peut choisir de refuser la suppression du tuple dans
la table "Cours" tant qu'il existe des références à ce tuple dans la table
"Suit".
• Détruire les tuples de Suit correspondants? L'utilisateur peut choisir de
supprimer automatiquement les tuples correspondants dans la table
"Suit" lorsque le tuple parent dans la table "Cours" est supprimé. Cela
s'appelle une suppression en cascade, et cela permet de maintenir
l'intégrité des données en supprimant automatiquement les données
associées.
1. Mettre à NULL la valeur de NomC dans Suit? L'utilisateur peut choisir de
mettre à NULL la valeur de l'attribut "NomC" dans les tuples de la table "Suit" qui
font référence au tuple de la table "Cours" à supprimer. Cela signifie que les
Conception de BD
références
RK existent toujours, mais l'information qu'elles contiennent 98 est
maintenant nulle.
Contraintes de Modélisation (1)
• Les notions d'attribut multivalué ou complexe n'existent pas
dans le modèle relationnel. Il faut donc les modéliser
autrement.
• Pour un attribut monovalué complexe, il faut choisir entre le
composé ou les composants.
• Pour un attribut multivalué, il faut créer une autre relation
(ceci pour chaque attribut multivalué).
• Représentation d'attribut monovalué complexe
– Soit pour Personne adresse : nom-rue , n° , ville , CP
– Solution 1: un attribut par composant :
• Personne (AVS, nom,…, nom-rue , n° , ville, CP)
• "Rue AbdelAziz Elaroui", "21", "Tunis", "1002"
• il est éventuellement possible de définir par ailleurs
une vue restituant la notion globale d'adresse (par
exemple 1002 Tunis)
– Solution 2: un attribut adresse, de domaine : chaîne de
caractères
• Personne (AVS, nom,…, adresse)
• "Rue AbdelAziz Elaroui, 21 Tunis 1002"
RK • le système ignore Conception
nom-rue, de BD
n°, ville et CP 99
Contraintes de Modélisation (2)
• Représentation d'attribut multivalué
• Exemple: mémoriser les différents prénoms des étudiants
• Mauvaise modélisation: plusieurs attributs
– Etudiant (N°Etud, nom, prénom1, prénom2,… )
– 136 BenFoulen Mohamed Slim
– 101 Ali Mohamed Salah
– 253 Tounsi Fatma Null
• Bonne modélisation : créer une relation
supplémentaire
– Etudiant (N°Etud, nom)
– EtudPrénoms ( N°Etud, prénom )
• 136 Mohamed
• 136 Slim
• 101 Mohamed
• 101 Salah
• 253 Fatma
• Clé étrangère: N°Etud référence Etudiant
Conception de BD
RK 100
Récapitulatif
• Un schéma relationnel se compose :
pour chaque relation de :
nom de la relation
définition
attributs + domaines
clé(s)
éventuellement clé(s) étrangère(s)
contraintes d'intégrité associées
et des autres contraintes d'intégrité qui portent
sur plusieurs relations.
Conception de BD
RK 101
III.5.3. Problème de la
redondance
• [En dehors des clés étrangères]
• ex. Soit la relation COMMANDE_PRODUIT.
• exemple
• La fermeture transitive de F est F+ = { A→B, B→C,
B→D, A→E, A→C, A→D }
Conception de BD
RK 106
Définition
• Définition
– Une relation est en 1ère forme normale si tout
attribut contient une valeur atomique
(unique)
• Exemple
PERSONNE NOM PROFESSION
DUPONT
Ingénieur, Professeur
MARTIN Géomètre
Conception de BD
RK 110
Première Forme Normale --
Exemple
Soit une relation en 1FN:
Fournisseur(NF,NomProduit,Adr,Tel,Prix)
Problèmes
Redondances
Mises à jour pour les insertions
Suppressions
Mises à jours des tuples
Décomposition
Fournisseur1(NF,Adr,Tel)
Catalogue(NF,NomProduit,Prix)
Sans perte d’information, sans perte de
DF
Conception de BD
RK 111
Deuxième Forme Normale
• Définition
– une relation est en 2ème forme normale ssi :
• elle est en 1ère forme
• tout attribut non clé ne dépend pas d'une
partie de clé
• Schéma
R K1 K2 X Y
• Décomposition
– Fourn(NF, Ville)
– Géo(Ville, Pays)
– Sans perte d’information, sans
perte de DF.
Conception de BD
RK 113
Troisième Forme Normale
• Définition
– une relation est en 3ème forme normale ssi :
• elle est en 2ème forme
• tout attribut n'appartenant pas a une clé ne
dépend pas d'un autre attribut non clé
• Schéma
R K X Y Z
Conception de BD
RK 116
Plus loin que la troisième forme
normale :
Pourquoi et comment ?
Rappels
Conception de BD
RK 118
Une relation en 3FN peut comporter des
redondances
• Problème : une DF d'un attribut non clé vers une partie de la clé.
Conception de BD
RK 119
• Forme normale de BOYCE-CODD :
– Les seules DF autorisées sont celles dans lesquelles une clé détermine un
attribut.
• Exemple :
R (region, gouvern, CODE POSTAL)
n'est pas en BCNF
Conception de BD
RK 120
• Une relation en BCNF peut comporter des redondances
• "L'étudiant de numéro NUMETUD pratique le sport
SPORT et suit le COURS."
– Pas de DF
– CLE = {NUMETUD, SPORT, COURS}
– R est en 3FN et en BCNF
– Cependant R contient des redondances :
Conception de BD
RK 121
• La notion de dépendance fonctionnelle ne suffit à définir toutes
les dépendances entre les données.
Conception de BD
RK 122
• Exemple : R (NUMETUD, SPORT, COURS)
– NUMETUD->>SPORT
– NUMETUD->>COURS
<=> Pas de lien entre les cours suivis et les sports pratiqués.
Conception de BD
RK 123
4ème Forme Normale
Conception de BD
RK 125
Remarques :
• une DM est un cas particulier de DJ (dépend. de jointure) :
Conception de BD
RK 126
Cinquième Forme Normale :
Conception de BD
RK 127
Méthode de décomposition en 3ème
forme
• Sans perte d ’information
• Sans perte de DF.
• Créer pour chaque source de DF une relation
comprenant comme attributs la source et toutes
les cibles de cette source.
• Si aucun des identifiants de R n’est présent dans
au moins une des relations créées ajouter une
relation supplémentaire, constituées des attributs
composant un des identifiants de R.
• Génère
RK parfois des décompositions
Conception de BD redondantes. 128
Comment concevoir un schéma
relationnel normalisé
• Concevoir un schéma entité/association puis le traduire en
relationnel.
• Créer une relation regroupant tous les attributs ( la relation
universelle) établir un graphe minimum des dépendances;
puis décomposer jusqu’en 3eme.
• Faire un graphe minimum; en extraire directement les
relations en 3eme forme normale:
– Créer pour chaque source de DF une relation
comprenant comme attributs la source et toutes les
cibles de cette source.
– La source est la clé de la relation établi.
Conception de BD
RK 129
III.5.4. Passage E/A relationnel
Conception de BD
RK 130
Passage E/A en relationnel --
Exemple
• TE est représenté par une relation dans laquelle les
attributs de l’entité deviennent ceux de la relation
N°E
Etudiant NomE
Sexe Adresse
Conception de BD
RK 131
Passage E/A en relationnel --
Exemple (suite)
0:n
Prénom NEtud
Etudiants
Nom
• Obtenir(#Ncours,#Netud,Note,Année)
Modèle E/A Modèle Relationnel
Conception de BD
RK 132
Passage E/A en relationnel --
Exemple (suite)
• Pour les TE pour cardinalité max =1, on ne crée pas
de relation mais ce sont les clés des types entités
qui interviennent qui seront ajoutés au TE dont la
cardinalité max=1.
Faculté
Département NDépart
0:n
appart
1:1
Prénom NEtud
Etudiants
Nom
Etudiants(NEtud,Nom,Prénom,
#NDépart,)
Conception de BD
RK 133