Cours introduction aux bases de données, tutoriel & guide de travaux pratiques en pdf.
Qu’est-ce qu’une base de données ?
Le concept de Base de Données (BDD) est apparu vers 1960, face au nombre croissant d’informations que les entreprises devaient gérer et partager :
• Base de données – Un ensemble organisé d’informations avec un objectif commun. Plus précisément, on appelle base de données un ensemble structuré et organisé permettant le stockage de grandes quantités d’informations afin d’en faciliter l’exploitation (ajout, mise à jour, recherche et consultions de données).
• Base de données informatisée – Une base de données informatisée est un ensemble structuré de données enregistrées sur des supports accessibles par l’ordinateur, représentant des informations du monde réel et pouvant être interrogées et mises à jour par une communauté d’utilisateurs.
La gestion et l’accès à une base de données sont assurés par un ensemble de programme que constitue le système de gestion de base de données (SGBD).
Ainsi la notion de base de données est généralement couplée à celle des réseaux informatiques afin de pouvoir mettre en commun les informations d’où le nom de « base ». On parle souvent de système d’information pour désigner toute structure regroupant les moyens mis en place pour partager les données.
Critères d’une base de données
Une base de données doit répondre aux trois critères suivants :
• L’exhaustivité : C’est la présence dans cette base de tous les enseignements qui ont trait aux applications en question.
• Le non redondance des données : Non répétition d’une donnée plusieurs fois.
• La structure : C’est l’adaptation du mode de stockage de données au traitement ; structuration que la base doit avoir est liée à l’évolution de la technologie.
Système de Gestion de Base de données : SGBD
Ensemble des programmes et des langages de commande qui permettent de :
• Définir des « bases de données », et des relations entre les éléments de chaque base ;
• Spécifier le traitement de ces données : interrogations, mises à jour, calculs, extractions…
Le SGBD reçoit des commandes aussi bien des programmes d’application que des utilisateurs : il commande les manipulations de données, généralement par l’intermédiaire d’un SGF.
Figure I .1: Système de Gestion de Base de données « SGBD ».
Les définitions sont cependant de peu d’intérêt pour déterminer si un système est vraiment un SGBD ou s’il s’agit simplement d’un système d’information classique ou d’un système de fichiers. Il faut mieux définir le SGBD en précisant certaines des fonctions qu’il doit remplir :
• L’intégration des données afin d’éviter l’incohérence d’éventuelles données dupliquées (tout est intégré dans un seul ensemble cohérent).
• La séparation entre les moyens de stockage physique des données et la logique des applications.
• Un contrôle unique de toutes les données afin de permettre l’utilisation simultanée par plusieurs utilisateurs.
• La possibilité d’utiliser des structures de fichiers et des méthodes d’accès complexes, de façon à ce que les relations correctes entre les données puissent être exprimées et les données utilisées le plus efficacement dans un grand nombre d’applications.
• Des facilités pour le stockage, la modification, la réorganisation, l’analyse et la consultation des données, sans que le système impose des restrictions à l’utilisateur.
• Des contrôles de sécurité afin d’empêcher l’accès illégal à certaines données.
• Des contrôles d’intégrité pour prévenir une modification indue des données (exemple: contrôle d’exactitude, de validité).
• La compatibilité avec les principaux langages de programmation, les programmes-sources existants, et les données extérieures à la base.
• Posséder une capacité de stockage élevée.
• Pouvoir répondre à des requêtes avec un niveau de performances adapté.
• Fournir des facilités pour la gestion des méta-données. [4]
Objectifs de l’approche SGBD
• Pour pallier aux inconvénients des méthodes classiques de gestion de fichiers, les SGBD visent quatre objectifs : intégration et corrélation, flexibilité (indépendance), disponibilité, sécurité.
• Ces objectifs exigent une distinction nette entre les données et les procédures de manipulation de ces données : aux données, on associera une fonction d’administration des données, aux procédures de manipulation une fonction de programmation.
Intégration et corrélation
Dans les systèmes classiques, chaque application gère ses données dans ses propres « fichiers”, d’où :
Un risque de redondance, et un danger d’incohérence des données.
• La même donnée peut appartenir à plusieurs applications, induisant une déperdition de stockage.
• Toute modification de cette donnée est à enregistrer plusieurs fois : si cette mise à jour multiple n’est pas effectuée correctement, les données deviennent incohérentes.
• Le coût de la mise à jour augmente du fait de la multiplication des entrées-sorties physiques.
Une difficulté pour créer de nouveaux traitements
• Les nouvelles applications entraînent des duplications supplémentaires de données.
• Leur intégration avec les applicatifs en exploitation entraîne des modifications importantes. Dans l’approche SGBD, un « réservoir » commun (intégration) est constitué, représentant une modélisation (corrélation) aussi fidèle que possible de l’organisation réelle de l’entreprise :
Toutes les applications puisent dans ce réservoir, les données qui les concernent, évitant ainsi les duplications.
Mais le partage des données entre les utilisateurs pose le problème de la synchronisation des accès concurrents.
Flexibilité ou indépendance
• Dans les systèmes classiques, tout changement intervenant dans le stockage des données (support, méthode d’accès physique) entraîne des modifications lourdes des applications correspondantes.
• L’approche SGBD poursuit trois objectifs, pour assurer l’indépendance des données par rapport aux traitements :
Indépendance physique: tout changement de support, de méthode d’accès reste transparent au niveau de l’utilisateur.
Indépendance logique : les programmes d’application sont rendus transparents à une modification dans l’organisation logique globale, par la définition de sous-schémas couvrant les besoins spécifiques en données.
Indépendance vis-à-vis des stratégies d’accès : l’utilisateur n’a plus à prendre en charge l’écriture des procédures d’accès aux données. Il n’a donc pas à intégrer les modifications tendant à optimiser les chemins d’accès (ex: création d’index).
Disponibilité
Le choix d’une approche SGBD ne doit pas se traduire par des temps de traitement plus longs que ceux des systèmes antérieurs.
L’utilisateur doit ignorer l’existence d’utilisateurs concurrents.
L’aspect « performance » est donc crucial dans la mise en œuvre d’une base de données. Un tel objectif ne peut être atteint que si la conception d’une base de données est menée de façon rigoureuse avec un découpage fonctionnel adéquat. Les règles et contraintes inhérentes sont évoquées lors de l’apprentissage d’une méthodologie d’analyse (exemple MERISE).
Sécurité
La sécurité des données recouvre deux aspects :
• L’intégrité, ou protection contre l’accès invalide (erreurs ou pannes), et contre l’incohérence des données vis-à-vis des contraintes de l’entreprise.
• La confidentialité, ou protection contre l’accès non autorisé ou la modification illégale des données.
Pour ne pas trop affecter les performances, la sécurité doit également être prise en compte dès la phase de conception. [3]
Architecture de SGBD
Architecture Client-Serveur
Depuis les années 80, les SGBD sont basés sur une architecture clients-serveur.
Figure I .2: Architecture Client-serveur. [2]
Serveur : On appelle logiciel serveur un programme qui offre un service sur le réseau. Le serveur accepte des requêtes, les traite et renvoie le résultat au demandeur. Le terme serveur s’applique à la machine sur lequel s’exécute le logiciel serveur. (Gère les données partagées et exécute le code du SGBD).
Clients : On appelle logiciel client un programme qui utilise le service offert par un serveur. Le client Communiquent avec le serveur envoie une requête et reçoit la réponse. Le client peut-être raccordé par une liaison temporaire.
Qu’appelle-t-on architecture client/serveur ?
C’est la description du fonctionnement coopératif entre le serveur et le client. Les services internet sont conçus selon cette architecture. Ainsi, chaque application est composée de logiciel serveur et logiciel client. A un logiciel serveur, peut correspondre plusieurs logiciels clients développés dans différents environnements: Unix, Mac, PC…; la seule obligation est le respect du protocole entre les deux processus communicants. Ce protocole étant décrit dans un RFC (Request For Comment). [9]
Architecture centralisée
Ce type d’architecture est appelée solution sur site central (Mainframe). Historiquement, les applications sur site central ont été les premières à proposer un accès multiutilisateurs. Dans ce contexte, les utilisateurs se connectent aux applications exécutées par le serveur central à l’aide des terminaux se comportant en esclaves. C’est le serveur central qui prend en charge l’intégralité des traitements y compris l’affichage qui est simplement déporté sur des terminaux.
Figure I .3: Architecture centralisée.
Architecture des systèmes
Architecture trischématique ou architecture ANSI/SPARC
Dans l’architecture trischématique on établit quatre niveaux de description du système de base de données qui sont : le niveau interne, le niveau conceptuel, le niveau externe et le niveau physique.
Le processus de transformation des requêtes et des résultats qui sortent d’un niveau à un autre s’appelle correspondance ou mapping.
Figure I .4 : Architecture fonctionnelle d’un SGBD : ANSI-SPARC
Le niveau externe :
Le niveau externe (appelé aussi niveau vue), comprend une quantité de vues utilisateurs ; chaque utilisateur décrit une partie de la base qui convient à ses besoins. Chaque groupe d’utilisateurs s’intéresse uniquement à son propre schéma externe et les SGBD doivent transformer toute demande d’utilisateur de haut niveau en requêtes de schéma conceptuel puis en requêtes de schéma interne appliquées aux données stockées.
Le niveau conceptuel :
Dans le niveau conceptuel on décrit la structure générale de la base de données du point de vu de la communauté des utilisateurs ; c’est un schéma conceptuel qui masque les détails des structures de stockage physique des données et qui ne se soucie pas de l’implémentation physique des données ni de la façon dont chaque groupe d’utilisateurs voudra se servir de la base de données ; ce niveau se concentre sur la description des entités, du type des données, des relations existant entre les entités et des opérations des utilisateurs.
Le niveau interne :
Le niveau interne est un schéma qui décrit la structure de stockage physique de la base de données. Il s’appuie sur un système de gestion de fichiers pour définir la politique de stockage ainsi que le placement des données.
Le niveau physique :
Est donc responsable du choix de l’organisation physique des fichiers ainsi que de l’utilisation de méthodes d’accès en fonction de la requête.