Réda DEHAK reda@lrde.epita.fr 2012/2013 http://www.lrde.epita.fr/~reda/bdd
Organisation du cours Horaires : Cours : 24h RELA + (14h IMDB en S4). RELATD : 14h. Evaluations : Projet, Contrôles, QCM Projet : Conception et utilisation d une base de données sous Oracle. Pré-requis : Théorie des ensembles Logique et calcul des prédicats Algorithmes et structures de données. Réda DEHAK 2
Plan du cours BDD 1. Conception d une BD : (RELA) Comment construire une BD? Quelles sont les informations à rajouter dans la BD? Comment structurer une BD? Trouver la meilleure représentation 2. Utilisation d une BD : (RELA) Comment accéder aux informations contenues dans la BD? Comment utiliser les capacités du SGBD? 3. Implémentation des SGBD (DBMS) : (IMDB) Comment implémenter un SGBD : traitement des requêtes, gestionnaire des transactions, organisation du support physique? Objectifs : Optimisation des bases de données Réda DEHAK 3
Conception d une base de données 1. Le modèle Entité Association. 2. Le modèle Relationnel. 3. Conception et optimisation du schéma relationnel (Formes normales). 4. Conception et optimisation du schéma physique. Réda DEHAK 4
Utilisation d une BD 1. Algèbre relationnel & Calcul relationnel. 2. Le langage SQL : Introduction. Définition du schéma. Requêtes sur une table. Requêtes sur plusieurs tables. Insertion, Suppression et MAJ. Contraintes, Vues et Triggers. PL/SQL (Projet) SQL/CLI, JDBC Réda DEHAK 5
Implémentation des SGBD 1. Stockage des données. 2. Les indexes. 3. Évaluation des requêtes. 4. Optimisation des requêtes. 5. Gestion de la concurrence des transactions. 6. Recouvrement et gestion des logs. Réda DEHAK 6
Bibliographie 1. R. Ramakrishnan, J. Gehrke, «Database Management Systems», 3 e édition, 2003. 2. J.D. Ullman, H.G. Molina, J. Widom, «Database Systems : The Complete Book», 2 e édition, 2011. 3. Joseph M. Hellerstein et Michael Stonebraker, «Readings in Database Systems», 2005. Réda DEHAK 7
Bibliographie 4. F. Brouard, Rudi Bruchez et Christian Soutou «SQL», 2010. http://sqlpro.developpez.com 5. J.Celko, «SQL for Smarties: Advanced SQL Programming», 2010, 4 e édition. 6. J. Celko, «SQL avancé : programmation et techniques avancées», 2000, 2 e édition. 7. P. Gulutzan, T. Pelzer, «SQL-99 Complete, Really: An Example-Based Manual of the New Standards», 1999. Réda DEHAK 8
Bibliographie 7. G.C. Simsion, «Data Modeling Essentials: Analyse, Design and Innovation», 2000. 8. Ryan K. Stephens, Ronald Plew, «Conception de bases de données», 2001. 9. Joe Celko, «Data & Databases: Concepts in Practice», 1997. http://sqlpro.developpez.com/biblio/sql_bibl.html Réda DEHAK 9
Plan du cours 1. Définitions. 2. Objectifs et fonctions d un SGBD. 3. Architecture d un SGBD. 4. Organisation d une BD. 5. Histoire des SGBDs. Réda DEHAK 10
Base de données (Database) Base de données (BD) : Une collection de données modélisant les objets d une partie du monde réel et servant de support à une application. Exemple : La scolarité des étudiants à EPITA Réda DEHAK 11
Système de Gestion de Base des Données (SGBD) DataBase Management System (DBMS) Système de Gestion de Base de Données (SGBD) Système logiciel gérant une BD Peut avoir des composantes matériel Mono ou multi-ordinateur En général, peut gérer plusieurs BDs Peux aussi accéder aux BDs d autres SGBDs Réda DEHAK 12
Banque de données Banque de données : Une base de données (BD). Un système de gestion de base de données (SGBD). Services + + Réda DEHAK 13
Exemple Gestion de la bibliothèque Réda DEHAK 14
Exemple Gestion de la bibliothèque Un ensemble d outils écrit en C# Réda DEHAK 15
Exemple Gestion de la bibliothèque Microsoft SQL Server Données relatives aux emprunts et rendus de livres Réda DEHAK 16
Plan du cours 1. Définitions. 2. Objectifs et fonctions d un SGBD. 3. Architecture d un SGBD. 4. Organisation d une BD. 5. Histoire des SGBDs. Réda DEHAK 17
Fichiers vs. SGBD? Fiches de paye Production en temps réel Gestion d une entreprise Pièces Clients Commandes Réda DEHAK 18
Fichiers vs SGBD? Programme 1 Programme 2 Programme 3 Programme 4 Données Données Données Données Fichiers Fichiers Fichiers Fichiers Relations? Réda DEHAK 19
Problèmes avec les fichiers Redondance des données. Partage limité au niveau du fichier. Problèmes de cohérence globale des données. Mauvaise structuration des données. Dépendance entre les programmes et les données (fichiers). Modification des fichiers modification des programmes. Difficulté pour le développement de nouvelles applications. Réda DEHAK 20
Fichiers vs. SGBD? Fiches de paye Production en temps réel Gestion d une entreprise Pièces Clients Commandes Réda DEHAK 21
SGBD Fiches de paye Base de données Pièces Production en temps réel Commande Clients Réda DEHAK 22
Base de données Programme 1 Programme 2 Programme 3 Programme 4 SGBD : Requêtes, transactions Base de données Réda DEHAK 23
Objectifs d un SGBD 1. Indépendance des programmes aux données 2. Simplicité des Manipulations des données 3. Efficacité des accès aux données 4. Partage et sécurité des données 5. Redondance contrôlée des données 5. Conception facilité des applications 6. Facilité de l administration système de la BD Réda DEHAK 24
Objectifs d un SGBD 1. Indépendance des programmes aux données : Dépendance physique. Dépendance logique. 2. Simplicité des Manipulations des données : Langage non procédural : quoi et non comment. Recherche, Insertion et Mise à jour. 3. Efficacité des accès aux données : Temps de réponse. Débit global. Réda DEHAK 25
Objectif d un SGBD 4. Partage et sécurité des données : Simultanéité lecture/écriture. Confidentialité (authentification, droits d'accès, ). Gestion de la concurrence des transactions. Restauration après pannes (journal des transactions, sauvegarde). 5. Redondance contrôlée des données : Sauvegarde des données. 6. Conception facilité des applications : Conception visuelle des BD (diagrammes E/R, E/A, objets). Conception des traitements (diagrammes de flux entre modules). Dictionnaire de données (objets BD, graphiques, applicatifs). Réda DEHAK 26
Objectifs des SGBD 7. Facilité de l administration système de la BD : Outils d'audit & de tunning. Visualisation des plans d accès. Élaboration de statistiques. Réda DEHAK 27
Langage des SGBDs Langage de définition des données (LDD) : Définition des schémas conceptuel, externe et interne. Ces définitions sont stockées dans le répertoire système. Langage de manipulation de données (LMD) : Langage de requêtes déclaratif pour lire et mettre à jour les données. Peut être autonome (ex. SQL) ou intégré dans un langage de programmation (C, java, ). Réda DEHAK 28
Utilisateurs d un SGBD Utilisateur final (ad-hoc) : Recherche d informations sans connaître la BD. Accède à la BD par des interfaces applicatives, Web Utilisation de langage simple (ex: QBE). Programmeur d applications : Conçoit et implémente des applications qui accèdent à la BD pour les utilisateurs finaux. Spécialiste de SQL. Administrateur de la BD : Définit et gère le schéma conceptuel et les vues. Gère le schéma interne et règle les performances. Charge et reformate la BD. Gère la sécurité et la fiabilité. Réda DEHAK 29
Plan du cours 1. Définitions. 2. Objectifs et fonctions d un SGBD. 3. Architecture d un SGBD. 4. Organisation d une BD. 5. Histoire des SGBDs. Réda DEHAK 30
Architecture d un SGBD (Organisation) Programmes d application SGBD externe SGBD interne Programmes d application Gestionnaire de SGBD fichiers M.S. Programmes d application Programmes d application Réda DEHAK 31
Architecture d un SGBD (Fonctionnel) Évaluation des requêtes Plan d exécution Évaluation des opérateurs Parser Optimisation Gestionnaire des transactions Gestion de la concurrence Gestionnaire des verrous Méthodes d accès et fichiers Gestionnaire du tampon Gestionnaire de l espace disque Récupération Base de données Index, données, catalogues SGBD Réda DEHAK 32
Requêtes Modification de Schéma Requête Modification Gestionnaire de transaction Processeur de requête Gestionnaire de stockage Données Méta-données Réda DEHAK 33
Transaction Transaction : Une séquence considérée atomique d actions (reads/writes) sur la base de données. Chaque transaction, qui s exécute complètement, doit laisser la BD dans un état cohérent (consistent state) si la BD était dans un état cohérent avant le début de la transaction. Les utilisateurs peuvent spécifier des contraintes d intégrités sur les données. Le SGBD doit forcer la satisfaction de ces contraintes. Le SGBD n a aucune informations sur la sémantique des informations stockées dans la BD. Réda DEHAK 34
Objectifs du Transaction Manager Préserver les propriétés ACID des transactions. Atomicité : tout ou rien. Cohérence de la base. Isolation : Exécution indépendante. Durabilité : préserver les modifications après un commit même en cas de panne. Gestion des verrous. Gestion du journal de la BD (les logs). Réda DEHAK 35
Plan du cours 1. Définitions. 2. Objectifs et fonctions d un SGBD. 3. Architecture d un SGBD. 4. Organisation d une BD. 5. Histoire des SGBDs. Réda DEHAK 36
Organisation d une BD User 1 Schéma externe 1 User 2 Schéma externe 2 Schéma conceptuel Schéma physique User n Schéma externe n Modélisation du Monde réel Base de données physique Niveau externe Niveau conceptuel Niveau interne Réda DEHAK 37
Exemple Conceptuel description du monde réel Client Com mand e Produit Client Interne implémentation dans les fichiers N 12456 12345 11097 Nom Dupont Durant Alex Tel 014586789 04567689 02345425 Index Externe (vues) description vues par un utilisateur (ou un groupe d utilisateurs) Commande Nom Dupont Dupont Produit marteau Alex Scie 13 Réda DEHAK 38 Clou Qte 1234 4567
Exemple Gestion de la bibliothèque Réda DEHAK 39
SGBD Fiches de paye Base de données Pièces Production en temps réel Commande Clients Réda DEHAK 40
Plan du cours 1. Définitions. 2. Objectifs et fonctions d un SGBD. 3. Architecture d un SGBD. 4. Organisation d une BD. 5. Histoire des SGBDs. Réda DEHAK 41
Histoire des bases de données Modèle Hiérarchique : fin des années 60 et années 70 Modèle Réseau (CODASYL 1 ) : les années 70 Modèle Relationnel : de 1970 à 1980 Modèle Entité-Association : les années 70 Modèle Relationnel Etendu (R++) : les années 80 Modèle Sémantique : fin des années 70 et années 80 Modèle Orienté Objet : fin des années 80 et début 90 Modèle Relationnel Objet : fin des années 80 et début 90 Modèle Semi-Structuré(XML) : fin 90 à maintenant 1 Committee On DAta SYsteme Languages Réda DEHAK 42
Modèle Hiérarchique Fin 1960 : IBM lance le SGBD IMS Modèle hiérarchique : les associations entre les données sont représentées par un arbre. Client(nclt, nom, adresse) Produit(nprod, designation, couleur) Produit(nprod, designation, couleur, qte, date) Client(nclt, nom, adresse, qte, date) Réda DEHAK 43
Modèle Hiérarchique Get unique Client (nclt = 42) Until failure do Get next within parent (couleur = rouge ) Enddo PB : redondance d information. Dépendance parents (Pb d existence). 1) Indépendance physique et logique fortement recommandée 2) Représentation des données en arbre est très restrictive 3) Il est difficile de trouver une représentation simple et efficace d un arbre. 4) Les enregistrements uniques forcent le programmeur à optimiser lui-même ses requêtes Réda DEHAK 44
Modèle Réseau (CODASYL) Début 1960 : Charles Bachman développe le premier SGBD, IDS, chez Honeywell. Modèle réseau : Les associations entre les données sont représentées par un graphe. 1969: Standardisation du modèle réseau (CODASYL). Client(nclt, nom, adresse) Passer une commande Commande(Qte, date) Produit(nprod, designation, couleur) Est commandé Par Réda DEHAK 45
Modèle Réseau (CODASYL) Pb: Enseignant Groupe Cours Salle Réda DEHAK 46
Modèle Réseau (CODASYL) Trouver Client (nclt = 42) Until no-more do Find next Commande dans «Passer une commande» Find Produit correspondant dans «Est commandé Par» récupérer l enregistrement courant check(couleur = rouge) enddo Navigation complexe (Charlie Bachmann «Navigating in hyperspace» [BACH73 Turing Award lecture] 1. Le modèle Réseau est plus flexible que le modèle Hiérarchique mais plus complexe 2. Le chargement et la restauration des Réseaux sont plus complexes Réda DEHAK 47
Modèle Relationnel Années 1970 : 1970 : Ted Codd définit le modèle relationnel au IBM San Jose Laboratory (aujourd hui IBM Almadem), prix Turing en 1986. «A Relationnal Model for Large Shared Data Banks», Communications of the ACM, Juin 1970. 2 projets de recherche majeurs INGRES : University of California, Berkley Devint le produit INGRES suivi par POSTGRES, logiciel libre, qui devint le produit ILLUSTRA racheté par INFORMIX. Système R. IBM San Jose Laboratory Devint DB2, inspira ORACLE 1978 : Naissance de Relational Software Inc (ORACLE) (version 1.0). Réda DEHAK 48
Modèle Relationnel Ted Codd a défini le modèle relationnel, les formes normales, langage alpha Un célèbre débat ente Ted Codd et Charlie Bachman (SIGMOD 74) : Les programmeur COBOL ne sont pas capable de comprendre les principes du modèle relationnel. Il est impossible d implémenter de manière efficace le modèle relationnel. Le modèle réseau (CODASYL) peut représenter des tables alors quelle est la nouveauté? Le monde relationnel admet: Codd est un mathématicien et son langage alpha n est pas le plus adapté. SQL et QUEL sont plus user friendly. System R et INGRES prouve la possibilité de l implémentation efficace des idées de Codd. On peut même faire de l optimisation de requêtes. Démonstration de l indépendance physique. Les vues contribuent à l amélioration de l indépendance logique. Les langages ensemblistes contribuent dans l adoption de cet outil par les programmeur. Réda DEHAK 49
Modèle Relationnel Le monde réseau admet : On peut définir des langages ensemblistes pour le modèle Réseau LSL[TSIC76] On peut nettoyer le modèle Réseau [CODA78]. Le succès du modèle relationnel est fortement lié au succès des systèmes VAX (Mini-computer). Le modèle réseau principal (IDMS from Culinaine Corp) était développé en assembleur IBM non portable. Réda DEHAK 50
Evolution du Modèle Relationnel SQL : developpé chez IBM par Donald D. Chamberlin and Raymond F. Boyce au début des années 70 sous le nom SEQUEL (Structured English Query Language), Années 1980 : Maturation de la technique relationnelle. 1986 : Première Norme SQL (SQL86) 1989 : Standardisation de SQL (SQL89). Années 1990 : 1992 : Norme SQL2 (SQL92) Amélioration constante de la technologie relationnelle. Support de la distribution et du parallélisme. 1999 : Le relationnel-objet Norme SQL3 (SQL99) Nouveaux domaines d application : entrepôts de données et décisionnel, Web, Multimédia, Mobiles, etc. Années 2000 : Norme SQL 2003 : SQL Routines and Types Using the Java Programming Language XML-Related Specifications (SQL/XML) Norme SQL 2008 Réda DEHAK 51
Modèle Entité Association Peter Chen, «The Entity-Relationship Model Toward a Unified View of Data», TODS 1(1):9-36 (1976). Client Com mand e Produit Pas de succès. Devient l outil principal des DBAs pour l architecture des bases de données relationnel Les Dépendances Fonctionnelles sont difficile à maitriser (contre exemple de KISS). Réda DEHAK 52
Modèle R++ Nouvelles propositions pour l extension du modèle relationnel : Notion de domaine d attributs Agrégation (un tuple est utilisé comme un attribut) Généralisation. Pas de grand succès, les fournisseurs de SGBD étaient préoccupés par les performances de la gestion des transactions et le problème de charge. Réda DEHAK 53
Modèle Sémantique Nouvelle proposition : Un modèle Sémantique. Héritage multiple Smith and Smith [SMIT77], Hammer and McLeod [HAMM81]. Univac développe une implémentation des idées de Hammer et McLeod. L échec de ce modèle est liée au fait que SQL est devenu rapidement le standard intergalactique en matière d interrogation des BDDs. Réda DEHAK 54
Modèle Orienté Object Société Française O2 (Francois Bancilhon INRIA) : Un modèle OODB (reprise des idées du modèle sémantique) Un langage déclaratif OQL hôte dans un autre langage de programmation. Erreur de la société O2 : Présence en France : «As goes United States goes the rest of the world» Réda DEHAK 55
Modèle Relationnel Objet Débute avec l intérêt d INGRES pour SIG. Définition de nouveaux types et leur opérateur. Principales contributions dans les SGBDRs: User-defined data types. User-defined operators. User-defined functions (procédures stockées) User-defined acces methods Mélange de données et de traitement dans la même base de données Réda DEHAK 56
Histoire des bases de données (4) Recherches actuelles : XML Internet et Web. Base de données multimédia. Aide à la prise de décisions et extraction de connaissance (Data Mining, OLAP) Interrogation par le contenu des objets multimédias distribués. Systèmes d Informations Géographiques (SIG) Modèles navigationnel : NOSQL Réda DEHAK 57
Types de SGBD : Par modèle de données 1ère génération 1950 65 SGF, SGF généralisés avec les langages booléens de manipulation. 2ème génération 1965-70 SGBD navigationnel Hierarchique (IMS), Réseau (Codasyl), Pseudo-relationnel 3ème génération 1969 - SGBD relationnel (DB2, Oracle, Informix, MsAccess SGBD OO 1990-1999 En pratique : une impasse (O2, Objectstore, Objectivity..) SGBD relationnel objet (RO) 1993 - Évolution de tout SGBD relationnel Réda DEHAK 58