Académique Documents
Professionnel Documents
Culture Documents
Année 2023
M1 EAI/EBM
M. Boubacar KEITA
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
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
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.
struct etudiant{
nom : string;
notes : tableau [X] de int ; // ou quelque chose de plus compliqué
}
Stocker les données = définir un format de fichier et les procédures permettant de lire ou écrire des données.
struct etudiant{
nom : string;
notes : tableau [X] de int ; // ou quelque chose de plus compliqué
}
Stocker les données = définir un format de fichier et les procédures permettant de lire ou écrire des 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 : Gestion de 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 ?
Support papier : faire des fiches papier et les mettre par dossier dans des
classeurs
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.
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),
les données ont une redondance minimale (la multiplication des enregistrements d’une donnée est
limitée),
.
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).
9. Confidentialité
4. Vues multiples (virtuelles) des données
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;
500
Patients
2 Amoxycilline …………………………….. 1520 Id -P Nom Prénom Médicament
1 Lebeau Jacques Id -M Nom Description
3 Sirop Douba …………………………….. 100 2 Troger Zoe 1 Aspegic 1000 ……………………………..
Docteur Prescription
Id-D Nom Prénom Id-V Ligne Id-M Posologie
1 Dupont Pierre 1 1 12 1 par jour
Visites
2 Durand Paul 1 2 5 10 gouttes
Id-D Id-P Id-V Date Prix
3 Masse Jean 2 1 8 2 par jour
1 2 1 15 juin 250
…. …….. …… 2 2 12 1 par jour
1 1 2 12 août 180
2 2 3 13 juillet 350 2 3 3 2 gouttes
Patients
Id-P Nom Prénom Médicament
1 Lebeau Jacques Id-M Nom Description
2 Troger Zoe 1 Aspegic 1000 ……………………………..
3 Doe John 2 Fluisédal ……………………………..
4 Perry Paule 3 Mucomyst ……………………………..
…. ……. ……. …. …….. ……………………………..
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
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
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
Deux niveaux :
Connexion restreinte aux utilisateurs répertoriés (mot de passe)
Privilèges d'accès aux objets de la base
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 :
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.
9. Confidentialité
4. Vues multiples (virtuelles) des données
10. Standardisation
On s’intéresse ici aux problématiques :
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
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é
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
Manipulation de données
+ contraintes explicites
Modélisation conceptuelle : modèle de données
Modèles conceptuels :
Liens
propriétés
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 : étapes de modélisation
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 : Comment construire une base de données
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
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
Le modèle Entité-Association : Concepts de base
Association binaire, association ternaire ou n-aire, association réflexive;
dans une association réflexive on spécifie le rôle de chaque entité
NB: On peut remplacer une association plusieurs-à-plusieurs par une entité et des
associations un-à-plusieurs.
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
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.
Cas Pratique
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 ?
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.
Une œuvre (titre, siècle) est exposée dans un musée pendant une certaine période
(début, fin).
Elle peut aussi être exposée dans différents musées à différentes périodes.
Etude détaillée
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)
Un attribut est le nom des colonnes qui constitue la définition d’une table. Il
comporte un typage de données.
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
Données: organisées dans des relations (perçues par l'utilisateur comme tables)
EXEMPLE :
EXEMPLE DE RELATION:
Etudiants(matricule :Number, nom : Varchar, prenom : Varchar, adresse : Varchar)
Le modèle relationnel : Avantages du modèle relationnel
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)
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)
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)
Promotion(nom)
Etudiant(matricule,nom, promo*)
promo clé étrangère fait référence à nom de Promotion
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
NB: : Une relation permet de relier des attributs qu’il est pertinent de relier.
⇒ Une relation permet de représenter des objets complexes
Une relation peut être vu comme une table à deux dimensions ayant :
Autrement dit :
Le schéma de relation permet de comprendre la structure et les contraintes de la
relation.
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
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
R=ETU × INFOVILLE
DN,VILLE(ETU)
DN,VILLE(ETU) DN VILLE
2001 OUAGA
1999 BOBO
1999 BOBO
2001 OUAGA
Le modèle relationnel : algèbre relationnel
Restriction
R=ETU INFOVILLE
INFOVILLE NOMV DPT
ETU.VILLE = INFOVILLE.NOMV ETU.VILLE = INFOVILLE.NOMV
OUAGA 11
BOBO 10
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
DN>2000 (ETU)