Vous êtes sur la page 1sur 15

RECHERCHE D’INFORMATION

Recherche d’information – BTS CG - ©Arnauhasse

Table des matières


1. L’organisation des données dans un système informatique ...................................................... 3
I La base de données ................................................................................................................. 3
II Du SGBDR à la donnée élémentaire ....................................................................................... 3
2. Derrière une base de données, un modèle relationnel .............................................................. 5
I Derrière une table, une relation ................................................................................................ 5
II Un ensemble de tables correspond à un modèle relationnel ................................................... 6
3. Les opérateurs relationnels : requêtes sur une ou plusieurs tables ........................................... 7
I La projection ............................................................................................................................. 7
II La restriction ............................................................................................................................ 7
III La jointure............................................................................................................................... 8
4. Le langage SQL : requêtes sur une seule table ........................................................................ 9
I Les requêtes de projection ....................................................................................................... 9
II Les requêtes de projection et de restriction ............................................................................. 9
5. Le langage SQL : requêtes entre plusieurs tables................................................................... 10
I Les requêtes de projection, de restriction et de jointure ......................................................... 10
II La rédaction simplifiée des requêtes ..................................................................................... 11
6. Le langage SQL : requêtes de calculs ..................................................................................... 11
I Réaliser des calculs à l’aide d’une requête SQL .................................................................... 11
II Construire des requêtes SQL avec clause de regroupement ................................................ 12
7. Trier les informations et présenter des indicateurs de gestion ................................................ 12
I Le tri ....................................................................................................................................... 12
II Les tris croisés ...................................................................................................................... 13
8. La mise en œuvre de requêtes SQL dans le PGI EBP ............................................................ 14
I Mettre en oeuvre l’« Outil de requêtage » .............................................................................. 14
II Accéder au schéma complet des bases de données ............................................................ 14

P a g e 2 | 15
Recherche d’information – BTS CG - ©Arnauhasse

1. L’organisation des données dans un système informatique

I La base de données
Quelle que soit l’activité de l’entreprise, elle nécessite de stocker des données : une liste de produits en
vente, une liste de clients, une liste des commandes… Une base de données nait souvent par l’ajout
d’informations dans un traitement de texte ou dans un tableur, mais à mesure que le volume de données
devient important, cela devient de plus en plus difficile d’éviter les incohérences et les redondances de
données. Ajoutons à cela la difficulté, voire l’impossibilité d’accéder au contenu de ces fichiers simultanément
par plusieurs personnes, ou l’impossible garantie que seules les personnes autorisées y auront accès et
vous obtenez la liste des besoins auxquels répond un système de gestion de base de données
relationnelle (SGBDR). Il en existe une vingtaine sur le marché, les plus connus étant Oracle, Microsoft
SQL Server et MySQL.

II Du SGBDR à la donnée élémentaire

Un SGBDR contient des bases de données. Une


« base » est un « ensemble » de données. Par
exemple une base de données « paie », une base
« achats », une base « vente produits »…

Une base de données contient des tables. Une


« table » correspond à un « sous ensemble » de la
base, généralement présenté sous forme de tableau.
Par exemple la base de données vente produits est
composée d’une table clients, une table produits…

Une table contient des enregistrements, également


appelés « occurrences ». Ils correspondent aux lignes
du tableau. Par exemple, la table client a autant de
lignes qu’il y a de clients dans l’entreprise.

Un enregistrement est défini sur plusieurs champs.


Ils correspondent aux colonnes du tableau. Par
exemple pour chaque client est précisé son nom, son
adresse, sa ville…

À l’intersection d’un enregistrement et d’un champ se


trouve une valeur (appelée donnée). Par exemple
« Marseille » correspond à la ville du client « n° 25 ».

III L’organisation des données

P a g e 3 | 15
Recherche d’information – BTS CG - ©Arnauhasse

Le rôle d’une base de données est de faciliter le travail de collecte et d’organisation des informations. Dans
le cas d’une activité de vente de matériel informatique, on peut aisément imaginer que l’on aura un
catalogue de produits qui pourront être commandés par des clients. On doit donc disposer d’une table avec
des produits, et d’une autre table avec des clients.

P a g e 4 | 15
Recherche d’information – BTS CG - ©Arnauhasse

