1 Introduction et installation



Documents pareils
Le langage SQL Rappels

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

16H Cours / 18H TD / 20H TP

TD n 10 : Ma première Base de Données

Bases de données relationnelles

Langage SQL : créer et interroger une base

MODE OPERATOIRE OPENOFFICE BASE

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

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

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

Bases de données élémentaires Maude Manouvrier

Tutoriel Drupal version 7 :

Introduction au Système de Gestion de Base de Données et aux Base de Données

1 Modélisation d une base de données pour une société de bourse

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

SQL Historique

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

Bases de Données. Plan

Présentation du module Base de données spatio-temporelles

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Information utiles. webpage : Google+ : digiusto/

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Cours Bases de données

Créer le schéma relationnel d une base de données ACCESS

CREATION WEB DYNAMIQUE

Vincent Augusto

Les bases de données

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Pratique et administration des systèmes

Bases de données avancées Introduction

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

Cours 1 : introduction

Dossier I Découverte de Base d Open Office

Bases de données - Modèle relationnel

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

Les bases de données Page 1 / 8

Pour les débutants. langage de définition des données

Objectifs du TP : Initiation à Access

Base de données relationnelle et requêtes SQL

les techniques d'extraction, les formulaires et intégration dans un site WEB

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

< Atelier 1 /> Démarrer une application web

Conception des bases de données : Modèle Entité-Association

PHP 5. La base de données MySql. A. Belaïd 1

POVERELLO KASONGO Lucien SIO 2, SISR SITUATION PROFESSIONNELLE OCS INVENTORY NG ET GLPI

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Création de Sous-Formulaires

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Bases de données Outils de gestion

Le Langage SQL version Oracle

Guide d usage pour Word 2007

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

INTRODUCTION AU DATA MINING

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

SQL MAP. Etude d un logiciel SQL Injection

Mysql avec EasyPhp. 1 er mars 2006

Introduction aux Bases de Données

Compte Rendu d intégration d application

Les BASES de DONNEES dans WampServer

Création d un site Internet

Devenez un véritable développeur web en 3 mois!

MO-Call pour les Ordinateurs. Guide de l utilisateur

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

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Connexion entre une BD FileMaker Pro 10 et ArcGis 10.x sous Windows 7

Bases de données relationnelles : Introduction

Bases de Données relationnelles et leurs systèmes de Gestion

1 Presentation du bandeau. 2 Principe de création d un projet : C2 industrialisation Apprendre Gantt project Ver 2.6 planifier

SOMMAIRE. Travailler avec les requêtes... 3

Manuel du logiciel PrestaTest.

INTRODUCTION : Données structurées et accès simplifié

Initiation à Excel. Frédéric Gava (MCF)

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

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

PRÉSENTÉ PAR : NOVEMBRE 2007

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

OUAPI Guide d installation Outil d administration de parc informatique. Documentation d installation et de paramétrage

Système Normalisé de Gestion des Bibliothèques -SYNGEB : version Réseau-

Cartographie Informatique Eclairage Public

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

Introduction à Eclipse

Bases de données cours 1

Guide de configuration. Logiciel de courriel

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

PARAMETRAGE D INTERNET EXPLORER POUR L UTILISATION DE GRIOTTE

Bases de données Cours 1 : Généralités sur les bases de données

I. MySQL : Serveur et SGBD

Transcription:

TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on va se servir de bases de données déjà créées sur lesquelles on va réaliser des requêtes SQL à l aide du logiciel EasyPHP. 1 Introduction et installation 1.1 Définitions d une base de données Une base de données est un grand ensemble de données structurées et mémorisées sur un support permanent. Cela permet un accès direct à des données précises, plutôt que de devoir faire une lecture et une analyse de toutes les informations contenues dans un fichier quelconque afin d obtenir l information souhaitée. Les bases de données permettent aussi d éviter la perte d information en cas de pannes ou d erreurs logicielles ou matérielles. Les données sont stockées dans des tableaux à deux dimensions appelés tables. Chaque colonne a un nom appelé attribut, leur ordre n a pas d importance, mais ils doivent être distincts. À chaque attribut A est associé un domaine noté Dom(A), qui représente l ensemble des valeurs possibles de l attribut. Un domaine est décrit par un type (chaine de caractères, entier etc.) auquel on peut associer des contraintes. Par exemple, le domaine de l attribut couleur défini par {rouge, vert, bleu} est de type CHAR. Une ligne de la table contient des valeurs pour chacun des attributs et est appelée n-uplet ou tuple. Ils ne sont pas ordonnés et les doublons ne sont pas pris en compte. L ensemble des n-uplets d une table s appelle une relation. Une base de données relationnelle (BDR) est formée d un ensemble de relations. Un schéma de relation R(A 1, A 2,..., A n ) est constitué d un nom R et d une liste d attributs A 1, A 2,..., A n. Par exemple, la base de données Aéroport que nous allons utiliser est composée des trois schémas de relation suivants 1 : Avion(NumAV,NomAV,Capacite,Localisation) Pilote(NumP,NameP,Adresse,Salaire) Vol(NumV,NumP,NumAV,Dep T,Arr T,Dep H,Arr H) 1. le modèle entité-association qui permet de modéliser le réel sous cette forme n est pas au programme.

TP d introduction aux bases de données 2 où les attributs sont entre parenthèses : NumAV représente le Numéro de l AVion etc. Cette base de données est remplie des tuples suivants : Avion NumAV NomAV Capacite Localisation 101 A300 300 Marseille 102 A330 300 Nice 103 A300 300 Paris 104 A330 300 Marseille 105 A330 300 Marseille 106 A320 300 Nice 107 A320 300 Marseille 108 A330 300 Paris 109 A350 500 Paris Pilote NumP NomP Adresse Salaire 2 Pierre Nice 325 000 3 Pierre Paris 250 000 4 Alain Marseille 250 000 5 Roger Marseille 250 000 6 Brice Nice 300 000 7 Norbert Marseille 325 000 8 Roger Paris 250 000 9 Roger Paris 300 000 Vol NumV NumP NumAV DEP H DEP V ARR H ARR V 1002 3 104 2 : 00 PM Marseille 2 : 20 PM Nice 1003 4 105 1 : 00 AM Paris 2 : 05 AM Nice 1004 2 101 12 : 00 AM Paris 1 : 00 PM Marseille 1005 3 101 12 : 00 AM Marseille 12 : 45 PM Lyon 1006 4 107 9 : 00 AM Nice 9 : 20 AM Marseille 1007 5 101 10 : 00 AM Paris 10 : 45 AM Lyon 1008 6 101 7 : 00 PM Lyon 7 : 45 PM Marseille 1009 7 101 4 : 00 PM Paris 5 : 00 PM Marseille 1010 2 109 8 : 00 AM Nice 9 : 00 AM Paris On remarque que certains attributs sont soulignés ou en italique. C est ce que l on appelle des clés : une clé primaire représente l ensemble minimal d attributs qui permet d identifier de façon unique chaque tuple d une relation. La clé est souvent limitée à un seul attribut, qui prend des valeurs distinctes pour chaque tuple de la relation. Il peut y avoir plusieurs clés, on les appelle alors des clés candidates et on en choisit alors une qui devient la clé primaire. Dans le cas présenté, on n a pas le choix, seule NumAV convient pour la relation Avion. une clé étrangère explicite les liens entre les tables de la base de données. Elle permet d assurer que les relations entre tables demeurent cohérentes. Quand une table possède une clé étrangère vers une autre table, il n est pas possible d ajouter un tuple dans la première si un tuple correspondant n existe pas dans l autre. C est le cas de NumV et NumP dans la relation Vol. 1.2 Opérations sur une base de données On cherche un langage qui puisse : définir les données : création et destruction d une relation, ajout et suppression d un attribut, définition des contraintes (clés) ; les manipuler : saisie des tuples d une relation, affichage et modification de ceux-ci mais aussi pouvoir faire des requêtes, c est-à-dire consulter des relations. En théorie, on se base sur l algèbre relationnelle, qui est un langage procédural (on indique comment trouver le résultat), facile à programmer mais difficile pour un utilisateur. En pratique, on utilise le langage SQL (Structured Query Language), qui est un langage déclaratif (on indique ce que l on veut faire). C est plus facile et naturel pour l utilisateur, SQL se charge ensuite de traduire et d optimiser la requête en utilisant l algèbre relationnelle. Les opérations sur une base de données prennent en entrée une ou deux relations (ensembles de tuples) et le résultat est toujours une relation (un ensemble aussi). On parle d opérations relationnelles (ensemblistes).

