Cours: Les Jointures 1



Documents pareils
Langage SQL : créer et interroger une base

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

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Cours: Administration d'une Base de Données

SQL Historique

1 Modélisation d une base de données pour une société de bourse

Le langage SQL Rappels

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

Bases de Données. Plan

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

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

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

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

TP Bases de données réparties

INTRODUCTION AU DATA MINING

SQL pour. Oracle 10g. Razvan Bizoï. Tsoft, Groupe Eyrolles, 2006, ISBN : , ISBN 13 :

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Chapitre 07 Le modèle relationnel des données

Les Utilisateurs dans SharePoint

1 Introduction et installation

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

Bases de données relationnelles

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

Les bases de données

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

MODE OPERATOIRE OPENOFFICE BASE

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

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

SQL Server et Active Directory

A QUOI SERVENT LES BASES DE DONNÉES?

16H Cours / 18H TD / 20H TP

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

Introduction aux Bases de Données 2004/2005

LibreOffice Calc : introduction aux tableaux croisés dynamiques

BTS/CGO P10 SYSTEME INFORMATION Année

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion

Bases de données avancées Introduction

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

Concevoir un modèle de données Gestion des clients et des visites

Les bases de données Page 1 / 8

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Création de Sous-Formulaires

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

Bases de Données relationnelles et leurs systèmes de Gestion

1. SAS FEDERATION SERVER - POINT D'ACCES UNIQUE ET SECURISE AUX DONNEES DE L'ENTREPRISE

Historisation des données

Compétences Business Objects

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

TUTORIEL RADIUS. I. Qu est-ce que RADIUS? II. Création d un groupe et d utilisateur

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

Dans cette définition, il y a trois notions clés: documents, requête, pertinence.

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA

BD et XML : Exercices

Cours SGBD 1. Concepts et langages des Bases de Données Relationnelles

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Configuration d'un annuaire LDAP

Les bases fondamentales du langage Transact SQL

Reporting Services - Administration

1 Introduction. 2 Le modèle relationnel. 3 Algèbre relationnelle 4 SQL. 5 Organisation physique des données 1/228

Le Langage SQL version Oracle

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Interpréteur d algèbre relationnelle

MySQL / SQL EXEMPLES

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

Préparer la synchronisation d'annuaires

Utiliser une base de données

Connexion à une base de données. Connexion à une base de données. Connexion à une base de données Développement d'une application

Bases de données - Modèle relationnel

Le Langage De Description De Données(LDD)

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

Bases de Données Relationnelles. Le Modèle Relationnel

Introduction aux Systèmes de Gestion de Bases de Données Relationnelles. Olivier Losson

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

Master Exploration Informatique des données DataWareHouse

Thème : Gestion commerciale

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Chapitre 5 : Les procédures stockées PL/SQL

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

Session S12 Les bases de l optimisation SQL avec DB2 for i

A QUOI SERVENT LES BASES DE DONNÉES?

SUPPORT SQL. Thierry GRANDADAM

Sauvegarde des bases SQL Express

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

Dossier I Découverte de Base d Open Office

Systèmes de Gestion de Bases de Données

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

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

Authentification avec CAS sous PRONOTE.net Version du lundi 19 septembre 2011

Hibernate vs. le Cloud Computing

A. À propos des annuaires

Année Universitaire 2009/2010 Session 2 de Printemps

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

Analyse comparative entre différents outils de BI (Business Intelligence) :

Compte-rendu de projet de Système de gestion de base de données

Les déclencheurs. Version 1.0. Grégory CASANOVA

Transcription:

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

Paul 2, rue des écureuils 0132547698 Emilie 3, rue du chêne 0198765432 Céline 4, rue des pinsons 0189674523 Facture: Nom_Client Louis 25 Paul 32 Céline 18 Montant 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. SQL 86: FROM customers, orders; SQL 92: Commande CROSS JOIN : FROM customers CROSS JOIN orders;

Quel est le résultat de l'opération Client 1 Facture, en utilisant la Jointure Croisée? B. Jointure Interne 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. Commande NATURAL JOIN : Natural Join 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. FROM customers INNER JOIN orders

ou USING (custid); FROM customers INNER JOIN orders ON customers.custid = orders.custid; Quel est le résultat de l'opération Client 1 Facture, en utilisant la Jointure Interne? C. Jointure Externe 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. Commande OUTER JOIN : FROM customers c LEFT OUTER JOIN orders o ON c.custid = o.custid; 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' Quel est le résultat de l'opération Client 1 Facture, en utilisant la Jointure Externe?

D. Auto-jointure Jointure Interne ou Externe entre deux copies d'une même table. E. Semi-jointure 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. Vous souhaitez obtenir la liste des clients qui ont des factures en cours. 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 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.

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 Attention à ne pas confondre et, UPC, quantity FROM customers LEFT OUTER JOIN orders USING (custid) NATURAL JOIN orderlines;, 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: 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.