INTR O D U C TION
A UX
BASES DE DONNÉES
CONCEPTS DE BASE
Ce qu'est une Base de Données
Fig. 1 - Schéma de Principe d'une B D
Ce qu'est une Base de Données (BD)
Une base de données est une collection de données stockées dans des fichiers et
accessibles à la demande pour plusieurs utilisateurs et des besoins divers.
Ces données représentent des informations servant aux activités et au management d'une entreprise.
L'utilisateur dispose de moyens très élaborés pour effectuer un large éventail d'opérations:
- Créations de nouveaux fichiers,
- Consultation, ajout, modification ou suppression de données,
- Calculs et éditions de résultats.
- etc …
Les langages et les outils logiciels pour effectuer ces opérations sont évolués et très
pratiques
Exemple: Soit le fichier concernant les employés d'une organisation
EMPLOYES
NUM NOM PRENOM SALAIRE SERVICE
e01 benali ali 5500 personnel
e04 benamine amine 6000 personnel
e02 benhlima halima 5700 clients
e10 bennani anis 7000 fournisseurs
e23 benahmed ahmed 8500 clients
e24 bensaid saida 6600 personnel
e08 benazi aziz 7000 founisseurs
e06 bendaoud daoud 7000 clients
e20 bennouna anas 5400 clients
e14 benkacem kacem 7800 direction
Exemples d'interrogations:
• Quel(le)s sont les personnes du service «clients»
SELECT *
FROM EMPLOYES
WHERE SERVICE = "clients"
R és u ltat:
NUM NOM PRENOM SALAIRE SERVICE
e02 benamina amina 5700 clients
e23 benahmed ahmed 8500 clients
e06 bendaoud daoud 7000 clients
e20 bennouna anas 5400 clients
• Afficher le nom de tous avec leur salaires • Triés par salaire croissant
SELECT NOM, SALAIRE SELECT NOM, SALAIRE
FROM EMPLOYES FROM EMPLOYES
ORDER BY SALAIRE
NOM SALAIRE --------------------
-------------------- NOM SALAIRE
benali 5500 --------------------
benamine 6000 bennouna 5400
benhlima 5700 benali 5500
bennani 7000 benhlima 5700
benahmed 8500 benamine 6000
bensaid 6600 bensaid 6600
benazi 7000 benazi 7000
bendaoud 7000 bendaoud 7000
bennouna 5400 bennani 7000
benkacem 7800 benkacem 7800
benahmed 8500
– Idem mais pour les personnes du service clients
SELECT NOM, SALAIRE
FROM EMPLOYES
WHERE SERVICE = "clients"
ORDER BY SALAIRE
NOM SALAIRE
bennouna 5400
benamina 5700
bendaoud 7000
benahmed 8500
Exemples d'interrogations avec calcul:
• Calculer le salaire moyen • Calculer le nombre d'employés
SELECT AVG (salaire) SELECT COUNT (*)
FROM EMPLOYES FROM EMPLOYES
AVG COUNT
7300 10
Exemples de modifications:
• Remplacer le salaire de l'employé «e06» par 8000
UPDATE EMPLOYES
SET SALAIRE = 8000
WHERE NUM = "e06"
• Ajouter un nouvel employé
INSERT INTO EMPLOYES VALUES
("e09", "BenSalah", "Salah", 8500, "clients")
Ce qu'est un Système de Gestion de Bases de Données (SGBD)
Le S G B D , Système de Gestion de Bases de Données, est le logiciel intermédiaire entre l'utilisateur et la
base et qui est chargé de réaliser toutes les opérations s'effectuant sur la B D .
N iveau
ß
Logique
N iveau
ß
Physique
Fig. 2 -Un Système de Gestion de Bases de Données
L'utilisateur a une vision logique des données, qui lui permet de les manipuler aisément
(langages et interfaces de haut niveau) et de façon proche de ses besoins. C'est le S G B D qui
se charge des considérations physiques liées au stockage des données sur disque et de la
façon de les retrouver ou modifier.
Le S G B D gère aussi les programmes que l'utilisateur développe et permet leurs exécutions à la
demande.
Rôle d'un SGBD:
Un S G B D est en général, multi utilisateurs, multitâches. Il
– Permet l'accès à la base à plusieurs utilisateurs simultanément
– Traite en les optimisant les requêtes utilisateurs
– Gère l'exécution cohérente de plusieurs programmes simultanés (accès concurrents)
– Assure l'intégrité la sécurité, et la protection des données
– Offre des moyens d'interaction, langages et interfaces, faciles à utiliser
F Langage base de Donnée (LBD), permet de définir et de manipuler des données dans
une base. Un LBD doit se conformer à un modèle de données évolué.
F Un modèle de Données permet à l'utilisateur de percevoir les données dans une forme
plus simple, par exemple des tables. (Forme dégagée des aspects techniques liés à la
représentation en machine).
F Un LBD est suffisamment complet pour être utilisé seul et de façon interactive pour diverses
requêtes.
FA cela s'ajoute la possibilité pour les non-initié(e)s de travailler sur la base via des interfaces
conviviales (menus, écrans de saisies, affichages de graphiques, éditions de rapport etc.)
Le S G B D contient les outils pour tout cela.
Structure Fonctionnelle d'un SGBD:
Niveau des utilisateurs et des applications
Couche logicielle
Outils d'exploitation interactive, Programmation, externe.
ß
Outils 4e Génération etc...
Orientée
utilisateurs
Langage d'accès unique (e.g. S Q L )
N o yau Couche logicielle
SGBD interne.
ß
O rientée
Accès Disques Fichiers
Base
de
Données
Fig. 3 - Composants d'un S G B D .
✓Usage d'écrans de saisies/éditions (FORM):
Ecran formaté avec rubriques libellées et données correspondantes affichées.
Utilisateurs non informaticiens, Simplicité de manipulation.
Fig. 4 - Formulaire d’interrogation. O n tape le n° département, son nom s’affiche,
on appuie sur calculer et la moyenne des salaires de ses employés s’affiche
✓Edition de rapport ( R E P O R T Writer):
Document chiffré (e.g. bilan, facture etc.) formaté contenant des données extraits de la BD .
Fig. 5 - Facture imprimée contenant des données calculées et extraites
d’une base de données
Pourquoi les Bases de Données (SGBD)
• Intégration et partage des données.
• Elimination (ou limitation) des redondances et des incohérences
(Intégrité des données)
• Rapprochement Users et Informations
• Indépendance Données/Programme.
– Niveau Physique :
Programmes indépendants des détails liés à l'organisation des fichiers et des méthodes
d'accès etc …
– Niveau Logique :
BD conçue globalement, sans référence à un programme particulier. Chaque groupe
d'utilisateurs peut voir les données selon la forme désirée.
• Standardisation
• Contrôle Centralisé.
• What else …
Architecture des systèmes BD
Cadre formel pour la conception de SG BD.
Fig. 6 - Architecture A N S I / S P A R C Pour une B D
Architecture des systèmes BD
✘ Schéma Conceptuel de Données: Représentation (abstraite) de tout le
contenu de la base. Description de l'ensemble des informations dans le
langage de définition de données.
✘ Schéma Interne : Représentation interne (concrète) de ce contenue.
gérée directement par le SGBD.
✘ Schémas Externes (Vues externes) : Représentation de parties de la
base. Description des données telles qu'elles sont vues par un utilisateur
(ou groupe).
Les niveaux d’abstraction
Clarification Modélisation Modélisation Implémentation
conceptuelle logique
Les niveaux d’abstraction
Domaine
Problème Représenter
posé
Modèle
conceptuel
Traduire
BD Implémenter
Solution
proposée
Modèle
logique
Du modèle conceptuel au modèle logique de données
Du MCD au MLD : changement de représentation
On peut représenter le MLD sous forme graphique ou textuelle :
Entreprise (NumEnt, NomEnt, AdrEnt, #CatEnt)
Table Entreprise, avec les champs :
► NumEnt : numéro de l’entreprise dans la BD, clé primaire
► NomEnt : nom de l’entreprise
► AdrEnt : adresse de l’entreprise
► #CatEnt : catégorie de l’entreprise, clé étrangère
Du MCD au MLD : changement de terminologie
► tables
► clé primaire, clé étrangère
► champs
► enregistrements
Du MCD au MLD : terminologie
Entreprise (NumEnt, NomEnt, AdrEnt, #CatEnt)
Table Entreprise, avec les champs :
► NumEnt : numéro de l’entreprise dans la BD, clé primaire
► NomEnt : nom de l’entreprise
► AdrEnt : adresse de l’entreprise
► #CatEnt : catégorie de l’entreprise, clé étrangère
Enregistrement :
11234, Amabone, 13 rue de l’arnaque F764354 Baris, 35
Règles de passage du MCD au MLD
Règle 1 : chaque entité devient une table
Entité :
Client
Table :
→
Id_Client
Client (ID_Client, Nom, Prénom,
Nom
Prénom Adresse, Num_Tel)
Adresse
Num_Tel
identifiant → clé primaire
Exercice : passer du MCD au MLD
Chambre
Id_Chambre
Nb_Places
Tarif
Exercice : passer du MCD au MLD
Chambre
Id_Chambre
Nb_Places
Tarif
↓
Chambre (ID_Chambre, Nb_Places, Tarif)
Règle 2 : associations de cardinalités 1, n ou 0, n
associations multiples
Chaque association de cetype devient une table dont la clé
primaire regroupe les identifiants des entités impliquées :
Coureur
NuméroCoureur
NomCoureur
1,n
Participer
Participer
TempsRéalisé →
(NuméroCoureurNuméroEtape,
TempsRéalisé)
1,n
Etape
NuméroEtape
Date
VilleDépart
VilleArrivée
NbKm
Règle 2 : associations de cardinalités 1, n ou 0, n
associations multiples
Chaque association de cetype devient une table dont la clé
primaire regroupe les identifiants des entités impliquées :
EtreMariéA
0,n
Personne
EtreMariéA
Date
Lieu
Id_Pers
Nom → (ID_PersID_Pers, Date,
Prénom
0,n
Lieu)
27 / 41
Exercice : passer du MCD au MLD
Client Produit
0,n Commande 0,n
Id_Client Id_Produit
Date_Commande Nom
Nom
Exercice : passer du MCD au MLD
Client Produit
0,n Commande 0,n
Id_Client Id_Produit
Date_Commande Nom
Nom
↓
Client (ID_Client, Nom)
Produit (ID_Produit, Nom)
Commande (ID_ClientID_Produit, Date_Commande)
Règle 3 : autres associations
Les associations dont les cardinalités sont du type :
► 1, n - 1, 1
► 0, n - 1, 1
► 1, n - 0, 1
► 0, n - 0, 1
→ donnent une clé étrangère dans la table correspondant à
l’entité concernée par les cardinalités 1, 1 ou 0, 1.
→ cette clé étrangère prend sesvaleurs dans celles de la clé
primaire de l’entité concernée par les cardinalités 1, n ou 0, n
→ quand il existe des propriétés dans l’association, elles basculent
dans la table forte
Règle 3 : autres associations
→ donnent une clé étrangère dans la table correspondant à
l’entité concernée par les cardinalités 1, 1 ou 0, 1.
→ cette clé étrangère prend sesvaleurs dans celles de la clé
primaire de l’entité concernée par les cardinalités 1, n ou 0, n
→ quand il existe des propriétés dans l’association, elles basculent
dans la table forte
Livre Genre
1,1 Relève_De 0,n
Id_Catalogue Id_Genre
Titre Intitulé
↓
Livre (ID_Catalogue, Titre, #ID_Genre)
Genre (ID_Genre, Intitulé)
Exercice : passer du MCD au MLD
Coureur
NuméroCoureur
NomCoureur
1,1
Appartenir
1,n
Equipe
CodeEquipe
NomEquipe
DirecteurSportif
Exercice : passer du MCD au MLD
Coureur
NuméroCoureur
NomCoureur
1,1
Appartenir
1,n
Equipe
CodeEquipe
NomEquipe
DirecteurSportif
↓
Coureur (NuméroCoureur, NomCoureur, #CodeEquipe)
Equipe (CodeEquipe, NomEquipe, DirecteurSportif)
Exercice 1 : passer du MCD au MLD
Coureur Pays
1,1 Provenir 0,n
NuméroCoureur CodePays
NomCoureur NomPays
1,n 1,1
Participer
Appartenir
TempsRéalisé
1,n 1,n
Etape Equipe
NuméroEtape CodeEquipe
Date NomEquipe
VilleDépart DirecteurSportif
VilleArrivée
NbKm
Exercice 2 : passer du MCD au MLD
Facture Client
1,1 Payer 1,n
NumFacture NumClient
DateFacture NomClient
AdresseClient
1,n
Produit
Concerne 1,n RefProd
LibProd
Qté PUHTProd