SlideShare une entreprise Scribd logo
1  sur  118
Télécharger pour lire hors ligne
M. Boubacar KEITA
BASES DE DONNEES
Année 2023
M1 EAI/EBM
I. INTRODUCTION
II. Système de gestion de bases de données relationnelles
 Définitions
 Fonctionnalités
 Architecture logiciel d’un SGBD
 Le langage SQL
III. Administration Base de données
 Protection, Sécurité
 Sauvegarde, restauration
 Gestion des accès
Le cours de SGBD vise à développer les savoir-faire suivants :
 Comprendre les concepts d’un système de Gestion de bases de données relationnelles (SGBDR) ;
 fonctionnalités d’un SGBD
 prototyper et créer une base de données;
 traduire les questions posées dans un langage de requête en respectant sa syntaxe ;
 consulter une base de données à travers des requêtes de type SQL ;
 comprendre et décrire les rôles des différents éléments de architecture d’un SGBD
 comprendre et acquérir les bases pour administrer une base de données
 Soit un ensemble de données représentant des enseignants, des étudiants, les cours suivis,
et leur notes.
 On souhaite par exemple interroger ces données pour retrouver les notes d’un étudiant,
calculer des moyennes, etc.
1. Il faut modéliser ces données (existe-t-il une méthode générique simple applicable?)
2. Il faut définir pour chaque opération d’interrogation un « programme » qui réalise cette opération.
3. On souhaite rendre les données persistantes (pérennes) :
1. Il faut les sauvegarder sur un média durable
2. Il faut pouvoir gérer les pannes à tout moment
4. On souhaite modifier les données
5. On souhaite sécuriser l’accès aux données
 Définir une structure étudiant qu’on va mettre dans un tableau. En soi c’est déjà compliqué.
struct etudiant{
nom : string;
notes : tableau [X] de int ; // ou quelque chose de plus compliqué
}
 Calculer la moyenne des notes d’un élève = écrire une fonction
float moyenne (eleve e){
float somme = 0;
for(int i=0;i<e.notes.length;i++)
somme+=e.notes[i];
return somme/e.notes.length;
}
 Stocker les données = définir un format de fichier et les procédures permettant de lire ou écrire des données.
 Modifier les données = écrire un programme
 Sécuriser les données = écrire (plusieurs) programmes
 Etc.
 Définir une structure étudiant qu’on va mettre dans un tableau. En soi c’est déjà compliqué.
struct etudiant{
nom : string;
notes : tableau [X] de int ; // ou quelque chose de plus compliqué
}
 Calculer la moyenne des notes d’un élève = écrire une fonction
float moyenne (eleve e){
float somme = 0;
for(int i=0;i<e.notes.length;i++)
somme+=e.notes[i];
return somme/e.notes.length;
}
 Stocker les données = définir un format de fichier et les procédures permettant de lire ou écrire des données.
 Modifier les données = écrire un programme
 Sécuriser les données = écrire (plusieurs) programmes
 Etc.
TRES COMPLEXE COMME SOLUTION!!!!
Il est difficile de trouver des ALGO efficaces
pour résoudre ce type de problèmes
 Donnée : élément du monde se distinguant des autres.
 Donnée : toute valeur numérisée décrivant de manière élémentaire un fait,
une mesure, une réalité et associée au contexte permettant de savoir
quelle information elle représente.
Une donnée peut :
être une personne ou un objet ayant des caractéristiques :
 un étudiant caractérisé par son : nom, prenom, date de naissance,
 Une salle : nom, nombre de place, position géographique
 Un cours caractérisé par son : intitulé , volume horaire
 Un événement caractérisé par un libellé, une date
 Un produit, un client, un fournisseur, une entreprise
être définie par la relation entre les objets et/ou les personnes
 Un client C commande le Produit P chez l’entreprise donnée E à la date D
DEFINITIONS : données
 Les données sont souvent regroupées sous forme de collections ou ensemble de
données
Exemples :
 L’ESTA gère un ensemble de données sur les cursus de formation , les matières, les
étudiants, les enseignants, la scolarité, les emplois du temps, les salles, …
 Une structure hospitalière gère les données sur son personnel soignant et administratif,
ses patients, ses consultations et prescriptions medicales, son plateau technique, ses
laboratoires d’analyse médicale
 Une entreprise commerciale gèrent un ensemble de données sur ses produits, ses
fournisseurs, ses achats, ses clients, ses ventes, son stock,……
 Un opérateur de Télécommunication gère un ensemble de données sur ces clients, sur ses
produits, sur les appels, son infrastructure (BTS, Réseau, …)
DEFINITIONS : données
 Qu’est ce que la Gestion de données ?
C’est :
 Organiser les données : comment organiser la gestion des cours : associer les
enseignants aux matières, planifier les cours en fonction des salles, attribuer les notes
aux étudiants par matière, …
 Exploiter les données : pouvoir répondre par exemple à la question : quel enseignant à
délivrer le cours de SGBD pendant l’année académique 2018/2019, combien
d’étudiants ont suivi ce cours et quel était la plus forte note ?
 Partager les données : Comment permettre aux étudiants et aux enseignants
d’accéder à l’emploi du temps de la semaine?
DEFINITIONS : Gestion de données
 Organiser ?
 Support papier : faire des fiches papier et les mettre par dossier dans des
classeurs
 Fichier informatique : créer des fichiers et ranger dans des dossiers
informatique
 Base de données ?
DEFINITIONS : Gestion de données
 Évolution du stockage des données
DEFINITIONS : Gestion de données
 Contraintes des fichiers informatiques
 fichier : suite d’enregistrements contenant des données logiquement
liées.
 des programmes spécifiques doivent permettre la Lecture / Ecriture
dans les fichiers
 Chaque application défini et gère ces fichiers (WORD, EXCEL,…)
 la manipulation des fichiers est directement intégrée dans le
programme
DEFINITIONS : Gestion de données
 Inconvénients des fichiers informatiques
 Format de fichier non standards
Redondance : les informations d’un même client risquent d’être stockées dans
plusieurs fichiers
 Incohérence (en lien avec la redondance) : Si le client change d’adresse, il faut
s’assurer de la mise à jour dans chaque fichier
 Difficulté d’accès : les requêtes non prévues ne sont pas possibles
Anomalie due à la concurrence d’accès :
Problème de sécurité : tout le monde ne doit pas pouvoir voir ou modifier les
mêmes données
Violation de l’intégrité des données : il y a des contraintes à vérifier sur les données
avant leur modification (le compte d’un abonné ne doit pas avoir un solde <-100
FCFA)
Gestion des pannes : à programmer soi même
DEFINITIONS : Gestion de données
 Constat sur la gestion de données
Trop de risques et d’inconvénients liés à la gestion de données par fichiers
informatiques
DEFINITIONS : Gestion de données
 Pour adresser quels besoins ?
Disposer d’une collection de données, appelée Base de Données, vérifiant les propriétés
suivantes : :
 une donnée est enregistrée (sur un support adressable),
 la structure d’une donnée ne dépend pas de l’application qui l’interroge,
 la valeur d’une donnée est cohérente,
 les données ont une redondance minimale (la multiplication des enregistrements d’une donnée est
limitée),
 une donnée est accessible de manière concurrente par plusieurs utilisateurs.
DEFINITIONS : Base de données
 Une base de données est un ensemble de données cohérentes
entre elles modélisant des objets d’une partie du monde réel et
servant de support à une application informatique.
 Pour mériter le terme de base de données, un ensemble de
données non indépendantes doit être interrogeable par le
contenu, c’est-à-dire que l’on doit pouvoir retrouver tous les
objets qui satisfont à un certain critère, par exemple tous les
produits qui coûtent moins de 10 000 francs.
.
BASE DE DONNEES : définition
SYSTÈME DE GESTION DE BASE DE DONNEES
(SGBD)
SYSTÈME DE GESTION DE BASE DE DONNEES
 Les données d’une BD sont accessibles à l’aide d’une application appelée
système de gestion de base de données (SGBD).
DEFINITION
 Un Système de Gestion de Bases de Données (SGBD) est un logiciel destiné
au stockage et à la manipulation de bases de données.
 Si ce SGBD est basé sur le modèle relationnel de CODD, on dit qu’il s’agit
d’un système de gestion de base de données relationnel (SGBDR).
 Pour dialoguer avec un SGBDR on utilise le langage SQL. Ce langage
permet de soumettre des requêtes (des questions) au SGBDR.
SYSTÈME DE GESTION DE BASE DE DONNEES
UN SGBD ?
◦ Indépendance des données/applications et sûreté d’accès aux données.
◦ Temps de développement d’application réduit.
◦ Intégrité des données et sécurité des accès.
◦ Administration des données uniforme.
◦ Concurrence des accès et reprise sur panne.
SYSTÈME DE GESTION DE BASE DE DONNEES
SGBD : Objectifs
SYSTÈME DE GESTION DE BASE DE DONNEES
SGBD : OBJECTIFS
1. Indépendance physique
 Possibilité de modifier les structures de stockage sans
modifier les programmes
 Ecriture des applications par des non-spécialistes des
fichiers
 Meilleure portabilité, indépendance vis-à-vis du matériel
2. Indépendance logique
 Possibilité d’ignorer les données d’autres applications
 Possibilité d’enrichir les applications sans devoir tout
réécrire
 Possibilité de protéger (rendre confidentielles) certaines
données
3. Langage de Manipulation
 Par le biais d’un langage déclaratif (SQL) équivalent à la
logique du 1er ordre
4. Vues multiples (virtuelles) des données
5. Exécution et optimisation
 Les requêtes sont traduites en un langage procédural
(algèbre relationnelle)
 … qui peut être optimisé automatiquement. (des années
de recherche en BD…)
6. Cohérence : Intégrité logique (Contraintes d’intégrité)
 Par le biais d’un langage déclaratif
 Détection de mises à jour erronées
 Contrôle sur les données élémentaires et les relations
7. Gestion des Pannes : Intégrité physique
 Tolérance aux pannes
 Transactions
 Système (panne courante)
5. Disque (crash)
8. Concurrences d’accès : Partage de données
 Isolation (chacun a l’air d’être seul)
 Concurrence (tout le monde peut agir en même temps)
9. Confidentialité
10.Standardisation
 Indépendance des programmes d'applications vis à vis du
