Gestion des données TP1: Bases relationnelles avec PostgreSQL

Documents pareils
Présentation Backup.XML DossierBase/Preferences/Backup/Backup.XML DossierBase Preferences/Backup/

4e Dimension Clés XML Backup. Windows /Mac OS 4e Dimension D SA. Tous droits réservés.

SCHMITT Année 2012/2014 Cédric BTS SIO. TP Serveur Backup

1. Base de données SQLite

1 - Se connecter au Cartable en ligne

TUTORIEL D INSTALLATION D ORACLE ET DE SQL DEVELOPPER TUTORIEL D INSTALLATION D ORACLE...1 ET DE SQL DEVELOPPER...1

TP WINDOWS 2008 SERVER - OUTILS DE SAUVEGARDE ET DE RESTAURATION

Document d accompagnement pour l utilisation du Cartable en ligne Lycée des Métiers Fernand LÉGER 2013/2014

1 Démarrage de Marionnet

Pour valider les pré-requis nécessaires, avant d'aborder le TP, répondez aux questions ciaprès

Installation d'un serveur FTP géré par une base de données MySQL

Guide d installation de MySQL

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

La replication dans PostgreSQL

TP Contraintes - Triggers

SimpleDriver MANUEL UTILISATEUR

Le langage SQL Rappels

Démonstrateur libre Application des données Open Street Map à l analyse géographique de réseaux de voirie et Transports Collectifs

GEST_INSTANCES APPLICATION DE GESTION DES INSTANCES ET REUNIONS EN EPLE ETABLISSEMENT PUBLIC LOCAL D ENSEIGNEMENT

Mysql avec EasyPhp. 1 er mars 2006

Plan. Excalibur. Les opérations sur données. SQL or not SQL? Backups. Inter opérabilité

TP Bases de données réparties

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Le langage SQL (première partie) c Olivier Caron

Sommaire. Etablir une connexion avec une base de données distante sur PostGreSQL

TP1. Outils Java Eléments de correction

ET REGISTRE DE PRESENCE

Bon ben voilà c est fait!

PostgreSQL. Formations. Catalogue Calendrier... 8

Langage SQL : créer et interroger une base

Description pas à pas des différents processus d installation, configuration, saisie des résultats et export des données.

contact@nqicorp.com - Web :

Je demande à bénéficier d un Pass Sport Culture 2015 qui me donnera accès aux activités présentées pour le(s) mois de : NOM :... Prénom : Né(e) le :

TD/TP 1 Introduction au SDK d Android

TP Blender n 2 : Importation d un modèle SketchUp et animation

Analyse détaillée des trajets effectués en Transports en commun en Ile-de-France

Installation / Sauvegarde Restauration / Mise à jour

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

Navettes gratuites Free shuttle services

ASR4 Réseaux Département Informatique, IUT Bordeaux 1. DHCP Prénom : Nom : Groupe :

INSTALLATION ET CONFIGURATION D'UN SERVEUR WEB SUR MAC OS X

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

Procédure d'installation de PostgreSQL pour Windows

Oracle WebLogic Server (WLS) 11gR1 ( et ) Installation sur Oracle Linux 5 et 6 Hypothèses Installation Oracle Linux 5 (OL5)

TP DNS Utilisation de BIND sous LINUX

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Effectuer une sauvegarde avec Nero BackItUp

Vendredi 22 mars Prolongement de la ligne B du métro Toulouse > Ramonville > Labège

OpenOffice Base Gestionnaire de Base de Données

TP administration système

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark

Bases de SQL. Hacks 1-6 CHAPITRE UN

Vos outils CNED COPIES EN LIGNE GUIDE DE PRISE EN MAIN DU CORRECTEUR. 8 CODA GA WB 01 13

1 Prise en main des machines

SharePoint 2013 L'environnement de travail collaboratif

HowTo Installer egroupware 1.2 sur SME Serveur 7.0

Schéma relationnel et contraintes d intégrité : le cas ConduiteAuto

Architecture de la plateforme SBC

04/02/2014 Tutoriel. Lubuntu & glpi. thomas [NOM DE LA SOCIETE]

GUIDE MEMBRE ESPACE COLLABORATIF. Février 2012

G E S T S K E D. Logiciel de gestion de QSO journaliers ou hebdomadaires appelés SKED. Version 1.0. Logiciel développé par René BUSSY F5AXG

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

SCL LOGICIEL DE CONTROL

Olivier Mondet

Gateway4Cloud Conditions Spécifiques

Administration du site (Back Office)

SQL MAP. Etude d un logiciel SQL Injection

COMMUNICATION TECHNIQUE N TCV060 Ed. 01. OmniVista 4760 Nb de pages : 18 Date : URGENTE NON URGENTE TEMPORAIRE DEFINITIVE

ENT Espace de stockage

UML et les Bases de Données

Manuel d utilisateur du site de covoiturage «Etucovoiturage»

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

contact@nqicorp.com - Web :

Manuel d utilisation. Baby Tablette VTech Imprimé en Chine FR

