Institut National de Statistique et d’Economie Appliquée
Cours de Bases de données
2ème année, Filière Informatique
2014/2015
Pr. Imade BENELALLAM
Pour toutes vos questions veuillez contacter : [email protected]
Cours de Bases de données 1
Informations sur le cours
• Organisation :
– Volume horaire de 56h (Cours + TD/TP);
– 4h/Semaine;
• Support de cours:
– Déposé sur Dropbox (avant la séance du cours);
– Transparents et/ou polycopie;
• Remises à jour fréquentes.
• Possibilité de certification Oracle en IEEE
– http://www.computer.org/web/education/knowledge
centers
Cours de Bases de données 2
Sources bibliographiques
• Andreas MEIER : “Introduction pratique aux bases de
données relationnelles”, Springer-Verlag, 2006
• Ramez ELMASRI & Shamkant NAVATHE : “Conception
et architecture des bases de données”, Pearson
Education, 2004
Cours de Bases de données 3
Plan du cours
Chapitre 1 : Les concepts fondamentaux des Bases de
Données
Chapitre 2 : Le modèle abstrait des bases de données
Chapitre 3 : Le modèle relationnel
Chapitre 4 : Les langages de manipulation de données
: l'exemple de S.Q.L. (Oracle)
Chapitre 5 : Les dépendances fonctionnelles
Chapitre 6 : Les formes normales
Chapitre 7 : La gestion des accès concurrents
Cours de Bases de données 4
Evaluation
– 50% :
• Examen final.
– 50% :
• Contrôle continu.
• Une note de mini projet.
• Une note de participation incluant l’assiduité et la
réalisation des TPs.
Cours de Bases de données 5
Chapitre 1
Les concepts fondamentaux des
Bases de Données
Cours de Bases de données 6
Information et Donnée
Une information, c’est une donnée qui a un sens pour celui qui en a besoin.
Une information est le résultat de traitement d’une donnée.
Une information est ensemble complexe, composé de données et de liens.
Une information décrit un événement, une activité ou un fait.
Plusieurs modèles possibles.
Le modèle est inconnu, le
sens est plus difficile à
Le modèle est connu, percevoir ou incomplet
l’interprétation donne du
sens aux données
Cours de Bases de données 7
Information et Donnée
• L’information est un facteur de production
• L’information a une valeur, variable selon son importance, son
ancienneté…
• L’information doit être
• extraite,
• stockée,
• traitée,
• maintenue…
c’est la tâche d’un système d’information !
Cours de Bases de données 8
Système d’information
• Un Système d'Information (noté SI) représente
l'ensemble des éléments participant dans la
gestion, le transport, le traitement et la diffusion
de l'information au sein de l'organisation.
– Intimement lié à la gestion de données,
– Séparation entre l'organisation du stockage de
l'information et la réalisation des programmes
d'application.
• Un changement d'application ne doit pas affecter la
structure élaborée pour stocker les données
Cours de Bases de données 9
Exemples
• Gestion des personnels, étudiants, cours,
inscriptions,
• Système de réservation de places d'avion
• Gestion des comptes clients d’une banque
• Gestion des commandes d’une société
• ...
Cours de Bases de données 10
Exemple : Gestion des
enseignements
Nom étudiant Numéro module Numéro étudiant
Prénom étudiant Intitulé module Numéro module
Numéro étudiant Volume horraire Date inscription
Date naissance Période
Adresse Pré requis Inscription
Etudiant Module Numéro module
Numéro enseignant
Nom enseignant Salle
Prénom enseignant Date
Numéro enseignant Heure début
Date naissance Durée
Adresse
Enseignant Enseignement
Cours de Bases de données 11
Besoins ?
• Besoins de description
• Besoins de manipulation
• Besoins d’interrogation
• Besoins d’exactitude /
cohérence
• Besoins de garanties
• Besoins de confidentialité
• Besoins d’efficacité
• ….
Quel moyen ?
Cours de Bases de données 12
Introduction aux bases de données
• Définition (base de données) : C’est un ensemble de
données structurées et inter-reliées qui sont fiables,
correctes, cohérentes et partageable par plusieurs
utilisateurs ayant des besoins d’informations différents
et cela sous le contrôle d’une autorité unique qui est
l’administrateur de la base de données.
• vs. Ensemble de fichiers
– Lourdeur d’accès aux données
– Manque de sécurité
– Pas de contrôle de concurrence
Cours de Bases de données 13
Introduction aux bases de données
• Certains auteurs, spécialistes de la question,
ne tentent pas de donner une définition de la
base de données, mais plutôt de l'ensemble
de logiciels qui rangent, recherchent,
assemblent, modifient, ... les données.
• Cet ensemble, indépendant du contenu de la
base, constitue le Système de Gestion de Base
de Données ( SGBD) (en anglais : DBMS : Data
Base Management System).
Cours de Bases de données 14
Introduction aux bases de données
• Définition (SGBD) : Un outil informatique permettant
aux utilisateurs de structurer, d’insérer, de modifier, de
rechercher de manière efficace des données
spécifiques, au sein d’une grande quantité
d’informations, stockées sur mémoires secondaires
partagée de manière transparente par plusieurs
utilisateurs.
Les bases de données se différencient, du point de
vue de leurs performances, non par les données elles-
mêmes mais bien évidemment par leur SGBD.
Cours de Bases de données 15
Introduction aux bases de données
L'historique des bases de données n'est d'ailleurs que celle des SGBD:
• 1960 - 1965 : apparition des mémoires auxiliaires magnétiques (
disques); développement de la théorie des fichiers
• 1965 - 1970 : premières bases de données, à structure hiérarchique
(IMS), à structure réseau ( recommandations du CODASYL).
• 1970 - 1980 : commercialisation des bases de données du type
précédent ; développement de la théorie des bases de données
relationnelles ( Codd).
• 1980 - 1983 : implantation des premières bases de données
relationnelles ( même sur petits systèmes)
• 1983 - 1992 : nombreux développements sur les bases de données :
théoriques (objets) ou pratiques (réseaux et bases réparties) voire
conceptuels ( infocentres)
Cours de Bases de données 16
Pourquoi ?
• Avant les SGBD : écriture de programmes par des
programmeurs d’application utilisant le système
de gestion de fichiers pour gérer et exploiter les
données :
– Risques liés au manque de sécurité + multiplication
des efforts (programmes similaires écrits dans
différents services pour des besoins proches).
• Conséquences :
– Redondances : fichiers contenant les mêmes données,
mais utilisées par des personnes différentes,
– Risque d’incohérences : du fait des redondances et
des MAJ non centralisées
Cours de Bases de données 17
Pourquoi ?
– Les données sont stockées sous différents formats.
– Intégrité des données : Non respect de contraintes qui
doivent être programmées (ex: contrôles sur date de
naissance, sur code postal, numéro de tél., ...),
– Problèmes liés à la sécurité : utilisateurs de différents
niveaux d’expérience et avec différents droits d’accès
=> mots de passe,
– Problèmes liés au partage des données : accès en
lecture / écriture.
Cours de Bases de données 18
Pourquoi ?
• Concurrences et multiplicité des remises à jour
– Les traitements concurrents peuvent générer des
erreurs.
• Ex: Mises à jour d'un compte en même temps
– solde de 400$
– T1: dépôt de 300$
– T2: retrait de 500$
– si T1 avant T2 : 400$, 700$, 200$ OK
– si T2 avant T1 : 400$, -100$, 200$ ERREUR!!!
– Nécessite un programme superviseur pour gérer les
transactions
Cours de Bases de données 19
Pourquoi ?
Ex : Considérons deux transactions faisant une réservation d'une
place d'avion, alors qu'il n'y a plus qu'une place de disponible.
Les deux transactions pourront néanmoins effectuer les deux
réservations, conduisant à une incohérence de la base de
données.
Cours de Bases de données 20
Pourquoi ?
• Plusieurs problèmes peuvent ainsi se poser
lorsque des transactions concurrentes
s'exécutent de manière non contrôlée.
– Perte de mise à jour :
Cours de Bases de données 21
Pourquoi ?
– Lecture impropre (Dirty read)
Cours de Bases de données 22
Pourquoi ?
– Lecture non reproductible
Cours de Bases de données 23
Caractéristiques, qualités et propriétés
des bases de données
• Voici une liste, non limitative, des caractéristiques que
doit (ou devrait) apporter une base de données par
rapport à une organisation "fichier" classique :
– exhaustivité des informations
– non-redondance des informations
– partage des informations
– standard d'organisation
– sécurité des informations
– intégrité des informations
– indépendance des informations vis à vis des applications
24
Cours de Bases de données
Caractéristiques, qualités et propriétés
des bases de données
• Exhaustivité : Les informations contenues dans la base
doivent être suffisamment complètes pour que les
applications prévues puissent fonctionner.
• Exemple : dans une entreprise commerciale, l'édition
d'une facture suppose que la base de données
contienne des informations sur :
– le client ( nom, adresse, conditions de vente, ...)
– la commande ( date, numéro, articles demandés,
références, quantités,...)
– les articles ( référence, quantité en stock, prix unitaire,
taux de TVA, ....)
– la livraison (date, articles livrés, articles restant à livrer,...)
Cours de Bases de données 25
Caractéristiques, qualités et propriétés
des bases de données
• Non redondance : Dans la mesure du possible,
la même information ne doit pas figurer
plusieurs fois dans la base de données. Cela
conduirait en effet :
– à gaspiller de la place de stockage ( espace disque)
– à effectuer des mises à jour complexes
Cours de Bases de données 26
Caractéristiques, qualités et propriétés
des bases de données
Cours de Bases de données 27
Caractéristiques, qualités et propriétés
des bases de données
Cours de Bases de données 28
Caractéristiques, qualités et propriétés
des bases de données
Cours de Bases de données 29
Caractéristiques, qualités et propriétés
des bases de données
Cours de Bases de données 30
Caractéristiques, qualités et propriétés
des bases de données
Cours de Bases de données 31
Caractéristiques, qualités et propriétés
des bases de données
• Partage des informations : Les informations contenues dans la base de
données doivent être accessibles à plusieurs utilisateurs simultanés.
L'intérêt est évident : la centralisation des données est un moyen
économique de satisfaire les besoins d'un grand nombre d'usagers.
Cours de Bases de données 32
Caractéristiques, qualités et propriétés
des bases de données
• Le partage des informations pose cependant
deux problèmes principaux :
– la sécurité des données
– les accès concurrents à une information
• Ces problèmes seront examinés dans des
chapitres spécifiques.
Cours de Bases de données 33
Caractéristiques, qualités et propriétés
des bases de données
• Sécurité des informations : L’ABD, et lui-seul,
autorise l'accès aux informations.
Concrètement, cette autorisation consiste en :
– l'accès à une partie bien définie de la base de
données
– la possibilité d'y effectuer des opérations bien
définies.
Cours de Bases de données 34
Caractéristiques, qualités et propriétés
des bases de données
• Intégrité des informations : Les informations
contenues dans la base de données doivent
être exactes si l'on veut utiliser celle-ci de
manière efficace.
• Dans la pratique, l'exactitude absolue n'existe
pas ( le fameux 0 défaut). On peut tout au plus
améliorer la qualité d'intégrité.
Cours de Bases de données 35
Caractéristiques, qualités et propriétés
des bases de données
• Un des avantages des bases de données par rapport à une
gestion de fichiers traditionnelle réside dans la possibilité
d’intégrer des contraintes que doivent vérifier les données à
tout instant.
– Exemple : on souhaite poser les contraintes suivantes :
– le nombre d’exemplaire de chaque OUVRAGE doit être supérieur à 0 (zéro)
– Chaque OUVRAGE doit avoir au moins un auteur
– Etc.
• Ceci est possible grâce à la notion de contraintes d’intégrité
• Définition : Contraintes d ’intégrité « sont des assertions qui
doivent être vérifiées à tout moment par les données
contenues dans la base de données »
Cours de Bases de données 36
Caractéristiques, qualités et propriétés
des bases de données
• Indépendance des informations vis-à-vis des
application: cette propriété permet
essentiellement de différencier une structure
"classique" d'une structure de "bases de
données".
Cours de Bases de données 37
Architecture d'une base de données
• Vues de la BD
– Schémas Externes (ES)
• Les vues partielles
• L4G : Lang. de 4° génération
– Schéma conceptuel (CS)
• Définition logique de la BD; Structures et types (LDD)
• Manipulations (LMD)
– Schéma interne (IS)
• Représentation physique
• Optimisations
Cours de Bases de données 38
Architecture d'une base de données
• Le niveau interne est défini par le schéma
physique qui indique comment l'information est
enregistrée sur les mémoires auxiliaires.
• Ce schéma utilise donc les termes de fichiers,
d'index, d'adressages, etc...
• Le niveau interne décrit donc une réalité
physique ( en fait la seule de toute l'architecture),
les autres niveaux correspondant à des notions
entièrement abstraites.
Cours de Bases de données 39
Architecture d'une base de données
• Le niveau conceptuel est défini par un schéma conceptuel
dont le rôle est de définir les règles de description des
données et des relations entre ces données.
• En d'autres termes, le schéma conceptuel est une
modélisation des objets du monde réel. On l'appelle
d'ailleurs modèle de données.
• On connaît jusqu'à présent plusieurs types de modèles de
données :
– le modèle hiérarchique
– le modèle réseau
– le modèle relationnel
– Le modèle objet
Cours de Bases de données 40
Architecture d'une base de données
• Exemple d’un schéma conceptuel avec la méthode
Merise (MCD) :
Cours de Bases de données 41
Architecture d'une base de données
• Exemple d’un schéma conceptuel avec le langage de
modélisation UML (Diagramme de classes) :
Cours de Bases de données 42
Architecture d'une base de données
• Le passage du monde réel au schéma conceptuel correspond
à un processus de modélisation.
• Le processus de modélisation se fait à l’aide d’un modèle de
données.
• La modélisation se réalise en trois étapes principales qui
correspondent à trois niveaux d’abstraction différents :
Cours de Bases de données 43
Architecture d'une base de données
• Le niveau externe contrairement aux précédents niveaux
correspond à plusieurs schémas externes qui ne sont autres
que les vues (partielles) qu'ont les différents utilisateurs de
la base de données.
• Les schémas externes ne sont que des sous-schémas du
schéma conceptuel;
• Quelquefois, ils sont plus que cela : ils peuvent permettre,
par exemple, de fournir des informations qui n'existent pas
en tant que telles dans le schéma conceptuel, mais qui
peuvent être obtenues ( calculées) à partir d'informations
existantes.
• En ce sens, l'union de tous les schémas externes peut
constituer un "recouvrement" du schéma conceptuel.
Cours de Bases de données 44
Architecture d'une base de données
• On remarque, sur ce schéma, que l'architecture comprend 3
grands niveaux : interne, conceptuel, externe. (Architecture
ANSI-SPARC)
Cours de Bases de données 45
SGBD : Objectifs
• Un SGBD est donc fondamentale pour gérer ces différents niveaux
!
• Indépendance physique des programmes et des données :
– Pouvoir modifier les schémas internes sans modifier les schémas
conceptuels et externes
• Indépendance logique des programmes et des données :
– Pouvoir modifier les schémas externes sans modifier les schémas
conceptuels
– Indépendance entre les différents utilisateurs
• Manipulation des données par des langages non procéduraux
– Données facilement manipulables par les utilisateurs (interactifs ou
programmeurs)
• Administration facile des données
– Outils pour définir et modifier les définition de données
Cours de Bases de données 46
SGBD : Objectifs
• Efficacité d’accès aux données :
– Optimisation : temps de réponse, débit, ...
– Optimisation des opérations d’E/S
• Redondance contrôlée des données :
– Dans les BD réparties : redondance nécessaire, mais contrôlée
• Cohérence des données
– Satisfaction de contraintes d’intégrité
• Partage des données
– Permettre les accès concurrents
• Sécurité des données
– Outils pour définir et modifier les définition de données
– Protection en cas de panne (du SGBD, de la machine, ...)
– Assurer l’atomicité des transactions et l’intégrité des données
Cours de Bases de données 47
Architectures opérationnelles d’un
SGBD
• Du point de vue opérationnel
– Un SGBD est un ensemble de processus et de tâches qui
supportent l’exécution du code du SGBD pour satisfaire les
commandes des utilisateurs.
• Depuis les années 80, les SGBD sont basés sur
une architecture clients-serveur
– Serveur : Gère les données partagèes et exécute le code
du SGBD
– Clients : Communiquent avec le serveur. Requêtes de type
question / réponse
Cours de Bases de données 48
Architecture deux strates
Cours de Bases de données 49
Architecture deux strates
Cours de Bases de données 50
Architecture trois niveaux
Cours de Bases de données 51
Architecture trois niveaux
Cours de Bases de données 52
Architecture répartie
Cours de Bases de données 53
Architecture répartie
Cours de Bases de données 54
Exercices
Cours de Bases de données 55