TP d introduction aux bases de données 3 Il y a 5 opérations de base pour exprimer toutes les requêtes. Deux opérations unaires que sont la projection et la sélection et trois opérations binaires que sont l union, la différence et le produit cartésien. D autres opérations s expriment en fonction de ces 5 opérations de base : la jointure, l intersection et la division. On ne les détaillera pas ici, on se limitera plutôt à leur utilisation au travers de la syntaxe SQL dans la partie suivante. 1.3 Installation 1.3.1 Prérequis On a besoin de trois choses : Un serveur, par exemple Apache, pour stocker la base de données. Un système de gestion de base de données (SGBD 2 ) qui est un logiciel système destiné à stocker et à partager des informations dans une base de données. Cela tout en garantissant la qualité, la pérennité et la confidentialité des informations, et en cachant la complexité des opérations. Il y en a des commerciaux 3 comme Oracle Express, IBM DB2 ou Microsoft SQL Server mais aussi des libres comme MySQL que nous utiliserons. Un logiciel d administration de MySQL au travers d une interface utilisateur passant par une page web. On utilisera PhpMyAdmin. On peut les installer séparément quelque soit le système d exploitation et les paramétrer, mais il est plus aisé d utiliser un package tout fait. Sous Windows, on dispose d EasyPhp (voir ci-dessous) ou de WAMP (pour Windows Apache MySQL Php). Sous Linux et Mac, on trouve les équivalents LAMP et MAMP. 1.3.2 Installation sous Windows Le logiciel libre EasyPhp comprend le SGBD MySQL, un serveur Apache pou stocker la base de données et l interface d administration PhpMyAdmin. Pour l installer, il suffit d aller sur le site http: //www.easyphp.org et de télécharger la dernière version. Une fois le logiciel installé, une petite icône en forme de e carré apparait dans la barre des tâches. En cliquant dessus, on peut vérifier que les serveurs MySQL (et Apache) ont bien été démarrés. Ouvrir un navigateur internet pour se rendre à l adresse locale http://localhost/home. Sur cette page d accueil, repérer le module Administration MySQL : phpmyadmin et cliquer sur open. 2. ou DBMS, pour database management system, en anglais. 3. qui sont souvent gratuits pour usage particulier ou éducatif.

TP d introduction aux bases de données 4 On se retrouve alors sur l interface phpmyadmin de gestion de la base de données suivante : On peut alors : Changer la langue en français. Aller dans l onglet Bases de données et créer une base de données qui a pour nom : avions. Celle-ci apparaît alors dans le bandeau de gauche. Cliquer dessus pour la sélectionner puis aller dans l onglet Importer. Dans la partie Fichier à importer, parcourir son ordinateur afin de charger la base de données déjà remplie avions.sql et cliquer sur le bouton Exécuter en bas de la page.

TP d introduction aux bases de données 5 On voit alors apparaître des nouvelles tables dans l onglet de gauche, cliquer dessus pour voir ce qu elles contiennent. On remarque alors, en haut, un bandeau vert détaillant ce que phpmyadmin a fait, le temps qu il a mis et surtout, en dessous, la requête SQL correspondant à ce qu il vient de faire 4. 2 Utilisation SQL est le langage des requêtes standard pour les SGDB relationnels. Il n est pas sensible à la casse (majuscule ou minuscule) mais nous indiquerons la syntaxe en majuscule pour plus de lisibilité. 2.1 Projection La projection définit une partie des attributs (colonnes) d une table. Par exemple, pour connaître le nom et la localisation des avions, on projette la relation Avion en ne gardant que les attributs NomAV et Localisation avec : NomAV, Localisation Avion NomAV Localisation A300 Marseille...... A350 Paris Q1. Remarques : On peut obtenir l intégralité d une table avec * suivi du nom de celle-ci. On peut ordonner le résultat en rajoutant ORDER BY suivi de l attribut et au besoin de DESC (descendant) ou ASC (ascendant). On peut limiter les résultats aux tuples entre d et d + n en rajoutant LIMIT d,n. Écrire une requête donnant la liste des pilotes par ordre alphabétique descendant avec leurs salaire. 2.2 Sélection La sélection permet de ne choisir que certains tuples (lignes) d une table à l aide de la clause WHERE. Par exemple, pour connaître tous les attributs des avions de type A330, on écrit : * Avion WHERE NomAV = A330 NumAV NomAV Capacite Localisation 102 A330 300 Nice 104 A330 300 Marseille 105 A330 300 Marseille 108 A330 300 Paris Q2. Remarque : D autres opérateurs sont compris par SQL, comme > ou <=, par exemple. On peut, bien entendu, combiner sélection et projection. Écrire une requête donnant la localisation et le numéro des avions de plus de 300 places. 4. c est un des intérêts d EasyPHP et cela permet de se familiariser avec la syntaxe SQL.

