• Aucun résultat trouvé

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES A. Les logiciels

N/A
N/A
Protected

Academic year: 2022

Partager "1. LA GESTION DES BASES DE DONNEES RELATIONNELLES A. Les logiciels"

Copied!
7
0
0

Texte intégral

(1)

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.

(2)

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 relationnelle

s 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é à celle- ci. 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.

(3)

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 : Orderby, 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.

(4)

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

;

(5)

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;

(6)

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

(7)

Les questions à se poser Les instructions

à utiliser Suivies ….

1. Quels sont les champs qui doivent

figurer dans la feuille de réponse ? SELECT

Des champs (attributs) projetés*.

Les champs sont séparés par une virgule.

2. Quelles sont les tables nécessaires

? FROM Du nom des tables utilisées.

Les noms des tables sont séparés par une virgule.

3. Si plusieurs tables sont nécessaires, quel(s) champ(s) les relient ?

WHERE

Du ou des critères de jointure*

Entre deux critères de jointure est inséré l’opérateur logique AND (et).

"Quand" Entre les critères de jointure et les critères de sélection est inséré l’opérateur logique AND (et).

Quel(s) critère(s) de sélection retenir ?

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).

4. Doit-on afficher les lignes de la feuille de réponse dans un certain

ordre ? ORDER BY

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

Références

Documents relatifs

DEFISOLAR SERVICES FRANCE 6 RUE DE LA GARRIGUE

Cette réglementation prévoit notamment une obligation pour l’organisateur d’un spectacle pyrotechnique, comme une commune, de déclarer en préfecture son spectacle

[r]

Conformément aux dispositions de l’article 32 de la loi n°78-17 modifiée dite « Informatique et Libertés » et de l’article 13 du règlement général sur la protection des

Lorsqu’un fabricant a appliqué les modules A1, G ou H pour l’évaluation de la conformité de son navire aux exigences relatives aux émissions sonores, le nom, l’adresse et

Au plan technique, le fichier de correspondances entre le code postal et le code géographique de l’ISQ établit un lien entre le code postal à six caractères et divers

Les candidats qui envisagent la formation en situation d’emploi ou se trouvant dans un statut ouvrant droit à un financement de la part d’un OPCA, d’une collectivité territoriale

CENTRE COMMERCIAL DES TEMPLIERS 27140 GISORS... DU PDT WILSON