TP3 : Creation de tables 1 seance

Quick Start Installation de MDweb version 2.3

Monitoring des Ressources Informatiques au LAL. Journées Informatique IN2P3 DAPNIA HOURTIN Jacquelin Charbonnel - printemps 2004

Configuration de SquidGuard sous Fedora Core 4-1 / 6 -

Travailler et organiser votre vie professionnelle

DOCUMENTATION ADMINISTRATEUR

Installation et utilisation du client FirstClass 11

I. MySQL : Serveur et SGBD

Guide d utilisation de la Clé USB de Diagnostic

Dates and deadlines

Les bases de données

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

SSH. Romain Vimont. 7 juin Ubuntu-Party

Contrôle d accès UTIL TP N 1 découverte

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Le Langage De Description De Données(LDD)

Les Géodatabases en 9.2

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1

Guide de démarrage rapide : NotifyLink pour Windows Mobile

Transcription:

Gestion des données TP1: Bases relationnelles avec PostgreSQL Olivier Schwander <olivier.schwander@lip6.fr> 16 janvier 2017 1 Lancement du serveur et chargement des données Ces consignes s appliquent aux machines Ubuntu 14.04 du chariot et des salles de TP et de la machine virtuelle fournie sur le site du cours. Télécharger les fichier http://www-connex.lip6.fr/~schwander/enseignement/2016-2017/m2stat_ bi/start-pgsql.sh. Dans un premier terminal : Changez le répertoire courant du terminal pour aller là où vous avez enregistré le fichier. Par exemple, si vous avez enregistré le fichier dans le répertoire ~/Téléchargements : cd ~/Téléchargements Lancer le fichier start-pgsql.sh sh start-sql.sh Ce terminal n est désormais plus utilisable, il affichera les messages du serveur. Dans un second terminal : On crée une base de données sur le serveur, nommée tisseo : createdb -h localhost -p 5433 tisseo On peut ensuite accéder interactivement à la base avec le client : psql -h localhost -p 5433 tisseo La sortie devrait être la suivante : psql (9.5) Type "help" for help. tisseo=# 1

Si la sortie est correcte, taper ctrl+d pour quitter le client. On s intéresse dans ce sujet à une base de données d horaires des transports en commun toulousains Tisseo. Les données sont disponibles dans l archive située à l adresse http://www-connex.lip6. fr/~schwander/enseignement/2016-2017/m2stat_gd/tisseo.zip. Extraire l archive puis changer le répertoire courant du terminal pour aller là où vous avez extrait l archive. Par exemple, si l archive a été téléchargée dans le répertoire ~/Téléchargements puis extraite dans le répertoire tisseo : cd ~/Téléchargements/tisseo Question 1.1 Regarder les fichiers.sql contenu dans l archive. Expliquer leur rôle puis exécuter les commandes suivantes pour charger les données dans la base. psql -h localhost -p 5433 tisseo < creabasetisseo.sql psql -h localhost -p 5433 tisseo < insertcalendars.sql psql -h localhost -p 5433 tisseo < insertroutes.sql psql -h localhost -p 5433 tisseo < insertstops.sql psql -h localhost -p 5433 tisseo < inserttrips.sql psql -h localhost -p 5433 tisseo < insertstoptimes1.sql psql -h localhost -p 5433 tisseo < insertstoptimes2.sql psql -h localhost -p 5433 tisseo < insertstoptimes3.sql psql -h localhost -p 5433 tisseo < insertstoptimes4.sql psql -h localhost -p 5433 tisseo < insertstoptimes5.sql psql -h localhost -p 5433 tisseo < insertstoptimes6.sql psql -h localhost -p 5433 tisseo < insertstoptimes7.sql psql -h localhost -p 5433 tisseo < insertstoptimes8.sql psql -h localhost -p 5433 tisseo < insertstoptimes9.sql Remarque : ces opérations sont à effectuer dans le shell et PAS dans le client SQL (on ne doit donc pas avoir de tisseo=# au début des lignes). Cela va prendre un peu de temps et de nombreuses lignes vont s afficher. 2 Schéma Le schéma de la base est le suivant : CALENDAR (service_id, monday, tuesday, wednesday, thursday, friday, saturday, sunday, start_date, end_date) CALENDAR_DATES (#service_id, date_service, exception_type) ROUTES (route_id, route_short_name, route_long_name, route_desc, route_type) STOPS (stop_id, stop_code, stop_name, location_type, #parent_station) TRIPS (trip_id, #service_id, #route_id, trip_headsign, direction_id) STOP_TIMES (#trip_id, #stop_id, stop_sequence, arrival_time, departure_time) 2