TP d introduction aux bases de données 6 2.3 Union, intersection et différence À l aide des opérateurs AND, OR, NOT, on peut réaliser des sélections sur des unions, intersections ou différences de domaines d attributs, qui sont des ensembles. Par exemple, pour connaître les heures de départ et d arrivée de tous les vols partant de Paris et allant à Marseille, on écrit : WHERE DEP_H, ARR_H Vol DEP_V = Paris AND ARR_V = Marseille DEP H ARR H 12 : 00 AM 1 : 00 PM 4 : 00 PM 5 : 00 PM Q3. Q4. Écrire une requête donnant les numéros et noms des avions localisés à Nice ou qui ont moins de 350 passagers. Écrire une requête donnant les adresses et salaires des pilotes s appelant Roger sauf ceux qui habitent Marseille. 2.4 Agrégation L agrégation calcule un résultat sur le domaine d un attribut. Les fonctions d agrégation possibles sont MAX, MIN, SUM, AVG (moyenne), COUNT. Par exemple, pour connaître le salaire moyen d un pilote, on écrit : AVG(Salaire) Pilote AVG(Salaire) 281250.0000 Q5. Écrire une requête donnant le nombre d A330. 2.5 Produit cartésien Le produit cartésien de deux relations (tables) est composé de tuples, obtenus en formant toutes les associations possibles de tuples de chacune des deux relations. Par exemple, on fait le produit cartésien d Avion et Pilote en écrivant : * Avion, Pilote NumAV NomAV Capacite Localisation NumP NomP Adresse Salaire 101 A300 300 Marseille 2 Pierre Nice 325 000 101 A300 300 Marseille 3 Pierre Paris 250 000........................ 109 A350 500 Paris 8 Roger Paris 250 000 109 A350 500 Paris 9 Roger Paris 300 000 La table correspondante est imposante (elle contient 9 8 = 72 tuples) et possède beaucoup d information redondante. C est d ailleurs une des raisons pour laquelle on préfère séparer les tables lorsque l on utilise des bases de données! Il est plus utile de limiter le produit cartésien aux données qui nous intéressent, cf ci-après.

TP d introduction aux bases de données 7 2.6 Jointure Lorsque l on veut faire une sélection sur plusieurs relations à la fois, on les réunit avec une jointure. On réalise pour cela le produit cartésien des relations puis on sélectionne les tuples qui vérifient une condition particulière. Par exemple, pour connaître les noms de pilotes des différents vols, on réunit les relations Vol et Pilote grâce à la clé commune NumP, puis on sélectionne les données demandées ainsi : ON NumV, NomP Vol JOIN Pilote Vol.NumP=Pilote.NumP NumV NomP 1004 Pierre 1010 Pierre 1002 Pierre 1005 Pierre 1003 Alain 1006 Alain 1007 Roger 1008 Brice 1009 Norbert Q6. Écrire une requête donnant la localisation actuelle des avions ainsi que l heure de départ et la ville de laquelle ils doivent partir pour leur vol. 2.7 On mélange tout! Q7. Écrire une requête donnant le nombre de vols dont le pilote gagne au moins 300 000 euros et habite à Nice. On s intéressera aux requêtes imbriquées et aux regroupements de tuples dans le TP suivant...