Base de Données et langage SQL Introduction aux bases de données L. Audibert Institut Universitaire de Technologie de Villetaneuse Département Informatique 1 er mars 2016
Qu est-ce qu une base de données Définition (Base de données) Ensemble organisé d informations avec un objectif commun Peu importe le support utilisé pour rassembler et stocker les données (papier, fichiers, etc.). Définition (Base de données informatisée) Ensemble structuré de données accessibles par un ordinateur et pouvant être interrogées et mises à jour par une communauté d utilisateurs
Qui utilise des bases de données? Les bases de données existent depuis 50 ans! Elles jouent un rôle central et croissant dans les technologies de l information depuis plus de 30 ans Il s agit de l une des technologies de l informatique les plus répandues et matures Dans les systèmes d information des entreprises Intranets (documents, stocks... ) Gestion des abonnés (France Télécom, EDF, GDF... ) Gestion des clients et des comptes (Banques... ) Et maintenant sur Internet Archivage des forums, des blogs... Réseaux sociaux (Ex. : Facebook) Systèmes d information géographique (Ex. : Google Maps) Commerce électronique (Ex. : Amazon)
Problématique de la cohérence des données Bases de données : rassembler des données qui possèdent un lien entre elles Objectif : retrouver de l information en utilisant des critères de recherche basés sur le contenu de cette information Genre Artiste Titre Alternative Rock les Wampas Les Wampas vous aiment Altern Rock Les Wampas Tutti frutti Alternative Rock Wampas Les bottes rouges Altern Rock Les Shériff Les deux doigts dans la prise Folk-Rock Joan Osborne Righteous Love Folk/Rock Leonard Cohen Songs From A Room Condition de succès : cohérence des données Moyen : concevoir une structure imposant/favorisant la cohérence ( Conception des bases de données (modèle E-A))
Système de gestion de bases de données Autres sources potentielles d incohérences action d insertion ou de modification des données pannes physiques du système accès concurrents... Solution : utiliser un SGBD Définition (Système de Gestion de Bases de Données (SGBD)) Ensemble de programmes assurant la gestion et l accès à une base de données Un SGBD est caractérisé par le modèle de description des données qu il supporte
Modèle hiérarchique Développé par IBM pour le programme spatial Apollo de la NASA (années 1960) Lie des enregistrements dans une structure arborescente de façon à ce que chaque enregistrement n ait qu un seul possesseur Liaisons de type 1 vers N
Modèle réseau Permet de lever de nombreuses difficultés du modèle hiérarchique Possibilité d établir des liaisons de type N vers N Programme dépendant de la structure de données (impose de connaître les chemins des liens)
Modèle relationnel 1970 : Codd publie un article où il propose de stocker des données hétérogènes dans des tables Ce cours se situe dans le cadre de ce modèle
Modèles orientés objet Modèle objet Objectif : unifier les SGBD et la programmation orientée objet (POO). Souffre d une absence de standard. Peu utilisé. Modèle relationnel-objet Objectif : étendre le modèle relationnel pour supporter les caractéristiques essentielles du modèle objet. Rétrocompatible et normalisé en 1999 : SQL-3. Mapping objet-relationnel Objectif : implémenter par une base de données relationnelle un service de persistance pour un langage de POO.
Système de gestion de base de données (SGBD) Définition (Système de gestion de base de données) Ensemble de programmes assurant la gestion et l accès à une base de données Doit permettre : l ajout, la modification et la recherche de données Héberge habituellement plusieurs bases de données Assure la cohérence des données
Objectifs des SGBD Indépendance physique : Indépendance entre la définition des données et les structures de stockage utilisées. Indépendance logique : Un même ensemble de données peut être vu différemment par des utilisateurs différents. Ces différentes visions doivent s intégrer dans une vision globale. Accès aux données : Langage de Manipulation de Données optimiser pour minimiser le temps de réponse aux requêtes minimisation des accès disques, transparence pour l utilisateur.
Objectifs des SGBD Administration centralisée des données (intégration) : Centralisation des données dans un réservoir unique commun à toutes les applications pour en faciliter l administration. Non redondance des données : Éviter les problèmes de mises à jour absence de redondances dans la base. Cohérence des données : Contraintes d intégrité définissant un état cohérent de la base. Expression simple Langage de Description de Données. Vérification automatique à chaque insertion, modification ou suppression des données.
Objectifs des SGBD Partage des données : Permettre à plusieurs utilisateurs d accéder aux mêmes données au même moment de manière transparente. Permettre à plusieurs utilisateurs de modifier la même donnée en même temps tout en assurant un résultat d interrogation cohérent pour un utilisateur consultant cette donnée. Sécurité des données : Les données doivent pouvoir être protégées contre les accès non autorisés droits d accès aux données. Résistance aux pannes : Toujours pouvoir récupérer la base de données dans un état cohérent, même si une panne survient au milieu d une modification.
Architecture ANSI/SPARC à trois niveaux Pour atteindre certains de ces objectifs, trois niveaux de description ont été définis par la norme ANSI/SPARC. Le niveau externe : Perception de tout ou partie de la base par un groupe donné d utilisateurs (schéma externe ou vue). Il peut exister plusieurs schémas externes représentant différentes vues sur la base de données avec des possibilités de recouvrement. Le niveau conceptuel : Structure de toutes les données de la base (entités, propriétés, relations), sans se soucier de l implémentation physique. Dans un SGBD relationnel : vision tabulaire. Le niveau interne ou physique s appuie sur un système de gestion de fichiers pour définir la politique de stockage ainsi que le placement des données (schéma interne).
SGBD fichier vs SGBD client/serveur SGBD fichier Base de données est stockée dans un espace partagé Requêtes traitées localement rapatriement des tables qu elles impliquent Solution simple, trafic réseau important, pas d administration Ex : dbase, FoxPro, Paradox, Access
SGBD fichier vs SGBD client/serveur SGBD client/serveur SGBD et requêtes exécutés sur un ordinateur unique (serveur) Requêtes et réponses transitent sur le réseau entre client et serveur indépendance entre données et clients, minimisation du trafic réseau, gestion de la concurrence, robustesse, administration importante... Ex : Oracle (47%), DB2 d IBM (21%), SQL-Server de Microsoft (17%), Sybase (3%), MySQL (libre) ou encore PostgreSQL (libre)