1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Documents pareils
Le langage SQL Rappels

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

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

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

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

MODE OPERATOIRE OPENOFFICE BASE

Le Langage SQL version Oracle

1 Introduction et installation

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

Les bases de données

Langage SQL : créer et interroger une base

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

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

Bases de données relationnelles

Les bases de données Page 1 / 8

SQL Historique

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

1. Introduction Création d'une requête...2

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

Dossier I Découverte de Base d Open Office

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

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

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

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

SQL MAP. Etude d un logiciel SQL Injection

16H Cours / 18H TD / 20H TP

Utiliser un tableau de données

Information utiles. webpage : Google+ : digiusto/

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

Les tests logiques avec Excel

Bases de Données. Plan

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Utiliser une base de données

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

SQL Serveur Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

MySQL / SQL EXEMPLES

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

Introduction aux SGBDR

Whitepaper. Méthodologie de création de rapports personnalisés SQL Server Reporting Services

Le Langage De Description De Données(LDD)

Bases de données Page 1 de 11. Bases de données. Prof. : Dzenan Ridjanovic

Objectifs du TP : Initiation à Access

Chapitre 1 : Introduction aux bases de données

Mercredi 15 Janvier 2014

La problématique de la Préservation des Bases de Données. Olivier ROUCHON CINES Groupe PIN Jeudi 7 Octobre

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Utiliser Access ou Excel pour gérer vos données

Créer une base de données

TP Bases de données réparties

LE MODELE CONCEPTUEL DE DONNEES

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

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

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Thème : Gestion commerciale

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

Bases de données élémentaires Maude Manouvrier

Microsoft Excel. Tableur

LibreOffice Calc : introduction aux tableaux croisés dynamiques

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

BUSINESS INTELLIGENCE

Cours 4 : Agrégats et GROUP BY

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

Cours 1 : introduction

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

EXCEL PERFECTIONNEMENT CALCULS AVANCES

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

Le chiffre est le signe, le nombre est la valeur.

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

Chapitre 10. Architectures des systèmes de gestion de bases de données

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

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

OpenOffice Base Gestionnaire de Base de Données

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

Création de Sous-Formulaires

PHP 4 PARTIE : BASE DE DONNEES

Ecole Polytechnique de Louvain INGI Fichiers et bases de données

TP 8: LES OPERATEURS ENSEMBLISTES

Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants

FileMaker 13. Guide de référence SQL

2 Serveurs OLAP et introduction au Data Mining

Mysql. Les requêtes préparées Prepared statements

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

Entrepôt de données 1. Introduction

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

Cours SQL. Base du langage SQL et des bases de données

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

Initiation à la programmation en Python

S8 - INFORMATIQUE COMMERCIALE

MEDIAplus elearning. version 6.6

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Didacticiel PowerAMC 11.0 MPD

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

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Bases de données avancées Introduction

PostgreSQL. Formations. Calendrier... 14