modèle physique :
◦ Possibilité de modifier les structures de stockage (fichiers, index,
chemins d'accès, …) sans modifier les programmes;
◦ Ecriture des applications par des non-spécialistes des fichiers et des
structures de stockage;
◦ Meilleure portabilité des applications et indépendance vis à vis du
matériel.
Les applications peuvent définir des vues logiques de la BD
……
……..
….
Prénom
Nom
Id-D
Jean
Masse
3
Paul
Durand
2
Pierre
Dupont
1
Docteur
……
……..
….
Prénom
Nom
Id-D
Jean
Masse
3
Paul
Durand
2
Pierre
Dupont
1
Docteur
Visites
2
2
1
1
Id-D
1 mars
13 juillet
12 août
15 juin
Date
250
350
180
250
Prix
4
3
2
1
Id-V
3
2
1
2
Id-P
Visites
2
2
1
1
Id-D
1 mars
13 juillet
12 août
15 juin
Date
250
350
180
250
Prix
4
3
2
1
Id-V
3
2
1
2
Id-P
…….
…….
….
Paule
Perry
4
Prénom
Nom
Id-P
John
Doe
3
Zoe
Troger
2
Jacques
Lebeau
1
Patients
…….
…….
….
Paule
Perry
4
Prénom
Nom
Id-P
John
Doe
3
Zoe
Troger
2
Jacques
Lebeau
1
Patients
…………
….
….
….
2 gouttes
3
3
2
12
8
5
12
Id-M
1 par jour
2 par jour
10 gouttes
1 par jour
Posologie
2
1
2
1
Ligne
2
2
1
1
Id-V
Prescription
…………
….
….
….
2 gouttes
3
3
2
12
8
5
12
Id-M
1 par jour
2 par jour
10 gouttes
1 par jour
Posologie
2
1
2
1
Ligne
2
2
1
1
Id-V
Prescription
……………………………..
……..
….
Description
Nom
Id-M
……………………………..
Mucomyst
3
……………………………..
Fluisédal
2
……………………………..
Aspegic 1000
1
Médicament
……………………………..
……..
….
Description
Nom
Id-M
……………………………..
Mucomyst
3
……………………………..
Fluisédal
2
……………………………..
Aspegic 1000
1
Médicament
Gestion des médicaments Pharmacie du Dr. DAKUYO
Visites
2
1
Id -D
1 mars
15 juin
Date
250
250
Prix
4
1
Id -V
3
2
Id -P
Visites
2
1
Id -D
1 mars
15 juin
Date
250
250
Prix
4
1
Id -V
3
2
Id -P
…….
…….
….
Prénom
Nom
Id -P
Zoe
Troger
2
Jacques
Lebeau
1
Patients
…….
…….
….
Prénom
Nom
Id -P
Zoe
Troger
2
Jacques
Lebeau
1
Patients
…………
….
….
….
5
12
Id -M
10 gouttes
1 par jour
Posologie
2
1
Ligne
1
1
Id -V
Prescription
…………
….
….
….
5
12
Id -M
10 gouttes
1 par jour
Posologie
2
1
Ligne
1
1
Id -V
Prescription
……………………………..
……..
….
Description
Nom
Id -M
……………………………..
Mucomyst
3
……………………………..
Fluisédal
2
……………………………..
Aspegic 1000
1
Médicament
……………………………..
……..
….
Description
Nom
Id -M
……………………………..
Mucomyst
3
……………………………..
Fluisédal
2
……………………………..
Aspegic 1000
1
Médicament
Nombre_Médicaments
Id-M Nom Description Nombre
1 Paracetamol
500
…………………………….. 7000
2 Amoxycilline …………………………….. 1520
3 Sirop Douba …………………………….. 100
4 Tisane
SAYE
…………………………….. ….50.
 Possibilité pour chaque application d'ignorer les besoins des
autres (bien que partageant la même BD).
 Possibilité d'évolution de la base de données sans réécriture des
programmes ( ajout de champs, ajout de relation, renommage de
champs.
 Possibilité d'intégrer des programmes existants sans modifier les
autres.
 Possibilité de limiter les conséquences du partage : Données
confidentielles.
 La manipulation se fait via un langage déclaratif
- La question déclare l’objectif sans décrire la méthode
- Le langage est normalisé ISO (pour tous les SGBD)
SQL : Structured Query Langage
 Sémantique : basée sur le calcul des prédicats(relations) du 1er ordre (variables,
quantificateurs…)
 Syntaxe
SELECT <structure des résultats>
FROM <relations>
WHERE <conditions>
 Les vues permettent d’implémenter l’indépendance logique en permettant
de créer des relations virtuelles
 Vue = Question stockée
 Le SGBD stocke la définition et non le résultat
 Exemple pour un SI qui modélise les système universitaire du BURKINA
la vue des étudiantes de Bobo
la vue des enseignants de Mathématiques
 Traduction automatique des questions déclaratives en programmes
procéduraux :
 Utilisation de l’algèbre relationnelle
 Optimisation automatique des questions
 Utilisation de l’aspect déclaratif de SQL
 Gestion centralisée des chemins d'accès (index, hachages, …)
 Techniques d’optimisation poussées
 Economie de l'astuce des programmeurs
◦ milliers d'heures d'écriture et de maintenance de logiciels.
 Objectif : Détecter les mises à jour erronées
 Contrôle sur les données élémentaires
Contrôle de types: ex: Nom alphabétique
Contrôle de valeurs: ex: Salaire mensuel entre 400 000 et 2 000 000 FCFA
 Contrôle sur les relations entre les données
Relations entre données élémentaires:
 Prix de vente > Prix d'achat
Relations entre objets:
Un cours est dispensé par un et un seul enseignant
 Avantages :
◦ simplification du code des applications
◦ sécurité renforcée par l'automatisation
◦ mise en commun des contraintes
 Nécessite :
◦ un langage de définition de contraintes d'intégrité
◦ la vérification automatique de ces contraintes
 Motivations : Tolérance aux fautes
Transaction Failure : Contraintes d'intégrité, Annulation
System Failure : Panne de courant, Crash serveur ...
Media Failure : Perte du disque
Communication Failure : Défaillance du réseau
 Objectifs :
 Assurer l'atomicité des transactions
 Garantir la durabilité des effets des transactions commises
 Moyens :
 Journalisation : Mémorisation des états successifs des données
 Mécanismes de reprise
BD
• Accès concurrent aux mêmes données
Conflits d’accès !!
BD
• Le SGBD gère les accès concurrents
 Chacun à l’impression d’être seul (Isolation)
 Cohérence conservée (Pas de maj conflictuelles)
 Objectif : Protéger les données de la BD contre des accès non autorisés
 Deux niveaux :
Connexion restreinte aux utilisateurs répertoriés (mot de passe)
Privilèges d'accès aux objets de la base
 Utilisateurs : Usager ou groupe d’usagers
 Objets : Relation, Vue, autres objets (procédures, etc.)
 L’approche bases de données est basée sur plusieurs standards
◦ Langage SQL (SQL1, SQL2, SQL3)
◦ Communication SQL CLI (ODBC / JDBC)
◦ Transactions (X/Open DTP, OSI-TP)
 Force des standards
◦ Portabilité
◦ Interopérabilité
◦ Applications multisources…
Fonctionnalités (Pratique) pour un SGBD
 Un SGBD permet de définir la Base de Données
 Objectif : Construire le schéma de la base de données
 Outil : Langage de Description de Données (LDD)
Langage de Description de Données
Permet de spécifier :
 l’organisation/la structuration des données
 les types de données
 les contraintes d’intégrité (cohérence) sur les données
Est unique, commun aux différentes applications
⇒ ce n’est pas l’application qui guide la structuration mais les données à représenter.
 Un SGBD permet de manipuler les données dans la BD
 Objectif : Rechercher, créer, modifier et supprimer de données
 Outil :Langage de Manipulation de Données (LMD)
Langage de Manipulation des Données
Permet de spécifier :
 ce que l’on veut faire ou obtenir plutôt que comment le faire ou l’obtenir
Fonctionnalités (Pratique) pour un SGBD
Un SGBD permet de :
 garantir l’intégrité des données
o Définition de contraintes d’intégrité spécifiées dans le schéma de la base
o Possibilité de programmer des contraintes d’intégrités complexes
 de gérer les défaillances (panne)
Restauration de la BD dans un état cohérent et récent
 de gérer la concurrence
Possibilité d’accès multiple tout en garantissant la cohérence du résultat
 de gérer un modèle transactionnel
Validation ou annulation d’une suite d’opérations liées
 de gérer la sécurité et la confidentialité des données
Fonctionnalités (Pratique) pour un SGBD
En synthèse un SGBD :
 contient les BDs ainsi que leur description et contraintes (méta-données stockés dans le
catalogue du SGBD)
 permet la centralisation de l'information, représentation de relations complexes entre les
données, permet de trouver et de mettre à jour efficacement des données reliées
 offre un contrôle de la redondance des données
 offre un contrôle des niveaux d'accès aux données (sécurité des données)
 offre un moyen de stockage persistant pour les données des applications, structures de
stockage et interrogation efficace des données
 permet l’abstraction des données, isolation entre les données et les traitements
 donne plusieurs vues des mêmes données, interfaces utilisateur multiples
 offre un accès simultané aux données centralisées par plusieurs applications, contrôle de
concurrence, partage de données
 Permet une définition de contraintes d'intégrité et l’automatisation de leur maintenance
(triggers)
Fonctionnalités (Pratique) pour un SGBD
ACCES AU SGBD
comment accède-t-on à un SGBD ?
 Interactions avec le SGBD :
o Interpréteur de commandes
o Interface graphique
o Dans un langage de programmation (C, C++, Java, Python, PHP, ... via des
bibliothèques adéquates pour envoyer les requêtes vers le SGBD.
o Via des environnements de reformulation des requêtes
EXEMPLES DE SGBD
MS SQL Server : Serveur de BD concurrent de Oracle et
SGBD principale de Microsoft
ORACLE DB : Serveur de base de données robuste pour des
environnements critiques
MySQL DB : SGBD open source léger et très utilisé pour
les applications web
PostgreSQL : SGBD multi-plateforme et open source très
avancé
Quelques domaines dans lesquels on utilise des bases de données
◦ Web: sites, réseaux sociaux (Facebook, Whatsapp ...), forum
◦ Banque/Finance: applications bancaires ou financières, gestion comptable, ...
◦ Economie : plateforme e-commerce (Ali Express, Amazon), services de
ventes/achats (gestion de supermarché, boutique, gestion restaurant, ...)
◦ Industrie/Mine: gestion de chaîne de production de boisson, usine de
Cimenterie, données de prospections minières, ...
◦ Transports: réservation de billets , gestion des Bus SOTRACO, ...
◦ Science: Gestion des données d'expérimentation,...
◦ Services publiques: gestion des impôts, police, gestion état civil …
◦ Culture : gestion données touristiques, gestion de manifestation comme
FESPACO, SIAO
◦ Sport : Gestion de tournoi sportif, gestion des membres d’une fédération
Il existe plusieurs types des bases de données :
Base de données hiérarchique:
Base de données réseau
Base de données relationnel
Base de données objet
Base de données Géographique
Base de données NoSQL
OBJECTIFS :
 Présenter les architectures des systèmes de gestion de bases de
données et les techniques permettant de les implémenter.
 Techniques d’implémentation des SGBD relationnels.
 Architecture des bases de données
SGBD : OBJECTIFS (rappel)
1. Indépendance physique
 Possibilité de modifier les structures de stockage sans
modifier les programmes
 Ecriture des applications par des non-spécialistes des
fichiers
 Meilleure portabilité, indépendance vis-à-vis du matériel
2. Indépendance logique
 Possibilité d’ignorer les données d’autres applications
 Possibilité d’enrichir les applications sans devoir tout
réécrire
 Possibilité de protéger (rendre confidentielles) certaines
données
3. Langage de Manipulation
 Par le biais d’un langage déclaratif (SQL) équivalent à la
logique du 1er ordre
4. Vues multiples (virtuelles) des données
5. Exécution et optimisation
 Les requêtes sont traduites en un langage procédural
(algèbre relationnelle)
 … qui peut être optimisé automatiquement. (des années
de recherche en BD…)
6. Cohérence : Intégrité logique (Contraintes d’intégrité)
 Par le biais d’un langage déclaratif
 Détection de mises à jour erronées
 Contrôle sur les données élémentaires et les relations
7. Gestion des Pannes : Intégrité physique
 Tolérance aux pannes
5. Transactions
6. Système (panne courante)
7. Disque (crash)
8. Concurrences d’accès : Partage de données
 Isolation (chacun a l’air d’être seul)
 Concurrence (tout le monde peut agir en même temps)
9. Confidentialité
10.Standardisation
On s’intéresse ici aux problématiques :
Stockage des données
 Organisation des fichiers
 indexation
Stockage en pages
La Conception de BD
Modélisation E/A
Objectif :
Comment construire les BD?
L’architecture à 3 niveaux
 Niveaux d’abstraction : structuration du SGBD en niveau
d’abstraction pour 3 profil d’utilisateur
– Niveau externe ou niveau des vues (accessible à l’utilisateur)
Quelles données peut-on voir → schéma externe (vue de la BD par les utilisateurs)
– Niveau logique /conceptuel (accessible au concepteur/programmeur)
Quelles données sont stockées : Tables, relations, attributs → schéma logique
– Niveau physique /interne (accessible au concepteur et à l’administrateur)
Comment les données sont stockées sur disque → schéma physique
Rappel sur la modélisation conceptuelle
 Indépendance entre les niveaux
– Indépendance physique des données
le changement du schéma physique n’affecte pas
le schéma logique
Le profil du niveau conceptuel ignore la structure
du niveau physique
– Indépendance logique des données
le changement du schéma logique n’affecte pas
le schéma externe
L’utilisateur du niveau vue ignore la structure du
niveau conceptuel
Modélisation Conceptuelle
 Schéma Logique
 Base de données
Modélisation des données et schémas
 La modélisation est l’activité d’élaboration d’une représentation
structurée de la réalité
 Une BD est une représentation de la partie du monde réel qui
intéresse les utilisateurs / les applications.
 La modélisation des données est l’élaboration des structures de
données pour les données qui seront enregistrées dans une BD.
 La définition de ces structures est consignée dans le schéma de la
base de données.
Modélisation conceptuelle : objectif
 Objectif: représenter la réalité telle qu'elle est perçue par les
utilisateurs
 Le processus de modélisation et la définition de son résultat sous
forme d'un schéma conceptuel est appelé conception de la base de
données
 La qualité de la conception de la BD est un facteur critique de
réussite
Modélisation conceptuelle : avantages
 Attention portée sur les applications
 Indépendante des technologies
 Portabilité
 Longévité
 Orientée utilisateur
 Compréhensibilité
 Support du dialogue concepteurs / utilisateurs
 Permet la collaboration et la validation par les utilisateurs
Modélisation conceptuelle : avantages
 Spécifications formelles, non ambiguës
 Puissance des concepts
 Support d’interfaces visuelles (lisibilité)
 Diagrammes de définition de données
 Manipulation de données
 Facilite les échanges d’informations entre SGBD différents
Modélisation conceptuelle : modèle de données
 Ensemble de :
 concepts permettant la description et la manipulation des données du monde réel
 règles d’utilisation de ces concepts
 Ces concepts décrivent les aspects:
 Statiques: structure des données
 Dynamiques: opérations sur les données
+ contraintes explicites
Modèles conceptuels :
 Respectent la trilogie de base
 Objets
 Liens
 propriétés
 Permettent des représentations multiples
Modélisation conceptuelle : modèle de données
 Une BD est une représentation de la partie de la réalité qui nous
intéresse.
Conception d’une BD : analyse
 Abstraction de la réalité perçue à la représentation:
 Faire abstraction des particularités permet de passer des objets aux
types d'objets
 type d’objet: Personnes
 Propriétés : nom, age, , sexe
Conception d’une BD : analyse
 Un schéma est une collection de types
 La base de données contiendra les valeurs représentant les instances
de ces types
Conception d’une BD : Définition du schéma
 Complétude
Description de tous phénomènes courants
 Fiabilité
formellement défini
 Orientation utilisateur
compréhensible, clair, lisible
 Orthogonalité
indépendance des concepts
 Implémentabilité
traduisible en SGBD existant
 Complètement opérationnel
capacités de manipulation des données
Conception d’une BD : qualités pour modèles conceptuels
 Recueil de besoins
 Modèles conceptuels
MCD, EA, UML
 Transformations
Règles de passage du schéma conceptuel vers schéma logique
 Normalisation
est ce que le schéma obtenu est normalisé
 Optimisation
Est-ce le meilleur schéma possible pour décrire les données
Conception d’une BD : étapes de modélisation
1. Analyse des besoins
 Analyse des besoins
 observer le monde réel
 identifier les informations
 Pertinentes
2. Modélisation des données
 formaliser les besoins
3. Implantation des données et des procédures
 d’interrogation et de mise à jour
 BD proprement parlé
Conception d’une BD : Comment construire une base de données
Il s’agit d’un modèle de type conceptuel dont le but :
permettre la description conceptuelle des structures de données d'une application
 Proposé par Peter Chen en 1976
 Principe : Transcrire les besoins en terme de classes d’entités et de classes
d’associations
Le modèle Entité-Association
Le modèle Entité-Association : Concepts de base
 Objet (du monde réel) <=> entité : représentation d’un objet du monde réel
qui a une existence propre (concret ou abstrait); un type ou classe d’entités est
la représentation d'un ensemble d'entités perçues comme similaires et ayant les
mêmes caractéristiques
 lien (entre les objets) <=> association : représentation d'un lien non orienté
entre plusieurs entités (jouant chacune un rôle déterminé); un type ou classe
associations est la représentation d'un ensemble d'associations ayant la même
sémantique et décrites par les mêmes caractéristiques
 Propriété (des objets) <=> attribut : décrit l’information (les propriétés) à
conserver sur:un objet, une association, ou même un attribut.
 Possède un nom et un domaine de valeurs (=ensemble de valeurs permises)
 Peut être atomique(simple ie non décomposable) ou complexe,
 Est monovalué (une seule valeur par occurrence) ou multivalué, obligatoire ou facultatif
Le modèle Entité-Association : Concepts de base
 Identifiant : sous ensemble d'attributs d'une classe d'entités
 Permet de distinguer les entités de la même classe (deux entités de la même classe d’entité
ne peuvent pas avoir le même identifiant)
 Toute classe d'entités doit avoir au moins un identifiant (si plusieurs identifiants potentiels il
faut en choisir un seul )
 Un identifiant peut être :
 Naturel (construit à partir des attributs de la classe)
 Artificiel (rajouté aux attributs de la classe, lorsque les attributs de la classe ne permettent
pas de définir un identifiant.
 Exemples :
 Le matricule de l'étudiant permet de distinguer un étudiant de façon unique parmi tant
d’autres de et peut être choisi comme identifiant de la classe Étudiant
 Si plusieurs enseignants peuvent avoir le même nom et le même prénom (le couple nom,
prénom ne peut pas jouer le rôle d'identifiant), alors ajouter un attribut artificiel id à la classe
Enseignant qui sera désigné comme identifiant
 Association binaire, association ternaire ou n-aire, association réflexive;
dans une association réflexive on spécifie le rôle de chaque entité
 Cardinalités : On représente les choix de conception sur les associations par
des cardinalités. La cardinalité de l’association pour un type d’entité E est une
paire [min,max] :
 max (cardinalité maximale) désigne le nombre maximal de fois où une entité e de E peut
intervenir dans l’association (1 ou *, nombre indéterminé).
 min (cardinalité minimale) désigne le nombre minimal de fois où une entité e de E peut
intervenir dans l’association (0 ou 1)
 Les cardinalités peuvent être distinctes dans une association réflexive
 Association un-à-plusieurs, plusieurs-à-plusieurs
 NB: On peut remplacer une association plusieurs-à-plusieurs par une entité et des
associations un-à-plusieurs.
Le modèle Entité-Association : Concepts de base
Le modèle Entité-Association
Exemples:
 Entité :
• l’étudiant « OUEDRAOGO Idrissa »,
• la matière « SGBD »,
• le compte en banque « C0001 » d’un client,…
 Classe d’entité :
• La classe ou type Etudiant décrivant l'ensemble des étudiants de ESTA
• La classe ou type Matiere décrivant toutes les matières du cursus de ESTA
 Attribut : Le nom, le prénom, l'adresse et le matricule sont des attributs de la
classe Étudiant. Le matricule est un nombre entier de 4 chiffre par exemple.
Le modèle Entité-Association
Pour simplifier on parlera volontiers de :
 Entité pour classe ou type d’entités
 Association pour classe ou type d’associations
NB: Dans la modélisation E/A, on se préoccupe seulement des types/classes, pas
des instances particulières.
Le modèle Entité-Association : Choix de conception
Plusieurs choix de conception sont souvent possibles :
 Un objet peut-il être modélisé par une entité ou par un attribut ?
Décision relativement facile à prendre si l'on connaît l’application et son évolution.
 Un objet peut-il être modélisé par une entité ou par une association ?
Règle générale : toute action impliquant deux entités donne lieu à une association.
 Un attribut décrit-il une association ou une entité?
Le choix dépend des cardinalités
Cardinalité 1 à plusieurs : les deux alternatives sont équivalentes puisque l’une des deux
entités participe une seule fois dans l’association
Cardinalité plusieurs-à-plusieurs : la sémantique diffère selon le cas où l’attribut est au
niveau de l’entité ou de l’association
Cas Pratique
1
TD 0 : Modelisation E/A
Soit le schéma suivant décrivant le monde réel du domaine du FOOTBALL
1) Questions simples de lecture :
a) Combien existe-t-il d’associations ?
b) Combien existe-t-il d’associations réflexives ?
c) Pourquoi n’y a-t-il pas de label sur les arcs de l’association distance ?
2) On veut adapter le schéma pour tenir compte des descriptions suivantes :
a) Pour un match on connait l’équipe qui invite et celle qui est invitée
b) Une équipe peut-elle jouer contre elle-même?
c) On connait par la suite le numéro d’adhérent national d’une personne et on suppose également
qu'il ya des joueurs avec le même nom.
d) Une équipe a un entraineur. On connait le nom, l’âge et le n° d’adhérent national de l’entraineur
d’une équipe, mais pas sa taille. Un entraineur peut entrainer plusieurs équipes, une équipe a un seul
entraîneur.
Représenter le schéma E/A de l'énoncé suivant concernant les musées du BURKINA :
Une ville (nom, pays) a des musées (nom, description).
Une œuvre (titre, siècle) est exposée dans un musée pendant une certaine période
(début, fin).
Une œuvre peut ne pas être exposée.
Elle peut aussi être exposée dans différents musées à différentes périodes.
On connaît le nom et le prénom de l’artiste qui a réalisé une œuvre.
Il y a un artiste par œuvre, les artistes réalisent de nombreuses œuvres.
Soit le schéma E/A ci-dessous : représentation simplifiée des visites au centre hospitalier Universitaire
Yalgado.
1. Identifiez les différentes composantes d'un schéma E/A dans le schéma représenté
2. Répondez aux questions selon les informations de ce schéma.
a) Un patient peut-il être consulté plusieurs fois ?
b) Un médecin peut-il recevoir plusieurs patients dans la même consultation?
c) Peut-on prescrire plusieurs médicaments dans une même consultation ?
d) Un médicament peut-il être prescrit plusieurs fois pour un même patient.
e) Un patient peut-il être consulté plusieurs fois le même jour ?
f) Un patient peut-il être consulté plusieurs fois le même jour par le même médecin ?
g) Déduisez un schéma relationnel de ce schéma conceptuel E/A
 Etude préalable
 se préoccuper plus des entités et relations que des propriétés (structure)
 Etude détaillée
 le plus détaillé possible (propriétés, DF,....)
