Bases de données avancées Introduction Dan VODISLAV Université de Cergy-Pontoise Master Informatique M1 Cours BDA Plan Objectifs et contenu du cours Rappels BD relationnelles Bibliographie Cours BDA (UCP/M1) : Introduction 2
Objectifs du cours Comprendre et administrer efficacement des BD relationnelles Comprendre leur fonctionnement et maîtriser les paramètres qui permettent d'améliorer leur exploitation: organisation physique, optimisation, concurrence d'accès, Pouvoir écrire des programmes qui exploitent les BD relationnelles Ouverture vers d'autres types de données XML, objet, géographique, multimédia, Illustrer les différents concepts et techniques sur des bases de données réelles Oracle, exist Cours BDA (UCP/M1) : Introduction 3 Contenu du cours Fonctionnement et administration de BD relationnelles Comprendre le fonctionnement d un SGBD relationnel Organisation physique des BD relationnelles, indexation Optimisation et exécution de requêtes Concurrence d'accès et reprise Techniques de contrôle de concurrence, transactions Reprise après panne, journalisation Programmation BD Programmation PL/SQL: curseurs, triggers, exceptions Autres types de bases de données Limitations du modèle relationnel: vers l'objet et le semi-structuré (XML) Bases de données XML Organisation physique pour XML, indexation Langages de requêtes pour XML: XPath, XQuery, SQL/XML Bases de données géographiques Bases de données multimédia Cours BDA (UCP/M1) : Introduction 4
Rappels BD relationnelles Base de données Grand ensemble de données structurées mémorisées sur un support permanent Système de gestion de base de données (SGBD) Logiciel qui permet de manipuler ces données à un niveau d'abstraction élevé (modèle logique de données) Cours BDA (UCP/M1) : Introduction 5 Niveaux d'abstraction Architecture ANSI-SPARC d'un SGBD (1975) NIVEAU EXTERNE vue 1 vue 2 vue 3 NIVEAU LOGIQUE NIVEAU PHYSIQUE Cours BDA (UCP/M1) : Introduction 6
Niveau physique Représentation concrète (physique) des données dans une BD Stockage sur disque Structures d indexation Opérations réalisées par le SGBD sur cette représentation physique pour implémenter les opérations logiques Accès aux données, gestion sur disque des données / des index Partage de données et gestion de la concurrence d'accès Reprise sur pannes (fiabilité) Distribution des données et interopérabilité (accès aux réseaux) Cours BDA (UCP/M1) : Introduction 7 Niveau logique Représentation abstraite des données, proposée par un SGBD Reste indépendant de la façon dont les données sont réellement stockées et manipulés au niveau physique plus simple à gérer Modèles logiques: relationnel, objet, semi-structuré Langages offerts par le niveau logique Langage de description de données (LDD): schémas de données utilisées Langage de manipulation de données (LMD): modification des données Langage de requêtes (LR): interrogation des données SGBD relationnels un seul langage pour les trois: SQL Cours BDA (UCP/M1) : Introduction 8
Niveau externe (conceptuel) Niveau conceptuel des données Description générale des données, indépendante d'un SGBD particulier Modèles conceptuels: entité-association, UML, Merise, Correspond à la vision de l'utilisateur (de l'application) sur la BD Plusieurs applications peuvent exister au-dessus des mêmes données Chacune peut avoir besoin d'une vue différente de la base de données Schéma conceptuel: basé sur l'intégration en un modèle conceptuel commun des vues externes (des différentes applications envisagées) Cours BDA (UCP/M1) : Introduction 9 Exemple Modèle conceptuel (externe) FNOM FOURNISSEURS PRIX FOURNIT PNOM PRODUITS C_ADRESSE FADRESSE NUM_COMDE COMMANDE CLIENTS NOM Modèle logique (relationnel) QUANTITE FOURNISSEUR (FNOM, FADRESSE) CLIENT (NOM, C_ADRESSE, BALANCE) FOURNITURE (FNOM, PNOM, PRIX) COMMANDE (NUM_COMDE, NOM, PNOM, QUANTITE) BALANCE Modèle physique (dépend du SGBD utilisé) Fichiers sur disque, structures d index Algorithmes d accès aux données, de modification, d accès concurrent, etc. Cours BDA (UCP/M1) : Introduction 10
SGBD relationnels Modèle relationnel Relations (tables): attributs typés (colonnes), n-uplets (lignes) Base de données = ensemble de relations Schéma relation = nom relation + ensemble attributs avec leurs types Schéma BD = ensemble des schémas des relations Nom de la Relation Nom d Attribut VEHICULE Proprietaire Type Annee Loic Espace 1988 Nadia Loic Espace R5 1989 1978 n uplet Julien R25 1989 Marie ZX 1993 Cours BDA (UCP/M1) : Introduction 11 Requêtes relationnelles Algèbre relationnelle Ensemble d'opérations sur des relations produisant des relations Sélection, projection, produit cartésien, jointure, différence, union, Requête = composition d'opérateurs algébriques expression procédurale Ex. Les noms des propriétaires de voitures immatriculées avant 1989 Proprietaire (σ Annee<1989 (VEHICULE)) Calcul relationnel Expression déclarative des requêtes (formules logiques du premier ordre) On dit ce que l'on veut obtenir, sans dire comment Requête = formule logique Ex. {v.proprietaire VEHICULE(v) v.annee<1989} Théorie relationnelle: l'algèbre et le calcul sont équivalents Cours BDA (UCP/M1) : Introduction 12
Langage de requêtes: SQL En pratique: langage SQL Basé sur le calcul relationnel déclaratif Expression plus facile à maîtriser que les formules logiques Plus puissant: ajout d'opérations sans équivalent dans l'algèbre (groupement, agrégation, tri, etc.) Ex. SELECT v.proprietaire FROM VEHICULE v WHERE v.annee<1989 Le rapport SQL - algèbre SQL: langage de haut niveau, déclaratif, adapté aux utilisateurs Algèbre: langage procédural, adapté à l'exécution par le système Principe : les requêtes SQL sont traduites par le système en expression algébrique (plan d'exécution) et ensuite exécutées (après optimisation) Cours BDA (UCP/M1) : Introduction 13 Programmation avec les bases de données Développement d'applications utilisant les BD A l'extérieur du SGBD: langages de programmation classiques (ex. Java, C++) + APIs d'accès au SGBD (ex. JDBC) ou à l'intérieur du SGBD Problème: le caractère déclaratif de SQL est mal adapté aux langages procéduraux de développement d'applications Exemple: on veut utiliser des parties des réponses à une requête pour en composer une autre Réponse: langage PL/SQL (Oracle) et similaires Langage procédural d'extension de SQL adapté au développement d'applications Programmes stockés sur le serveur diminution de la communication client-serveur Cours BDA (UCP/M1) : Introduction 14
Bibliographie générale Site du cours http://depinfo.u-cergy.fr/~vodislav/master/bda SGBD relationnels G. Gardarin, Bases de données, Eyrolles, 2003 C.J. Date, Introduction aux bases de données, Vuibert, 2004 R. Ramakrishnan, J. Gehrke, Database Management Systems, McGraw Hill, 2008 H. Garcia-Molina, J. Ullman, J. Widom, Database systems: the complete book, Prentice Hall, 2002 G. Weikum, G. Vossen, Transactional Information Systems, Morgan Kaufmann, 2002 Cours BDA (UCP/M1) : Introduction 15 Bibliographie (suite) BD XML G. Gardarin, XML: des bases de données aux services Web, Dunod, 2002 J. Melton, J. Buxton, Querying XML, Morgan Kaufmann, S. Abiteboul, P. Buneman, D. Suciu, Data on the Web, Morgan Kaufmann, 2000 Site web de R. Bourret : http://www.rpbourret.com Oracle Documentation: http://www.oracle.com/pls/db111/homepage exist Logiciel et documentation: http://exist.sourceforge.net/ Cours BDA (UCP/M1) : Introduction 16