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
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.
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
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
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
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
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
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