Conception d'une base de données
Introduction
L'informatique permet de construire des systèmes pour effectuer des calculs (équations différentielles, calcul matriciel, etc). Aujourd'hui on s'appuie de plus en plus sur des données ce qui implique une gestion de grandes quantités d'informations (ie stocjer des données et manipuler ces données). De plus les données peuvent être de natures diverses, les opérations peuvent être plus ou moins compliquées.
Objectifs
C'est dans ce contexte qu'intervient les SGBD, leurs objectifs sont les suivants
- Stocker, centraliser des données (BD) et les mettre à disposition des utilisateurs
- Manipuler (de manière transparente pour l'utilisateur) des données (SGBD)
Fonctionnalités
Pour répondre à ces objectifs les systèmes de SGBD sont munis des fonctionnalités suivantes :
- Gestion du stockage (tailles importantes de données, éviter les redondances)
- Persistance (les données survivent aux programmes qui les créent)
- Fiabilité (mécanismes de reprise sur pannes, logiciel ou matériel)
- Sécurité / confidentialité (Contrôle des utilisateurs et des droits d'accès aux données)
- Interfaces homme-machine (ergonomie, profils utilisateurs)
- Distribution (données stockées sur différents sites)
- Optimisation
- Contrôle de concurrence : propriétés ACID , transactions
- Atomicité (soit toutes les opérations de la transaction sont validées, soit aucune ne l'est)
- Cohérence (préservation de la cohérence de la base)
- Isolation (quelle que soit la manière dont les transactions concurrentes sont exécutées, on doit pouvoir les ordonner de sorte à ce que l'état final de la base soti le même qu'après une exécution séquentielle des différentes transactions)
- Durabilité (Si une transaction est validée, tous les changements qu'elle a effectués sur la base sont persistants)
Architecture fonctionnelle d'une SGBD
Utilisateurs d'un SGBD
- Administrateur
- Définition du schéma logique
- définition des structures de stockage et des méthodes d'accès
- Gestion des autorisations
- Spécification des contraintes
- Maintenance de la performance
- Concepteur et programmeur
- Est informaticien
- Connaît au moins le LMD
- Connaît bien le SGBD
- Connaît un ou plusieurs langages de programmation
- Utilisateurs
Niveau d'abstraction des données
Principe de base
- Indépendance physique (les applications manipulant la base au niveau logique ne doivent pas être réécrites si la structure physique est modifiée)
- Indépendant logique (une modification au niveau logique n'implique aucune modification des applications utilisant le niveau externe)
- Deux types de langages (description des données et manipulation des données)
Schéma et instance
- Analogues à la notion de variable et de type dans les langages de programmation
- Schéma : structure logique de la base de données
- Instance : le contenu effectif de la base de données à un instant donné
Modèles de données
- Ensemble d'outils permettant de définir les chéma et les instances ainsi que les opérations possibles sur les instances
- Modèle conceptuel de données : entité - association (diagramme de classes UML)
- Modèle logique des données : modèle relationnel
- Modèle physique de données : implémentation particulière du modèle logique de données par le logiciel
Conception d'une base de données
La conception d'une base de données se découpe en 4 étapes
- Analyse des besoins
- Descrption conceptuelle
- Conception logique
- Conception physique
Les 2 premières phases sont indépendantes du SGBD
Le passage de la 2 à la 3 peut être en partie automatisée
Modèle conceptuel
Entité
Une entité
correspond à un ensemble homogène d’informations qui correspondent
au même « objet » à informatiser. Cette entité a un nom unique afin de la
manipuler facilement.
Les entités ne sont généralement pas représentes graphiquement.
Un type d'entité
désigne un ensemble d'entités qui possèdent une sémantique et
des propriétés communes.
Une entité est souvent nommée occurrence ou instance de son type entité.