Initiation aux SGBD Définitions et objectifs Frédéric Gava (MCF) [email protected] LACL, bâtiment P2 du CMC, bureau 221 Université de Paris XII Val-de-Marne 61 avenue du Général de Gaulle 94010 Créteil cedex Quelques nuances Base de données (BD) Interne à l’entreprise Ensemble d’informations pour un public sur un public Banque de données BD pour un public extérieur Exemple : génomes, juridiques (accès souvent payant) Fichier Stockage simple Petit travail pour les accès 2/15 Définitions (1) Une BD représente l’ensemble cohérent, intégrés et partagé des information nécessaire au fonctionnement d’une entreprise (collectivité d’individu travaillant en coordination à la réalisation d’un objectif commun). Cet ensemble est géré par un logiciel appelé SGBD : Système de Gestion des Bases de Données Oracle, SQLServeur, Access, MySQL etc. Gestion du personnel, étudiants, compte clients d’une banque, d’un cabinet d’avocats, d’immobilier 3/15 Définitions (2) 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 : BD juridiques, médicals, brevets Elles nécessitent des techniques spécifiques de recherches des informations (moteurs de recherche sémantiques) 4/15 Définitions (3) Lorsque les données à gérer sont homogènes, on peut se contenter de les stocker dans des fichiers : Abonnées d’une revue Simple liste du personnel Remarque : le stockage physique des données sur les disques se fera par l’intermédiaire des fichiers du système d’exploitation. Ce stockage est transparent à l’utilisateur. 5/15 BD et modèles 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. Les objets d’un même types sont appelé entités et le lien entre 2 entités est appelé association. Entités et associations sont constituées de caractéristiques, les attributs. Le processus de description des E/A est appelé modélisation et il se fait à l’aide d’un modèle de données. Il existe différentes méthodes de modélisation : Modèles Hiérarchique, relationnel, objet, client-serveur, réseau Méthode Merise, UML (la plus récente) 6/15 Architecture d’un SGBD On distingue 3 niveaux de description : Le niveau conceptuel ou logique Le niveau interne Le niveau externe 7/15 Architecture (2) Stockage physique Schéma interne Description de l’organisation physique des données Domaine des concepteurs Schéma conceptuel de BD Domaine des Schéma créateurs externe d’applications Schéma externe Description d’univers à modéliser avec éventuellement les contraintes liés à ces objets (contraintes d’intégrités) Schéma externe Application accédant aux données : des vues (accès limités) Ce découpage permet des modifications à chaque niveau sans que cela interagisse (le moins possible) sur les autres niveaux. 8/15 Architecture (3) 3 niveaux pour accroître l’indépendance entre données et traitement : Indépendance physique pour une utilisation des données indépendante de l’organisation physique ; Indépendance logique pour une utilisation des données indépendante de la structure logique globale ; Une indépendance des stratégies d’accès intervient essentiellement lors de la manipulation des données. Une requête n’a pas à préciser comment accéder à telle ou telle données mais uniquement ce qu’elle désire (le SGBD déduit le meilleur chemin possible) 9/15 Objectifs d’un SGBD Définition des données Manipulation des données Sécurité et intégrité des données Gestion des transactions et des accès concurrents 10/15 Définition des données C’est le rôle du langage de définition des données (LDD). Il permet de décrire et de définir tous les objets d’une BD. Ce langage permet : La création d’objets conceptuels et de chemins d’accès La description de structures physiques La définition de vues (sous ensemble de données) Pour une base existante, la modification/suppression : D’objets conceptuels Chemin d’accès Vues L’ensemble des descriptions des objets d’une base constitue son dictionnaire des données. C’est une partie de la base, structurée comme la base (méta-base) où les objets sont manipulés comme les données. 11/15 Manipulation des données Cela recouvre les échanges de données entre les utilisateurs et la base. Ce sont essentiellement des opérations (requêtes) de consultation et de mise à jour. La manipulation se fait par l’intermédiaire d’un langage de manipulation des données (LMD). Le modèle relationnel dispose d’un ensemble d’opérations ensembliste appelé algèbre relationnelle à la fois simple d’utilisation et puissant. Le plus connu des LMD : SQL 12/15 Sécurité et intégrité Cette fonctionnalité consiste à garantir que seuls les utilisateurs autorisés peuvent effectuer des opérations correctes sur la base de telle sorte qu’elles sont maintenu dans un état cohérent : 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. Ce contrôle est effectué par rapport à certaines règles appelés contraintes d’intégrité. Protection des données contre les accès malveillants et les pannes : accès malveillants : mot de passe, encryptage pannes : duplication des données, fichier de log Cette partie est de la compétence (ressort) l’administrateur de la base (informaticien). de 13/15 Accès concurrents L’objectif est de mettre à la disposition du plus grand nombre d’utilisateur un ensemble intègre (cohérent) de données. Les données peuvent être manipulées simultanément par plusieurs utilisateurs. La cohérence des données est assurée à l’aide de concepts de transaction qui est une unité logique de traitement qui, appliquée à un état cohérent de la base, restitue un autre état cohérent. Elle ne peut donc être exécutée que complètement ou pas du tout. La solution pour les accès concurrents consiste à verrouiller les données momentanément (pendant la durée de la transaction). Les autres transactions sont alors en attente. Le SGBD doit être à mène de détecter les situation d’inter-blocage. 14/15 A la semaine prochaine !