Chapitre 1 Cours de Bases de Données Introduction aux Bases de Données Polytech Paris-Sud Sarah Cohen-Boulakia LRI, Bât 650, Université Paris-Sud, Orsay cohen @ lri . fr 01 69 15 32 16 1 2 Sarah Cohen-Boulakia, Bases de données Sarah Cohen-Boulakia, Bases de données Les Bases de données sont omniprésentes Chapitre 1 : Quelques questions… • Applications de gestion • Qu’est-ce qu’une base de données ? – Banque - Finance - Assurance – Gestion du personnel / client d’une entreprise – Gestion des stocks • Pourquoi ne pas plutôt utiliser un système de fichiers ? • Système d’information d’une entreprise / labo – – – – – • A quoi sert un système de gestion de bases de données (SGBD) ? 3 Sarah Cohen-Boulakia, Bases de données Applications transactionnelles Gestion de réservations Transports passagers (train, avion, location, ...), Hôtels, Spectacles Expérimentations scientifiques Consultations/modifications très fréquentes Sarah Cohen-Boulakia, Bases de données 4 Gestion des réservations de billets de trains Quelques Notes… Réservation • • • • • • Utilisation de systèmes de fichiers Num reservation Nom client Adresse client numéro trajet date Départ - gare - heure • Arrivée - gare - heure Problèmes Trajet Étapes, Wagons, Trains… • • • • • numéro trajet gare départ heure départ destination finale heure d’arrivée • Redondances • Incohérences Maintenance • Structure des données dans les programmes ! • Accès aux données Performances Système de réservation dans les gares Système fichiers 1 Train 345 Système de réservation en ligne (voyageSNIF) Système fichiers 2 Train 345 Système de réservation en ligne (Axpadia) Système fichiers 3 Train 345 5 Sarah Cohen-Boulakia, Bases de données 6 Sarah Cohen-Boulakia, Bases de données Description L’utilisation d’une base de données et un système de gestion de base de données est un choix guidé par des besoins à différents niveaux • Décrire le données de l’application (trains, trajets et réservations) sans faire référence à une solution informatique particulière Modélisation conceptuelle • Élaborer une description équivalente pour le stockage des données Modélisation logique Langage de description de données 7 Sarah Cohen-Boulakia, Bases de données 8 Sarah Cohen-Boulakia, Bases de données Création et modification des données Interrogation • Répondre à toute demande d’information portant sur les données contenues dans la base • Créer la base de données initiale avec les données représentant le réseau SNIF langage permettant l’insertion de données – Nicolas Bazin a-t-il une réservation pour aujourd’hui ? Si oui, donner les infos sur cette réservation. – Quels sont les horaires des trains partant de Bordeaux et allant à Paris entre 9h et 10h le dimanche ? – Donner toutes les destinations au départ de Bordeaux sans arrêts intermédiaires • Créer au fur et à mesure les données sur les réservations • Pouvoir modifier (et éventuellement supprimer) toute donnée déjà rentrée langage de manipulation de données (insertion, modification, suppression) Langage de requête (langage d’interrogation) 9 Sarah Cohen-Boulakia, Bases de données 10 Sarah Cohen-Boulakia, Bases de données Exactitude et Cohérence Fiabilité et contrôle de concurrence • Exprimer des contraintes sur les données – Chaque place de train est occupée par au plus un client – Les arrêts d’un train sont numérotés de façon continue – La date de réservation pour un train doit être à un jour de circulation de ce train – L’heure de départ d’une gare doit être postérieure à l’heure d’arrivée dans cette gare – L’heure d’arrivée à un arrêt doit être postérieure à l’heure de départ de l’arrêt précédent Langage d’expression de contraintes d’intégrité • Pas de perte d’information due à un disfonctionnement matériel quelconque – erreur de programmation, panne système, panne de physique, coupure de courant, … Garantie de fiabilité, reprise sur panne • Pas de perte d’information due à l’action d’ un utilisateur – enregistrement de deux réservations (sur 2 clients différents) pour une même place dans un même train Garantie de contrôle de concurrence 11 Sarah Cohen-Boulakia, Bases de données 12 Sarah Cohen-Boulakia, Bases de données BD et SGBD Confidentialité et Efficacité • Information protégée (utilisateurs autorisés) en lecture/écriture • Base de données (BD) – ensemble structuré de données stockées et accessibles par plusieurs utilisateurs • Système de Gestion de Base de Données (SGBD) – Les clients ne doivent pas pouvoir modifier les numéros des trains Garantie de confidentialité • Temps de réponse conforme aux besoins – en interactif : pas plus de 2 secondes – en programmation : assumer la charge de travail attendue (nombre de transactions par jour) Optimisation Attention : répartition / duplication des données Garantie d’efficacité 13 – Logiciel système pour interagir avec une BD. Fonctions : • Gestion du stockage en mémoire secondaire • Accès efficaces aux données, transferts mémoires centrale - secondaire • Persistance • Résistance aux pannes (logicielles et matérielles) • Confidentialité (sécurité) • Cohérence – Intégrité (fiabilité) • Partage des données – Concurrence (sécurité) • Interface 14 Sarah Cohen-Boulakia, Bases de données Sarah Cohen-Boulakia, Bases de données BD et SGBD Avec une base de données • Base de données (BD) Avantages – ensemble structuré de données stockées et accessibles par plusieurs utilisateurs • Système de Gestion de Base de Données (SGBD) – logiciel pour interagir avec une BD. Fonctions : • Gestion du stockage en mémoire secondaire • Accès efficaces aux données, transferts mémoires centrale - secondaire • Persistance • Résistance aux pannes (logicielles et matérielles) • Confidentialité (sécurité) • Cohérence – Intégrité (fiabilité) • Partage des données – Concurrence (sécurité) • Interface Oracle, Postgres, mySQL, DB2, SQLServeur sont des SGBDs Sarah Cohen-Boulakia, Bases de données • Chaque information n'est stockée qu'une seule fois • Une seule base pour toutes les applications • Et chaque application ne voit que ce qu'elle doit voir (contrôle par les filtres ou vues) Système de réservation dans les gares Schéma Système de réservation en ligne (voyageSNIF) Train 345 Manipulation Système de réservation en ligne (Axpadia) 15 16 Sarah Cohen-Boulakia, Bases de données Principe 2 : Trois Niveaux d’Abstraction Principe 1 : Instance et schéma • Niveau externe (vues) • On distingue toujours le schéma (récipient) de l’instance (contenu) – description et manipulation des données dédiées à un groupe d’utilisateurs, modélisation des visions de la base par les utilisateurs • Schéma = description centralisée des données – la description des données est une donnée stockée + modifiable + interrogeable – Train(no: entier, gare départ : chaîne de caractères, heure départ : Heure…) (= Table en colonnes) • Instance = donnée • Niveau logique ou conceptuel – description et manipulation abstraites des données – structure globale des données qui intègre les différentes visions externes, sans se soucier des contraintes (performance…) liées à l’implantation • Niveau physique (interne) – les données sont organisées en fonction du schéma – (Train n° 345, Bordeaux, 15h00) (= ligne) – organisation et stockage des données en mémoire secondaire, façon dont la base est implantée sur la machine 17 18 Sarah Cohen-Boulakia, Bases de données Sarah Cohen-Boulakia, Bases de données Avantages de la séparation des 3 niveaux 3 types d'utilisateurs • L'administrateur de la base est chargé • Limitation des modifications liées – aux changements de matériel, de système d’exploitation ou des logiciels utilisés – Passage à un serveur plus puissant, changement de SGBD (Oracle, Postgres, mySQL…) Sarah Cohen-Boulakia, Bases de données • Le programmeur – écrit des applications qui utilisent la base de données – crée les tables et les structures associées (vues, index,...) utilisées par ses applications • La vision de chaque utilisateur est indépendante des visions des autres utilisateurs – pas impactées par les modifications du schéma conceptuel qui ne le concernent pas – Changement de l’affectation des wagons par train pas d’impact sur l’interface de consultation – du contrôle de la BD, en particulier, permettre l'accès aux données / applications / individus qui y ont droit – de conserver de bonnes performances d'accès à ces données – de faire des sauvegardes / procédures de reprise sur pannes • L'utilisateur final 19 – n'a accès qu'aux données qui lui sont utiles • par l'intermédiaire d'applications • en interrogeant directement les tables ou vues sur lesquelles l'administrateur lui a accordé des droits Sarah Cohen-Boulakia, Bases de données 20 Principes 3 et 4 : indépendance Avantages de l'utilisation des SGBDs • Centralisation des données intégrité • Contrôle centralisé de l'accès aux données sécurité accrue • Indépendance physique – Programmes d’application invariants – Structure Physique modifiée • Traitements très puissants développement • Indépendance logique grande rapidité de • Indépendance vis-à-vis de la structure physique et logique des données maintenance facilitée – Programmes d’application invariants – Structure Logique modifiée • Pour les SGBD relationnels : langage non interrogation directe et procédural simple réponses à des questions non prédéfinies 21 Sarah Cohen-Boulakia, Bases de données Petits Avertissements (1/2) Petits Avertissements (2/2) • Un SGBD est un système complexe ! • Spécificité d’un SGBD • Un SGBD est un système difficile à bien utiliser ! • Méthodes de développement et maintenance – 3 niveaux d’abstraction – fiabilité – concurrence • Analyse des besoins de l’application • Stockage massif sur disque ! Le prix à payer – – – – 22 Sarah Cohen-Boulakia, Bases de données les interfaces entre niveaux journalisation verrouillage techniques spécialisées d’accès aux données sur disque • Conception du schéma conceptuel • Conception du schéma interne • Réglage (tuning) des applications 23 Sarah Cohen-Boulakia, Bases de données 24 Sarah Cohen-Boulakia, Bases de données ANALYSE des BESOINS DESCRIPTION CONCEPTUELLE Conception et développement itératifs d’applications Cycle de vie d'une BD DESCRIPTION LOGIQUE DESCRIPTION PHYSIQUE • Conception de la base (schéma conceptuel) • Implantation des données (schéma logique) • Utilisation (interrogation, mises à jour) • Maintenance (correction, évolution) 25 Sarah Cohen-Boulakia, Bases de données modèle conceptuel 0..1 Reservation * SesResTrain SonTrainRes NomClient : string …. Train numTrain : int … • Logique : tables – Reservation(NomClient : chaîne, …), Train(numTrain : chaîne…) • Physique : choix des index, chemins d’accès… 26 Bibliographie • Database Management Systems, R. Ramakrishnan, McGraw-Hill. Chapitre 1 : Introduction Chapitre 2 : Modélisation UML Chapitre 3 : Le modèle relationnel Chapitre 4 : Introduction à SQL Chapitre 5 : Algèbre relationnelle Chapitre 6 : Requêtes SQL avancées Modalité de contrôle des connaissances • Bases de données (objet & relationnel), G. Gardarin, Editions Eyrolles. • Foundations of databases, Serge Abiteboul, Rick Hull, Victor Vianu (existe en français chez Vuibert) • A first course in Database System, J. Ullman et J. Widom, Prentice Hall. – Examen (60% note globale) – Contrôle Continu (40% note globale) • Database system implementation, H. Garcia-Molina, J. Ullman et J. Widom, Prentice Hall. • Interros surprises en TD (70% du CC) • TPs noté (30 % du CC) 27 Sarah Cohen-Boulakia, Bases de données • Description des besoins Sarah Cohen-Boulakia, Bases de données Plan du cours, Modalités de contrôle • • • • • • • Exemples des 3 niveaux • Cours sur Internet : Universités et IUT de Versailles, Lille, Bordeaux, Marseille, Paris-Sud 11 Sarah Cohen-Boulakia, Bases de données 28