On parle de
SGBDR (Relationnel) lorsque l’on peut relier une table à une autre grâce à des champs
communs. Le rôle du SGBDR est d’assurer l’intégrité de la base de données : il veille à ce
qu’un champ qui fait référence à un autre champ dans une autre table ne puisse le faire qu’à
condition qu’il n’y ait pas d’erreur. Par exemple, ici, il serait impossible d’enregistrer une
commande avec un produit qui n’existe pas.

2. Derrière une base de données, un modèle relationnel


Le modèle relationnel représente la structure de base de données que le concepteur a utilisée pour concevoir
la base.
I Derrière une table, une relation
Chaque relation du modèle relationnel correspond à une table dans la base de données.
Chaque attribut est un champ dans une table.

Une relation décrit des objets ou des faits.


Exemple : la relation COMMANDE décrit les bons de commande grâce à leur
RELATION numéro, la date de passation de la commande et le numéro du client concerné par
cette commande.

Un attribut est une colonne qui a un type et qui à ce titre ne peut contenir que des
valeurs de ce type de données.
ATTRIBUT Exemple : « NomCli » (nom des clients) est un attribut de la relation CLIENT qui est
de type « chaîne de caractères » et qui permet d’associer un nom au client.

La clé primaire est un des attributs d’une relation. C’est celui qui permet
systématiquement de retrouver les autres de manière sûre.
Exemple : si l’on recherche un bon de commande, connaître uniquement la date de
ATTRIBUT commande ne suffit pas car l’entreprise peut passer plusieurs commandes le même
CLÉ jour… Par contre, connaître le numéro de la commande suffit pour la retrouver de
PRIMAIRE manière sûre car toute commande est numérotée d’un numéro unique.
On notera également qu’une clé primaire contient forcément une valeur et que cette
valeur ne peut être présente qu’une seule fois dans une table.

P a g e 5 | 15
Recherche d’information – BTS CG - ©Arnauhasse

II Un ensemble de tables correspond à un modèle relationnel

Un modèle relationnel est une représentation logique et rationnelle des données que le concepteur a utilisée
pour concevoir la base de données permettant ainsi de la rendre exploitable par un logiciel de type SGBDR.
Il est composé de plusieurs lignes. Chaque ligne s’appelle une relation. Les champs communs qui permettent
de relier les tables entre elles sont appelés « clés primaires » et « clés étrangères ».

La clé étrangère est un attribut d’une relation qui fait référence à la clé primaire
d’une autre relation.
Exemple : dans la relation COMMANDE, « NumCli » correspond à un numéro
de client dans la relation CLIENT.
CLÉ Toute valeur de l’attribut clé étrangère est obligatoirement présente dans les
ÉTRANGÈRE valeurs de l’attribut clé primaire. Par exemple, un bon de commande ne peut
pas faire référence à un numéro de client ne figurant pas dans la
relation CLIENT.
La clé étrangère a un rôle déterminant : elle établit les liaisons entre les
relations.

Il s’agit d’une clé primaire composée de deux ou plusieurs attributs.


CLÉ PRIMAIRE Exemple : pour trouver le nombre de produits « alpha » commandés, il faut
CONCATÉNÉE connaître à la fois le numéro de la commande concernée et le code du produit
concerné.

P a g e 6 | 15
Recherche d’information – BTS CG - ©Arnauhasse

3. Les opérateurs relationnels : requêtes sur une ou plusieurs


tables
Une base de données n’est pas uniquement faite pour stocker des données. Elle doit également permettre
de collecter des informations. Cette collecte se fait au travers de ce que l’on appelle des « requêtes ». Cela
vient du fait que l’on va demander quelque chose au SGBDR. Les requêtes mettent en jeu des opérateurs
relationnels qu’il est indispensable de bien connaître pour pouvoir, par la suite, écrire des requêtes.

I La projection
La projection est l’opération qui consiste à ne retenir que certains champs (colonnes) d’une table. Ainsi, le
résultat d’une projection sera une nouvelle table, plus étroite que celle interrogée.

Exemple
On souhaite connaître les noms des clients et la ville où ils sont domiciliés.
● Table interrogée : CLIENT
● Champs projetés : NomCli et AdresseVilleCli
→Tous les enregistrements (lignes) de la table sont présents, mais seuls les champs « NomCli » et
« AdresseVilleCli » sont affichés.

