0% ont trouvé ce document utile (0 vote)
153 vues6 pages

Jointures

Transféré par

Andry Nary
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
153 vues6 pages

Jointures

Transféré par

Andry Nary
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Pierre Parrend – Bases de Données Avancées, Module A

Bases de Données Avancées – Module A

IUT Lumière, License CE-STAT


2006-2007
Pierre Parrend

Cours: Les Jointures 1

Plan

Table of Contents
Principe.................................................................................................................................................1
Example................................................................................................................................................1
Types de Jointures................................................................................................................................2
Définitions et examples........................................................................................................................2
Cross Jointure..................................................................................................................................2
Jointure Interne................................................................................................................................3
Jointure Externe...............................................................................................................................4
Auto-jointure....................................................................................................................................5
Semi-jointure...................................................................................................................................5
Non-equi-jointure.............................................................................................................................5
Particularité de l'expression des jointures.............................................................................................5
Les Alias..........................................................................................................................................5
Ordre d'évaluation............................................................................................................................5
Bases de Données anciennes............................................................................................................6
Performance..........................................................................................................................................6

I. Principe

La Jointure est l'opération qui permet d'intégrer plusieurs Tables de Données ensembles,
afin d'effectuer des requêtes prenant en compte des informations réparties entre ces tables.

II. Example

Considérez les Tables de Données Suivantes:

Client:

Nom Adresse Telephone


Louis 1, rue du bouleau 0123456789

CE-STAT, IUT Lumière 2006-2007


Pierre Parrend – Bases de Données Avancées, Module A

Paul 2, rue des écureuils 0132547698


Emilie 3, rue du chêne 0198765432
Céline 4, rue des pinsons 0189674523
Facture:

Nom_Client Montant
Louis 25
Paul 32
Céline 18

III.Types de Jointures

Plusieurs types de jointures existent:


– Cross Jointure (= produit cartésien)
– Jointure Interne (= Inner Join, Equi-join, Natural Join)
– Jointure Externe (= Outer Join)
– Auto Jointure (= Self Join)
– Semi-jointure

IV.Définitions et examples

Nous allons maintenant étudier les propriétés de chaque type de jointure.

A. Cross Jointure

i. Definition

Une Cross-Jointure (Jointure croisée) consiste en le produit cartésien des deux tables sur lesquelles
la jointure est effectuée.

ii. Example

SQL 86:
SELECT cFirstName, cLastName, orderDate
FROM customers, orders;

SQL 92:
Commande CROSS JOIN :
SELECT cFirstName, cLastName, orderDate
FROM customers CROSS JOIN orders;

iii. Exercice

CE-STAT, IUT Lumière 2006-2007


Pierre Parrend – Bases de Données Avancées, Module A

Quel est le résultat de l'opération Client 1 Facture, en utilisant la Jointure Croisée ?

B. Jointure Interne

i. Définition

Une Jointure Interne permet d'intégrer plusieurs Tables de Données en mettant en correspondance
les occurrences de plusieurs tables qui ont un attribut commun.

ii. Example

Commande NATURAL JOIN :


Natural Join
SELECT cFirstName, cLastName, orderDate
FROM customers NATURAL JOIN orders;

Problème:
– Si des attributs de même nom et de signification différente apparaissent dans les tables jointes,
ils seront utilisés pour réaliser la jointure naturelle. D'où un fort risque d'erreur non maîtrisées !
– Si un attribut possède deux noms différent dans les deux tables, la jointure ne peut pas avoir lieu

Solution:
Spécifier le nom du (des) attribut(s) qui servent de référence pour la jointure

Commande INNER JOIN ... USING ou INNER JOIN ON :


Elle permet de préciser le nom de l'attribut utilisé pour réaliser la correspondance entre les tables.

SELECT cFirstName, cLastName, orderDate


FROM customers INNER JOIN orders

CE-STAT, IUT Lumière 2006-2007


Pierre Parrend – Bases de Données Avancées, Module A

