Rappel sur les bases de données PDF
Document Details
Uploaded by IndustriousJupiter1542
Université Ferhat Abbas Sétif 1
Tags
Summary
This document provides a summary of database concepts, including their history, different types and approaches. It describes various aspects of databases, from their physical storage to logical structures and management systems.
Full Transcript
Bibliographie G. Gardarin, Bases de Données – objet/relationnel, Eyrolles, 1999. R. Ramakrishnan et J. Gehrke, Database Management Systems, Second Edition, McGraw-Hill, 2000. T. Connoly, C. Begg et A. Strachan, Database Systems Apractical Approach to Design, Implementation and Managemen...
Bibliographie G. Gardarin, Bases de Données – objet/relationnel, Eyrolles, 1999. R. Ramakrishnan et J. Gehrke, Database Management Systems, Second Edition, McGraw-Hill, 2000. T. Connoly, C. Begg et A. Strachan, Database Systems Apractical Approach to Design, Implementation and Management, 1998. A. Silberschatz, H.F. Korth et S. Sudarshan, Database System Concepts, McGraw-Hill, 1996. J.D. Ullman et J. Widom, A first Course in Database Systems, Prentice Hall, 1997. 2 Introduction Les organisations gèrent des volumes de données très grands Giga, Tera, Peta –octets Numériques, Textuelles, Multimédia (images, vidéos,...) Il faut pouvoir facilement Archiver les données sur mémoires secondaires permanente Retrouver les données pertinentes à un traitement Mettre à jour les données variant dans le temps Les données sont structurées et identifiées Données élémentaires ex: Votre nom, Votre note en BD Données composées ex: Votre CV, vos résultats de l'année Identifiant humain ex: numéro d’étudiant, numéro d’immatriculation de véhicule Qu'est-ce qu'une base de données ? Collection de données structurées Interrogeable et modifiable par des langages de haut niveau (proches du langage naturel) Partagée par plusieurs applications/utilisateurs 3 Historique Années 60: Fichiers séquentiels Accès séquentiel aux données puis sur clé. Années 70: Bases de données hiérarchiques puis réseaux Données stockées dans des fichiers et reliées par des pointeurs. Interrogation par navigation Années 80: Bases de données relationnelles Relation entre ensembles de données Interrogation par un langage proche du langage naturel Années 90 et 2000: Bases de données objets, XML … 4 Gestion des données (1) La gestion de données par l’utilisation de fichiers présente de nombreux inconvénients: 1. Absence de standardisation plusieurs formats de stockage, plusieurs langages 2. Redondance des données (duplication) Problèmes de mise à jour, incohérence des données 3. Interrogation par langage de programmation Difficulté de maintenance Coût élevé 5 Gestion des données (2) 4. Pannes (arrêt brutal, panne de disque …) pas de solution standardisée 5. Partage de données pas de solution standardisée 6. Confidentialité Pas de solution standardisée Pas de solution standardisée => une solution doit être conçue et implémentée pour chaque application. 6 L’approche "bases de données" Modélisation des données Éliminer la redondance de données Centraliser et organiser correctement les données Plusieurs niveaux de modélisation Outils de conception Logiciel de Système de Gestion de Bases de Données (SGBD) Factorisation des modules de contrôle des applications: interrogation, pannes, confidentialité, partage … Administration facilitée des données 7 Objectifs des SGBD 1. Indépendance physique des données 2. Indépendance logique des données 3. Langage simple 4. Gestion des vues 5. Optimisation des questions 6. Gestion de la cohérence 7. Gestion des pannes 8. Concurrence d’accès 9. Gestion de la confidentialité 10. Standards 8 SGBD relationnels (SGBDR) Logiciels commerciaux/payants: Oracle (plus de 60% du marché mondial des SGBDR) Microsoft SQL server IBM DB2 Sybase Anywhere … Logiciels libres/gratuits: MySQL PostrgreSQL mSQL … 9 Objectifs des SGBD 1. Indépendance physique des données 2. Indépendance logique des données 3. Manipulation simple 4. Gestion des vues 5. Optimisation des questions 6. Gestion de la cohérence 7. Gestion des pannes 8. Concurrence d’accès 9. Gestion de la confidentialité 10. Standards 10 Architecture à 3 niveaux Vue 1 Vue 2 Vue 3 Schémas externes (vues) Schéma conceptuel Schéma interne (stockage) 11 Indépendance Physique Indépendance des programmes d'applications vis à vis du modèle physique : Possibilité de modifier les structures de stockage (fichiers, index, chemins d'accès, …) sans modifier les programmes; Ecriture des applications par des non- spécialistes des fichiers et des structures de stockage; Meilleure portabilité des applications et indépendance vis à vis du matériel. 12 Indépendance logique Les applications peuvent définir des vues logiques de la BD Possibilité pour chaque application d'ignorer les besoins des autres (bien que partageant la même BD). Possibilité d'évolution de la base de données sans réécriture des applications : ajout de champs, ajout de relation, re-nommage de champs. Possibilité d'intégrer des applications existantes sans modifier les autres. Possibilité de limiter les conséquences du partage : Données confidentielles. 13 Langage simple La manipulation se fait via un langage déclaratif La question déclare l’objectif sans décrire la méthode Le langage suit une norme commune à tous les SGBD SQL : Structured Query Langage Sémantique Logique du 1er ordre Syntaxe (aperçu !) SELECT FROM WHERE 14 Des vues multiples des données Les vues permettent d’implémenter l’indépendance logique en permettant de créer des relations virtuelles Vue = Question stockée Le SGBD stocke la définition et non le résultat Exemple : la vue des patients sétifiens la vue des projets de chaque service (chaque employer ne peut voir que les projets de son service) La vue des services statistiques ... 15 Exécution et Optimisation Traduction automatique des questions déclaratives en programmes procéduraux : Utilisation de l’algèbre relationnelle Optimisation automatique des questions Utilisation de l’aspect déclaratif de SQL Gestion centralisée des chemins d'accès (index, hachages, …) Techniques d’optimisation poussées Economie de l'astuce des programmeurs milliers d'heures d'écriture et de maintenance de logiciels. 16 Intégrité Logique Objectif : Détecter les mises à jour erronées Contrôle sur les données élémentaires Contrôle de types: ex: Nom alphabétique Contrôle de valeurs: ex: Salaire mensuel entre 15000 et 500000 Contrôle sur les relations entre les données Relations entre données élémentaires: Prix de vente > Prix d'achat Relations entre objets: Un employer ne doit être rattaché qu'à un seul service. 17 Contraintes d’intégrité Avantages : simplification du code des applications sécurité renforcée par l'automatisation mise en commun des contraintes Nécessite : un langage de définition de contraintes d'intégrité la vérification automatique de ces contraintes 18 Intégrité Physique Motivations : Tolérance aux fautes Transaction Failure : Contraintes d'intégrité, Annulation System Failure : Panne de courant, Crash serveur... Media Failure : Perte du disque Communication Failure : Défaillance du réseau Objectifs : Assurer l'atomicité des transactions Garantir la durabilité des effets des transactions commises Moyens : Journalisation : Mémorisation des états successifs des données Mécanismes de reprise 19 Transaction Incohérence possible... Etat cohérent Etat cohérent Begin Commit Transaction Begin Compte1 = Compte1 - 3000 Compte2 = Compte2 + 3000 Commit T1 20 Atomicité et Durabilité ATOMICITE Panne DURABILITE Begin Begin Compte1 = Compte1 - 3000 Compte1 = Compte1 - 3000 Compte2 = Compte2 + 3000 Compte2 = Compte2 + 3000 Commit T1 Commit T1 Crash disque Restaurer les Annuler le débit !! données telles qu'elles étaient avant la transaction 21 Partage des données BD Accès concurrent aux mêmes données Conflits d’accès !! 22 Isolation et Cohérence BD Le SGBD gère les accès concurrents Chacun à l’impression d’être seul (Isolation) Cohérence conservée (Pas de mises à jour conflictuelles) 23 Confidentialité Objectif : Protéger les données de la BD contre des accès non autorisés Deux niveaux : Connexion restreinte aux utilisateurs répertoriés (mot de passe) Privilèges d'accès aux objets de la base Objets : Relation, Vue, autres objets (procédures, etc.) 24 Standardisation L’approche bases de données est basée sur plusieurs standards Langage SQL (SQL1, SQL2, SQL3) Communication SQL CLI (ODBC / JDBC) Transactions (X/Open DTP, OSI-TP) Force des standards Portabilité Interopérabilté Applications multisources… 25 Architecture des SGBD Les architectures physiques de SGBD sont très liées au mode de répartition. — BD centralisée — BD client/serveur — BD client/multi-serveurs — BD répartie — BD hétérogène — BD mobile Le challenge se déplace des Péta-bases aux Pico-bases. — Péta-bases => parallélisme et grandes mémoires — Pico-bases => faible empreinte et forte sécurité 26 Applications traditionnelles des SGBD OLTP (On Line Transaction Processing) Cible des SGBD depuis leur existence Banques, réservation en ligne... Très grand nombre de transactions en parallèle Transactions simples OLAP (On Line Analytical Processing) Entrepôts de données, DataCube, Data Mining … Analyse des données, extraction de connaissances, prévisions … Faible nombre de transactions Transactions très complexes 27 Langage simple Langage de manipulation de données (Data manipulation Language DML): Ajouter des données Modifier des données Supprimer des données Interroger les données Langage de définition de données (Data Definition Language DDL): Créer un schéma Modifier un schéma Supprimer un schéma 28 Gestion des vues Les vues permettent de définir le schéma externe propre à chaque utilisateur/catégorie d’utilisateurs. Elles permettent également de définir une politique de confidentialité des données en permettant ou non l’accès aux utilisateurs/catégories d’utilisateurs à des objets de la base de données. 29 Optimisation des questions Le SGBD doit mettre en place au niveau du schéma interne des structures accélératrices et méthodes de stockage de manière à rendre plus rapide la réponse aux questions des utilisateurs. Différents types d’index et d’algorithme de hachage et techniques de clustering (regroupement de données) permettent d’accélérer les temps de réponse. 30 Gestion de la cohérence Le SGBD doit garantir la cohérence des données par rapport aux contraintes d’intégrité définies au niveau du schéma relationnel. Exemple: Le salaire d’un employé ne doit mas être inférieur à celui de son supérieur direct. Un client ne peut passer de nouvelles commandes s’il n’a pas payer toutes ses factures des commandes précédentes. 31 Gestion des pannes Le SGBD doit garantir la reprise sur panne sans perte de données en cas d’arrêt brutal du serveur (coupure de courant…) ainsi qu’en cas de panne matérielle (CPU, RAM, disque). Une technique de redondance doit être utilisée pour restaurer la base de données si une panne de disque rend la récupération des données sur ce dernier impossible. 32 Concurrence d’accès Le SGBD doit permettre à plusieurs utilisateurs de manipuler la base de données en même temps sans générer de conflits d'accès. Cela ne doit pas conduire à la perte de mises à jour. 33 Gestion de la confidentialité Chaque utilisateur/catégorie d’utilisateurs dispose de droits d’accès définis par l’administrateur de la base de données. L’ensemble de ces droits d’accès constituent la politique de confidentialité de la base de données. Le SGBD doit garantir que cette politique de de confidentialité soit respectée. 34