Guide :
1. ne pas réfléchir en terme de fonction (traitements) ou essayer d'exprimer des états
2. modéliser d'abord les entités puis les relations
3. dès que l'on a modélisé une entité, lui donner un identifiant
4. dès qu'une propriété est affectée à une entité ou une relation s'assurer de son unicité
5. s'assurer que toutes les entités participent au moins à une relation
6. affecter les cardinalités aux relations
7. rechercher les éventuelles DF des relations et effectuer si possible les décompositions
Introduction au modèle relationnel
Le modèle relationnel
 Le modèle relationnel est constitué d'un ensemble d'opérations formelles sur les
relations.
 Les données sont stockées dans des tables que l’on peut mettre en relation.
 Une table est une relation, mais entre les différents champs qui la composent.
Le modèle relationnel
 La modélisation relationnelle permet de représenter les relations à l'aide de
tables (à deux dimensions)
 Une ligne de table représente donc une entité.
 Un attribut est le nom des colonnes qui constitue la définition d’une table. Il
comporte un typage de données.
 On appelle tuple (ou n-uplet) une ligne de la table.
Le modèle relationnel
 La cardinalité d'une relation est le nombre de tuples qui la composent.
 La clé principale (ou primaire) d'une relation est l'attribut, ou l'ensemble
d'attributs, permettant de désigner de façon unique un tuple.
 Une clé étrangère, par contre, est une clé faisant référence à une clé appartenant