II La restriction
La restriction est l’opération qui consiste à ne retenir que certains enregistrements (lignes) d’une table, en
fonction d’un critère ou plusieurs critères donnés.

Exemple 1
On souhaite connaître les noms et adresses des clients domiciliés à Avignon.
● Table interrogée : CLIENT
● Champs projetés : NomCli et AdresseRueCli
● Restriction : AdresseVilleCli = « Avignon »
→ Seuls les enregistrements de la table dont le champ « AdresseVilleCli » contient
« Avignon » sont présents, et seuls les champs « NomCli » et « AdresseRueCli » sont affichés.

Exemple 2
On souhaite connaître la liste des produits de la marque « Acer ».
● Table interrogée : PRODUIT
● Champs projetés : Tous
● Restriction : DesignProd qui contient « Acer »
→ Seuls les enregistrements de la table dont le champ « DesignProd » contient « Acer »
sont présents, et tous les champs sont affichés.

Exemple 3
On souhaite sur la requête précédente ne garder que les produits qui coûtent moins de
1 000 €.
● Restriction :
- DesignProd qui contient « Acer »
- PUProd inférieur à 1 000
→ Seuls les enregistrements de la table dont le champ « DesignProd » contient « Acer » et dont le champ « PUProd » contient une valeur inférieure à 1 000
sont présents.

P a g e 7 | 15
Recherche d’information – BTS CG - ©Arnauhasse

III La jointure
La jointure est l’opération qui permet d’afficher des informations provenant de plusieurs tables. L’opération
se réalise grâce aux champs communs entre les différentes tables. Le SGBDR compare les valeurs d’un
champ avec les valeurs contenues dans le champ d’une autre table à laquelle il fait référence et ne retient
les informations demandées que lorsque les deux champs ont la même valeur.

Exemple
On souhaite connaître les numéros des commandes passées par les clients domiciliés à Avignon.
● Tables interrogées : CLIENT et COMMANDE
● Champs projetés : NomCli, AdresseRueCli et NumCom
● Restriction : AdresseVilleCli = « Avignon »
Pour produire ce résultat, il y a en réalité trois opérations successives :
Projection des champs NomCli et AdresseRueCli de la table « CLIENT », puis projection du champ NumCom de la table « COMMANDE ».

Jointure des deux tables sur le champ commun « NumCli ».

Restriction sur le champ « AdresseVilleCli ».

RESULTAT

P a g e 8 | 15
Recherche d’information – BTS CG - ©Arnauhasse

4. Le langage SQL : requêtes sur une seule table

SQL est l’acronyme de Structured Query Language : langage structuré de requêtes. Ce langage permet
d’interagir avec tous les SGBDR. Sa syntaxe se présente sous la forme d’un pseudolangage prenant appui
sur des mots de la langue anglaise et reprenant la logique des opérateurs relationnels. C’est avec ce langage
que les PGI fonctionnent.

I Les requêtes de projection


Les instructions nécessaires à la construction d’une requête projection sont :

SELECT : sur les champs à afficher lors du résultat de la requête

FROM : sur les tables sources

; : pour terminer la requête

Exemple

On souhaite
connaître les
noms des
clients et la ville
où ils sont
domiciliés.

II Les requêtes de projection et de restriction


Les instructions nécessaires à la restriction sont :

WHERE : permet d’annoncer la première restriction

AND / OR : permet d’annoncer les autres restrictions

LIKE NOT = != > >= < <=


: sont des exemples d'opérateurs permettant de préciser la restriction
BETWEEN IS NULL

P a g e 9 | 15
Recherche d’information – BTS CG - ©Arnauhasse

Exemple

On souhaite
connaître…
les noms des
clients
domiciliés à
Avignon ou
Pernes

… les noms des clients domiciliés dans le Vaucluse (84)


[…] WHERE AdresseCPCli LIKE“84%“ ;
LIKE permet de faire une comparaison approximative. LIKE est toujours accompagnée du caractère joker (%) qui permet de remplacer n’importe quelle
chaîne.
… les numéros des commandes passées entre le 01/01/2016 et le 15/01/2016
[…] WHERE DateCom BETWEEN “01/01/2016“ AND “15/01/2016“ ;
BETWEEN permet de définir un intervalle. AND est utilisée ici avec BETWEEN et n’est pas le départ d’une nouvelle restriction.
… les noms des clients domiciliés dans le Vaucluse (84) mais pas Avignon
[…] WHERE AdresseCPCli LIKE “84%”
AND AdresseVilleCli != “Avignon“ ;
AND est le départ d’une nouvelle restriction, d’où l’obligation de remettre le nom du champ sur lequel on veut appliquer la restriction. L’opérateur « différent
de » (!=) permet de ne retenir que les enregistrements où le champ AdresseVilleCli ne contient pas « Avignon ».

