Vous êtes sur la page 1sur 118

BASES DE DONNEES

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

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; TRES COMPLEXE COMME SOLUTION!!!!
Il est difficile de trouver des ALGO efficaces
for(int i=0;i<e.notes.length;i++)
somme+=e.notes[i];

pour résoudre ce type de problèmes


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.
DEFINITIONS : données
 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 : 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 ?

 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 : Base 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.


BASE DE DONNEES : définition

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

.
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
5. Exécution et optimisation
1. Indépendance physique  Les requêtes sont traduites en un langage procédural
 Possibilité de modifier les structures de stockage sans (algèbre relationnelle)
modifier les programmes  … qui peut être optimisé automatiquement. (des années
 Ecriture des applications par des non-spécialistes des de recherche en BD…)
fichiers 6. Cohérence : Intégrité logique (Contraintes d’intégrité)
Meilleure portabilité, indépendance vis-à-vis du matériel
Par le biais d’un langage déclaratif

 Détection de mises à jour erronées


2. Indépendance logique  Contrôle sur les données élémentaires et les relations
 Possibilité d’ignorer les données d’autres applications 7. Gestion des Pannes : Intégrité physique
Possibilité d’enrichir les applications sans devoir tout
Tolérance aux pannes

réécrire 
Transactions
Possibilité de protéger (rendre confidentielles) certaines


Système (panne courante)
données 
5. Disque (crash)
8. Concurrences d’accès : Partage de données
3. Langage de Manipulation  Isolation (chacun a l’air d’être seul)
Par le biais d’un langage déclaratif (SQL) équivalent à la
Concurrence (tout le monde peut agir en même temps)

logique du 1er ordre 

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;

◦ 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
Gestion des médicaments Pharmacie du Dr. DAKUYO
Nombre_Médicaments Prescription
Id -V Ligne Id -M Posologie
Visites
Id-M Nom Description Nombre Id -D Id -P Id -V Date Prix
1 1 12 1 par jour
1 2 5 10 gouttes
1 2 1 15 juin 250
1 Paracetamol …………………………….. 7000 2 3 4 1 mars 250
…. …. …. …………

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

…. ……. ……. 2 Fluisédal ……………………………..


4 Tisane …………………………….. ….50. 3 Mucomyst ……………………………..
SAYE …. …….. ……………………………..

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

2 3 4 1 mars 250 …. …. …. …………

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

 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.
Fonctionnalités (Pratique) pour un SGBD
 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)
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

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

MS SQL Server : Serveur de BD concurrent de Oracle et


SGBD principale de Microsoft

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)
5. Exécution et optimisation
1. Indépendance physique  Les requêtes sont traduites en un langage procédural
 Possibilité de modifier les structures de stockage sans (algèbre relationnelle)
modifier les programmes  … qui peut être optimisé automatiquement. (des années
 Ecriture des applications par des non-spécialistes des de recherche en BD…)
fichiers 6. Cohérence : Intégrité logique (Contraintes d’intégrité)
Meilleure portabilité, indépendance vis-à-vis du matériel
Par le biais d’un langage déclaratif

 Détection de mises à jour erronées


2. Indépendance logique  Contrôle sur les données élémentaires et les relations
 Possibilité d’ignorer les données d’autres applications 7. Gestion des Pannes : Intégrité physique
Possibilité d’enrichir les applications sans devoir tout
Tolérance aux pannes

réécrire 
5. Transactions
 Possibilité de protéger (rendre confidentielles) certaines Système (panne courante)
données 6.
7. Disque (crash)
8. Concurrences d’accès : Partage de données
3. Langage de Manipulation  Isolation (chacun a l’air d’être seul)
Par le biais d’un langage déclaratif (SQL) équivalent à la
Concurrence (tout le monde peut agir en même temps)

logique du 1er ordre 

9. Confidentialité
4. Vues multiples (virtuelles) des données
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élisation conceptuelle : modèle de données

Modèles conceptuels :

 Respectent la trilogie de base


 Objets

 Liens

 propriétés

 Permettent des représentations multiples


Conception d’une BD : analyse

 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 : Définition du schéma
 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 : qualités pour modèles conceptuels

 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

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é
Le modèle Entité-Association
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 : 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
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é

 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
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
1
TD 0 : Modelisation E/A

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 ?

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}
Attribut ou colonne

Lignes ou MATRICULE NOM PRENOM ADRESSE


tuples ou n-uplets
02191 OUEDRAOGO Noufou Avenue de Pissy
02192 TRAORE Bertrand Rue de Lyon
02193 SANA Bob NULL
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 :


ETUDIANT
Matricule
Nom : varchar(50)
Prenom : varchar(150)
Age: integer

NB : il sera important de ne pas confondre ce mode de représentation avec les


éléments du schéma Entité/Association
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.
Titre Année categorie Avis
STAR WAR3 2015 Science-Fiction *****
Ma Grande Famille 2019 Serie *****
Zootopie 2016 Dessin animé **

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

R=ETU × INFOVILLE

ETU NOM DN VILLE INFOVILLE NOMV DPT


SANA 2001 OUAGA OUAGA 11
BAZIE
CISSE
DABOUE
1999
1999
2001
BOBO
BOBO
OUAGA
× BOBO 10

R NOM DN VILLE NOMV


SANA 2001 OUAGA OUAGA DPT
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
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

DN,VILLE(ETU)
DN,VILLE(ETU) DN VILLE
2001 OUAGA
1999 BOBO
1999 BOBO
2001 OUAGA
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

R=ETU INFOVILLE
INFOVILLE NOMV DPT
ETU.VILLE = INFOVILLE.NOMV ETU.VILLE = INFOVILLE.NOMV
OUAGA 11
BOBO 10

ETU NOM DN VILLE


SANA 2001 OUAGA
DABOUE 2001 OUAGA
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 Équivaut à : A=B(R1 × R2)


A=B
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

Vous aimerez peut-être aussi