à une autre table.
Le modèle relationnel : notions de table, colonne, ligne
 Basé sur la définition et la manipulation de relations:
 Données: organisées dans des relations (perçues par l'utilisateur comme tables)
 Table (relation) = ensemble de n-uplets avec mêmes attributs, représentée sous
la forme d'un tableau à deux dimensions:
 Chaque colonne correspond à un attribut Ai
 Chaque ligne (tuple, n-uplet) est une séquence de n valeurs atomiques (v1, .., vn) où chaque vi est la
valeur (nombre, chaine de caractères, date, …) d'un attribut Ai ou NULL (absence de valeur).
Le modèle relationnel
EXEMPLE :
 La table (relation) Etudiants = ensemble de lignes (tuples ou n-uplets)
 {02191, OUEDRAOGO, Noufou, Avenue de Pissy}, {02192, TRAORE, Bertrand, Rue
de Lyon}, {02193, SANA, Bob, NULL}
MATRICULE NOM PRENOM ADRESSE
02191 OUEDRAOGO Noufou Avenue de Pissy
02192 TRAORE Bertrand Rue de Lyon
02193 SANA Bob NULL
Attribut ou colonne
Lignes ou
tuples ou n-uplets
Le modèle relationnel : Schéma relationnel
Schéma d'une relation: Nom de la relation + Liste de ses attributs avec leur
domaines (nombre, chaîne de caractères, date...) + Clés des tables et contraintes
d’intégrité.
Instance d'une relation: Ensemble des n-uplets de la table
Schéma d'une base de données: Ensemble des schémas des relations qui la
composent.
NOTATIONS
Schéma d’une BD = ensemble des schémas de relation
S = {R1, R2, …, Rn} où Ri est un schéma de relation
Schéma de relation = ensemble des attributs avec leurs domaines respectifs et les
contraintes R(A1:D1, A2:D2, …, Am:Dm), A1 est clé primaire: relation d'arité m
EXEMPLE DE RELATION:
Etudiants(matricule :Number, nom : Varchar, prenom : Varchar, adresse : Varchar)
Le modèle relationnel : Avantages du modèle relationnel
 Proche de la réalité et simple
 La plupart des entités du monde réel partagent les mêmes attributs
 Familiarité des utilisateurs avec les tableaux
 Repose sur des fondements mathématiques solides
 Théorie des Ensembles
 Logique du Premier Ordre
 Doté de langages de requêtes puissants
 Algèbre relationnelle, Calcul des Prédicats
 SQL (Structured Query Language)
Passage E/A vers le modèle relationnel
Rappel pour la construction d'une BD
 Modèle conceptuel des données (MCD): description de l'application dans un
langage de haut niveau (Entité /Association) qui ne tient pas compte du SGBD
 Modèle logique des données (MLD): description des données dans un
formalisme compatible avec un SGBD (schémas, tables, colonnes, clés primaires
et étrangères )
 Modèle physique des données (MPD): implémentation du modèle logique dans
le SGBD (affiner le MLD en un schéma pour un SGBD spécifique), utilisation de
SQL (create TABLE..), types des attributs, index, dénormalisation
Passage E/A vers le modèle relationnel
Comment transformation le MCD en MLD?
Passage E/A vers le modèle relationnel
Utiliser les règles de passage E/A vers relationnel
 Règles de transformation des Entités:
 Une entité devient une relation
 Les attributs d'une entité deviennent les attributs de la relation
 Tout ensemble d'attributs identifiant une entité devient la clé primaire de la relation
 Tout ensemble d'attributs susceptibles de jouer le rôle d'identifiant d'entité devient clé
candidate de la relation
 Exemple :
Passage E/A vers le modèle relationnel
Utiliser les règles de passage E/A vers relationnel
 Règles de transformation d'une association : traitement différent en fonction
des cardinalités
 Cas 1 : Association n-aire avec cardinalités (x,y) et au moins une cardinalité (1,1), où
(x, y) peut être: (0,n), (1,n), (0,1)
La table obtenue pour l'entité correspondante à la cardinalité (1,1) contiendra aussi les attributs
de l'association.
Si plusieurs cardinalités (1,1), modifier seulement la table correspondante à l'une de ces entités
 Cas 2 : Association n-aire avec cardinalités (x, n) (x:{0,1})
Créer une table ayant comme attributs tous les attributs de l'association et comme identifiants
les identifiants des entités participants à l'association
 Cas 3 : Associations n-aire avec cardinalités (x, y) et (0,1), où (x, y) ≠ (1,1) , (x, y)
peut être {(0, n), (1, n), (0,1)}. Transformations possibles:
Similaire à celle pour le Cas 1 problème: valeurs NULL possibles
Similaire à celle pour le Cas 2 préférable car élimination des valeurs NULL
Passage E/A vers le modèle relationnel
Utiliser les règles de passage E/A vers relationnel
 EXEMPLE 1: Association n-aire (x, y) et (1,1)
Rappel : attributs de l'association {code, numéro, heureDebut, durée}
Module(code, intitule, niveau, numéroSalle*, heureDebut, duree)
NuméroSalle référence numéro de la table Salle
Salle(numéro, nbrePlaces)
Passage E/A vers le modèle relationnel
Utiliser les règles de passage E/A vers relationnel
 EXEMPLE 2: Association n-aire (x, y) et (1,1) avec plusieurs cardinalités 1:1
Compte(numéro, type)
Client(code, Nom, DateN, NumeroCompte*, depuis)
NumeroCompte référence numéro de la table Compte
NB: La table Compte peut être enlevée si l'entité Compte n’est associée à aucune
autre entité, tous ses attributs seront stockés dans la relation Client
Passage E/A vers le modèle relationnel
Utiliser les règles de passage E/A vers relationnel
 EXEMPLE 3: Association n-aire (x, n)
Etudiant(matricule, nom, prenom, adresse)
Module(code, intitulé, niveau)
Inscriptions(matricule*, code*, anneeUniv)
Passage E/A vers le modèle relationnel
Utiliser les règles de passage E/A vers relationnel
 EXEMPLE 4: Association n-aire (x, y) et (0,1)
Première possibilité : même transformation que pour le Cas 1
Promotion(nom)
Etudiant(matricule,nom, promo*)
promo clé étrangère fait référence à nom de Promotion
Problème : possibilité d'avoir des valeurs NULL
Passage E/A vers le modèle relationnel
Utiliser les règles de passage E/A vers relationnel
 EXEMPLE 5: Association n-aire (x, y) et (0,1)
Première possibilité : même transformation que pour le Cas 1
Promotion(nom)
Etudiant(matricule, … , promo*)
Etud-Prom0(matEtu*, promo*)
Avantage : stocker uniquement les paires (étudiant, promo) qui existent
(évite les valeurs NULL)
Le modèle relationnel : aspect théorique
Le modèle relationnel est un modèle de données ensembliste :
 défini par E.Codd en 1970
 simple à comprendre
 très répandu et populaire
 qui offre un niveau d’abstraction particulièrement intéressant
 facile à optimiser
En pratique, c’est un modèle implémenté dans de nombreux SGBD : Oracle,
MySQL, PostgresQL, DB2, SQL Server, ...
Le modèle relationnel : aspect théorique
Le modèle relationnel repose sur des:
 attributs simples et atomiques
Attribut c’est le nom représentant un élément/objet
Exemple : nom_de_famille, temperature, age, prix_unitaire, quantite .
NB: il n’y a pas d’attributs complexes tels que des listes, des tableaux, des structures,…
 domaines de définition des attributs
Domaine ≈ ensemble fini ou infini des valeurs possibles pour un attribut
Exemple : entier, flottants, chaînes de caractères, dates,
 opérations incluant les opérations ensemblistes usuelles
Exemple : union, intersection, différence, produit cartésien
 relations qui permettent de représenter et de manipuler les données selon la
vision ensembliste
Le modèle relationnel : aspect théorique
Qu’est-ce qu’une relation?
Puisque le Modèle Relationnel est un modèle de données ensembliste, c’est un modèle
qui porte sur des ensembles.
Considérons n ensembles E1...En représentant des domaines.
Une relation est définie comme un sous-ensemble de l’ensemble E1×...× En.
Exemple :
Pour E1 l’ensemble des noms de famille, E2 l’ensemble des prénoms et E3
l’ensemble des âges.
Une relation possible est un sous-ensemble deE1×E2×E3 qui regrouperait le nom,
le prénom et l’âge des étudiant(e)s présent(e)s dans la salle.
Le modèle relationnel : aspect théorique
Qu’est-ce qu’une relation?
Premier constat sur les relations
Pour E1 l’ensemble des noms de famille, E2 l’ensemble des variétés d’algues et E3
l’ensemble des fleuves du Burkina.
La relation basée sur E1×E2×E3 n’aurait pas beaucoup de sens.
NB: : Une relation permet de relier des attributs qu’il est pertinent de relier.
⇒ Une relation permet de représenter des objets complexes
A partir des attributs Nom, Prénom, DateNaissance, Matricule,il est possible de
représenter une relation représentant des Etudiants
Le modèle relationnel : aspect théorique
Qu’est-ce qu’une relation?
2ème constat sur les relations
Une relation peut être vu comme une table à deux dimensions ayant :
 une structure et des contraintes ⇒ on parlera du schéma de relation
 un contenu ⇒ on parlera d’instance de relation
Chaque ligne dans la relation va représenter une donnée.
Le modèle relationnel : aspect théorique
Schéma de relation
Un schéma de relation permet de représenter les attributs, le domaine de ces
attributs et les contraintes associées aux attributs.
Autrement dit :
Le schéma de relation permet de comprendre la structure et les contraintes de la
relation.
Exemple de schéma de relation
PERSONNE(nom : varchar(50), prenom : varchar(250), age : integer )
Définition : Le nombre d’attributs présents dans la relation est appelé arité ou
degré
Le modèle relationnel : aspect théorique
Différentes représentations d’un schéma de relation
Un schéma de relation peut se représenter sous forme textuelle :
Sans les domaines :
ETUDIANT(matricule, nom, prenom, age )
Avec les domaines :
ETUDIANT( matricule : integer(5), nom : varchar(50), prenom :varchar(150), age : integer )
Le modèle relationnel : aspect théorique
Différentes représentations d’un schéma de relation
Un schéma de relation peut se représenter sous forme graphique :
NB : il sera important de ne pas confondre ce mode de représentation avec les
éléments du schéma Entité/Association
ETUDIANT
Matricule
Nom : varchar(50)
Prenom : varchar(150)
Age: integer
Le modèle relationnel : aspect théorique
Instance de relation
Une instance de relation permet de :
 représenter les valeurs d’attributs dans la relation.
 connaître le contenu de la relation.
Exemple d’instance de la relation ETUDIANT :
{ (02101,’Ouedraogo’, ’Aïda’, 20);(02102, ’Traoré’, ’Kantigui’, 21) }
Un élément de l’instance est appelé tuple, n-uplet, occurence.
Le nombre d’éléments présents dans l’instance est appelé cardinalité
Le modèle relationnel : aspect théorique
Questions : Si l’on considère la table suivante comme l’implémentation de la
relation nommée FILM.
Quel est le schéma de la relation FILM?
Quelle est l’arité de la relation FILM?
Combien de tuples peuplent l’instance de la relation FILM?
Quel est le domaine de définition de l’attribut titre?
Quel est le domaine de définition de l’attribut annee?
Titre Année categorie Avis
STAR WAR3 2015 Science-Fiction *****
Ma Grande Famille 2019 Serie *****
Zootopie 2016 Dessin animé **
Le modèle relationnel : aspect théorique
Base de données relationnelle
Au niveau d’une base de données,
 l’ensemble de tous les attributs est appelé univers.
 l’ensemble des schémas de relation constitue le schéma relationnel de la base de
données.
 l’ensemble des instances des relations constitue une instance de la base de données.
EXEMPLE:
Pour représenter des étudiant et des cours, un schéma de base de données
possible est :
ETUDIANT(matricule, nom, prenom, age)
COURS(codeUE, intitule, enseignant)
Question : donnez une instance possible de BD correspondant
Le modèle relationnel : aspect théorique
Remarque à propos des contraintes d’intégrité
Si l’on considère la relation ETUDIANT de schéma :
ETUDIANT(matricule,nom,prenom,age) , il serait raisonnable de s’assurer que les
contraintes suivantes sont vérifiées :
o les numéros matricule identifie de manière unique un étudiant
o Un étudiant ne peut pas avoir plus de 150 ans
Un identifiant permet d’identifier de manière unique un tuple dans une relation.
Dans le schéma de relation ETUDIANT(matricule,nom,prenom,age) il est pertinent de
considérer que numsecu est un identifiant.
Notation de l’identifiant : <nomAttribut(s)>
Le schéma de relation s’écrit alors :ETUDIANT(matricule,nom,prenom,age)
Le modèle relationnel : aspect théorique
Comment référencer un tuple dans une autre relation?
Une référence permet de spécifier l’attribut d’une autre relation qui est référencé
par l’attribut local.
Soit le schéma de base données :
ENSEIGNANT(codeenseign, nom, prenom,age)
COURS(codecours, intitule, enseignant)
il est pertinent de considérer l’attribut enseignant comme une référence à un
enseignant.
Notation de la référence : #<nomAttribut> ou souvent <nomAttribut>*
Le schéma de base s’écrit alors :
ENSEIGNANT(codeenseign, nom, prenom,age)
COURS(codeUE, intitule, #enseignant )
Le modèle relationnel : algèbre relationnel
Les opérations de l’algèbre relationnelle
 Opérations binaires pour des relations de même schéma
 UNION notée 
 INTERSECTION notée 
 DIFFERENCE notée —
 Opérations binaires pour des relations de schémas différents
 Produit cartésien
 Pas d’opérations unaires
 Extension
 Union externe pour des relations de schémas différents
 Ramener au même schéma avec des valeurs nulles
Le modèle relationnel : algèbre relationnel
Exemple de Produit Cartésien
INFOVILLE NOMV DPT
OUAGA 11
BOBO 10
R NOM DN VILLE NOMV
DPT
ETU NOM DN VILLE
SANA 2001 OUAGA
BAZIE 1999 BOBO
CISSE 1999 BOBO
DABOUE 2001 OUAGA
SANA 2001 OUAGA OUAGA 11
SANA 2001 OUAGA BOBO 10
BAZIE 1999 BOBO OUAGA 11
BAZIE 1999 BOBO BOBO 10
CISSE 1999 BOBO OUAGA 11
CISSE 1999 BOBO BOBO 10
DABOUE 2001 OUAGAS OUAGA 11
DABOUE 2001 OUAGAS BOBO 10
R=ETU × INFOVILLE
×
Le modèle relationnel : algèbre relationnel
Projection
 Elimination des attributs non désirés et suppression des tuples en
double
 Relation  Relation notée:  A1,A2,...Ap (R)
ETU NOM DN VILLE
SANA 2001 OUAGA
BAZIE 1999 BOBO
CISSE 1999 BOBO
DABOUE 2001 OUAGA
2001 OUAGA
1999 BOBO
1999 BOBO
2001 OUAGA
DN,VILLE(ETU) DN VILLE
DN,VILLE(ETU)
Le modèle relationnel : algèbre relationnel
Restriction
 Obtention des tuples de R satisfaisant un critère Q
 Relation  Relation, notée Q(R)
 Q est le critère de qualification de la forme :
 Ai Valeur
  { =, <, >=, >, <=, !=}
Il est possible de réaliser des « OU » (union) et des « ET » (intersection) de
critères simples
Le modèle relationnel : algèbre relationnel
Restriction : Exemple de Restriction
ETU NOM DN VILLE
SANA 2001 OUAGA
BAZIE 1999 BOBO
CISSE 1999 BOBO
DABOUE 2001 OUAGA
ETU NOM DN VILLE
SANA 2001 OUAGA
DABOUE 2001 OUAGA
INFOVILLE NOMV DPT
OUAGA 11
BOBO 10
ETU.VILLE = INFOVILLE.NOMV ETU.VILLE = INFOVILLE.NOMV
R=ETU INFOVILLE
Le modèle relationnel : algèbre relationnel
Jointure : Composition des deux relations sur un domaine commun
Syntaxe : Relation X Relation ->Relation
Notée
 Critère de jointure
◦ Attributs de même nom égaux :
 Attribut = Attribut
 Jointure naturelle
 Se fait en principe en utilisant une clé étrangère !!!
◦ Comparaison d'attributs :
 Attribut1 Attribut2
 Théta-jointure
 La jointure peut se voir comme un produit cartésien, combiné à une restriction sur
l’attribut de jointure, puis d’une projection pour éliminer l’attribut doublon.
Le modèle relationnel : algèbre relationnel
Jointure : Exemple de
ETU NOM DN VILLE
SANA 2001 OUAGA
BAZIE 1999 BOBO
CISSE 1999 BOBO
DABOUE 2001 OUAGA
DN>2000 (ETU)
ETU NOM DN VILLE
SANA 2001 OUAGA
DABOUE 2001 OUAGA
Le modèle relationnel : algèbre relationnel
Jointure et Produit Cartésien
R1 R2
A = B
Équivaut à : A=B(R1 × R2)
Le modèle relationnel : Conclusion
Le Modèle relationnel permet d’exprimer :
 la structure des données : Schéma relationnel
 le contenu des données : Instance relationnelle
 des contraintes d’intégrité sur les données : Schéma relationnel
Le modèle relationnel est une représentation logique des données.
Comment représenter concrètement ces données?
⇒ un langage dédié aux données : SQL

Contenu connexe

Similaire à Cours_BD_M1-EAI-2023.pdf

Cours Base de données relationnelles
Cours Base de données relationnellesCours Base de données relationnelles
Cours Base de données relationnellesAymen Kasmi
 
Introduction aux bases de données
Introduction aux bases de donnéesIntroduction aux bases de données
Introduction aux bases de donnéesAbdoulaye Dieng
 
Intro_modul_et_SI_chapt0.ppt
Intro_modul_et_SI_chapt0.pptIntro_modul_et_SI_chapt0.ppt
Intro_modul_et_SI_chapt0.pptIdriss22
 
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école Mehdi Hamime
 
Visite guidée au pays de la donnée - Introduction et tour d'horizon
Visite guidée au pays de la donnée - Introduction et tour d'horizonVisite guidée au pays de la donnée - Introduction et tour d'horizon
Visite guidée au pays de la donnée - Introduction et tour d'horizonGautier Poupeau
 
java BDD jdbc
java BDD jdbcjava BDD jdbc
java BDD jdbcvangogue
 
bases des données relationnelles pour les ue nfa008
bases des données relationnelles pour les ue nfa008bases des données relationnelles pour les ue nfa008
bases des données relationnelles pour les ue nfa008AliHusseini14
 
Cours des bases de données
Cours des bases de données Cours des bases de données
Cours des bases de données yassine kchiri
 
Le métier d’administrateur de
Le métier d’administrateur deLe métier d’administrateur de
Le métier d’administrateur deAlgeria JUG
 
Le "Lac de données" de l'Ina, un projet pour placer la donnée au cœur de l'or...
Le "Lac de données" de l'Ina, un projet pour placer la donnée au cœur de l'or...Le "Lac de données" de l'Ina, un projet pour placer la donnée au cœur de l'or...
Le "Lac de données" de l'Ina, un projet pour placer la donnée au cœur de l'or...Gautier Poupeau
 
Chap1Concepts-FondamentauxBD.pdf
Chap1Concepts-FondamentauxBD.pdfChap1Concepts-FondamentauxBD.pdf
Chap1Concepts-FondamentauxBD.pdfBoubakerMedanas
 
7. information modelling
7. information modelling7. information modelling
7. information modellingsugogo
 
Emna borgi mabroukachraita-datawarehouse
Emna borgi mabroukachraita-datawarehouseEmna borgi mabroukachraita-datawarehouse
Emna borgi mabroukachraita-datawarehouseEmna Borgi
 
Intro SGBD et BD.ppt
Intro SGBD et BD.pptIntro SGBD et BD.ppt
Intro SGBD et BD.pptBahaty1
 
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...Mehdi Hamime
 
Modelisation conceptuelle
Modelisation conceptuelleModelisation conceptuelle
Modelisation conceptuellekacem kouninef
 

Similaire à Cours_BD_M1-EAI-2023.pdf (20)

Cours Base de données relationnelles
Cours Base de données relationnellesCours Base de données relationnelles
Cours Base de données relationnelles
 
Introduction aux bases de données
Introduction aux bases de donnéesIntroduction aux bases de données
Introduction aux bases de données
 
Intro_modul_et_SI_chapt0.ppt
Intro_modul_et_SI_chapt0.pptIntro_modul_et_SI_chapt0.ppt
Intro_modul_et_SI_chapt0.ppt
 
Si bdd
Si bddSi bdd
Si bdd
 
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
 
Cours BDD.pptx
Cours BDD.pptxCours BDD.pptx
Cours BDD.pptx
 
Visite guidée au pays de la donnée - Introduction et tour d'horizon
Visite guidée au pays de la donnée - Introduction et tour d'horizonVisite guidée au pays de la donnée - Introduction et tour d'horizon
Visite guidée au pays de la donnée - Introduction et tour d'horizon
 
java BDD jdbc
java BDD jdbcjava BDD jdbc
java BDD jdbc
 
bases des données relationnelles pour les ue nfa008
bases des données relationnelles pour les ue nfa008bases des données relationnelles pour les ue nfa008
bases des données relationnelles pour les ue nfa008
 
Cours des bases de données
Cours des bases de données Cours des bases de données
Cours des bases de données
 
Le métier d’administrateur de
Le métier d’administrateur deLe métier d’administrateur de
Le métier d’administrateur de
 
Metadonnees et SID
Metadonnees et SIDMetadonnees et SID
Metadonnees et SID
 
Le "Lac de données" de l'Ina, un projet pour placer la donnée au cœur de l'or...
Le "Lac de données" de l'Ina, un projet pour placer la donnée au cœur de l'or...Le "Lac de données" de l'Ina, un projet pour placer la donnée au cœur de l'or...
Le "Lac de données" de l'Ina, un projet pour placer la donnée au cœur de l'or...
 
Chap1Concepts-FondamentauxBD.pdf
Chap1Concepts-FondamentauxBD.pdfChap1Concepts-FondamentauxBD.pdf
Chap1Concepts-FondamentauxBD.pdf
 
7. information modelling
7. information modelling7. information modelling
7. information modelling
 
Emna borgi mabroukachraita-datawarehouse
Emna borgi mabroukachraita-datawarehouseEmna borgi mabroukachraita-datawarehouse
Emna borgi mabroukachraita-datawarehouse
 
Intro SGBD et BD.ppt
Intro SGBD et BD.pptIntro SGBD et BD.ppt
Intro SGBD et BD.ppt
 
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
 
Bases dedonnees.net
Bases dedonnees.netBases dedonnees.net
Bases dedonnees.net
 
Modelisation conceptuelle
Modelisation conceptuelleModelisation conceptuelle
Modelisation conceptuelle
 

Dernier

présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).FatimaEzzahra753100
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...Institut de l'Elevage - Idele
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfInstitut de l'Elevage - Idele
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfInstitut de l'Elevage - Idele
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfmia884611
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSKennel
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)Sana REFAI
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfInstitut de l'Elevage - Idele
 
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...maach1
 