5. Le langage SQL : requêtes entre plusieurs tables


SQL permet de réaliser des requêtes sur plusieurs tables en même temps, sans risque de « mélanger » les
données de façon incohérente. Le langage tire cette force des jointures.

I Les requêtes de projection, de restriction et de jointure


Les instructions nécessaires à la jointure sont :

• WHERE sur les champs à afficher lors du résultat de la requête


• TABLE1.ChampCommun = TABLE2.ChampCommun marque la jointure
• AND permet d’annoncer les autres jointures et restrictions éventuelles

Dans une jointure, les champs communs utilisés portent souvent le même nom dans les deux tables. On
préfixe donc chacun des champs du nom de sa table pour qu’en exécutant la requête, le SGBDR sache
exactement de quel champ on parle. Il y aurait trop d’ambiguïté avec une jointure du type :
« WHERE NumCli = NumCli ».

Exemple

On souhaite connaître
les noms et adresses
des clients qui ont déjà
passé une commande
avec au moins deux
produits identiques et
l’on souhaite que la
désignation des
produits et la quantité
commandée
apparaissent
également.

P a g e 10 | 15
Recherche d’information – BTS CG - ©Arnauhasse

Toutes les tables mentionnées dans le FROM n’ont pas forcément de champs projetés dans le SELECT, ou
de champs concernés par une restriction. Mais toutes les tables devront être concernées par au moins une
jointure, sinon la requête est incohérente.

II La rédaction simplifiée des requêtes


Pour simplifier la rédaction des requêtes, on peut également créer des « alias » pour le nom des tables,
c’est-à-dire une écriture raccourcie qui nous permet ensuite de désigner une table :

6. Le langage SQL : requêtes de calculs


Une requête peut prévoir de réaliser des calculs entre les données de la base, de regrouper des données
ou de réaliser des tris.

I Réaliser des calculs à l’aide d’une requête SQL


Une requête SQL peut être réalisée à l’aide d’opérateurs arithmétiques placés sur l’instruction SELECT :
SUM :
calcule une somme de valeurs.
Exemple : Cette requête permet de calculer le total des
SELECT SUM(Quantite) AS “Total quantités facturées (tous produits confondus).
quantités“ L’instruction SUM porte sur des valeurs numériques.
FROM COMPRENDRE

COUNT : Cette requête permet de calculer le nombre de


compte le nombre de valeurs. clients dont dispose l’entreprise. Ne pas confondre
Exemple : SUM et COUNT. L’instruction COUNT peut porter sur
SELECT COUNT(NumCli) AS “Nb clients“ des valeurs textes. Il s’agit de compter combien il y a
FROM CLIENT de valeurs.

MIN : recherche la plus petite valeur.


MAX : recherche la plus grande valeur. Cette requête permet de trouver le prix du produit
AVG : calcule la moyenne des valeurs. le moins cher proposé actuellement par l’entreprise.
Exemple : Pour obtenir le produit le plus cher, il suffit
SELECT MIN(PUProd) AS “Prix du produit le d’utiliser MAX et pour obtenir le prix moyen, il suffit
moins cher“ d’utiliser AVG (« Average » en anglais qui signifie
FROM PRODUIT « Moyenne »).

P a g e 11 | 15
Recherche d’information – BTS CG - ©Arnauhasse

NOW() : renvoie la date du jour.


MONTH : (une date) renvoie le n° de
mois.
YEAR : (une date) renvoie l’année. Cette requête permet de trouver la durée qui s’est
Exemple : écoulée depuis la dernière commande.
SELECT NOW() - MAX(DateCom)
FROM COMMANDE

II Construire des requêtes SQL avec clause de regroupement


L’instruction GROUP BY permet d’effectuer des regroupements.
L’instruction HAVING permet d’exclure certaines réponses.
Exemple