Table CALENDAR calendrier d activité des services de transport : service_id : identifiant de service, Monday : booléen indiquant si le service est actif le lundi, Tuesday : booléen indiquant si le service est actif le mardi, Wednesday : booléen indiquant si le service est actif le mercredi, Thursday : booléen indiquant si le service est actif le jeudi, Friday : booléen indiquant si le service est actif le vendredi, Saturday : booléen indiquant si le service est actif le samedi, Sunday : booléen indiquant si le service est actif le dimanche, start_date : date de début de mise en service, end_date : date de fin de mise en service. Table CALENDAR_DATES calendrier des exceptions de services : service_id : identifiant du service, date_service : date du service concerné, exception_type : identifiant de l exception. Table ROUTES les lignes de bus, métro et les navettes : Route_id : identifiant unique d une ligne, Route_short_name : numéro ou nom de ligne de bus ou nom de la navette, Route_long_name : nom des deux bouts de ligne, Route_desc : description plus longue de la route, Route_type : type de la ligne. (0 - Tram, 1 Metro, 3 Bus). Table STOPS tous les arrêts du réseau des bus : Stop_id : l identifiant unique d un arrêt, Stop_code : un code plus court pour une recherche plus facile pour les utilisateurs, Stop_name : le nom de l arrêt, Location_type : 0 pour un arrêt simple et 1 pour une station plus grande qui contient plusieurs arrêts simples, Parent_station : identifiant de l arrêt parent ; tous les arrêts qui ont un arrêt parent ont une valeur d attribut Location_type égale à 0. Table TRIPS tronçons de deux ou plusieurs arrêts : Trip_id : identifiant d un tronçon, service_id : identifiant d un service, route_id : identifiant d une ligne, trip_headsign : message d affichage du tronçon, direction_id : direction du tronçon (0 aller, 1 retour). Table STOP_TIMES Indications horaires des tronçons et arrêts : trip_id : identifiant du tronçon, 3

stop_id : identifiant d un aret, stop_sequence : position de l arrêt dans le tronçon, arrival_time : heure d arrivée à l arrêt, departure_time : heure de depart de l arrêt. Remarque : on peut utiliser les commandes \dt pour visualiser la liste des tables et \d table pour visualiser la structure d une table. Question 2.1 Quelles sont les clés primaires? Expliquer pourquoi les valeurs sont bien uniques. Question 2.2 Quelles sont les clés étrangères? Détailler les liens entre tables. 3 Interrogation Question 3.1 Donner la liste complète des lignes. Question 3.2 Donner les lignes de métro. Question 3.3 Donner le numéro et l intitulé de la ligne correspondant à la route 11821949021891625. Question 3.4 Donner, par ordre décroissant de jours hebdomadaires travaillés, les services qui fonctionnent (ou ont fonctionné) le dimanche. Question 3.5 Donner le nombre de lignes de tram, de métro et de bus. 4

Question 3.6 Donner les trip_headsign associés aux différentes lignes. 4 Mise à jour Question 4.1 Insérer dans la table Calendar_dates une ligne correspondand à la déclaration d une exception de type 3 en date du 1er janvier 2014 pour le service 12345679. Que se passe-t-il? Question 4.2 Le service 4503599629230145 qui circule entre le 2 janvier 2013 et le 31 octobre 2013 circule le dimanche. Mettre à jour la table Calendar. Question 4.3 La ligne T2 Aéroport / Palais de justice du tramway de Toulouse a été construite depuis l exportation de la base de données. Ajouter cette ligne dans la table routes. 5 Création d un schéma On s intéresse maintenant à la définition d un schéma, à partir de la description des données à stocker. Description de la base Un vétérinaire cherche à stocker des données sur des animaux et leur propriétaire. Les propriétaires sont décrits par leur nom et leur prénom, et peuvent posséder plusieurs animaux. Un animal est décrit par son nom, son âge, son espèce, un numéro de dossier unique de 20 caractères, un booléen indiquant s il suit un traitement ou non et la date de la dernière visite. Un animal n est possédé que par un seul propriétaire. Question 5.1 Dessiner le schéma entité-association correspondant à cette description. Question 5.2 Donner un exemple d entrées dans les différentes tables de cette base. 5

Question 5.3 Propriétaire L identifiant sera un entier, les noms et prénoms seront du type VARCHAR(beaucoup) ou de type TEXT pour des noms de longueur arbitrairement grande (plus compliqué à gérer pour le serveur). Animal Le numéro de dossier est par définition une chaîne de 20 caractères de long CHAR(20). Le nom de l animal sera VARCHAR(beaucoup) ou TEXT. L âge un INTEGER correspondant au nombre d années (on pourrait compter plus précisément en mois, mais un entier est ici le plus naturel). L espèce est a priori quelque chose d assez court donc VARCHAR(pas trop) est satisfaisant (le plus logique sera d avoir une troisième table avec les espèces, et donc une clé étrangère ici). La date est au format DATE ou DATETIME si on veut conserver l heure du rendez-vous (si on voulait un historique plus détaillé, il faudrait plutôt faire une table des rendez-vous). La colonne traitement est naturellement de type BOOLEAN. Question 5.4 Créer les tables nécessaires à l aide d une séquence de requêtes CREATE. Question 5.5 Insérer dans la base les données de votre exemple. Question 5.6 Écrire une requête pour récupérer la liste des animaux suivant un traitement, avec le nom de leur propriétaire. 6