USING (custID);
ou
SELECT cFirstName, cLastName, orderDate
FROM customers INNER JOIN orders
ON customers.custID = orders.custID;

iii. Exercice

Quel est le résultat de l'opération Client 1 Facture, en utilisant la Jointure Interne ?

C. Jointure Externe

i. Définition

Problème:
Lors d'une jointure interne, seul les occurrences pour lesquelles des informations existent dans les 2
tables sont conservées.
Par exemple, lors d'une jointure entre la Table de Données 'Clients' et 'Commande', les clients pour
lesquels aucune facture n'est en cours n'apparaitront.

Solution:
La jointure externe conserve l'ensemble des occurrences.

ii. Example

Commande OUTER JOIN :


SELECT cFirstName, cLastName, orderDate
FROM customers c LEFT OUTER JOIN orders o
ON c.custID = o.custID;
SELECT cFirstName, cLastName, orderDate
FROM orders o RIGHT OUTER JOIN customers c
ON o.custID = c.custID;

LEFT OUTER JOIN: prend comme référence la première table de 'from'


RIGHT OUTER JOIN: prend comme référence la dernière table de 'from'
RIGHT FULL JOIN: prend comme référence toutes les tables de 'from'

iii. Exercice

Quel est le résultat de l'opération Client 1 Facture, en utilisant la Jointure Externe ?

CE-STAT, IUT Lumière 2006-2007


Pierre Parrend – Bases de Données Avancées, Module A

D. Auto-jointure

Jointure Interne ou Externe entre deux copies d'une même table.

E. Semi-jointure

i. Définition

La semi-jointure entre deux tables A et B permet de conserver les informations contenues dans A,
mais uniquement pour les occurrences qui existent dans B.

ii. Example

Vous souhaitez obtenir la liste des clients qui ont des factures en cours.

iii. Exercice

Donnez l'expression permettant d'effectuer la requête example:


– en Algèbre Relationnelle

– en SQL

F. Non-equi-jointure

Une jointure est définie selon l'égalité d'attributs de tables différentes. Il est possible d'utiliser une
autre relation (<=, >=, etc.) dans le cadre de 'Non-equi Jointures'.

V. Particularité de l'expression des jointures

A. Les Alias

i. Définition

Un Alias est un nom donné à une Table de Données à l'intérieur d'une requête afin de simplifier
l'expression de celle-ci.

ii. Example

CE-STAT, IUT Lumière 2006-2007


Pierre Parrend – Bases de Données Avancées, Module A

SELECT cFirstName, cLastName, orderDate


FROM customers c INNER JOIN orders o
ON c.custID = o.custID;

B. Ordre d'évaluation

i. Principe

Les jointures sont évaluées de droite à gauche.


r1 1 r2 1 r3 = (r1 1 r2) 1 r3

ii. Example

Attention à ne pas confondre

SELECT cFirstName, cLastName, orderDate, UPC, quantity


FROM customers LEFT OUTER JOIN orders
USING (custID)
NATURAL JOIN orderlines;
et
SELECT cFirstName, cLastName, orderDate, UPC, quantity
FROM customers LEFT OUTER JOIN
(orders NATURAL JOIN orderlines)
USING (custID);

C. Bases de Données anciennes

les expressions concernant les jointures sont définis par SQL 1992. Si vous devez travaillez avec
des bases de données plus anciennes:

SELECT cFirstName, cLastName, orderDate


FROM customers c, orders o
WHERE c.custID = o.custID;

VI.Performance

Problème:
La jointure est l'opération la plus coûteuse sur une Base de Données en terme de performance.

Solution:
Il est donc indispensable de réaliser les opérations de selection/projection autant que possible avant
la jointure.

Example:
Recherche du telephone d'une personne donnée à partir de deux tables, dans un annuaire qui
contient 100 000 entrées.

CE-STAT, IUT Lumière 2006-2007

Vous aimerez peut-être aussi