05/04/2017
Cours de base de données
Objectifs du cours
Assimiler les principes de base des SGBD
relationnels.
Maîtriser la conception des bases de données
relationnelles.
Maîtriser la mise en œuvre des bases de données
relationnelles.
Maîtriser l'interrogation des bases de données
relationnelles.
1
05/04/2017
Contenu du cours
Introduction
Définitions
Des systèmes de fichiers au bases de donnée
Objectif d’un SGBD
Conception - Le modèle entité association
Le modèle relationnel
L’algèbre relationnelle
Dépendances fonctionnelles et normalisation
SQL
Accès concurrents et gestion des transactions
Chapitre 1
INTRODUCTION
2
05/04/2017
1 - Introduction
Dans ce chapitre
Quelques rappels
Information
Systèmes d’information
Rôle de l’information dans les organisation
Historique et définitions
Des systèmes de gestion de fichiers au bases de données
Qu’est ce qu’une base de données
Qu’est qu’un systèmes de gestion de bases de données
Objectifs d’un SGBD
Architecture d’un SGBD
Quelques rappels
Information
Systèmes d’information
Rôle de l’information dans les organisation
3
05/04/2017
L’information dans le processus de décision
Diversité
des produits
Augmentation
de la concurrence
Augmentation
de la qualité
Entreprise
Augmentation Ouverture des
de la réactivité marchés
L’information, indispensable dans le
processus de décision d'une organisation
Diminution de l'incertitude
Liberté de choix
Évolutivité par rapport à l'environnement
4
05/04/2017
Information
Définition :
L’information est une représentation des objets ou des faits du
monde réel ou virtuel qui accroit la connaissance du ou des
récepteurs et produit un effet sur leurs comportements.
Exemples :
Le produit en stock est épuisé Le responsable achat
Seulement les 30 meilleurs étudiants en 2eme année auront le droit de
faire Licence ISILLes étudiants de l’UAMOB
Caractéristique:
A un effet sur le récepteur
A une valeur
Sa validité peut être changé dans le temps.
Vision globale d’un entreprise
Décider des actions à Système de
conduire. DECISION
Collecter,
mémoriser, Système
traiter, d’INFORMATION
distribuer,
l’information.
Assurer les fonctions : Système OPERANT
. facturer les clients,
. fabriquer les produits,
.…
5
05/04/2017
Système d’information (SI) - Définition
Un système d'Information (noté SI) représente l'ensemble
des éléments participant :
à la collecte,
au traitement,
à la mémorisation,
à la diffusion,
de l'information au sein de l'organisation.
Système d’information
L’information est donc :
Acquise (collectée): saisie, écrite, captée
Stockée (mémorisée): Support numérique, papier, informelle .
Traitée (ajout, suppression, modification, synthèse, agrégation).
Diffusée (communiquée selon le besoin et selon les privilèges )
Comment ?
Approche Systèmes de fichiers (limitée)
Approche Base de données
6
05/04/2017
Comment ?
Approche Systèmes de fichiers (limitée)
Approche Base de données
Systèmes de fichiers
Les données des fichiers sont décrites dans les programmes
Modes d’accès (séquentiel, séquentiel indexés,…)
Organisation physique des données (enregistrement)
Localisation des fichiers sur le disque
Fichiers 1
Description des
fichiers
Fichiers 2
Description des
fichiers
programmes
7
05/04/2017
Systèmes de fichiers - exemple Scolarité
Nom
Cas des «données étudiants» Prénom
Admissions Groupe
Nom Bac
Prénom Nom Prénom Grpostal
Code Code
p postal
Adresse
ACHOUR SAID S1
Type_bac
ABDELLI SARAH S1
AGGAB MAHFOUD S1
Internat SAMRA SAKINA S2
Nom
Prénom
Nom Prénom Cité chambre
Résidence
ACHOUR SAID A 115 3 fichiers différents
Chambre
ABDELLI SARA B 235 pour définir les
Adresse
AGAB MAHFOUD A 128 mêmes élèves
SAMRA SAKINA A 425
Limites de l’approche systèmes de fichier
Information redondante
Volume , Temps d ’accès , Validité , Doublons (exemple SARAH
et SARA dans l’exemple précédent )
Mise à jour pénible
Ex. Changement d ’adresse (il faut le changer partout)
Interrogations pénibles
Problèmes d ’accès à l’information : problèmes liés à la recherche
d ’une information, à sa lecture, à son écriture …
Problème : Dépendance de l’application par rapport au mode
de stockage des données
8
05/04/2017
Limites de l’approche fichiers
L’utilisation de fichiers impose à l’utilisateur de connaître :
le mode d’accès (séquentielle, indexée, …)
la structure physique des enregistrements
et la localisation des fichiers qu’il utilise.
Pour des applications nouvelles
l’utilisateur devra obligatoirement écrire de nouveaux
programmes.
il pourra être amené à créer de nouveaux fichiers qui
contiendront peut-être des informations déjà présentes.
Exemple . Ajout de dossier de bourses à l’exemple précédent
Toute modification de la structure des enregistrements (ajout d’un
champ par exemple) entraîne la réécriture de tous les programmes
qui manipulent ces fichiers.
Comment ?
Approche Systèmes de fichiers (limitée)
Approche Base de données
programmes
programmes
Description
BDD unique des
données
programmes
9
05/04/2017
Approche base de données:
Séparer les structures des données des structure de
stockage Travailler sur des modèles du monde réel
Principes:
Une information n’est stockée qu’une seule fois ou ,
exceptionnellement, avec une redondance calculée.
L’utilisateur n’a pas à se préoccuper des questions liées à l’implantation
physique des données.
Des critères précis, des contraintes d’intégrité, peuvent être décrits par
l’utilisateur concernant la validité des informations.
Les droits d’accès à l’information peuvent être personnalisés par groupe
d’utilisateurs, voire pour chaque utilisateur.
Qu’est qu’une base de données?
Base de Données (BD ou BDD) :
Une collection structuré de données relatives à un sujet global et
accessible par plusieurs utilisateurs à la fois.
Un ensemble structuré de données (1) enregistrées sur des supports
accessibles par l’ordinateur (2) pour satisfaire simultanément
plusieurs utilisateurs (3) de manière sélective (4) en un temps
opportun (5).
(1) : Organisation et description de données
(2) : Stockage sur disque
(3) : Partage des données
(4) : Confidentialité BD
(5) : Performance
10
05/04/2017
Applications des bases de données
Les bases de données font aujourd'hui parties de la vie de
tous les jours :
Si nous allons à la banque to retirer ou déposer de l'argent,
Si nous réservons un hôtel ou un vol,
Si nous utilisons le système d'une bibliothèque,
Si nous achetons des produits dans un supermarché (système de contrôle
de stock)
Si nous achetons des produits à un vendeur internet sur le web.
Ce sont des applications traditionnelles des bases de données
Un petit exercice (10 minutes)
Pour une base de données pour une compagnie aérienne (gestion des
réservations):
Quelles informations doivent être stockées ?
Quels types d'interrogations sont souhaités ?
11
05/04/2017
Solution
Les données
les appareils
les vols
les aéroports
les réservations
les achats
Les types d'interrogations
quels sont les vols au départ de X et arrivant à Y le 15 mai
2017 ?
quels sont les prix de ces vols ?
combien de passagers ont voyagé sur le vol 1234 du 15
mars 20015 ?
G..
Système de gestion de BD (SGBD)
SGBD : Un ensemble de programmes permettant à des
utilisateurs de créer et d’utiliser de BDs.
Un SGBD représente un ensemble coordonné de logiciels
permettant de décrire, mémoriser, manipuler, traiter,
interroger les ensembles de données constituant la base.
SGBD BD
Les SGBD commerciaux les plus connus sont :
Oracle, SQL Srver, Sybase, Ingres, Informix, DB2, MySQL(libre)
Kamal BAL - Cours SGBD - Université Akli Mohand Oulhadj de Bouira - Février 2016 24
12
05/04/2017
Objectifs d’un SGDB
Objectifs d’un SGDB
Indépendance physique::
Indépendance entre structures de données et structures de stockage,
Plus besoin de travailler directement sur les fichiers physiques.
Un SGBD permet de décrire les données d’une façon logique sans se
soucier du comment cela va se faire physiquement dans les fichiers.
La manipulation des données est facilitée en travaillant sur le schéma
logique.
On peut insérer, supprimer, modifier des données directement sur
l’image logique. Le SGBD va s’occuper de faire le travail sur les
fichiers physiques.
Image physique
Image logique
Fichiers
physiques
Kamal BAL - Cours SGBD - Université Akli Mohand Oulhadj de Bouira - Février 2016
13
05/04/2017
Objectifs d’un SGDB
Indépendance logique :
Un même ensemble de données peut être vu différemment par des
utilisateurs différents.
Toutes ces visions (vues) personnelles des données doivent être
intégrés dans une vision globale.
Manipulations par des non informaticiens: Il faut pouvoir
accéder aux données sans savoir programmer ce qui signifie des
langages d’interrogation « quasi naturels.
Efficacité des accès aux données :
Ces langages doivent permettre d’obtenir des réponses aux
interrogations en un temps « raisonnable ».
Il doivent donc être optimisés et, minimiser les accès disques.
Objectifs d’un SGDB
Administration centralisée des données :
Des visions différentes des données (entre autres) se résolvent plus
facilement si les données sont administrées de façon centralisée.
Cohérence des données:
Les données sont soumises à un certain nombre de contrainte qui
définissent un état cohérent de la base.
Elles doivent pouvoir être exprimées simplement et vérifiées
automatiquement à chaque insertion, modification ou suppression
de données, par exemple :
l’âge d’une personne supérieur à zéro
Salaire supérieur à zéro, ……., etc
Dés que l’on essaie de saisir une valeur qui ne respecte pas cette
contrainte, le SGBD le refuse.
14
05/04/2017
Objectifs d’un SGDB
Non redondance des données : Afin d’éviter les problèmes
lors des mises à jour, chaque donnée ne doit être présente qu’une seule
fois dans la base.
Partageabilité des données:
Permettre à plusieurs utilisateurs d’accéder aux mêmes données au
même moment. Si ce problème est simple à résoudre quand il s’agit
uniquement d’interrogations et quand on est dans un contexte mono-
utilisateur, cela n’est plus le cas quand il s’agit de modifications dans
un contexte multi-utilisateurs. Il s’agit alors de pouvoir :
Permettre à deux (ou plus) utilisateurs de modifier la même donnée
« en même temps »;
Assurer un résultat d’interrogation cohérent pour un utilisateur
consultant une table pendant qu’un autre la modifie.
Objectifs d’un SGBD
Sécurité des données.
Les données doivent pouvoir être protégées contre
les accès non autorisés.
Résistance aux pannes:
Un SGBD doit intégrer des mécanismes de
reprise après panne (coupure de courant
par exemple)
15
05/04/2017
Comment assurer ces objectifs ?
Architecture des SGBD (architecture en trois niveaux)
Les trois niveaux de descriptions définies par la norme ANSI/ SPARC
Univers du discours
Schéma externe
Modélisation
Schéma externe Schéma conceptuel / logique Schéma interne
Schéma externe
Schéma externe
BD
Niveau externe Niveau conceptuel Niveau interne
Au niveau externe, les
schémas ou vues
Comment assurer ces objectifs ?
décrivent la partie des
Le niveau logique Le niveau interne permet de
Architecture
données présentantdesun SGBD décrire les données telles
permet de décrire, de
Les troispour
intérêt niveaux
unde descriptions définies par la norme ANSI/ SPARCqu'elles sont stockées dans la
manière "abstraite" et
utilisateur ou un groupe structurée, la réalité du machine, en particulier dans
d'utilisateurs. monde ou de les fichiers qui les contiennent
l'application. (nom, localisation, taille,G).
Schéma externe
Domaine
d’application
Schéma interne
Schéma externe
Schéma conceptuel / logique
Schéma externe
BD
Niveau externe Niveau conceptuel Niveau interne
Kamal BAL - Cours SGBD - Université Akli Mohand Oulhadj de Bouira - Février 2016
16
05/04/2017
Les fonctions d’un SGBD
Exemple SNTF: Gestion des réservations de billets de trains
De quoi a-t-on besoin ?
Train = numéro train
Billet = nom client
gare départ
numéro train
heure départ
date
destination finale
classe
heure d’arrivée
no wagon
jours
numéros place
départ: - gare
- heure numéro train
gare d’arrivée Arret = no arret
gare
heure départ
heure d’arrivée
Besoins de description
- Décrire le données de l’application (trains, trajets et
réservations) sans faire référence à une solution
informatique particulière
Modèle conceptuel (sémantique , exemple: le modèle
entité-association)
- Élaborer une description équivalente pour le
stockage des données dans un SGBD
Modèle de données (relationnel)
17
05/04/2017
Besoins de manipulation
- Créer la structure de la base de données initiale avec
les données représentant le réseau SNTF
langage de description de données (LDD)
- Créer au fur et à mesure les données sur les
réservations. Modifier si besoin et éventuellement
supprimer toute donnée déjà rentrée
langage de manipulation de données (LMD)
(insertion, modification, suppression)
Besoins d’interrogation
- Répondre à toute demande d’information portant sur
les données contenues dans la base. Par exemple:
Langage de requête (langage d’interrogation)
Donner quelques exemples
Sadki Ali a-t-il une réservation pour aujourd’hui ?
Si oui, donner les informations connues sur cette réservation.
Quels sont les horaires des trains d’Alger à Boumerdes entre 9h
et 10h le dimanche ?
Donner les destinations au départ d’Alger sans arrêts
intermédiaires.
18
05/04/2017
Besoins d’exactitude / cohérence
Exprimer toutes les règles qui contraignent les valeurs
pouvant être enregistrées de façon à éviter toute erreur
qui peut être détectée.
Langage d’expression de contraintes d’intégrité
Exercice : quelles peuvent être ces contraintes ? (10
minutes)
Il ne faut jamais donner la même place dans le même train à 2 clients.
La date de réservation pour un train doit correspondre à un jour de
circulation de ce train
L’heure d’arrivée à un arrêt doit être postérieure à l’heure de départ
de l’arrêt précédent
Besoins de garanties
- Il ne faut pas que les informations (par exemple, les
réservations) soient perdues à cause d’un
disfonctionnement quelconque: erreur de
programmation, panne système, panne de l’ordinateur,
coupure de courant, …
Garantie de fiabilité
7 - Il ne faut pas qu’une action faite pour un utilisateur
(par exemple, l’enregistrement d’une réservation) soit
perdue du fait d’une autre action faite simultanément
pour un autre utilisateur (réservation de la même place).
Garantie de contrôle de concurrence
19
05/04/2017
Besoin d’efficacité
Le temps de réponse du système doit être conforme
aux besoins:
en interactif: pas plus de 3 secondes
en programmation: aassez rapide pour assumer la
charge de travail attendue (nombre de transactions
par jour)
mécanismes d’optimisation
ééventuellement, répartition / duplication des données sur
plusieurs sites
Cours de bases de données
---
Chapitre II : Conception
20