Académique Documents
Professionnel Documents
Culture Documents
R. KHCHERIF
Raoudha.khcherif@ensi-uma.tn
(Bureau 208)
I. Introduction
• Volume important de données (Banques, bibliothèques, … etc.)
– Problème : comment stocker et manipuler les données?
– Données → Bases de données (BD)
– Logiciel → Système de Gestion de bases de Données (SGBD)
• I.1. Bref Historique des SGBD?
– Années 1960s:
• Organisation classique en fichiers.
• 1ère génération de SGBD (hiérarchiques puis réseaux).
– Années 1970s:
• 2ème génération de SGBD – SGBD relationnels (commercialisés en 1980).
– Années 1980s:
• 3ème génération de SGBD – SGBD orientés objet
– Années 1990s:
• 4ème génération supportant le web et le multimédia
Conception de BD
RK 2
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 3
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 4
Avec base de données
BP 2536 Facturation
Commercial
Prospects
Conception de BD
RK 5
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 6
I.3. Qu’est ce qu’une BD?
Conception de BD
RK 7
I.4. Avantages des BDs
Conception de BD
RK 8
Vision simplifiée d’un SGBD
SGBD externe
SGBD interne
Terminaux
Conception de BD
RK 9
I.5. Architecture fonctionnelle type d’un SGBD
Conception de BD
RK 10
Architecture à niveaux Ansi/Sparc
Correspondance
externe/conceptuelle
Description
Niveau Conceptuel
Unique
Correspondance
Conceptuelle/physique
Conception de BD
RK 11
Avantage de la séparation en 3 niveaux
Conception de BD
RK 13
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 lers données.
Conception de BD
RK 14
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
•
Conception de BD
RK 15
Big Data
Conception de BD
RK 16
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:
• le résultat de la modélisation de l’entreprise.
• écrit au moyen de LDD conceptuel
– 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 problème de la conception de la base de données.
Conception de BD
RK 17
III.4. Le Modèle Entité/Association
• Encore appelé entité/relation (« entity/relationship »).
– A ne pas confondre avec modèle relationnel!
• Le modèle entité/association a été introduit par Chen en 1976.
– Un outil informel pour analyser les situations du monde réel (institutions,
entreprises, … etc.).
– L’information est représentée par 3 concepts primitifs :
• Entité: un être ou un objet (concret ou abstrait), qui existe et peut être
distingué d’un autre objet.
– Exemple : employé, personne, étudiant, voiture, …
• Attribut: la propriété décrivant une entité.
– Exemple: Numéro de carte d’identité, nom et prénom, age, …
• Association: la relation, ou ce qui permet de connecter deux entités ou plus.
– Exemple:Affectation (employé- département, …)
Conception de BD
RK 18
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.
Conception de BD
RK 19
Ali Khaled
Jamel
Salem Kamel
modélisé par
Personne
Conception de BD
RK 20
III.4.1 Exemples d’associations
Mari
• Unaire: 1
Personne Marié
1 femme
Conception de BD
RK 21
III.4.1 Exemples d’associations (suite)
possède conduit
• Ternaires
Fournisseur Voiture
Conception de BD
RK 22
III.4.2. Diagramme Entité/Association
Conception de BD
RK 23
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 A plusieurs entités de F et réciproquement.
N:m
Personne Possède Voiture
Conception de BD
RK 24
III.4.3. Types des associations --Cardinalité
N:m
Personne Possède Voiture
Nom Prénom
Date mariage
Conception de BD
RK 26
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,
• Manquant/optionnel: peut ne pas prendre de valeur (inconnu!)
Exemples: salaire, téléphones
Conception de BD
RK 27
III.4.5. Identifiants des TE et TA
• ’’Il est fréquent de représenter initialement certaines associations par des attributs
Conception de BD
RK 29
Les Règles de validation
Conception de BD
RK 30
Conception de BD
RK 31
Exemple d’un hypermarché
(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) Article
Rayon Vente
Conception de BD
RK 32
Exercice: VPC
Conception de BD
RK 33
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 34
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 35
Etage
Chambre
Conception de BD
RK 36
Entité Faible
Conception de BD
RK 37
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 diffcilement 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 38
Exemple
Cinéma
1:n
1:1
Salle
Conception de BD
RK 39
III. 5. Le modèle relationnel
III.5.1. INTRODUCTION
• Le modèle relationnel a été proposé par E.F. Codd en 1970 (IBM SAN-JOSE).
• 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.
Conception de BD
RK 40
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.
☺ Un Standard
Conception de BD
RK 41
III.5.2. Les modèles relationnels
Conception de BD
RK 42
Le Modèle Relationnel Formel – Concepts de Base
• Ensemble de concepts pour formaliser la description des objets du
monde réel.
Conception de BD
RK 43
Concepts de Base (2)
Etudiant
Schéma
N°Etud nom prénom ddn
Conception de BD
RK 44
Schéma relationnel, Domaine
• Une BD = un ensemble de relations.
• Un schéma d'une BD relationnelle (sert à décrire les relations):
un ensemble de schémas de relations : R1, R2, …, Rn
• Un schéma d'une relation = un ensemble d'attributs avec leurs domaines
R = (A1:D1, A2:D2, …, Ap:Dp)
ou, plus simplement, R = (A1,A2, …,Ap)
Attributs simples et monovalués
Un domaine D est un ensemble de valeurs caractérisé par un nom – type de
données.
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.
COULEUR = { jaune; vert; rouge; bleu; rose; orange; pourpre}
ABONNE = {Personne possédant une carte d'abonné valide pour l'année en cours
}
Conception de BD
RK 45
Relation
• Autre définition :
– Une relation R correspond au sous ensemble du produit cartésien de n domaines : R
D1 x D2 x D3 x … x Dn
– n : degré de la relation (nombre d’attributs)
– attribut : rôle joué par un domaine dans une relation.
• Exemple:
– Pilote (NumPil, NomPil, adr, sal)
– Avion (NumAv, AvNom, loc, cap)
– Vol (NumVol, NumPil, NumAv,Ville_dep,Ville_arr, Heure_dep, Heure_arr)
Conception de BD
RK 46
Exemple de relations
Etudiant N°Etud Nom Prénom Age
136 Tounsi Med 20
253 Ben Foulen Ali 19
101 Cherif Cherif 20
Conception de BD
RK 48
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 (intégrité référentielle)
• ou éventuellement nulle (si attribut facultatif)
– Même contrainte pour NomC de Suit
Conception de BD
RK 49
Exemple de Schéma
• Cours (NomC,Horaire,Prof)
• Suit (#N°Etud,#NomC)
• Clés etrangères
Conception de BD
RK 50
Diagramme des Liens
Conception de BD
RK 51
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»
– la valeur d'attribut de la relation R doit apparaître comme valeur de clé dans une
autre relation S
Conception de BD
RK 52
Vérification de l'intégrité référentielle
• Automatiquement, par 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?
Détruire les tuples de Suit correspondants ?
Mettre à NULL la valeur de NomC dans Suit ?
• Si un utilisateur veut mettre à jour (UPDATE) le nom d'un cours pour lequel il existe des
tuples dans Suit
refus?
Propager la mise à jour de NomC dans Suit ?
Conception de BD
RK 53
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
– Solution 2: un attribut adresse, de domaine : chaîne de caractères
• Personne (AVS, nom,…, adresse)
• "Rue AbdelAziz Elaroui, 21 Tunis 1002"
• le système ignore nom-rue, n°, ville et CP
Conception de BD
RK 54
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 55
Récapitulatif
• Un schéma relationnel se compose :
pour chaque relation de :
nom de la relation
définition
attributs + domaines
clé
é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 56
III.5.3. Problème de la redondance
• [En dehors des clés étrangères]
• ex. Soit la relation COMMANDE_PRODUIT.
Conception de BD
RK 57
III.5.3. Problème de la redondance (suite)
Conception de BD
RK 58
Normalisation (1)
• Objectifs de la normalisation :
Suppression des problèmes de mise à jour
Minimisation de l’espace de stockage (élimination des redondances)
La taille des fichiers normalisés croît de façon arithmétique alors que la taille
des fichiers non normalisés croît de façon géométrique.
• Les dépendances Fonctionnelles
Soient R(A1, A2 … An) un schéma de relation, X et Y des sous-ensembles de A1,
A2 …An
On dit que X détermine Y ou Y dépend fonctionnellement de X (X →Y) ssi il
existe une fonction qui à partir de toute valeur de X détermine une valeur unique
de Y
• Exemple
– PRODUIT (NumProd, Dési, PrixUni)
– NumProd →Dési, Dési →PrixUni
Conception de BD
RK 59
Définitions
Conception de BD
RK 60
Normalisation (2)
Conception de BD
RK 61
Normalisation (3)
• Objectifs
Conception de BD
RK 62
Première Forme Normale
• Définition
– Une relation est en 1ère forme normale si tout attribut contient une
valeur atomique (unique)
• Exemple
MARTIN Géomètre
Conception de BD
RK 63
Première Forme Normale -- Exemple
▪ Suppressions
NF Adr
▪ Mises à jours des tuples
Tél
▪ Décomposition
▪ Fournisseur1(NF,Adr,Tel)
▪ Catalogue(NF,NomProduit,Prix)
▪ Sans perte d’information, sans perte de DF
Conception de BD
RK 64
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
• Exemple :
– Fournisseur2(NF, Pays,Ville)
• Redondance
• Décomposition
– Fourn(NF, Ville) NF Ville Pays
– Géo(Ville, Pays)
– Sans perte d’information, sans
perte de DF.
Conception de BD
RK 66
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 69
Plus loin que la troisième forme
normale :
Les 3 premières formes normales ont été proposées par E.F. Codd ("inventeur" du
modèle relationnel) en 1972. La forme normale dite de Boyce-Codd a été proposée
en 1974. Les 4ème (1977) et 5ème (1979) formes normales ont été proposées ensuite
par Fagin, mais elles ne concernent que des cas rares et très spécifiques.
Pourquoi et comment ?
Rappels
Conception de BD
RK 71
Normalisation : Exemple FNBC
Considérons la relation suivante: Cours (Matiere, Classe, Professeur)
complétée par les règles de gestion suivantes:
un professeur n'enseigne qu'une seule matière,
une classe n'a qu'un seul enseignant par matière
desquelles on déduit les DF suivantes:
Matière, Classe → Professeur
Professeur → Matière
Cette relation est en 3NF, néanmoins il est impossible d'enregistrer un
professeur sans classe affectée (puisque classe est une partie de la
clé primaire de la table Cours), et la disparition d'une classe peut
entraîner la disparition de professeur.
Ceci est du au fait qu'une DF n'ait pas comme origine une clé de la
relation. Conception de BD
RK 72
Normalisation : Exemple FNBC
Problème : une DF d'un attribut non clé vers
une partie de la clé
On pourrait alors décomposer la relation Cours
en 2 relations:
Spécialité (Professeur, Matière)
Enseignant (Classe, #Professeur)
Mais la première DF serait alors perdue…
Les deux relations sont en FNBC.
Conception de BD
RK 73
• 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 74
• La notion de dépendance fonctionnelle ne suffit à définir toutes
les dépendances entre les données.
<=> Pas de lien entre les cours suivis et les sports pratiqués.
Conception de BD
RK 76
4ème Forme Normale
Conception de BD
RK 78
Remarques :
• une DM est un cas particulier de DJ (dépend. de jointure) :
Conception de BD
RK 79
Cinquième Forme Normale :
Conception de BD
RK 80
Méthode de décomposition en 3ème forme
Conception de BD
RK 81
Comment concevoir un schéma
relationnel normalisé
Conception de BD
RK 82
III.5.4. Passage E/A → relationnel
Conception de BD
RK 83
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 84
Passage E/A en relationnel -- Exemple (suite)
• Chaque TA est représenté par une relation dans laquelle les clés des TE participants et les
attributs de l’association deviennent ceux de la relation.
Titre
Cours Ncours
0:n
0:n
Prénom NEtud
Etudiants
Nom
• Obtenir(Ncours,Netud,Note,Année)
Modèle E/A Modèle Relationnel
Conception de BD
RK 85
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 86
Bibliographies
Conception de BD
RK 87