Licence Informatique 2ème année Cours de SGBDR Chapitre 1 CONCEPTS FONDAMENTAUX 1- Bases de données, banques de données et fichiers. Base de données (BD) Système de gestion de bases de données (SGBD) Une base de données (BD) représente l’ensemble (cohérent, intègre, partagé) des informations nécessaires au fonctionnement d’une « entreprise ». Ensemble dont la gestion est assurée par un logiciel appelé système de gestion de base de données (SGBD). On entend ici par entreprise toute collectivité d’individus travaillant en coordination à la réalisation d’un objectif commun. Exemples de bases de données : celle qui permet la gestion des personnels, étudiants, cours, inscriptions,... d’une université ou école ; celle du système de réservation de places d’avion des compagnies aériennes ; celle qui permet la gestion des comptes clients des sociétés bancaires,... Exemples de SGBD : le plus connu est ORACLE, DB2 d’IBM, SYBASE, SQLServer de Microsoft et dans les logiciels « libre » PostgreSQL, MySQL. Banque de données Alors qu’une base de données est développée au sein d’une entreprise pour son propre fonctionnement, une banque de données est un ensemble de données, propre à un domaine d’application, que des « producteurs » réunissent, pour en commercialiser l’usage vers un public extérieur. Exemples : les banques de données juridiques, économiques, médicales, des brevets, des propriétés des matériaux,...La constitution et l’exploitation des banques de données font appel à des techniques spécifiques, différentes des techniques bases de données. Fichier Dans une entreprise, il convient de faire appel à l’approche base de données lorsque les données à gérer sont de natures diverses (exemple : étudiants, cours, enseignants, salles,..) et 1 Licence Informatique 2ème année Cours de SGBDR possèdent de nombreux liens entre elles (exemple : un étudiant suit un cours, un cours est assuré par un enseignant,..). Il existe des cas où les données à gérer, bien qu’importantes en volume, sont homogènes : les abonnés d’une revue, le personnel d’une entreprise, les produits vendus par un magasin,... Dans ce cas, on parlera de fichier (le fichier des abonnés,...) et l’on utilisera un système de gestion de fichiers (SGF), moins complexe qu’un SGBD. Tout système d’exploitation d’un ordinateur contient un SGF spécifique. Toutefois, pour les applications, on fait plutôt appel à des progiciels du commerce (Filemaker,..), d’un usage plus simple et offrant des fonctionnalités plus élaborées. Il est à noter que l’implantation physique d’une base de données se fait via la notion de fichier. Le choix de ceux-ci, toutefois, reste de la compétence du SGBD et est transparent à l’utilisateur. 2- Base de données et modèle de données Une base de données est généralement définie comme étant un ensemble de données modélisant un univers. Cet univers est composé d’objets inter reliés. Un objet de l’univers est appelé une entité et le lien entre deux entités est appelé association. Entité et association sont définies chacune par un ensemble de caractéristiques, ou attributs. Toutes les entités ayant les mêmes caractéristiques constituent un type d’entité, de même, nous parlerons de type d’association. Des exemples seront donnés dans le chapitre suivant. Le processus de construction des types d’entités et d’associations est appelé modélisation et il se fait à l’aide d’un modèle de données. Il existe plusieurs modèles qui se distinguent par la représentation des associations et les types d’opérations applicables aux entités et aux associations. Les modèles les plus connus sont les modèles entité-association et relationnel. Il faudrait y ajouter quelques autres apparus ces 2 Licence Informatique 2ème année Cours de SGBDR dernières années, les modèles objets et décisionnels. 3- Architecture d’un SGBD En général, on distingue trois niveaux de description des données dans un SGBD : - le niveau conceptuel ou logique, - le niveau interne, - le niveau externe. A chacun de ces niveaux correspondent un ou plusieurs schémas. Architecture ANSI/SPARC Au niveau conceptuel, l’univers réel à modéliser est décrit à l’aide des concepts du modèle utilisé. Cette description concerne les types d’entités avec leurs attributs, les types d’associations entre les types d’entités et éventuellement des règles de gestion appelées contraintes d’intégrité. A ce niveau on fait abstraction de l’utilisation des données ainsi que de leur implémentation physique. Cette description est représentée par un schéma dit schéma conceptuel (ou schéma logique global). Un schéma interne décrit la façon dont les objets conceptuels sont stockés sur le disque et la correspondance entre structures logiques de données et structures physiques. Le choix des structures de stockage doit se faire en tenant compte des contraintes d’implantation et de l’utilisation qui sera faite des données (fréquence 3 Licence Informatique 2ème année Cours de SGBDR d’utilisation, sélectivité, etc.) de façon à optimiser les accès à la base. Enfin, le niveau externe correspond aux vues que vont avoir les utilisateurs (par l’intermédiaire des applications) des objets du schéma conceptuel. Ces différentes vues sont décrites à l’aide de schémas externes ou sous schémas. Chaque schéma externe traduit un type d’utilisation de la base de données. Ce choix d’architecture a pour objectif d’accroître le niveau d’indépendance entre les données et les traitements, à savoir : - l’indépendance physique, - l’indépendance logique, - l’indépendance vis-à-vis des stratégies d’accès. L’indépendance physique consiste à rendre l’utilisation des données indépendante de leur organisation physique (support de stockage et méthodes d’accès). La modification de l’organisation physique des données ne doit pas entraîner, par exemple, la réécriture de programmes accédant à ces données. L’indépendance logique consiste à rendre l’utilisation des données indépendante de la structure globale. La modification du schéma conceptuel ne doit pas entraîner la modification des programmes d’application. Une modification des schémas externes est cependant souvent nécessaire dans ce cas. L’indépendance vis-à-vis des stratégies d’accès n’intervient qu’au moment de la manipulation des données. Un programme d’application n’a pas à préciser comment accéder à telle ou telle donnée mais uniquement ce qu’il désire (le « quoi » et non pas le « comment »). C’est le SGBD qui doit déduire le meilleur chemin d’accès aux données. 4 Licence Informatique 2ème année Cours de SGBDR 4- Objectifs d’un SGBD Les principales fonctionnalités que doit assurer un SGBD sont : - la définition des données, - la manipulation des données, - la sécurité et l’intégrité des données, - la gestion des transactions et des accès concurrents. 4.1- Définition des données Le rôle d’un langage de définition des données (LDD) est de décrire et de définir chacun des schémas décrits ci-dessus. Un tel langage doit permettre ; - la création d’objets conceptuels, - la description de structures physiques, - la création de chemins d’accès, - la définition de vues (sous-ensemble de schéma). Pour une base de données existante, ce LDD doit aussi permettre : - la modification de la description d’objets conceptuels, - la suppression d’objets conceptuels, - la modification (réorganisation) de chemins d’accès, - la suppression de chemin d’accès, - la modification de visions partielles. Un LDD est composé d’un ensemble de commandes portant sur des objets conceptuels (ou logiques) et sur des objets physiques. L’ensemble des descriptions des objets d’une base de données constitue ce qu’on appelle son dictionnaire de données. Ce dictionnaire est généralement structuré et géré lui-même comme une base de données. C’est une méta base. La conséquence de cette organisation est que les descriptions des objets conceptuels et physiques peuvent être manipulés de la même façon que leurs valeurs. 5 Licence Informatique 2ème année Cours de SGBDR Il est alors possible d’éditer le contenu de ce dictionnaire pour des besoins statistiques, de développement ou de documentation. 4.2- Manipulation des données La manipulation des données recouvre toutes les opérations d’échanges de données entre les (programmes) utilisateurs et la base. Ces échanges peuvent être sous forme de consultation ou de mise à jour (insertion, modification et suppression). La manipulation se fait à l’aide d’un langage (LMD). C’est le seul moyen pour l’utilisateur d’accéder à la base. Les LMD varient d’un modèle à un autre. Le modèle relationnel dispose d’un ensemble d’opérateurs ensemblistes, dont l’application à des tables constitue une algèbre relationnelle. Les langages basés sur une algèbre relationnelle sont à la fois simples d’utilisation et puissants. Le plus connu est SQL. 4.3- Sécurité et intégrité des données Cette fonctionnalité consiste à garantir que seuls les utilisateurs autorisés peuvent effectuer des opérations sur la base de telle sorte qu’elle soit maintenue dans un état cohérent. Ceci entraîne : - un contrôle sur les utilisateurs, ainsi que sur les types d’opérations qu’ils sont autorisés à effectuer (gestion des autorisations). - un contrôle sur la validité des opérations effectuées. Il se fait par rapport à certaines règles dites contraintes d’intégrité sémantique. - une protection des données contre les accès malveillants et les pannes. Ces problèmes sont réglés par l’attribution de mots de passe aux utilisateurs et par la définition de vues ne leur permettant de manipuler qu’un sous ensemble de la base. Une protection physique est généralement assurée par un encryptage des données. Les fonctionnalités relatives à la sécurité et à l’intégrité sont plus 6 Licence Informatique 2ème année Cours de SGBDR ou moins prises en compte par les SGBD du marché. Leur mise en oeuvre constitue une tâche essentielle de l’administrateur de la base. 4.4 Gestion des transactions et des accès concurrents Le principal objectif est de mettre à la disposition d’un grand nombre d’utilisateurs un ensemble intègre de données. Ces données peuvent alors être manipulées simultanément par plusieurs utilisateurs. La cohérence des données est assurée à l’aide des concepts de transaction et d’accès concurrents. Une transaction est définie comme une unité logique de traitement (ensemble de commandes) qui, appliquée à un état cohérent de la base, restitue un nouvel état cohérent, mais modifié de la base. Elle ne peut être exécutée que complètement, ou pas du tout. Une solution classique consiste à verrouiller momentanément les données utilisées par une transaction jusqu’à la fin de la mise à jour. Les autres transactions demandant ces données sont mises en attente. Le SGBD doit être capable de détecter et débloquer les situations d’inter blocage. 7