CHAP 5-1 INTROCUCTION AUX REQUETES

 

I.                   NOTION DE REQUETE

Une requête consiste à interroger une base de données. C’est une question formulée avec un langage adéquat pour laquelle on attend une réponse (résultat de la requête).

Dans un environnement client-serveur, une requête est adressée par une station de travail « client » à un serveur de base de données qui exécute la requête et renvoie au « client » le résultat. Avantage : le client n’a pas à manipuler l’intégralité de la base de données

 

II.                Formulation de requête (sur papier)

 

Les requêtes sont élaborées à partir du modèle relationnel. Pour PREPARER une requête avant de la tester sur machine on peut utiliser soit :

- un langage algébrique

- un tableau

 

EXEMPLE :

Dans l’entreprise Vidéo+ on vous communique les relations (tables) suivantes :

CLIENTS

CODE CLI

NOM CLI

PREN CLI

RUE CLI

VILLE CLI

1

DURAND

Jean-Paul

Rue des Wets

DOUAI

2

ALEXIS

Marc

Rue d'Anjou

WAZIERS

3

LEBIENHEUREUX

Alexandre

Rue Boda

FLERS

CASSETTE

CODE CASS

NOM CASS

PRIX LOC

1

L'homme de Rio

10

2

Passion sur le Net

20

3

Cauchemar informatique

15

4

La belle et l'ordinateur

20

LOCATION

CODE CLI

CODE CASS

DATE LOC

DATE RETOUR

1

2

12/01/1995

13/01/1995

2

1

05/01/1995

06/01/1995

2

2

04/01/1995

05/01/1995

2

3

02/01/1995

05/01/1995

2

4

12/01/1995

15/01/1995

3

4

15/01/1995

16/01/1995

 

On voudrait connaître le nom des clients ayant loué la cassette « Passion sur le Net »

 

·      Solution en langage algébrique

R1=SELECTION(CASSETTE,Nom cass = « Passion sur le net »)

R2=PROJECTION(R1,Code cass)

R3=JOINTURE(R2,LOCATION, R2.Code cass=LOCATION.Code cass)

R4=PROJECTION(R3, Code cli)

R5=JOINTURE(R4,CLIENT,R4.Code cli = CLIENT.Code cli)

R4=PROJECTION(R3,Nom cli)

 

Remarque R2 et R4 sont facultatifs

 

 

 

 

 

 

 

·      Solution « par tableau »

RELATION

OPERATEURS

CONDITION

RELATION

RESULTAT

CASSETTE

Sélection

Projection

Nom cass=« Passion sur le Net »

R1(Code cass)

R1, LOCATION

Jointure

Projection

Code Cass

R2(Code cli)

R2, CLIENT

Jointure

Projection

Code cli

R3(Nom cli)

 

III.              Réalisation des requêtes avec un S.G.B.D. relationnel

 

Pour réaliser des requêtes sur ordinateur, on peut :

utiliser un langage  Q.B.E. (Query By Example)

ou utiliser un langage universel : le S.Q.L. (Structured Query Language)

 

A.                Réalisation d’une requête en QBE

en Q.B.E.  avec le logiciel  ACCESS 2

Le résultat est alors le suivant :

NOM CLI

DURAND

ALEXIS

 

B.                Réalisation d’une requête en langage S.Q.L.

 

SELECT DISTINCTROW CLIENTS.[NOM CLI]

FROM CASSETTE INNER JOIN (CLIENTS INNER JOIN LOCATION ON CLIENTS.[CODE CLI] = LOCATION.[CODE CLI]) ON CASSETTE.[CODE CASS] = LOCATION.[CODE CASS]

WHERE ((CASSETTE.[NOM CASS]="Passion sur le Net"));

 

NB : Access peut traduire une requête QBE en langage SQL mais le code est lourd. Une autre version SQL pourrait être :

SELECT [NOM CLI]

FROM CLIENT, CASSETTE, LOCATION

WHERE CLIENTS.[CODE CLI] = LOCATION.[CODE CLI])

                                   AND CASSETTE.[CODE CASS] = LOCATION.[CODE CASS]

                                   AND CASSETTE.[NOM CASS]="Passion sur le Net" ;

 

Conclusion : le langage SQL est indispensable pour réaliser des requêtes exécutées par un serveur de bases de données SQL (MS SQL Server 2000, Oracle, Interbase, MySql,…)