SELECT NomCli, COUNT(NumCom) AS “Nb Cette requête permet de trouver le nom des clients
Commandes“ ayant effectué au moins 5 commandes dans l’année.
FROM CLIENT, COMMANDE Les clients sont regroupés (GROUP BY) par numéro.
WHERE COMMANDE.NumCli = Le décompte (COUNT) recommence donc à chaque
CLIENT.NumCli changement de client. On ne retiendra que (HAVING)
GROUP BY NumCli les noms des clients pour lesquels le décompte donne
HAVING COUNT(NumCom) >= 5 ; un montant d’au moins 5 commandes…

7. Trier les informations et présenter des indicateurs de gestion

I Le tri
Le tri consiste à ordonner les informations d’une table. On peut trier par ordre croissant ou décroissant
une liste de nombres, par ordre chronologique des dates, ou par ordre alphabétique des chaînes de
caractères (de A à Z).
En SQL, c’est l’instruction ORDER BY qui permet de réaliser des tris.
L’instruction est suivie du champ que l’on souhaite trier puis de ASC (ordre croissant), ou DESC (ordre
décroissant).
L’instruction ORDER BY est toujours la dernière instruction de la requête.

Exemple
On souhaite afficher la liste des commandes, mais en plaçant les plus récentes en
premier.
SELECT NumCom, DateCom, NumCli
FROM COMMANDE
ORDER
BY DateCom DESC ;
Pour la liste des commandes avec affichage en premier des plus anciennes, la fin de
la requête serait :
ORDER BY DateCom ASC ;

P a g e 12 | 15
Recherche d’information – BTS CG - ©Arnauhasse

II Les tris croisés


Un tri croisé est un calcul effectué en « croisant » plusieurs variables. Cela permet d’analyser des données
de façon plus fine en mettant en relation deux ou plusieurs variables.

Exemple 1
On souhaite connaître le nombre de clients que l’on a par ville,
en affichant en premier les villes avec le plus de clients.

SELECT COUNT(NumCli) AS «Nombre de clients», AdresseVilleCli


FROM CLIENT
GROUP BY AdresseVilleCli
ORDER BY CoUNT(NumCli) DESC, AdresseVilleCli ASC ;
On a mis en relation les clients et leurs villes en comptant le
nombre de clients par ville.

Exemple 2
On souhaite connaître le chiffre d’affaires que l’on réalise par
ville, en affichant en premier les villes où l’on a le plus gros
chiffre d’affaires.

SELECT SUM(PUProd*Quantite) AS «CA Total», AdresseVilleCli


FROM CLIENT,COMMANDE, COMPRENDRE, PRODUIT
WHERE CLIENT.NumCli = COMMANDE.NumCli
AND COMMAND.NumCom = COMPRENDRE.NumCom
AND COMPRENDRE.RefProd = PRODUIT.RefProd
GROUP BY AdresseVilleCli
ORDER BY SUM(PUProd*Quantite) DESC ;
On a mis en relation le chiffre d’affaires et les villes où il est
réalisé.

Exemple 3
Une requête très similaire permet de connaitre le pourcentage de
chiffre d’affaires par ville…
SELECT SUM(PUProd*Quantite)/n AS “%CA“, AdresseVilleCli[…]
ORDER BY SUM(PUProd*Quantite)/n DESC, AdresseVilleCli ASC ;

n → CA total

P a g e 13 | 15
Recherche d’information – BTS CG - ©Arnauhasse

8. La mise en œuvre de requêtes SQL dans le PGI EBP


Le PGI EBP offre la possibilité d’interroger directement une base de données, grâce à son « Outil de
requêtage ».

I Mettre en oeuvre l’« Outil de requêtage »

En cliquant sur le menu Outils > Outil de requêtage, vous ouvrirez l’« Outil de requêtage » :

II Accéder au schéma complet des bases de données

● En cliquant sur « Ajouter des colonnes », EBP propose la liste complète des champs qui composent la
structure de ses bases de données. Cela permet au besoin de rechercher précisément des champs.

P a g e 14 | 15
Recherche d’information – BTS CG - ©Arnauhasse

● En cliquant sur « Ajouter des tables », EBP propose la liste complète des tables qui composent la
structure de ses bases de données. Cela permet au besoin de rechercher précisément des tables.

P a g e 15 | 15

Vous aimerez peut-être aussi