Académique Documents
Professionnel Documents
Culture Documents
Bibliographie
• [Gar-1986] Georges Gardarin, « Bases de Données, les Systèmes et leurs Langages ».
Eyrolles. 1986.
• [Gar-2003] Georges Gardarin, « Bases de données ». Eyrolles. 5ème édition 2003.
• [Cod-2017] Eric Godoc et Anne-Christine Bisson, «SQL Les fondamentaux du
langage». Edition Eni. 2017.
• [Hai-2015] Jean-Luc Hainaut , «Bases de données : concepts, utilisation et
développement». Édition DUNOD. 2015.
Chapitre 1
Introduction aux bases de données
Introduction
Les progrès technologiques permettant le stockage de grandes masses de données avec
des coûts de plus en plus faible, le besoin des entreprises nécessitant dans leurs organisations
une connaissance plus fine de leurs activités et en solution aux problèmes posés par les
fichiers, la notion ou concept de base de données est apparu vers les années soixante.
Depuis, des concepts, des méthodes et des outils ont été développés pour mieux gérer les
données stockées en mémoire secondaire.
1. Base de données
1.1. Définitions
Définition1
Une base de données (BD) est un ensemble structuré de données enregistrées sur des
supports accessibles par l’ordinateur pour satisfaire simultanément plusieurs utilisateurs de
manière sélective et en un temps opportun.
Ainsi une BD est faite pour enregistrer des faits, des événements qui surviennent dans le cycle
de vie d’une organisation, ou pour les restituer à la demande, ou encore pour en tirer des
conclusions en rapprochant des faits les uns aux autres.
Exemple : au niveau de l’université on besoin de stocker des informations sur les enseignants,
les étudiants, les enseignements et les conditions d’inscription à un enseignement. On a besoin
aussi des associations qui lient ces différentes informations. Par exemple inscription lie
étudiant à un enseignement. Ces informations pourront être partagées par le service de
scolarité pour les inscriptions et le service de pédagogie pour établir par exemple les emplois
du temps.
Définition2
Une base de données est un ensemble de données modélisant les objets d’une partie du
monde réel et servant de support à une application informatique.
Cet ensemble de données doit être interrogeable par le contenu, c.-à-d. on peut retrouver un
ensemble d’objets satisfaisant un certain critère. Il doit être possible de retrouver leurs
structures, par exemple, le produit possède un nom, un prix et une quantité.
1.2. Modélisation des données
L’idée fondamentale des BDs est la séparation entre la description des données en termes de
types de la manipulation.
Toute description de données se fait au niveau type selon un modèle de description des
données qui représente un ensemble de concepts et de règles de composition de ces
concepts permettant de décrire des données (ex. modèle relationnel, objet, relationnel objet,
etc…). Cette description sera mise en œuvre à l’aide d’un langage de définition des
données LDD. Un LDD est un langage supportant un modèle de description de données et
permettant de décrire des données d’une BD d’une manière assimilable par une machine.
Un schéma est une description au moyen d’un langage déterminé d’un ensemble de type
d’objets.
Exemple 1 : le schéma qui suit modélise le fait qu’un véhicule appartient à une seule
personne et qu’une personne peut ou non posséder un ou plusieurs véhicules.
Client Produit
Code 1-N 1-N Numéro
Achat
Nom Désignation
Date_Achat
Adresse Année
Quantité
1-N
Usine Est-fabriqué
Numéro 1-N
Nom
Lieu
Fig.1.2 Exemple 2 de schéma conceptuel
1.3.2. Niveau externe
Ce niveau correspond à une vision de tout ou d’une partie du schéma conceptuel par un
groupe d’utilisateurs concernés par une application et chargés de mettre en œuvre des
programmes d’utilisations. Ce qu’on appelle schéma externe ou vue. Par un exemple pour
la gestion des achats des produits, dans le schéma conceptuel présenté dans la figure Fig.
1.2, on ne va s’intéresser qu’à la partie client-achat-Produit. Ainsi pour calculer pour un
client la quantité de produits achetés il suffit de cumuler (la somme) les quantités de tous les
produits achetés par ce client.
En synthèse pour une base de données particulière, il existe un seul schéma interne et un seul
schéma conceptuel. En revanche, il existe en général plusieurs schémas externes. Un schéma
externe peut être défini par un groupe d'utilisateurs. À partir de là, il est possible de construire
des schémas externes pour des sous-groupes du groupe d'utilisateurs considéré. Ainsi, certains
schémas externes peuvent être déduits les uns des autres. La figure Fig. 1.3 illustre les
différents schémas d'une base de données centralisée.
- les objets/entités qui vont constituer la BD (comme des personnes possédant des voitures, les
voitures appartenant à ces personnes, …).
- Les attributs/données relatifs à ces objets (comme les noms de personnes, les types de
voitures,…)
- Les liens qui peuvent rendre ces objets inter-liés (comme une personne peut posséder un ou
plusieurs voitures, …).
Ces moyens constituent ce que l’on appelle le Langage de Description de Données (LDD).
Exemple : sous Oracle, la commande Create table pour créer une table, Create index on pour
créer un index sur une table, Define view pour la définition des vues etc…
- la saisie et l’enregistrement des données relatives aux personnes et aux voitures en utilisant
la commande INSERT.
- La possibilité de les modifier, par la commande UPDATE
- La possibilité d’avoir la liste de personnes qui ont plus qu’une voiture, la commande
SELECT.
-…
2.2.3. L’intégrité de données
Les informations dans une BD doivent être fiables. Pour être fiable, l’information doit parfois
vérifier certaines propriétés comme l’appartenance à une liste de valeurs permises (comme un
nom d’une personne non vide, une voiture appartenant à une personne appartenant à l’entité
personne, …).
A cet effet, le SGBD Offre la possibilité de définir des règles permettant de maintenir
l’intégrité (ou la cohérence) de la BD. Ces règles sont les contraintes d’intégrité.
2.2.5 La confidentialité
Le SGBD offre des mécanismes afin de vérifier les droits d’accès aux utilisateurs.
Généralement cette confidentialité est assurée par l’utilisation de mots de passe et de
privilèges d’accès (par ex. un seul administrateur a le droit de suppression, d’ajout de
voitures, … les autres utilisateurs ont uniquement le droit de consultation ou recherche).
La sécurité permet d’éviter les accès non autorisés aux données par des mécanismes de
contrôle de droits d’accès, mais aussi de restaurer des données correctes en cas de pannes ou
d’erreurs.
2.3. ARCHITECTURE DES SGBD
Il existe différentes architectures de SGBD
Modification de requêtes
Contrôleur Contrôle d'intégrité
Métabase
Contrôle d'autorisation
Ordonnancement
Optimiseur Optimisation
Élaboration d'un plan
Exécution du plan
Exécuteur Méthodes d'accès
Contrôle de concurrence
Atomicité des transactions
BD
Du point de vue de la manipulation des données, les requêtes (par exemple, SELECT,
INSERT, UPDATE, DELETE) sont tout d’abord prises en compte par l’analyseur de
requêtes. Celui-ci réalise l’analyse syntaxique (conformité à la grammaire) et sémantique
(conformité à la vue référencée ou au schéma) de la requête. Celle-ci est alors traduite en
format interne, les noms étant remplacés par des références internes.
Une requête en format interne référençant une vue doit tout d’abord être traduite en une (ou
plusieurs) requête(s) référençant des objets existant dans la base, c’est-à-dire des objets décrits
au niveau du schéma. Cette fonction, accomplie au niveau du contrôleur de requêtes Fig.1.4,
est appelée modification de requêtes, car elle consiste à changer la requête en remplaçant les
références aux objets de la vue par leur définition en termes d’objets du schéma.
C’est aussi au niveau du contrôleur que sont pris en compte les problèmes de contrôle de
droits d’accès (autorisation de lire ou d’écrire un objet) et de contrôle d’intégrité lors des
mises à jour. Le contrôle d’intégrité consiste à vérifier que la base n’est pas polluée lors des
mises à jour, c’est-à-dire que les règles de cohérence des données restent vérifiées après mise
à jour.
L’optimiseur de requêtes est un composant clé du SGBD. Son rôle essentiel est d’élaborer
un plan d’accès optimisé pour traiter la requête. Pour se faire, il décompose en général la
requête en opérations d’accès élémentaires (e.g., sélection d’index, lecture d’article, etc.) et
choisit un ordre d’exécution optimal ou proche de l’optimum pour ces opérations. Il choisit
aussi les méthodes d’accès à utiliser. Pour effectuer les meilleurs choix, l’optimiseur s’appuie
souvent sur un modèle de coût qui permet d’évaluer le coût d’un plan d’accès avant son
exécution. Le résultat de l’optimisation (le plan d’accès optimisé) peut être sauvegardé en
mémoire pour des exécutions multiples ultérieures ou exécuté directement puis détruit.
L’exécuteur de plans a enfin pour rôle d’exécuter le plan d’accès choisi et élaboré par
l’optimiseur. Pour cela, il s’appuie sur les méthodes d’accès qui permettent d’accéder aux
fichiers via des index et/ou des liens. C’est aussi à ce niveau que sont gérés les problèmes de
concurrence d’accès et d’atomicité de transactions. Les techniques utilisées dépendent
beaucoup de l’architecture opérationnelle du SGBD qui s’exprime en termes de processus et
de tâches.
(3) Description de données conceptuel, format d’édition ; cette interface permet aux
administrateurs de consulter le schéma conceptuel afin de définir les règles de
correspondance. Il pourrait s’agir par exemple d’une visualisation graphique des diagrammes
entité-association.
(4) Langages de description de données externes, format source ; ils peuvent être multiples si
le SGBD supporte plusieurs modèles de données. Ils permettent aux administrateurs de
définir les schémas externes et les règles de correspondance avec le schéma conceptuel. Par
exemple, la commande DEFINE VIEW introduite illustre ce type de langage, qui permet donc
de définir des schémas externes encore appelés vues.
(9) Langages de manipulation de données externes, format objet ; ils correspondent aux
schémas compilés des précédents.
(10) Langage de manipulation de données conceptuelle, format objet ; il est généré par les
processeurs de transformation externe à conceptuel afin de manipuler les données logiques
décrites dans le schéma conceptuel. Ils comportent des primitives correspondant à la
compilation des commandes du type recherche, ajout, modification et suppression référençant
cette fois les objets décrits dans le schéma conceptuel.
(11) Langage de manipulation de données interne, format objet ; il est généré par le
processeur de transformation conceptuel à interne afin de manipuler les données internes. Il
permet par exemple d’accéder aux articles de fichiers via des index.
(13) Interface mémoires secondaires ; elle permet d’effectuer les entrées-sorties sur les
disques.
(14) Interface d’accès au dictionnaire des données ; elle permet aux divers processeurs de
transformation d’accéder aux schémas objets et aux règles de correspondance.
a) Architecture Client-Serveur
L’application se compose d'un client (premier niveau) et un serveur (deuxième niveau) qui
pourraient fonctionner sur des machines différentes. Les caractéristiques essentielles de cette
architecture se résument dans :
– Une séparation claire des préoccupations entre client et serveur
– Un client léger vs client lourd
– Plus ou moins de la logique d'application sur le côté client
– Prise en charge des environnements d'entreprise décentralisés
Fig. 1.6 Architecture client serveur
b) Architecture parallèle
Cette architecture se base sur des machines parallèles (plusieurs processeurs) qui peuvent être
utilisés pour accélérer le traitement des transactions.
Les processeurs et disques ont accès à une mémoire partagée via un bus. La communication
entre processeurs est très efficace.
Ex.: XPRS, DBS3 et Volcano
– Tous les processeurs peuvent accéder à tous les disques via un réseau d’interconnexion.
– Chaque processeur a sa propre mémoire.
– Un certain degré de tolérance aux pannes en cas de défaillance du processeur/ de la
mémoire
– Les disques peuvent également avoir une tolérance aux pannes (par exemple, l'architecture
RAID)
– L'interconnexion aux systèmes de disques devient un goulot d'étranglement
– Chaque nœud se compose d'un processeur, d'une mémoire et d'un ou plus de disques
– Un réseau d'interconnexion haut débit entre processeurs
– Plus évolutif que la mémoire partagée ou le modèle de disque partagé
– Augmentation des coûts de communication pour l'accès au disque non local
b.4. Architectures hiérarchique (Hierarchical)
c. Architecture distribuée
- Un SGBD Distribué
Représente un système logiciel pour gérer la base de données distribuée de façon transparente.
Il se caractérise par :
- Indépendance physique
Pouvoir modifier les structures de stockage ou les index sans que cela ait de répercussion
au niveau des applications Les disques, les méthodes d’accès, les modes de placement, le
codage des données ne sont pas apparents.
- Indépendance logique
Permettre aux différentes applications d’avoir des vues différentes des mêmes données et
à l’administrateur de BD de modifier le schéma logique sans que cela ait de répercussion
au niveau des applications
En fait, la centralisation des descriptions de données entre les mains d’un groupe
spécialisé a souvent conduit à des difficultés d’organisation. Aussi, l’évolution des SGBD
modernes tend à fournir des outils permettant de décentraliser la description de données,
tout en assurant une cohérence entre les diverses descriptions partielles.
Afin de les éviter, on utilisera une gestion de tampons en mémoire centrale dans de
véritables mémoires caches des disques, afin qu’un grand nombre d’accès aux données se
fasse en mémoire. Un autre facteur limitatif est dû à l’utilisation de langages non
procéduraux très puissants afin d’interroger et mettre à jour la base de données.
Ainsi, il devient possible de demander en une requête le tri d’un grand volume de
données. Il devient donc aussi nécessaire d’optimiser l’activité de l’unité centrale pour
traiter les opérations en mémoire.
Avec une approche base de données, les fichiers plus ou moins redondants seront intégrés
en un seul fichier partagé par les diverses applications. L’administration centralisée des
données conduisait donc naturellement à la non-duplication physique des données afin
d’éviter les mises à jour multiples. En fait, avec les bases de données réparties sur plusieurs
calculateurs interconnectés, il est apparu souhaitable de faire gérer par le système des copies
multiples de données. Cela optimise les performances en interrogation, en évitant les
transferts sur le réseau et en permettant le parallélisme des accès. On considère donc
aujourd’hui que la redondance gérée par le SGBD au niveau physique des données n’est pas
forcément mauvaise.
Il faudra par contre éviter la redondance anarchique, non connue du système, qui
conduirait les programmes utilisateurs à devoir mettre à jour plusieurs fois une même
donnée. Il s’agit donc de bien contrôler la redondance, qui permet d’optimiser les
performances, en la gérant de manière invisible pour les utilisateurs.
2. Sécurité suite à une reprise de la BD après une panne: la sécurité des données doit
aussi être assurée en cas de panne d’un programme ou du système, voire de la machine.
Un bon SGBD doit être capable de restaurer des données cohérentes après une panne
disque, bien sûr à partir de sauvegardes. Aussi, si une transaction commence une mise à
jour (par exemple un transfert depuis votre compte en banque sur celui de l’auteur) et est
interrompue par une panne en cours de mise à jour (par exemple après avoir débité votre
compte en banque), le SGBD doit assurer l’intégrité de la base (c’est-à-dire que la
somme d’argent gérée doit rester constante) et par suite défaire la transaction qui a
échoué. Une transaction doit donc être totalement exécutée, ou pas du tout : il faut
assurer l’atomicité des transactions, et ainsi garantir l’intégrité physique de la base de
données.
2.3. Exemples de SGBD
Access est un SGBD relationnel Microsoft, qui offre une interface graphique permettant de
concevoir rapidement des applications de petite envergure ou de réaliser des prototypes.
SQL Server C’est un SGBD relationnel développé par Microsoft pour succéder à Access
pour des grosses applications.
1965: début des SGBD réseaux et hiérarchiques proches des systèmes de gestion de fichiers,
pas d’interrogation sans savoir où est l'information recherchée ("navigation") et sans écrire de
programmes.
1970: définition du modèle relationnel par CODD, fondement de la théorie des bases de
données relationnelles, mise en œuvre des SGBDs INGRES à Berkeley supportant le langage
QUEL et System R IBM à San Jose supportant les langages SEQUEL et QBE.
1980 : Apparition des SGBD relationnels sur le marché (Oracle, Ingres, Informix, Sybase,
DB2 …)
1990 : début des SBGD orientés objet (Gemstone, O2, Orion, Objectstore, Versant,
Matisse...).