Transcription:

Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de boulangerie). Nous allons apprendre à la «faire parler», à exploiter cette mine d'informations pour mieux connaître sa clientèle et ainsi améliorer sans cesse sa politique commerciale. Nous allons voir pourquoi le lourd travail de structuration mené dans le chapitre précédent va maintenant porter ses fruits 1. LA GESTION DES BASES DE DONNEES RELATIONNELLES A. Les logiciels Une base de données contient l'ensemble des données informatisées d'un système d'information, structurées dans des tables, en respectant les règles de construction du modèle relationnel. Pour créer physiquement (sur le disque dur de l'ordinateur) et exploiter une base de données, il faut avoir recours à un logiciel spécialisé, appelé «système de gestion de bases de données relationnelles» (SGBDR). L'entreprise orientera le choix de son SGBDR en fonction de ses besoins et de ses moyens financiers : pour gérer des bases de données très importantes, elle pourra utiliser un logiciel tel que Oracle (leader mondial), Sybase, SQL Server, Informix ou DB2 ; si ses moyens et ses besoins sont plus limités, elle pourra se tourner vers des logiciels tels que Microsoft Access, Paradox ou Foxpro ; enfin, si l'entreprise ne veut pas investir de budget important et/ou si elle veut héberger sa base de données sur un serveur Web, elle pourra utiliser MySQL, qui est gratuit. B. La structuration de la base de données La structure de la base de données est l'ensemble des structures de toutes les tables et des liens (des relations) qui existent entre elles. La plupart des SGBDR permettent de représenter graphiquement le schéma relationnel de la base de données. Cette possibilité facilite grandement la mise en place et la vérification de la structure de la base de données. Dans l'activité 1, le schéma relationnel de la base FACTURATION, tel que le propose Access, vous est présenté. C. La maintenance de la base de données Pour être utile, une base de données doit être constamment mise à jour. Le SGBDR permet donc de créer de nouveaux enregistrements, de les corriger éventuellement ou d'en supprimer. Ce travail de maintenance est primordial pour éviter les erreurs qui sont mauvaises pour l'image de l'entreprise et entraînent des coûts inutiles. Exemple : Des courriers expédiés à une adresse erronée entraînent des dépenses d'affranchissement inutiles. GESTION Dossier G11 Interroger une BD - SQL Page 1 sur 7

2. L'EXPLOITATION DE LA BASE DE DONNEES Il s'agit essentiellement d'interroger la base de données afin d'en extraire les informations souhaitées par l'utilisateur. A. La requête d'interrogation Une requête d'interrogation est une question que l'on pose à une base de données pour en extraire des informations. Elle pourra porter sur une ou plusieurs tables en fonction de l'endroit où sont stockés les renseignements à extraire. Le résultat de la requête se présentera sous la forme d'une nouvelle table où seront rassemblés les renseignements demandés. Cette interrogation de la base de données est élaborée en utilisant des "outils" appelés «opérations relationnelles». B. Les opérations relationnelles 1. La projection La projection est une opération qui consiste à ne retenir qu'une partie des champs (colonnes) d'une table lorsque l'on interroge la base de données. La projection aboutira ainsi à la création d'une nouvelle table plus étroite que celle qui a été interrogée. Exemple : La liste présentant uniquement le nom des clients et le montant de leurs achats est obtenue par projection des champs concernés à partir de la table CLIENTS. 2. Le tri Le tri consiste à ordonner les lignes d'une table en fonction d'un critère. On précise alors si le tri est croissant ou décroissant. Exemple : La liste des clients triés par ordre alphabétique. Le critère est le nom de l'entreprise cliente. Ce classement des enregistrements de la table peut se faire avec plusieurs critères si nécessaire. Exemple : La liste des clients triés par catégorie, en utilisant le code de la catégorie comme premier critère, puis le nom de l'entreprise comme second critère. 3. La sélection La sélection (appelée aussi «restriction») est une opération qui consiste à ne retenir que certaines lignes (ou enregistrements) de la table en fonction d'un critère (un champ de la table). Cette opération se réalise par l'intermédiaire d'un opérateur de comparaison ou comparateur (=, <>, >, <, >=, <=, comme). On fixe la valeur souhaitée au critère et chaque enregistrement est comparé à celleci. Le logiciel ne retient que les enregistrements pour lesquels la valeur du champ est égale à celle fixée au critère. L'ensemble critère, opérateur et valeur s'appelle une proposition; elle ne peut prendre que deux valeurs: «vrai» ou «faux». Exemple : La liste des clients de la catégorie «HYP». La proposition est: Code de la catégorie = "HYP". 4. La jointure Si l'on veut afficher des informations provenant de plusieurs tables, il faut pouvoir établir des correspondances entre celles-ci. On peut, par exemple, faire correspondre à chaque client le nom de sa ville de résidence (présent dans la table VILLES) grâce au code postal (présent dans la tables (VILLES et dans la table CLIENTS). Pour réaliser ce recoupement d'informations, on effectue une opération appelée «jointure». La jointure s'opère entre deux tables en associant la clé primaire de l'une des tables à la clé étrangère correspondante de l'autre. L'association fonctionne lorsque les deux clés ont la même valeur Exemple : La liste des clients avec leur identité et leur adresse complète : - l'identité (Code de la catégorie, N client dans la catégorie, Nom de l'entreprise) de chaque client se trouve dans la table CLIENTS. Leur adresse (Adresse, Suite, Code postal) se trouve en partie dans CLIENTS et le Nom de la ville dans VILLES; - ces deux tables sont liées puisque le champ Code postal dans la table CLIENTS est la clé étrangère qui référence le Code postal de la clé primaire de la table VILLES Ces quatre opérateurs peuvent être combinés pour aboutir à des requêtes très précises. Exemple : La requête donnant, triés par ordre alphabétique, les noms et adresses complètes des clients de la catégorie «HYP», combine une projection, un tri, une sélection et une jointure. GESTION Dossier G11 Interroger une BD - SQL Page 2 sur 7

C. La programmation des requêtes avec le langage SQL Pour transmettre ses requêtes au SGBDR, l'utilisateur doit les transcrire dans un langage informatique compréhensible par le logiciel. Ce langage, constitué d'un ensemble de commandes comprises par tous les SGBDR, s'appelle «langage structuré d'interrogation» (Structured Query Language en anglais). Il est souvent désigné par le sigle SQL 1. Faire une projection en SQL Les mots du langage utilisés sont: Select, qui indique au SGBDR la liste des champs à afficher. Toutes les requêtes d'interrogation commencent donc par ce mot; from, suivi du nom de la table, qui indique à partir de quelle table seront extraites les informations. Il est donc présent dans toutes les requêtes. Exemple : La requête SQL suivante projette, à partir de la table CLIENTS, une liste comportant les champs mentionnés après Select. Select CLIENTS.Code_categorie, CLIENTS.N _client, CLIENTS.Nom_entreprise, CLIENTS.Montant_achats From CLIENTS; Appelons cette première requête R01. 2. Faire un tri en SQL En plus des deux mots précédents, pour programmer un tri on utilise : Order by, suivi du nom du champ sur lequel on veut le tri. On termine la requête par asc si l'on veut un tri croissant ou desc pour un tri décroissant. Exemple : Liste des clients triés par ordre alphabétique. Supposons que les champs soient les mêmes que dans la requête précédente R01. Il suffit donc de trier R01 sur le champ Nom de l'entreprise de façon croissante. En SQL, si la requête R01 a été enregistrée, on peut programmer : Select * from R01 Order by CLIENTS.Nom_entreprise asc; Le caractère * représente tous les champs de la table. 3. Faire une sélection en SQL Le mot utilisé est: Where, suivi du nom du critère, d'un opérateur de comparaison et de la valeur recherchée pour le critère. Exemple : On souhaite obtenir la liste des clients de la catégorie «HYP». En SQL, on écrira : Select * from CLIENTS Where CLIENTS.Code_categorie="HYP"; Where exprime la sélection. GESTION Dossier G11 Interroger une BD - SQL Page 3 sur 7

4. Faire une jointure en SQL La jointure s'opère entre deux tables liées entre elles, en associant la clé primaire de l'une à la clé étrangère de l'autre. L'association fonctionne lorsque les deux clés ont la même valeur. La jointure sera mentionnée comme critère de sélection dans la clause WHERE TABLE1.cle_primaire=TABLE2.cle_etrangere (ne seront alors affichés que les enregistrements des tables TABLE1 et TABLE2 dont l'identifiant est le même). Exemple : La liste des clients avec leur identité et leur adresse complète : - l'identité de chaque client se trouve dans la table CLIENTS. Leur adresse (Adresse, Suite, Code postal) se trouve en partie dans CLIENTS et le Nom de la ville dans VILLES; - ces deux tables sont liées puisque la clé étrangère Code postal de la table CLIENTS référence Code postal, clé primaire de la table VILLES. En SQL, on écrira : Select CLIENTS.Code_categorie, CLIENTS.N _client, CLIENTS.Nom_entreprise, CLIENTS.Adresse, CLIENTS.Suite, VILLES.Code_postal, VILLES.Nom_ville From CLIENTS, VILLES Where VILLES.Code_postal = CLIENTS.Code_postal; 5. Les opérateurs logiques Nous en étudierons trois : ET, OU et ENTRE. Ils peuvent se combiner entre eux. L'opérateur ET Les deux conditions doivent être satisfaites simultanément. Exemple : Liste des clients dans l'ordre alphabétique (uniquement leur identité et le montant de leurs achats) qui sont des hypermarchés ET qui ont acheté à ce jour plus de 100 000. Cette liste peut être établie par deux requêtes successives : la liste des clients qui sont des hypermarchés puis, à partir de cette liste, celle des clients qui ont acheté pour plus de 100 000 ou, plus simplement, grâce à l'opérateur ET En SQL, And traduit le ET logique : Select CLIENTS.Code_categorie, CLIENTS.N _client, CLIENTS.Nom_entreprise, CLIENTS.Montant_achats From CLIENTS Where CLIENTS.Code_categorie="HYP" And CLIENTS.Montant_achats > 100000 Order by CLIENTS.Nom_entreprise asc; L'opérateur OU Exemple : Quels sont les clients suivis par le représentant «R 1» OU qui sont des hypermarchés? Il suffit que l'une des deux conditions soit satisfaite: certains clients répondent aux deux critères (les clients n O5 HYP001 et HYP002), d'autres à l'un des deux (HYP003 parce que c'est un hypermarché et SUP001 parce qu'il est suivi par le représentant n R l). En SQL, Or traduit le OU logique. Select * from CLIENTS Where CLIENTS.Code_categorie = "HYP" Or CLIENTS.Suivie_representant = "R1"; L'opérateur ENTRE Exemple : Quels sont les clients dont le chiffre d'affaires est compris entre 10 000 et 100 000? Select * from CLIENTS Where CLIENTS.Montant_achats Between 10000 And 20000; GESTION Dossier G11 Interroger une BD - SQL Page 4 sur 7

3. LES FONCTIONS D'AGREGATION Les fonctions d'agrégation permettent d'effectuer des calculs statistiques à partir des données d'une table. Elles sont au nombre de cinq : le comptage, la somme, la moyenne, le maximum et le minimum. A. Le comptage des enregistrements d'une table La fonction de comptage permet de dénombrer le nombre d'occurrences d'une table. En SOL, le comptage s'exprime sous la forme Count(*). Exemple 1 : Combien y a-t-il de clients? Select count(*) As [Nombre de clients] From CLIENTS; On obtient le résultat suivant : Nombre de clients 9 Exemple 2 : Combien y a-t-il d'hypermarchés parmi nos clients? Select count(*) As [Nombre de clients] From CLIENTS Where CLIENTS.Code_categorie = "HYP"; B. La somme Cette fonction permet de totaliser les montants d'un champ numérique. En SOL, elle s'exprime sous la forme suivante : Sum(Nom du champ). Exemple 1 : Quelle est la somme des achats de tous les clients? Select Sum(CLIENTS.Montant_achats) As [Somme des achats] From CLIENTS; Exemple 2 : Quelle est la somme des achats des clients du représentant «R 1»? Select Sum(CLIENTS.Montant_achats) As [Somme des achats] From CLIENTS Where CLIENTS.Suivie_representant = "R1"; C. La moyenne La fonction moyenne calcule la moyenne arithmétique des valeurs d'un champ numérique. En SOL, elle s'exprime sous la forme : Avg(Nom du champ). En anglais, average signifie «moyenne». Exemple : Quelle est la moyenne des achats des boulangeries? Select Avg(CLIENTS.Montant_achats) As [Moyenne des achats] From CLIENTS Where CLIENTS.Code_categorie = "BOU"; D. Le maximum et le minimum Ces fonctions permettent d'identifier les occurrences qui présentent, pour un champ donné, la valeur la plus élevée ou la plus faible. En SQL, elles s'écrivent sous la forme : Max(Nom du champ) et Min(Nom du champ). Exemple : Quel est le montant maximum des achats d'un client? Select Max(CLIENTS.Montant_achats) As [Montant maximum] From CLIENTS; GESTION Dossier G11 Interroger une BD - SQL Page 5 sur 7

Fiche outil sur le Langage SQL Représenter les flux d'informations consiste à analyser les échanges d'informations au sein du système d'information d'une organisation (entreprise, administration ou association) et avec d'autres systèmes d'information. Cette étude permet de produire un diagramme de flux. Ce diagramme donne une vue d ensemble de la circulation de l information entre les acteurs qui participent à la réalisation de l activité étudiée. Définition Le Structured Query Langage est un langage informatique normalisé utilisé par tous les Systèmes de Gestion de Bases de Données Relationnels. Il a été conçu pour permettre à un utilisateur non informaticien de mettre à jour et d interroger une base de données. Syntaxe type d'une requête SELECT liste des champs projetés FROM liste des tables utilisées WHERE critères de jointure AND critères de sélection ORDER BY critère de tri ; Une requête commence toujours par le mot SELECT et se termine toujours par un point-virgule. Démarche de réalisation d'une requête GESTION Dossier G11 Interroger une BD - SQL Page 6 sur 7

Les questions à se poser 1. Quels sont les champs qui doivent figurer dans la feuille de réponse? 2. Quelles sont les tables nécessaires? 3. Si plusieurs tables sont nécessaires, quel(s) champ(s) les relient? Quel(s) critère(s) de sélection retenir? 4. Doit-on afficher les lignes de la feuille de réponse dans un certain ordre? Les instructions à utiliser SELECT FROM WHERE "Quand" ORDER BY Suivies. Des champs (attributs) projetés*. Les champs sont séparés par une virgule. Du nom des tables utilisées. Les noms des tables sont séparés par une virgule. Du ou des critères de jointure* Entre deux critères de jointure est inséré l opérateur logique AND (et). Entre les critères de jointure et les critères de sélection est inséré l opérateur logique AND (et). Du ou des critère(s) de sélection* Les critères de sélection sont reliés entre eux par des opérateurs logiques : AND (et) ou OR (ou). Des champs* faisant l objet d un tri. Après le champ doit figurer l ordre de tri : ASC (croissant) ou DESC (décroissant). * Chaque champ est toujours précédé du nom de la table dont il est issu Table1.champ2 Quelques compléments Select L opérateur DISTINCT placé après l instruction SELECT permet d éviter les doublons (répétition d une même ligne). Le joker * placé après le nom d une table permet d afficher tous les champs de la table. Le mot clé AS placé après un champ permet de renommer le champ ou de nommer un champ calculé. Quelques fonctions statistiques : AVG() Moyenne des valeurs d une colonne SUM() Somme des valeurs d une colonne MAX() Valeur maximale d une colonne MIN() Valeur Minimale d une colonne ROUND() Arrondi COUNT() Nombre de valeurs d une colonne Where Lorsque la sélection porte sur du texte, la valeur de comparaison doit être mise entre guillemets : "Texte". Lorsqu elle porte sur une date, la date au format mm/jj/aaaa doit être entourée de dièses : #date#. Pour une requête paramétrée (son but : afficher une boite de dialogue invitant l utilisateur à spécifier le critère de sélection), le texte doit être saisi entre crochets : [Message]. L opérateur LIKE signifie «Comme». Il est placé après le champ commençant par (valeur de comparaison). Le joker * remplace n importe quelle chaîne de caractères, _ remplace un caractère et un seul. Des opérateurs de comparaison : = égal < inférieur > supérieur <= inférieur ou égal >= supérieur ou égal <> différent Between entre GESTION Dossier G11 Interroger une BD - SQL Page 7 sur 7