Introduction aux Bases de données BD4 2015-16 L3 MIASHS M1 ISIFAR FC et SB 19 January 2016 FC et SB Introduction aux Bases de données 19 January 2016 1 / 15 Introduction Introduction FC et SB Introduction aux Bases de données 19 January 2016 2 / 15 Introduction Systèmes d’information (SI) et Bases de Données (BD, SGBD, SGBDR) Les entreprises et les administrations ont toujours cultivé une mémoire sous forme de fichiers plus ou moins mécanisés et formattés. Ces collections de fichiers mécanisées répondaient à des exigences de fiabilité, de convenance (facilité de la recherche, de la maintenance). Au coeur des systèmes d’information on trouve les bases de données FC et SB Introduction aux Bases de données 19 January 2016 3 / 15 Introduction Des propriétés désirables (ACID) Atomicité, chaque ajout/modification d’information doit former un tout cohérent Cohérence, le contenu de la base de données doit rester conforme à des contraintes qui ont été définies lors de la conception de la base Isolation, la bases de données doit pouvoir être utilisée concuremment par plusieurs usagers Durabilité, la vie d’une base de données s’étale sur plusieurs dizaines d’années FC et SB Introduction aux Bases de données 19 January 2016 4 / 15 Introduction Bases de données Pourquoi ? Les bases de données ne sont pas un langage (comme JAVA) ou un environment de calcul (comme R). Ce sont des logiciels intermédiaires (middleware) qui assurent une fonction complémentaire Bases de données relationnelles} forment un sous-ensemble important (prépondérant) des systèmes de gestion des bases de données FC et SB Introduction aux Bases de données 19 January 2016 5 / 15 Introduction Collection de data frames Caricaturalement Une base de données est une collection de tables dont la forme ressemble à celle d'un `data frame` de R Data frame (R) Un data frame est une liste de vecteurs Les vecteurs sont tous de même longueur Les données d’un vecteur sont d’un même type Mais chaque vecteur a son type Chaque élément de la liste (chaque vecteur) possède un nom Autres environments (Excel, JAVA, . . . ) Les spreadsheet des tableurs, les tableaux d’objets en JAVA permettent de représenter ce que les data frame représentent en R R/Tableurs offrent un environnement interactif de manipulation de données et un environnement de définition de données FC et SB Introduction aux Bases de données 19 January 2016 6 / 15 Introduction Les SGBD vont au delà Ils offrent Persistance Les tableurs, R n’offrent pas de persistance : entre deux sessions les données sont confiées au système de fichiers de l’ordinateur Intégrité Les données confiées au système de fichiers peuvent être altérées par d’autre logiciel Concurrence Les data frame ou équivalents ne peuvent pas être manipulés (consultés, mis à jour) de manière concurrente par plusieurs (ou du moins par une grande quantité d’) utilisateurs. FC et SB Introduction aux Bases de données 19 January 2016 7 / 15 Introduction Usages Derrière les sites web dynamiques il y a en général une base de données. Logiciels personnels Derrière certaines applications (gestion de photos, de carnet d’adresses, . . . ), on trouve des bases de données légères (SQLITE) Partout L’usage (transparent) des bases de données est universel : 1 2 3 4 5 smartphones, tablettes, . . . web, réseaux sociaux administrations (APOGEE. . . ) entreprises (Stocks Supply Chain, Customer Relationship Management, . . . ) NSA FC et SB Introduction aux Bases de données 19 January 2016 8 / 15 Introduction L’idée clé (Codd, 1970) Organiser les informations en tables ou relations Développer et formaliser un langage de manipulation de tables : l’algèbre relationnelle (SQL) Ne pas se noyer dans les détails de l’implémentation physique Laisser l’usager déclarer l’organisation des données les requêtes FC et SB Introduction aux Bases de données 19 January 2016 9 / 15 Introduction Quelques acteurs Les serveurs ORACLE (commercial) DB2 (IBM commercial) SQLSERVER (Microsoft commercial) MySQL (open source) PostGres (open source) Les clients psql pgcli valentina-studio FC et SB Introduction aux Bases de données 19 January 2016 10 / 15 Introduction PostGres (PostgreSQL) Un serveur : etu-pgsql Un catalogue : bd_2016 Des schemas : world, sakila, velib, atp, ... FC et SB Introduction aux Bases de données 19 January 2016 11 / 15 Introduction Un exemple de schéma velib Un schema Des schémas de table Récupération chaque minute de l’état des 1200 stations velib Insertion d’une ligne d’informations dans une table station_etat La table stations contient les informations stables concernant les stations La table station_etat contient les informations historiques ou faits FC et SB Introduction aux Bases de données 19 January 2016 12 / 15 Introduction Détails du schema velib Un schéma de table : la donnée des noms des colonnes et des types des colonnes FC et SB Introduction aux Bases de données 19 January 2016 13 / 15 Introduction Objectifs 1 2 3 4 5 6 7 Compétences d’un usager de BD relationnelles Exprimer des requêtes en algèbre relationnelle et en SQL SQL Définition, manipulation et contrôle des données Concevoir un Modèle Conceptuel de Données (MCD) Déterminer les dépendances fonctionnelles et normaliser une relation Spécifier des contraintes Créer/utiliser les vues et les index FC et SB Introduction aux Bases de données 19 January 2016 14 / 15 Introduction Plan du cours 1 2 3 4 5 6 7 8 Algèbre et calcul relationnels SQL (algèbre relationnelle strictes) SQL sous-requêtes SQL aggrégation SQL requêtes paramétrées Définition de données/Conception PlPgSQL Normalisation FC et SB Introduction aux Bases de données 19 January 2016 15 / 15