Dernier (11)

présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
 
CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptxCAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)
 
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdfJTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
 
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
 

Cours_BD_M1-EAI-2023.pdf

  • 1. M. Boubacar KEITA BASES DE DONNEES Année 2023 M1 EAI/EBM
  • 2. I. INTRODUCTION II. Système de gestion de bases de données relationnelles  Définitions  Fonctionnalités  Architecture logiciel d’un SGBD  Le langage SQL III. Administration Base de données  Protection, Sécurité  Sauvegarde, restauration  Gestion des accès
  • 3. Le cours de SGBD vise à développer les savoir-faire suivants :  Comprendre les concepts d’un système de Gestion de bases de données relationnelles (SGBDR) ;  fonctionnalités d’un SGBD  prototyper et créer une base de données;  traduire les questions posées dans un langage de requête en respectant sa syntaxe ;  consulter une base de données à travers des requêtes de type SQL ;  comprendre et décrire les rôles des différents éléments de architecture d’un SGBD  comprendre et acquérir les bases pour administrer une base de données
  • 4.
  • 5.  Soit un ensemble de données représentant des enseignants, des étudiants, les cours suivis, et leur notes.  On souhaite par exemple interroger ces données pour retrouver les notes d’un étudiant, calculer des moyennes, etc. 1. Il faut modéliser ces données (existe-t-il une méthode générique simple applicable?) 2. Il faut définir pour chaque opération d’interrogation un « programme » qui réalise cette opération. 3. On souhaite rendre les données persistantes (pérennes) : 1. Il faut les sauvegarder sur un média durable 2. Il faut pouvoir gérer les pannes à tout moment 4. On souhaite modifier les données 5. On souhaite sécuriser l’accès aux données
  • 6.  Définir une structure étudiant qu’on va mettre dans un tableau. En soi c’est déjà compliqué. struct etudiant{ nom : string; notes : tableau [X] de int ; // ou quelque chose de plus compliqué }  Calculer la moyenne des notes d’un élève = écrire une fonction float moyenne (eleve e){ float somme = 0; for(int i=0;i<e.notes.length;i++) somme+=e.notes[i]; return somme/e.notes.length; }  Stocker les données = définir un format de fichier et les procédures permettant de lire ou écrire des données.  Modifier les données = écrire un programme  Sécuriser les données = écrire (plusieurs) programmes  Etc.
  • 7.  Définir une structure étudiant qu’on va mettre dans un tableau. En soi c’est déjà compliqué. struct etudiant{ nom : string; notes : tableau [X] de int ; // ou quelque chose de plus compliqué }  Calculer la moyenne des notes d’un élève = écrire une fonction float moyenne (eleve e){ float somme = 0; for(int i=0;i<e.notes.length;i++) somme+=e.notes[i]; return somme/e.notes.length; }  Stocker les données = définir un format de fichier et les procédures permettant de lire ou écrire des données.  Modifier les données = écrire un programme  Sécuriser les données = écrire (plusieurs) programmes  Etc. TRES COMPLEXE COMME SOLUTION!!!! Il est difficile de trouver des ALGO efficaces pour résoudre ce type de problèmes
  • 8.  Donnée : élément du monde se distinguant des autres.  Donnée : toute valeur numérisée décrivant de manière élémentaire un fait, une mesure, une réalité et associée au contexte permettant de savoir quelle information elle représente. Une donnée peut : être une personne ou un objet ayant des caractéristiques :  un étudiant caractérisé par son : nom, prenom, date de naissance,  Une salle : nom, nombre de place, position géographique  Un cours caractérisé par son : intitulé , volume horaire  Un événement caractérisé par un libellé, une date  Un produit, un client, un fournisseur, une entreprise être définie par la relation entre les objets et/ou les personnes  Un client C commande le Produit P chez l’entreprise donnée E à la date D DEFINITIONS : données
  • 9.  Les données sont souvent regroupées sous forme de collections ou ensemble de données Exemples :  L’ESTA gère un ensemble de données sur les cursus de formation , les matières, les étudiants, les enseignants, la scolarité, les emplois du temps, les salles, …  Une structure hospitalière gère les données sur son personnel soignant et administratif, ses patients, ses consultations et prescriptions medicales, son plateau technique, ses laboratoires d’analyse médicale  Une entreprise commerciale gèrent un ensemble de données sur ses produits, ses fournisseurs, ses achats, ses clients, ses ventes, son stock,……  Un opérateur de Télécommunication gère un ensemble de données sur ces clients, sur ses produits, sur les appels, son infrastructure (BTS, Réseau, …) DEFINITIONS : données
  • 10.  Qu’est ce que la Gestion de données ? C’est :  Organiser les données : comment organiser la gestion des cours : associer les enseignants aux matières, planifier les cours en fonction des salles, attribuer les notes aux étudiants par matière, …  Exploiter les données : pouvoir répondre par exemple à la question : quel enseignant à délivrer le cours de SGBD pendant l’année académique 2018/2019, combien d’étudiants ont suivi ce cours et quel était la plus forte note ?  Partager les données : Comment permettre aux étudiants et aux enseignants d’accéder à l’emploi du temps de la semaine? DEFINITIONS : Gestion de données
  • 11.  Organiser ?  Support papier : faire des fiches papier et les mettre par dossier dans des classeurs  Fichier informatique : créer des fichiers et ranger dans des dossiers informatique  Base de données ? DEFINITIONS : Gestion de données
  • 12.  Évolution du stockage des données DEFINITIONS : Gestion de données
  • 13.  Contraintes des fichiers informatiques  fichier : suite d’enregistrements contenant des données logiquement liées.  des programmes spécifiques doivent permettre la Lecture / Ecriture dans les fichiers  Chaque application défini et gère ces fichiers (WORD, EXCEL,…)  la manipulation des fichiers est directement intégrée dans le programme DEFINITIONS : Gestion de données
  • 14.  Inconvénients des fichiers informatiques  Format de fichier non standards Redondance : les informations d’un même client risquent d’être stockées dans plusieurs fichiers  Incohérence (en lien avec la redondance) : Si le client change d’adresse, il faut s’assurer de la mise à jour dans chaque fichier  Difficulté d’accès : les requêtes non prévues ne sont pas possibles Anomalie due à la concurrence d’accès : Problème de sécurité : tout le monde ne doit pas pouvoir voir ou modifier les mêmes données Violation de l’intégrité des données : il y a des contraintes à vérifier sur les données avant leur modification (le compte d’un abonné ne doit pas avoir un solde <-100 FCFA) Gestion des pannes : à programmer soi même DEFINITIONS : Gestion de données
  • 15.  Constat sur la gestion de données Trop de risques et d’inconvénients liés à la gestion de données par fichiers informatiques DEFINITIONS : Gestion de données
  • 16.  Pour adresser quels besoins ? Disposer d’une collection de données, appelée Base de Données, vérifiant les propriétés suivantes : :  une donnée est enregistrée (sur un support adressable),  la structure d’une donnée ne dépend pas de l’application qui l’interroge,  la valeur d’une donnée est cohérente,  les données ont une redondance minimale (la multiplication des enregistrements d’une donnée est limitée),  une donnée est accessible de manière concurrente par plusieurs utilisateurs. DEFINITIONS : Base de données
  • 17.  Une base de données est un ensemble de données cohérentes entre elles modélisant des objets d’une partie du monde réel et servant de support à une application informatique.  Pour mériter le terme de base de données, un ensemble de données non indépendantes doit être interrogeable par le contenu, c’est-à-dire que l’on doit pouvoir retrouver tous les objets qui satisfont à un certain critère, par exemple tous les produits qui coûtent moins de 10 000 francs. . BASE DE DONNEES : définition
  • 18. SYSTÈME DE GESTION DE BASE DE DONNEES (SGBD)
  • 19. SYSTÈME DE GESTION DE BASE DE DONNEES  Les données d’une BD sont accessibles à l’aide d’une application appelée système de gestion de base de données (SGBD). DEFINITION  Un Système de Gestion de Bases de Données (SGBD) est un logiciel destiné au stockage et à la manipulation de bases de données.  Si ce SGBD est basé sur le modèle relationnel de CODD, on dit qu’il s’agit d’un système de gestion de base de données relationnel (SGBDR).  Pour dialoguer avec un SGBDR on utilise le langage SQL. Ce langage permet de soumettre des requêtes (des questions) au SGBDR.
  • 20. SYSTÈME DE GESTION DE BASE DE DONNEES UN SGBD ? ◦ Indépendance des données/applications et sûreté d’accès aux données. ◦ Temps de développement d’application réduit. ◦ Intégrité des données et sécurité des accès. ◦ Administration des données uniforme. ◦ Concurrence des accès et reprise sur panne.
  • 21. SYSTÈME DE GESTION DE BASE DE DONNEES SGBD : Objectifs
  • 22. SYSTÈME DE GESTION DE BASE DE DONNEES SGBD : OBJECTIFS 1. Indépendance physique  Possibilité de modifier les structures de stockage sans modifier les programmes  Ecriture des applications par des non-spécialistes des fichiers  Meilleure portabilité, indépendance vis-à-vis du matériel 2. Indépendance logique  Possibilité d’ignorer les données d’autres applications  Possibilité d’enrichir les applications sans devoir tout réécrire  Possibilité de protéger (rendre confidentielles) certaines données 3. Langage de Manipulation  Par le biais d’un langage déclaratif (SQL) équivalent à la logique du 1er ordre 4. Vues multiples (virtuelles) des données 5. Exécution et optimisation  Les requêtes sont traduites en un langage procédural (algèbre relationnelle)  … qui peut être optimisé automatiquement. (des années de recherche en BD…) 6. Cohérence : Intégrité logique (Contraintes d’intégrité)  Par le biais d’un langage déclaratif  Détection de mises à jour erronées  Contrôle sur les données élémentaires et les relations 7. Gestion des Pannes : Intégrité physique  Tolérance aux pannes  Transactions  Système (panne courante) 5. Disque (crash) 8. Concurrences d’accès : Partage de données  Isolation (chacun a l’air d’être seul)  Concurrence (tout le monde peut agir en même temps) 9. Confidentialité 10.Standardisation
  • 23.  Indépendance des programmes d'applications vis à vis du modèle physique : ◦ Possibilité de modifier les structures de stockage (fichiers, index, chemins d'accès, …) sans modifier les programmes; ◦ Ecriture des applications par des non-spécialistes des fichiers et des structures de stockage; ◦ Meilleure portabilité des applications et indépendance vis à vis du matériel.
  • 24. Les applications peuvent définir des vues logiques de la BD …… …….. …. Prénom Nom Id-D Jean Masse 3 Paul Durand 2 Pierre Dupont 1 Docteur …… …….. …. Prénom Nom Id-D Jean Masse 3 Paul Durand 2 Pierre Dupont 1 Docteur Visites 2 2 1 1 Id-D 1 mars 13 juillet 12 août 15 juin Date 250 350 180 250 Prix 4 3 2 1 Id-V 3 2 1 2 Id-P Visites 2 2 1 1 Id-D 1 mars 13 juillet 12 août 15 juin Date 250 350 180 250 Prix 4 3 2 1 Id-V 3 2 1 2 Id-P ……. ……. …. Paule Perry 4 Prénom Nom Id-P John Doe 3 Zoe Troger 2 Jacques Lebeau 1 Patients ……. ……. …. Paule Perry 4 Prénom Nom Id-P John Doe 3 Zoe Troger 2 Jacques Lebeau 1 Patients ………… …. …. …. 2 gouttes 3 3 2 12 8 5 12 Id-M 1 par jour 2 par jour 10 gouttes 1 par jour Posologie 2 1 2 1 Ligne 2 2 1 1 Id-V Prescription ………… …. …. …. 2 gouttes 3 3 2 12 8 5 12 Id-M 1 par jour 2 par jour 10 gouttes 1 par jour Posologie 2 1 2 1 Ligne 2 2 1 1 Id-V Prescription …………………………….. …….. …. Description Nom Id-M …………………………….. Mucomyst 3 …………………………….. Fluisédal 2 …………………………….. Aspegic 1000 1 Médicament …………………………….. …….. …. Description Nom Id-M …………………………….. Mucomyst 3 …………………………….. Fluisédal 2 …………………………….. Aspegic 1000 1 Médicament Gestion des médicaments Pharmacie du Dr. DAKUYO Visites 2 1 Id -D 1 mars 15 juin Date 250 250 Prix 4 1 Id -V 3 2 Id -P Visites 2 1 Id -D 1 mars 15 juin Date 250 250 Prix 4 1 Id -V 3 2 Id -P ……. ……. …. Prénom Nom Id -P Zoe Troger 2 Jacques Lebeau 1 Patients ……. ……. …. Prénom Nom Id -P Zoe Troger 2 Jacques Lebeau 1 Patients ………… …. …. …. 5 12 Id -M 10 gouttes 1 par jour Posologie 2 1 Ligne 1 1 Id -V Prescription ………… …. …. …. 5 12 Id -M 10 gouttes 1 par jour Posologie 2 1 Ligne 1 1 Id -V Prescription …………………………….. …….. …. Description Nom Id -M …………………………….. Mucomyst 3 …………………………….. Fluisédal 2 …………………………….. Aspegic 1000 1 Médicament …………………………….. …….. …. Description Nom Id -M …………………………….. Mucomyst 3 …………………………….. Fluisédal 2 …………………………….. Aspegic 1000 1 Médicament Nombre_Médicaments Id-M Nom Description Nombre 1 Paracetamol 500 …………………………….. 7000 2 Amoxycilline …………………………….. 1520 3 Sirop Douba …………………………….. 100 4 Tisane SAYE …………………………….. ….50.
  • 25.  Possibilité pour chaque application d'ignorer les besoins des autres (bien que partageant la même BD).  Possibilité d'évolution de la base de données sans réécriture des programmes ( ajout de champs, ajout de relation, renommage de champs.  Possibilité d'intégrer des programmes existants sans modifier les autres.  Possibilité de limiter les conséquences du partage : Données confidentielles.
  • 26.  La manipulation se fait via un langage déclaratif - La question déclare l’objectif sans décrire la méthode - Le langage est normalisé ISO (pour tous les SGBD) SQL : Structured Query Langage  Sémantique : basée sur le calcul des prédicats(relations) du 1er ordre (variables, quantificateurs…)  Syntaxe SELECT <structure des résultats> FROM <relations> WHERE <conditions>
  • 27.  Les vues permettent d’implémenter l’indépendance logique en permettant de créer des relations virtuelles  Vue = Question stockée  Le SGBD stocke la définition et non le résultat  Exemple pour un SI qui modélise les système universitaire du BURKINA la vue des étudiantes de Bobo la vue des enseignants de Mathématiques
  • 28.  Traduction automatique des questions déclaratives en programmes procéduraux :  Utilisation de l’algèbre relationnelle  Optimisation automatique des questions  Utilisation de l’aspect déclaratif de SQL  Gestion centralisée des chemins d'accès (index, hachages, …)  Techniques d’optimisation poussées  Economie de l'astuce des programmeurs ◦ milliers d'heures d'écriture et de maintenance de logiciels.
  • 29.  Objectif : Détecter les mises à jour erronées  Contrôle sur les données élémentaires Contrôle de types: ex: Nom alphabétique Contrôle de valeurs: ex: Salaire mensuel entre 400 000 et 2 000 000 FCFA  Contrôle sur les relations entre les données Relations entre données élémentaires:  Prix de vente > Prix d'achat Relations entre objets: Un cours est dispensé par un et un seul enseignant
  • 30.  Avantages : ◦ simplification du code des applications ◦ sécurité renforcée par l'automatisation ◦ mise en commun des contraintes  Nécessite : ◦ un langage de définition de contraintes d'intégrité ◦ la vérification automatique de ces contraintes
  • 31.  Motivations : Tolérance aux fautes Transaction Failure : Contraintes d'intégrité, Annulation System Failure : Panne de courant, Crash serveur ... Media Failure : Perte du disque Communication Failure : Défaillance du réseau  Objectifs :  Assurer l'atomicité des transactions  Garantir la durabilité des effets des transactions commises  Moyens :  Journalisation : Mémorisation des états successifs des données  Mécanismes de reprise
  • 32. BD • Accès concurrent aux mêmes données Conflits d’accès !!
  • 33. BD • Le SGBD gère les accès concurrents  Chacun à l’impression d’être seul (Isolation)  Cohérence conservée (Pas de maj conflictuelles)
  • 34.  Objectif : Protéger les données de la BD contre des accès non autorisés  Deux niveaux : Connexion restreinte aux utilisateurs répertoriés (mot de passe) Privilèges d'accès aux objets de la base  Utilisateurs : Usager ou groupe d’usagers  Objets : Relation, Vue, autres objets (procédures, etc.)
  • 35.  L’approche bases de données est basée sur plusieurs standards ◦ Langage SQL (SQL1, SQL2, SQL3) ◦ Communication SQL CLI (ODBC / JDBC) ◦ Transactions (X/Open DTP, OSI-TP)  Force des standards ◦ Portabilité ◦ Interopérabilité ◦ Applications multisources…
  • 36. Fonctionnalités (Pratique) pour un SGBD  Un SGBD permet de définir la Base de Données  Objectif : Construire le schéma de la base de données  Outil : Langage de Description de Données (LDD) Langage de Description de Données Permet de spécifier :  l’organisation/la structuration des données  les types de données  les contraintes d’intégrité (cohérence) sur les données Est unique, commun aux différentes applications ⇒ ce n’est pas l’application qui guide la structuration mais les données à représenter.
  • 37.  Un SGBD permet de manipuler les données dans la BD  Objectif : Rechercher, créer, modifier et supprimer de données  Outil :Langage de Manipulation de Données (LMD) Langage de Manipulation des Données Permet de spécifier :  ce que l’on veut faire ou obtenir plutôt que comment le faire ou l’obtenir Fonctionnalités (Pratique) pour un SGBD
  • 38. Un SGBD permet de :  garantir l’intégrité des données o Définition de contraintes d’intégrité spécifiées dans le schéma de la base o Possibilité de programmer des contraintes d’intégrités complexes  de gérer les défaillances (panne) Restauration de la BD dans un état cohérent et récent  de gérer la concurrence Possibilité d’accès multiple tout en garantissant la cohérence du résultat  de gérer un modèle transactionnel Validation ou annulation d’une suite d’opérations liées  de gérer la sécurité et la confidentialité des données Fonctionnalités (Pratique) pour un SGBD
  • 39. En synthèse un SGBD :  contient les BDs ainsi que leur description et contraintes (méta-données stockés dans le catalogue du SGBD)  permet la centralisation de l'information, représentation de relations complexes entre les données, permet de trouver et de mettre à jour efficacement des données reliées  offre un contrôle de la redondance des données  offre un contrôle des niveaux d'accès aux données (sécurité des données)  offre un moyen de stockage persistant pour les données des applications, structures de stockage et interrogation efficace des données  permet l’abstraction des données, isolation entre les données et les traitements  donne plusieurs vues des mêmes données, interfaces utilisateur multiples  offre un accès simultané aux données centralisées par plusieurs applications, contrôle de concurrence, partage de données  Permet une définition de contraintes d'intégrité et l’automatisation de leur maintenance (triggers) Fonctionnalités (Pratique) pour un SGBD
  • 40. ACCES AU SGBD comment accède-t-on à un SGBD ?  Interactions avec le SGBD : o Interpréteur de commandes o Interface graphique o Dans un langage de programmation (C, C++, Java, Python, PHP, ... via des bibliothèques adéquates pour envoyer les requêtes vers le SGBD. o Via des environnements de reformulation des requêtes
  • 41. EXEMPLES DE SGBD MS SQL Server : Serveur de BD concurrent de Oracle et SGBD principale de Microsoft ORACLE DB : Serveur de base de données robuste pour des environnements critiques MySQL DB : SGBD open source léger et très utilisé pour les applications web PostgreSQL : SGBD multi-plateforme et open source très avancé
  • 42. Quelques domaines dans lesquels on utilise des bases de données ◦ Web: sites, réseaux sociaux (Facebook, Whatsapp ...), forum ◦ Banque/Finance: applications bancaires ou financières, gestion comptable, ... ◦ Economie : plateforme e-commerce (Ali Express, Amazon), services de ventes/achats (gestion de supermarché, boutique, gestion restaurant, ...) ◦ Industrie/Mine: gestion de chaîne de production de boisson, usine de Cimenterie, données de prospections minières, ... ◦ Transports: réservation de billets , gestion des Bus SOTRACO, ... ◦ Science: Gestion des données d'expérimentation,... ◦ Services publiques: gestion des impôts, police, gestion état civil … ◦ Culture : gestion données touristiques, gestion de manifestation comme FESPACO, SIAO ◦ Sport : Gestion de tournoi sportif, gestion des membres d’une fédération
  • 43. Il existe plusieurs types des bases de données : Base de données hiérarchique: Base de données réseau Base de données relationnel Base de données objet Base de données Géographique Base de données NoSQL
  • 44.
  • 45. OBJECTIFS :  Présenter les architectures des systèmes de gestion de bases de données et les techniques permettant de les implémenter.  Techniques d’implémentation des SGBD relationnels.  Architecture des bases de données
  • 46. SGBD : OBJECTIFS (rappel) 1. Indépendance physique  Possibilité de modifier les structures de stockage sans modifier les programmes  Ecriture des applications par des non-spécialistes des fichiers  Meilleure portabilité, indépendance vis-à-vis du matériel 2. Indépendance logique  Possibilité d’ignorer les données d’autres applications  Possibilité d’enrichir les applications sans devoir tout réécrire  Possibilité de protéger (rendre confidentielles) certaines données 3. Langage de Manipulation  Par le biais d’un langage déclaratif (SQL) équivalent à la logique du 1er ordre 4. Vues multiples (virtuelles) des données 5. Exécution et optimisation  Les requêtes sont traduites en un langage procédural (algèbre relationnelle)  … qui peut être optimisé automatiquement. (des années de recherche en BD…) 6. Cohérence : Intégrité logique (Contraintes d’intégrité)  Par le biais d’un langage déclaratif  Détection de mises à jour erronées  Contrôle sur les données élémentaires et les relations 7. Gestion des Pannes : Intégrité physique  Tolérance aux pannes 5. Transactions 6. Système (panne courante) 7. Disque (crash) 8. Concurrences d’accès : Partage de données  Isolation (chacun a l’air d’être seul)  Concurrence (tout le monde peut agir en même temps) 9. Confidentialité 10.Standardisation
  • 47.
  • 48. On s’intéresse ici aux problématiques : Stockage des données  Organisation des fichiers  indexation
  • 50. La Conception de BD Modélisation E/A
  • 52. L’architecture à 3 niveaux  Niveaux d’abstraction : structuration du SGBD en niveau d’abstraction pour 3 profil d’utilisateur – Niveau externe ou niveau des vues (accessible à l’utilisateur) Quelles données peut-on voir → schéma externe (vue de la BD par les utilisateurs) – Niveau logique /conceptuel (accessible au concepteur/programmeur) Quelles données sont stockées : Tables, relations, attributs → schéma logique – Niveau physique /interne (accessible au concepteur et à l’administrateur) Comment les données sont stockées sur disque → schéma physique
  • 53. Rappel sur la modélisation conceptuelle  Indépendance entre les niveaux – Indépendance physique des données le changement du schéma physique n’affecte pas le schéma logique Le profil du niveau conceptuel ignore la structure du niveau physique – Indépendance logique des données le changement du schéma logique n’affecte pas le schéma externe L’utilisateur du niveau vue ignore la structure du niveau conceptuel
  • 54. Modélisation Conceptuelle  Schéma Logique  Base de données
  • 55. Modélisation des données et schémas  La modélisation est l’activité d’élaboration d’une représentation structurée de la réalité  Une BD est une représentation de la partie du monde réel qui intéresse les utilisateurs / les applications.  La modélisation des données est l’élaboration des structures de données pour les données qui seront enregistrées dans une BD.  La définition de ces structures est consignée dans le schéma de la base de données.
  • 56. Modélisation conceptuelle : objectif  Objectif: représenter la réalité telle qu'elle est perçue par les utilisateurs  Le processus de modélisation et la définition de son résultat sous forme d'un schéma conceptuel est appelé conception de la base de données  La qualité de la conception de la BD est un facteur critique de réussite
  • 57. Modélisation conceptuelle : avantages  Attention portée sur les applications  Indépendante des technologies  Portabilité  Longévité  Orientée utilisateur  Compréhensibilité  Support du dialogue concepteurs / utilisateurs  Permet la collaboration et la validation par les utilisateurs
  • 58. Modélisation conceptuelle : avantages  Spécifications formelles, non ambiguës  Puissance des concepts  Support d’interfaces visuelles (lisibilité)  Diagrammes de définition de données  Manipulation de données  Facilite les échanges d’informations entre SGBD différents
  • 59. Modélisation conceptuelle : modèle de données  Ensemble de :  concepts permettant la description et la manipulation des données du monde réel  règles d’utilisation de ces concepts  Ces concepts décrivent les aspects:  Statiques: structure des données  Dynamiques: opérations sur les données + contraintes explicites
  • 60. Modèles conceptuels :  Respectent la trilogie de base  Objets  Liens  propriétés  Permettent des représentations multiples Modélisation conceptuelle : modèle de données
  • 61.  Une BD est une représentation de la partie de la réalité qui nous intéresse. Conception d’une BD : analyse
  • 62.  Abstraction de la réalité perçue à la représentation:  Faire abstraction des particularités permet de passer des objets aux types d'objets  type d’objet: Personnes  Propriétés : nom, age, , sexe Conception d’une BD : analyse
  • 63.  Un schéma est une collection de types  La base de données contiendra les valeurs représentant les instances de ces types Conception d’une BD : Définition du schéma
  • 64.  Complétude Description de tous phénomènes courants  Fiabilité formellement défini  Orientation utilisateur compréhensible, clair, lisible  Orthogonalité indépendance des concepts  Implémentabilité traduisible en SGBD existant  Complètement opérationnel capacités de manipulation des données Conception d’une BD : qualités pour modèles conceptuels
  • 65.  Recueil de besoins  Modèles conceptuels MCD, EA, UML  Transformations Règles de passage du schéma conceptuel vers schéma logique  Normalisation est ce que le schéma obtenu est normalisé  Optimisation Est-ce le meilleur schéma possible pour décrire les données Conception d’une BD : étapes de modélisation
  • 66. 1. Analyse des besoins  Analyse des besoins  observer le monde réel  identifier les informations  Pertinentes 2. Modélisation des données  formaliser les besoins 3. Implantation des données et des procédures  d’interrogation et de mise à jour  BD proprement parlé Conception d’une BD : Comment construire une base de données
  • 67. Il s’agit d’un modèle de type conceptuel dont le but : permettre la description conceptuelle des structures de données d'une application  Proposé par Peter Chen en 1976  Principe : Transcrire les besoins en terme de classes d’entités et de classes d’associations Le modèle Entité-Association
  • 68. Le modèle Entité-Association : Concepts de base  Objet (du monde réel) <=> entité : représentation d’un objet du monde réel qui a une existence propre (concret ou abstrait); un type ou classe d’entités est la représentation d'un ensemble d'entités perçues comme similaires et ayant les mêmes caractéristiques  lien (entre les objets) <=> association : représentation d'un lien non orienté entre plusieurs entités (jouant chacune un rôle déterminé); un type ou classe associations est la représentation d'un ensemble d'associations ayant la même sémantique et décrites par les mêmes caractéristiques  Propriété (des objets) <=> attribut : décrit l’information (les propriétés) à conserver sur:un objet, une association, ou même un attribut.  Possède un nom et un domaine de valeurs (=ensemble de valeurs permises)  Peut être atomique(simple ie non décomposable) ou complexe,  Est monovalué (une seule valeur par occurrence) ou multivalué, obligatoire ou facultatif
  • 69. Le modèle Entité-Association : Concepts de base  Identifiant : sous ensemble d'attributs d'une classe d'entités  Permet de distinguer les entités de la même classe (deux entités de la même classe d’entité ne peuvent pas avoir le même identifiant)  Toute classe d'entités doit avoir au moins un identifiant (si plusieurs identifiants potentiels il faut en choisir un seul )  Un identifiant peut être :  Naturel (construit à partir des attributs de la classe)  Artificiel (rajouté aux attributs de la classe, lorsque les attributs de la classe ne permettent pas de définir un identifiant.  Exemples :  Le matricule de l'étudiant permet de distinguer un étudiant de façon unique parmi tant d’autres de et peut être choisi comme identifiant de la classe Étudiant  Si plusieurs enseignants peuvent avoir le même nom et le même prénom (le couple nom, prénom ne peut pas jouer le rôle d'identifiant), alors ajouter un attribut artificiel id à la classe Enseignant qui sera désigné comme identifiant
  • 70.  Association binaire, association ternaire ou n-aire, association réflexive; dans une association réflexive on spécifie le rôle de chaque entité  Cardinalités : On représente les choix de conception sur les associations par des cardinalités. La cardinalité de l’association pour un type d’entité E est une paire [min,max] :  max (cardinalité maximale) désigne le nombre maximal de fois où une entité e de E peut intervenir dans l’association (1 ou *, nombre indéterminé).  min (cardinalité minimale) désigne le nombre minimal de fois où une entité e de E peut intervenir dans l’association (0 ou 1)  Les cardinalités peuvent être distinctes dans une association réflexive  Association un-à-plusieurs, plusieurs-à-plusieurs  NB: On peut remplacer une association plusieurs-à-plusieurs par une entité et des associations un-à-plusieurs. Le modèle Entité-Association : Concepts de base
  • 71. Le modèle Entité-Association Exemples:  Entité : • l’étudiant « OUEDRAOGO Idrissa », • la matière « SGBD », • le compte en banque « C0001 » d’un client,…  Classe d’entité : • La classe ou type Etudiant décrivant l'ensemble des étudiants de ESTA • La classe ou type Matiere décrivant toutes les matières du cursus de ESTA  Attribut : Le nom, le prénom, l'adresse et le matricule sont des attributs de la classe Étudiant. Le matricule est un nombre entier de 4 chiffre par exemple.
  • 72. Le modèle Entité-Association Pour simplifier on parlera volontiers de :  Entité pour classe ou type d’entités  Association pour classe ou type d’associations NB: Dans la modélisation E/A, on se préoccupe seulement des types/classes, pas des instances particulières.
  • 73. Le modèle Entité-Association : Choix de conception Plusieurs choix de conception sont souvent possibles :  Un objet peut-il être modélisé par une entité ou par un attribut ? Décision relativement facile à prendre si l'on connaît l’application et son évolution.  Un objet peut-il être modélisé par une entité ou par une association ? Règle générale : toute action impliquant deux entités donne lieu à une association.  Un attribut décrit-il une association ou une entité? Le choix dépend des cardinalités Cardinalité 1 à plusieurs : les deux alternatives sont équivalentes puisque l’une des deux entités participe une seule fois dans l’association Cardinalité plusieurs-à-plusieurs : la sémantique diffère selon le cas où l’attribut est au niveau de l’entité ou de l’association
  • 74. Cas Pratique 1 TD 0 : Modelisation E/A
  • 75. Soit le schéma suivant décrivant le monde réel du domaine du FOOTBALL
  • 76. 1) Questions simples de lecture : a) Combien existe-t-il d’associations ? b) Combien existe-t-il d’associations réflexives ? c) Pourquoi n’y a-t-il pas de label sur les arcs de l’association distance ? 2) On veut adapter le schéma pour tenir compte des descriptions suivantes : a) Pour un match on connait l’équipe qui invite et celle qui est invitée b) Une équipe peut-elle jouer contre elle-même? c) On connait par la suite le numéro d’adhérent national d’une personne et on suppose également qu'il ya des joueurs avec le même nom. d) Une équipe a un entraineur. On connait le nom, l’âge et le n° d’adhérent national de l’entraineur d’une équipe, mais pas sa taille. Un entraineur peut entrainer plusieurs équipes, une équipe a un seul entraîneur.
  • 77. Représenter le schéma E/A de l'énoncé suivant concernant les musées du BURKINA : Une ville (nom, pays) a des musées (nom, description). Une œuvre (titre, siècle) est exposée dans un musée pendant une certaine période (début, fin). Une œuvre peut ne pas être exposée. Elle peut aussi être exposée dans différents musées à différentes périodes. On connaît le nom et le prénom de l’artiste qui a réalisé une œuvre. Il y a un artiste par œuvre, les artistes réalisent de nombreuses œuvres.
  • 78. Soit le schéma E/A ci-dessous : représentation simplifiée des visites au centre hospitalier Universitaire Yalgado. 1. Identifiez les différentes composantes d'un schéma E/A dans le schéma représenté 2. Répondez aux questions selon les informations de ce schéma. a) Un patient peut-il être consulté plusieurs fois ? b) Un médecin peut-il recevoir plusieurs patients dans la même consultation? c) Peut-on prescrire plusieurs médicaments dans une même consultation ? d) Un médicament peut-il être prescrit plusieurs fois pour un même patient. e) Un patient peut-il être consulté plusieurs fois le même jour ? f) Un patient peut-il être consulté plusieurs fois le même jour par le même médecin ? g) Déduisez un schéma relationnel de ce schéma conceptuel E/A
  • 79.  Etude préalable  se préoccuper plus des entités et relations que des propriétés (structure)  Etude détaillée  le plus détaillé possible (propriétés, DF,....) Guide : 1. ne pas réfléchir en terme de fonction (traitements) ou essayer d'exprimer des états 2. modéliser d'abord les entités puis les relations 3. dès que l'on a modélisé une entité, lui donner un identifiant 4. dès qu'une propriété est affectée à une entité ou une relation s'assurer de son unicité 5. s'assurer que toutes les entités participent au moins à une relation 6. affecter les cardinalités aux relations 7. rechercher les éventuelles DF des relations et effectuer si possible les décompositions
  • 80. Introduction au modèle relationnel
  • 81. Le modèle relationnel  Le modèle relationnel est constitué d'un ensemble d'opérations formelles sur les relations.  Les données sont stockées dans des tables que l’on peut mettre en relation.  Une table est une relation, mais entre les différents champs qui la composent.
  • 82. Le modèle relationnel  La modélisation relationnelle permet de représenter les relations à l'aide de tables (à deux dimensions)  Une ligne de table représente donc une entité.  Un attribut est le nom des colonnes qui constitue la définition d’une table. Il comporte un typage de données.  On appelle tuple (ou n-uplet) une ligne de la table.
  • 83. Le modèle relationnel  La cardinalité d'une relation est le nombre de tuples qui la composent.  La clé principale (ou primaire) d'une relation est l'attribut, ou l'ensemble d'attributs, permettant de désigner de façon unique un tuple.  Une clé étrangère, par contre, est une clé faisant référence à une clé appartenant à une autre table.
  • 84. Le modèle relationnel : notions de table, colonne, ligne  Basé sur la définition et la manipulation de relations:  Données: organisées dans des relations (perçues par l'utilisateur comme tables)  Table (relation) = ensemble de n-uplets avec mêmes attributs, représentée sous la forme d'un tableau à deux dimensions:  Chaque colonne correspond à un attribut Ai  Chaque ligne (tuple, n-uplet) est une séquence de n valeurs atomiques (v1, .., vn) où chaque vi est la valeur (nombre, chaine de caractères, date, …) d'un attribut Ai ou NULL (absence de valeur).
  • 85. Le modèle relationnel EXEMPLE :  La table (relation) Etudiants = ensemble de lignes (tuples ou n-uplets)  {02191, OUEDRAOGO, Noufou, Avenue de Pissy}, {02192, TRAORE, Bertrand, Rue de Lyon}, {02193, SANA, Bob, NULL} MATRICULE NOM PRENOM ADRESSE 02191 OUEDRAOGO Noufou Avenue de Pissy 02192 TRAORE Bertrand Rue de Lyon 02193 SANA Bob NULL Attribut ou colonne Lignes ou tuples ou n-uplets
  • 86. Le modèle relationnel : Schéma relationnel Schéma d'une relation: Nom de la relation + Liste de ses attributs avec leur domaines (nombre, chaîne de caractères, date...) + Clés des tables et contraintes d’intégrité. Instance d'une relation: Ensemble des n-uplets de la table Schéma d'une base de données: Ensemble des schémas des relations qui la composent. NOTATIONS Schéma d’une BD = ensemble des schémas de relation S = {R1, R2, …, Rn} où Ri est un schéma de relation Schéma de relation = ensemble des attributs avec leurs domaines respectifs et les contraintes R(A1:D1, A2:D2, …, Am:Dm), A1 est clé primaire: relation d'arité m EXEMPLE DE RELATION: Etudiants(matricule :Number, nom : Varchar, prenom : Varchar, adresse : Varchar)
  • 87. Le modèle relationnel : Avantages du modèle relationnel  Proche de la réalité et simple  La plupart des entités du monde réel partagent les mêmes attributs  Familiarité des utilisateurs avec les tableaux  Repose sur des fondements mathématiques solides  Théorie des Ensembles  Logique du Premier Ordre  Doté de langages de requêtes puissants  Algèbre relationnelle, Calcul des Prédicats  SQL (Structured Query Language)
  • 88. Passage E/A vers le modèle relationnel Rappel pour la construction d'une BD  Modèle conceptuel des données (MCD): description de l'application dans un langage de haut niveau (Entité /Association) qui ne tient pas compte du SGBD  Modèle logique des données (MLD): description des données dans un formalisme compatible avec un SGBD (schémas, tables, colonnes, clés primaires et étrangères )  Modèle physique des données (MPD): implémentation du modèle logique dans le SGBD (affiner le MLD en un schéma pour un SGBD spécifique), utilisation de SQL (create TABLE..), types des attributs, index, dénormalisation
  • 89. Passage E/A vers le modèle relationnel Comment transformation le MCD en MLD?
  • 90. Passage E/A vers le modèle relationnel Utiliser les règles de passage E/A vers relationnel  Règles de transformation des Entités:  Une entité devient une relation  Les attributs d'une entité deviennent les attributs de la relation  Tout ensemble d'attributs identifiant une entité devient la clé primaire de la relation  Tout ensemble d'attributs susceptibles de jouer le rôle d'identifiant d'entité devient clé candidate de la relation  Exemple :
  • 91. Passage E/A vers le modèle relationnel Utiliser les règles de passage E/A vers relationnel  Règles de transformation d'une association : traitement différent en fonction des cardinalités  Cas 1 : Association n-aire avec cardinalités (x,y) et au moins une cardinalité (1,1), où (x, y) peut être: (0,n), (1,n), (0,1) La table obtenue pour l'entité correspondante à la cardinalité (1,1) contiendra aussi les attributs de l'association. Si plusieurs cardinalités (1,1), modifier seulement la table correspondante à l'une de ces entités  Cas 2 : Association n-aire avec cardinalités (x, n) (x:{0,1}) Créer une table ayant comme attributs tous les attributs de l'association et comme identifiants les identifiants des entités participants à l'association  Cas 3 : Associations n-aire avec cardinalités (x, y) et (0,1), où (x, y) ≠ (1,1) , (x, y) peut être {(0, n), (1, n), (0,1)}. Transformations possibles: Similaire à celle pour le Cas 1 problème: valeurs NULL possibles Similaire à celle pour le Cas 2 préférable car élimination des valeurs NULL
  • 92. Passage E/A vers le modèle relationnel Utiliser les règles de passage E/A vers relationnel  EXEMPLE 1: Association n-aire (x, y) et (1,1) Rappel : attributs de l'association {code, numéro, heureDebut, durée} Module(code, intitule, niveau, numéroSalle*, heureDebut, duree) NuméroSalle référence numéro de la table Salle Salle(numéro, nbrePlaces)
  • 93. Passage E/A vers le modèle relationnel Utiliser les règles de passage E/A vers relationnel  EXEMPLE 2: Association n-aire (x, y) et (1,1) avec plusieurs cardinalités 1:1 Compte(numéro, type) Client(code, Nom, DateN, NumeroCompte*, depuis) NumeroCompte référence numéro de la table Compte NB: La table Compte peut être enlevée si l'entité Compte n’est associée à aucune autre entité, tous ses attributs seront stockés dans la relation Client
  • 94. Passage E/A vers le modèle relationnel Utiliser les règles de passage E/A vers relationnel  EXEMPLE 3: Association n-aire (x, n) Etudiant(matricule, nom, prenom, adresse) Module(code, intitulé, niveau) Inscriptions(matricule*, code*, anneeUniv)
  • 95. Passage E/A vers le modèle relationnel Utiliser les règles de passage E/A vers relationnel  EXEMPLE 4: Association n-aire (x, y) et (0,1) Première possibilité : même transformation que pour le Cas 1 Promotion(nom) Etudiant(matricule,nom, promo*) promo clé étrangère fait référence à nom de Promotion Problème : possibilité d'avoir des valeurs NULL
  • 96. Passage E/A vers le modèle relationnel Utiliser les règles de passage E/A vers relationnel  EXEMPLE 5: Association n-aire (x, y) et (0,1) Première possibilité : même transformation que pour le Cas 1 Promotion(nom) Etudiant(matricule, … , promo*) Etud-Prom0(matEtu*, promo*) Avantage : stocker uniquement les paires (étudiant, promo) qui existent (évite les valeurs NULL)
  • 97. Le modèle relationnel : aspect théorique Le modèle relationnel est un modèle de données ensembliste :  défini par E.Codd en 1970  simple à comprendre  très répandu et populaire  qui offre un niveau d’abstraction particulièrement intéressant  facile à optimiser En pratique, c’est un modèle implémenté dans de nombreux SGBD : Oracle, MySQL, PostgresQL, DB2, SQL Server, ...
  • 98. Le modèle relationnel : aspect théorique Le modèle relationnel repose sur des:  attributs simples et atomiques Attribut c’est le nom représentant un élément/objet Exemple : nom_de_famille, temperature, age, prix_unitaire, quantite . NB: il n’y a pas d’attributs complexes tels que des listes, des tableaux, des structures,…  domaines de définition des attributs Domaine ≈ ensemble fini ou infini des valeurs possibles pour un attribut Exemple : entier, flottants, chaînes de caractères, dates,  opérations incluant les opérations ensemblistes usuelles Exemple : union, intersection, différence, produit cartésien  relations qui permettent de représenter et de manipuler les données selon la vision ensembliste
  • 99. Le modèle relationnel : aspect théorique Qu’est-ce qu’une relation? Puisque le Modèle Relationnel est un modèle de données ensembliste, c’est un modèle qui porte sur des ensembles. Considérons n ensembles E1...En représentant des domaines. Une relation est définie comme un sous-ensemble de l’ensemble E1×...× En. Exemple : Pour E1 l’ensemble des noms de famille, E2 l’ensemble des prénoms et E3 l’ensemble des âges. Une relation possible est un sous-ensemble deE1×E2×E3 qui regrouperait le nom, le prénom et l’âge des étudiant(e)s présent(e)s dans la salle.
  • 100. Le modèle relationnel : aspect théorique Qu’est-ce qu’une relation? Premier constat sur les relations Pour E1 l’ensemble des noms de famille, E2 l’ensemble des variétés d’algues et E3 l’ensemble des fleuves du Burkina. La relation basée sur E1×E2×E3 n’aurait pas beaucoup de sens. NB: : Une relation permet de relier des attributs qu’il est pertinent de relier. ⇒ Une relation permet de représenter des objets complexes A partir des attributs Nom, Prénom, DateNaissance, Matricule,il est possible de représenter une relation représentant des Etudiants
  • 101. Le modèle relationnel : aspect théorique Qu’est-ce qu’une relation? 2ème constat sur les relations Une relation peut être vu comme une table à deux dimensions ayant :  une structure et des contraintes ⇒ on parlera du schéma de relation  un contenu ⇒ on parlera d’instance de relation Chaque ligne dans la relation va représenter une donnée.
  • 102. Le modèle relationnel : aspect théorique Schéma de relation Un schéma de relation permet de représenter les attributs, le domaine de ces attributs et les contraintes associées aux attributs. Autrement dit : Le schéma de relation permet de comprendre la structure et les contraintes de la relation. Exemple de schéma de relation PERSONNE(nom : varchar(50), prenom : varchar(250), age : integer ) Définition : Le nombre d’attributs présents dans la relation est appelé arité ou degré
  • 103. Le modèle relationnel : aspect théorique Différentes représentations d’un schéma de relation Un schéma de relation peut se représenter sous forme textuelle : Sans les domaines : ETUDIANT(matricule, nom, prenom, age ) Avec les domaines : ETUDIANT( matricule : integer(5), nom : varchar(50), prenom :varchar(150), age : integer )
  • 104. Le modèle relationnel : aspect théorique Différentes représentations d’un schéma de relation Un schéma de relation peut se représenter sous forme graphique : NB : il sera important de ne pas confondre ce mode de représentation avec les éléments du schéma Entité/Association ETUDIANT Matricule Nom : varchar(50) Prenom : varchar(150) Age: integer
  • 105. Le modèle relationnel : aspect théorique Instance de relation Une instance de relation permet de :  représenter les valeurs d’attributs dans la relation.  connaître le contenu de la relation. Exemple d’instance de la relation ETUDIANT : { (02101,’Ouedraogo’, ’Aïda’, 20);(02102, ’Traoré’, ’Kantigui’, 21) } Un élément de l’instance est appelé tuple, n-uplet, occurence. Le nombre d’éléments présents dans l’instance est appelé cardinalité
  • 106. Le modèle relationnel : aspect théorique Questions : Si l’on considère la table suivante comme l’implémentation de la relation nommée FILM. Quel est le schéma de la relation FILM? Quelle est l’arité de la relation FILM? Combien de tuples peuplent l’instance de la relation FILM? Quel est le domaine de définition de l’attribut titre? Quel est le domaine de définition de l’attribut annee? Titre Année categorie Avis STAR WAR3 2015 Science-Fiction ***** Ma Grande Famille 2019 Serie ***** Zootopie 2016 Dessin animé **
  • 107. Le modèle relationnel : aspect théorique Base de données relationnelle Au niveau d’une base de données,  l’ensemble de tous les attributs est appelé univers.  l’ensemble des schémas de relation constitue le schéma relationnel de la base de données.  l’ensemble des instances des relations constitue une instance de la base de données. EXEMPLE: Pour représenter des étudiant et des cours, un schéma de base de données possible est : ETUDIANT(matricule, nom, prenom, age) COURS(codeUE, intitule, enseignant) Question : donnez une instance possible de BD correspondant
  • 108. Le modèle relationnel : aspect théorique Remarque à propos des contraintes d’intégrité Si l’on considère la relation ETUDIANT de schéma : ETUDIANT(matricule,nom,prenom,age) , il serait raisonnable de s’assurer que les contraintes suivantes sont vérifiées : o les numéros matricule identifie de manière unique un étudiant o Un étudiant ne peut pas avoir plus de 150 ans Un identifiant permet d’identifier de manière unique un tuple dans une relation. Dans le schéma de relation ETUDIANT(matricule,nom,prenom,age) il est pertinent de considérer que numsecu est un identifiant. Notation de l’identifiant : <nomAttribut(s)> Le schéma de relation s’écrit alors :ETUDIANT(matricule,nom,prenom,age)
  • 109. Le modèle relationnel : aspect théorique Comment référencer un tuple dans une autre relation? Une référence permet de spécifier l’attribut d’une autre relation qui est référencé par l’attribut local. Soit le schéma de base données : ENSEIGNANT(codeenseign, nom, prenom,age) COURS(codecours, intitule, enseignant) il est pertinent de considérer l’attribut enseignant comme une référence à un enseignant. Notation de la référence : #<nomAttribut> ou souvent <nomAttribut>* Le schéma de base s’écrit alors : ENSEIGNANT(codeenseign, nom, prenom,age) COURS(codeUE, intitule, #enseignant )
  • 110. Le modèle relationnel : algèbre relationnel Les opérations de l’algèbre relationnelle  Opérations binaires pour des relations de même schéma  UNION notée   INTERSECTION notée   DIFFERENCE notée —  Opérations binaires pour des relations de schémas différents  Produit cartésien  Pas d’opérations unaires  Extension  Union externe pour des relations de schémas différents  Ramener au même schéma avec des valeurs nulles
  • 111. Le modèle relationnel : algèbre relationnel Exemple de Produit Cartésien INFOVILLE NOMV DPT OUAGA 11 BOBO 10 R NOM DN VILLE NOMV DPT ETU NOM DN VILLE SANA 2001 OUAGA BAZIE 1999 BOBO CISSE 1999 BOBO DABOUE 2001 OUAGA SANA 2001 OUAGA OUAGA 11 SANA 2001 OUAGA BOBO 10 BAZIE 1999 BOBO OUAGA 11 BAZIE 1999 BOBO BOBO 10 CISSE 1999 BOBO OUAGA 11 CISSE 1999 BOBO BOBO 10 DABOUE 2001 OUAGAS OUAGA 11 DABOUE 2001 OUAGAS BOBO 10 R=ETU × INFOVILLE ×
  • 112. Le modèle relationnel : algèbre relationnel Projection  Elimination des attributs non désirés et suppression des tuples en double  Relation  Relation notée:  A1,A2,...Ap (R) ETU NOM DN VILLE SANA 2001 OUAGA BAZIE 1999 BOBO CISSE 1999 BOBO DABOUE 2001 OUAGA 2001 OUAGA 1999 BOBO 1999 BOBO 2001 OUAGA DN,VILLE(ETU) DN VILLE DN,VILLE(ETU)
  • 113. Le modèle relationnel : algèbre relationnel Restriction  Obtention des tuples de R satisfaisant un critère Q  Relation  Relation, notée Q(R)  Q est le critère de qualification de la forme :  Ai Valeur   { =, <, >=, >, <=, !=} Il est possible de réaliser des « OU » (union) et des « ET » (intersection) de critères simples
  • 114. Le modèle relationnel : algèbre relationnel Restriction : Exemple de Restriction ETU NOM DN VILLE SANA 2001 OUAGA BAZIE 1999 BOBO CISSE 1999 BOBO DABOUE 2001 OUAGA ETU NOM DN VILLE SANA 2001 OUAGA DABOUE 2001 OUAGA INFOVILLE NOMV DPT OUAGA 11 BOBO 10 ETU.VILLE = INFOVILLE.NOMV ETU.VILLE = INFOVILLE.NOMV R=ETU INFOVILLE
  • 115. Le modèle relationnel : algèbre relationnel Jointure : Composition des deux relations sur un domaine commun Syntaxe : Relation X Relation ->Relation Notée  Critère de jointure ◦ Attributs de même nom égaux :  Attribut = Attribut  Jointure naturelle  Se fait en principe en utilisant une clé étrangère !!! ◦ Comparaison d'attributs :  Attribut1 Attribut2  Théta-jointure  La jointure peut se voir comme un produit cartésien, combiné à une restriction sur l’attribut de jointure, puis d’une projection pour éliminer l’attribut doublon.
  • 116. Le modèle relationnel : algèbre relationnel Jointure : Exemple de ETU NOM DN VILLE SANA 2001 OUAGA BAZIE 1999 BOBO CISSE 1999 BOBO DABOUE 2001 OUAGA DN>2000 (ETU) ETU NOM DN VILLE SANA 2001 OUAGA DABOUE 2001 OUAGA
  • 117. Le modèle relationnel : algèbre relationnel Jointure et Produit Cartésien R1 R2 A = B Équivaut à : A=B(R1 × R2)
  • 118. Le modèle relationnel : Conclusion Le Modèle relationnel permet d’exprimer :  la structure des données : Schéma relationnel  le contenu des données : Instance relationnelle  des contraintes d’intégrité sur les données : Schéma relationnel Le modèle relationnel est une représentation logique des données. Comment représenter concrètement ces données? ⇒ un langage dédié aux données : SQL