Systèmes de gestion de données Modèle relationnel Algèbre relationnelle SQL Réf

Systèmes de gestion de données Modèle relationnel Algèbre relationnelle SQL Références Introduction à la gestion de données Cours L3 Bases de Données Pierre Senellart É C O L E N O R M A L E S U P É R I E U R E RESEARCH UNIVERSITY PARIS 1er février 2017 2/65 Systèmes de gestion de données Modèle relationnel Algèbre relationnelle SQL Références Plan Systèmes de gestion de données Modèle relationnel Algèbre relationnelle SQL Références 3/65 Systèmes de gestion de données Modèle relationnel Algèbre relationnelle SQL Références Gestion de données De nombreuses applications (logiciels, sites Web, etc.) ont besoin de gérer des données : • Structurer les données utiles à l’application • Permettre de les conserver de manière persistante (données conservées même quand l’application ne tourne pas) • Rechercher efficacement des informations dans de grands volumes de données • Mise à jour des données sans violer certaines contraintes de structure • Permettre l’accès et la mise à jour de données à des utilisateurs multiples, parfois de manière concurrente Souvent, souhaitable d’accéder aux mêmes données depuis plusieurs applications distinctes, depuis des ordinateurs distincts. 4/65 Systèmes de gestion de données Modèle relationnel Algèbre relationnelle SQL Références Exemple : Système d’information d’un hôtel Accès depuis un logiciel maison (réception), un site Web (clients), un logiciel de comptabilité. Besoins : • Données structurées représentant les chambres, les clients, les réservations, les tarifs, etc. • Pas de données perdues quand ces applications ne sont pas utilisées, ou quand une panne de courant générale survient • Retrouver quasi-instantanément quelles chambres sont réservées, et par qui, un jour donné, dans un historique de plusieurs années de réservation • Facilement ajouter une réservation en s’assurant de ne pas réserver deux fois la même chambre le même jour • Le client, le réceptionniste, le comptable, ne doivent pas la même vue des données (confidentialité, simplicité, etc.) ; différents clients ne peuvent réserver la même chambre au même moment. 5/65 Systèmes de gestion de données Modèle relationnel Algèbre relationnelle SQL Références Implémentation naïve (1/2) • Implémentation dans un langage de programmation classique (C++, Java, Python, etc.) de structures de données permettant de représenter l’ensemble des données utiles • Définition de formats de fichiers ad hoc pour stocker les données sur disques, avec synchronisation régulière et mécanisme de récupération en cas de panne • Stockage en mémoire des données de l’application, avec structures de données (ABR, tables de hachage) et algorithmes (recherche, tri, agrégation, parcours de graphe. . .) permettant de retrouver efficacement l’information • Fonctions de mises à jour des données, avec du code vérifiant au passage qu’aucune contrainte n’est violée 6/65 Systèmes de gestion de données Modèle relationnel Algèbre relationnelle SQL Références Implémentation naïve (2/2) • Définition au sein du logiciel de droits utilisateurs différents, d’un mécanisme d’authentification ; utilisation de threads pour répondre en même temps à différentes requêtes, verrous/sémaphores sur les fonctions critiques de manipulation de données • Définition et implémentation d’un protocole de communication réseau pour connecter ce composant logiciel à un serveur Web, un logiciel Windows, une suite logicielle de comptabilité, etc. 6/65 Systèmes de gestion de données Modèle relationnel Algèbre relationnelle SQL Références Implémentation naïve (2/2) • Définition au sein du logiciel de droits utilisateurs différents, d’un mécanisme d’authentification ; utilisation de threads pour répondre en même temps à différentes requêtes, verrous/sémaphores sur les fonctions critiques de manipulation de données • Définition et implémentation d’un protocole de communication réseau pour connecter ce composant logiciel à un serveur Web, un logiciel Windows, une suite logicielle de comptabilité, etc. Beaucoup de travail ! 6/65 Systèmes de gestion de données Modèle relationnel Algèbre relationnelle SQL Références Implémentation naïve (2/2) • Définition au sein du logiciel de droits utilisateurs différents, d’un mécanisme d’authentification ; utilisation de threads pour répondre en même temps à différentes requêtes, verrous/sémaphores sur les fonctions critiques de manipulation de données • Définition et implémentation d’un protocole de communication réseau pour connecter ce composant logiciel à un serveur Web, un logiciel Windows, une suite logicielle de comptabilité, etc. Beaucoup de travail ! Demande un programmeur qui maîtrise la POO, la sérialisation, la reprise sur panne, les structures de données, l’algorithmique, la gestion de contraintes d’intégrité, la gestion de rôles, la programmation parallèle, la gestion de concurrence, la programmation réseau. . . 6/65 Systèmes de gestion de données Modèle relationnel Algèbre relationnelle SQL Références Implémentation naïve (2/2) • Définition au sein du logiciel de droits utilisateurs différents, d’un mécanisme d’authentification ; utilisation de threads pour répondre en même temps à différentes requêtes, verrous/sémaphores sur les fonctions critiques de manipulation de données • Définition et implémentation d’un protocole de communication réseau pour connecter ce composant logiciel à un serveur Web, un logiciel Windows, une suite logicielle de comptabilité, etc. Beaucoup de travail ! Demande un programmeur qui maîtrise la POO, la sérialisation, la reprise sur panne, les structures de données, l’algorithmique, la gestion de contraintes d’intégrité, la gestion de rôles, la programmation parallèle, la gestion de concurrence, la programmation réseau. . . À refaire pour chaque nouvelle application ayant à gérer des données ! 7/65 Systèmes de gestion de données Modèle relationnel Algèbre relationnelle SQL Références Rôle d’un SGBD/DBMS Système de Gestion de Base de Données (Database Management System) Logiciel simplifiant la conception d’applications manipulant des données, en fournissant un accès unifié à l’ensemble des fonctionnalités nécessaires à la gestion de données, quelle que soit l’application Base de données Ensemble de données (propre à une application spécifique) géré par un SGBD 8/65 Systèmes de gestion de données Modèle relationnel Algèbre relationnelle SQL Références Fonctionnalités d’un SGBD (1/2) Indépendance physique. L’utilisateur d’un SGBD n’a pas besoin de savoir comment les données sont stockées (dans un fichier, sur une partition brute, sur un système de fichiers distribués) ; le stockage peut être modifié sans impacter l’accès aux données Indépendance logique. Il est possible de fournir à l’utilisateur une vue partielle des données, correspondant à ce à quoi il a besoin et droit d’accéder Accès aisé aux données. Utilisation d’un langage déclaratif décrivant les requêtes et mises à jour sur les données, qui décrit l’intention de l’utilisateur plutôt que la manière dont ce sera implémenté Optimisation des requêtes. Les requêtes sont automatiquement optimisées pour être implémentées le plus efficacement possible sur la base de données 9/65 Systèmes de gestion de données Modèle relationnel Algèbre relationnelle SQL Références Fonctionnalités d’un SGBD (2/2) Intégrité logique. Le SGBD impose des contraintes sur la structure des données ; toute modification violant ces contraintes est refusée Intégrité physique. La base reste dans un état cohérent et les données sont préservées de manière durable, même en cas de panne Partage de données. Les données sont accessibles à des utilisateurs multiples, de manière concurrente, sans que ces accès multiples et concurrent ne violent l’intégrité physique et logique des données Normalisation. L’utilisation du SGBD est standardisée, de sorte qu’il est possible de remplacer un SGBD par un autre sans changer (de manière majeure) le code de l’application 10/65 Systèmes de gestion de données Modèle relationnel Algèbre relationnelle SQL Références Variété des SGBD • Dizaines de SGBD existant utilisés de manière non négligeables • Tous les SGBD ne fournissent pas toutes ces fonctionnalités. . . • Mais ceux que nous allons étudier pendant ce cours les fournissent toutes • Les SGBD se distinguent les uns des autres par le modèle de données utilisé, les compromis réalisés en terme de performances et de fonctionnalités, la facilité d’utilisation, les volumes de données gérés, l’architecture interne, etc. 11/65 Systèmes de gestion de données Modèle relationnel Algèbre relationnelle SQL Références Grands types de SGBD Relationnels (SGBDR). Tables, requêtes complexes (SQL), fonctionnalités riches XML. Arbres, requêtes complexes (XQuery), fonctionnalités similaires aux SGBDR Graphes/Triplets. Données graphes, requêtes complexes exprimant des parcours de graphe Objets. Modèle de données très complexe, inspiré de la POO Documents. Données complexes, organisées en documents, requêtes et fonctionnalités relativement simples Clef-Valeur. Modèle de données très basique, accent mis sur la performance Orientés Colonnes. Modèle de données entre celui des clef-valeur et des SGBDR ; accent mis sur le parcours ou l’agrégation efficace de colonnes 11/65 Systèmes de gestion de données Modèle relationnel Algèbre relationnelle SQL Références Grands types de SGBD Relationnels (SGBDR). Tables, requêtes complexes (SQL), fonctionnalités riches XML. Arbres, requêtes complexes (XQuery), fonctionnalités similaires aux SGBDR Graphes/Triplets. Données graphes, requêtes complexes exprimant des parcours de graphe Objets. Modèle de données très complexe, inspiré de la POO Documents. Données complexes, organisées en documents, requêtes et fonctionnalités relativement simples Clef-Valeur. Modèle de données très basique, accent mis sur la performance Orientés Colonnes. Modèle de données entre celui des clef-valeur et des SGBDR ; accent mis sur le parcours ou l’agrégation efficace de colonnes NoSQL 12/65 Systèmes de gestion de données Modèle relationnel Algèbre relationnelle SQL Références SGBD relationnels classiques • Basés sur le modèle relationnel : décomposition des données en relations, ou tables • Un langage de requêtes standard : SQL • Données stockées sur disque • Relations (tables) stockées ligne par ligne • Système centralisé, avec possibilités limitées de distribution 13/65 Systèmes de gestion de données Modèle relationnel Algèbre relationnelle uploads/Management/ 1-introduction 1 .pdf

  • 47
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Mar 09, 2021
  • Catégorie Management
  • Langue French
  • Taille du fichier 0.5345MB