Algèbre Relationnelle et Introduction au Langage SQL



Documents pareils
Le langage SQL Rappels

1 Introduction et installation

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Le Langage SQL version Oracle

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

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

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

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

16H Cours / 18H TD / 20H TP

INTRODUCTION AU DATA MINING

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

MODE OPERATOIRE OPENOFFICE BASE

Langage SQL : créer et interroger une base

Les bases de données

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

Bases de données relationnelles

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

Dossier I Découverte de Base d Open Office

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

Créer le schéma relationnel d une base de données ACCESS

Introduction aux Bases de Données 2004/2005

Bases de Données. Plan

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

TP Bases de données réparties

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

SOMMAIRE. Travailler avec les requêtes... 3

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

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

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

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Cours SQL. Base du langage SQL et des bases de données

Cours: Les Jointures 1

UE 8 Systèmes d information de gestion Le programme

SQL Historique

Bases de données avancées Introduction

Le langage SQL (première partie) c Olivier Caron

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

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

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

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Optimisation SQL. Quelques règles de bases

Information utiles. webpage : Google+ : digiusto/

Encryptions, compression et partitionnement des données

COURS de BASES de DONNEES

Bases de données élémentaires Maude Manouvrier

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

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

Interpréteur d algèbre relationnelle

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

Bases de données cours 1

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

TP 8: LES OPERATEURS ENSEMBLISTES

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

Vincent Augusto

Bases de données Page 1 de 11. Bases de données. Prof. : Dzenan Ridjanovic

Objectifs du TP : Initiation à Access

Évaluation et optimisation de requêtes

Business Intelligence

FileMaker 13. Guide de référence SQL

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Année Universitaire 2009/2010 Session 2 de Printemps

Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques

Bases de données Outils de gestion

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

Cours 1 : introduction

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

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012

Installation et Mise en œuvre de MySQL

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

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

Base de Données et Langage SQL

2 Serveurs OLAP et introduction au Data Mining

Introduction aux SGBDR

Master I Génie Logiciel

Bases de données. PTSI Lycée Eiffel. 28 février 2014

SUPPORT SQL. Thierry GRANDADAM

Administration des bases de données. Jean-Yves Antoine

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

Olivier Mondet

Business Intelligence avec Excel, Power BI et Office 365

Base de données relationnelle et requêtes SQL

FONDEMENTS MATHÉMATIQUES 12 E ANNÉE. Mathématiques financières

Introduction à Business Objects. J. Akoka I. Wattiau

OLAP : Mondrian + Pentaho. Maguelonne Teisseire Hugo Alatrista Salas hugo.alatrista- salas@teledetec9on.fr Flavien Bouillot

Le Langage De Description De Données(LDD)

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

SUGARCRM MODULE RAPPORTS

Thème : Gestion commerciale

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

Création de Sous-Formulaires

Gestion de références bibliographiques

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

MySQL / SQL EXEMPLES

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

HERAKLES Page 1 sur 11 PARAMETRAGE DE GSI FICHE PARAMETRAGE DE GSI

Transcription:

T-GSI STAGE RENOVATION - SQL.Chapitre 1 - Algèbre Relationnelle et Introduction au Langage SQL Sources du document : Livre bible Oracle 9i, J. Gabillaud, Editions Eni ; Support Oracle ; ISO Norme 2382:1999 parties 1 à 5, ISO Norme 9075 parties 1 à 14 corrigées en 2005. Sources du document : Site sql.developpez.com ; Manuel SQL PostgreSQL (existe en plusieurs versions HTML, PDF ). Olivier Mondet http://unidentified-one.net A. Les requêtes Une requête est destinée à obtenir des informations précises et ordonnées sur la base de données. On peut également par le biais des requêtes : effectuer des calculs, obtenir des statistiques, modifier les tables, créer de nouvelles tables gérer des utilisateurs Trois façons de créer des requêtes : L algèbre relationnelle qui permet de préparer une requête en utilisant un langage algébrique. Le QBE (Query By Exemple), qui est un mode graphique où l on clique sur les éléments choisis pour construire la requête. C est un moyen interactif et puissant utilisé par Access. Le SQL (Structured Query Langage) qui est le langage des requêtes, qui est plus puisant que le QBE et plus universel. B. L algèbre relationnelle B.1. Définition de l algèbre relationnelle Ensemble d opérations permettant de manipuler des relations (schéma relationnel) et produisant comme résultat de nouvelles relations. Basé sur le langage algébrique de Codd (Edgar Frank Codd décédé en 2003, père entre autre des «Forme Normales»). Ch.1 - Algèbre Relationnelle, Introduction au Langage SQL.doc page 1 / 10 om (2001-2005)

B.2. Objectif de l algèbre relationnelle Description algorithmique ou symbolique préliminaire à l utilisation d un langage non procédural de type SQL. B.3. Types d opérations Opérations spécifiques au modèle relationnel (Opérateurs relationnels) : Les opérations spécifiques sont unitaires comme la Projection et la Sélection (une relation manipulée) ou binaire comme la Jointure. Plusieurs types de Jointures existent : Equijointure (ou jointure naturelle), Jointure externe gauche ou droite (cela sera détaillé avec la clause JOIN dans le chapitre qui suit). Opérations de la théorie des ensembles (Opérateurs ensemblistes) : Degré d une relation : C est le nombre de constituants (attributs) qui participent à cette relation. Notion de t-uplet : Pour une relation de degré t, chaque occurrence de cette relation est un t-uplet (ou tuple). C. Opérateurs de base C.1. La projection La projection permet d extraire des données d une table, en ne conservant que les colonnes souhaitées. R2 = PROJECTION R1(Nom-Champ, Nom-Champ ) R1 et R2 sont deux relations, entre parenthèses figurent les critères de projection. SELECT Nom-Table.Nom-Champ, Nom-Table.Nom-Champ FROM Nom-Table; Exemple : Soit la table FILM qui permet de gérer une vidéothèque. FILM Ch.1 - Algèbre Relationnelle, Introduction au Langage SQL.doc page 2 / 10 om (2001-2005)

no-film titre durée production code-catégorie 10 Camille Claudel 150 Gaumont COMD 20 Fenêtre sur cour 120 Pathé COMD 25 Sueurs froides 115 Pathé COMD 50 Cendrillon 140 UGC DESA 64 Super Mondet II 10 Universal DOCU 65 La vie des coccinelles 60. UGC DOCU 71 La guerre des étoiles I 120 Paramounth COMD......... On veut faire une projection des colonnes no-film et titre de la table FILM : R1 = PROJECTION FILM(no-film, titre) SELECT FILM.no-film, FILM.titre FROM FILM; no-film titre 10 Camille Claudel 20 Fenêtre sur cour 25 Sueurs froides 50 Cendrillon 64 Super Mondet II 65 La vie des coccinelles 71 La guerre des étoiles I...... C.2. La sélection Permet d extraire les lignes d une table qui vérifient la réalisation d une certaine condition (on parle parfois de critère). R2 = SELECTION R1(Expression conditionnelle) R1 et R2 sont deux relations, entre parenthèses figure le critère de sélection. SELECT Nom-Table.Nom-Champ, Nom-Table.Nom-Champ FROM Nom-Table WHERE Critère de sélection; Opérateurs de comparaison : =!= <> > >= < <= Ch.1 - Algèbre Relationnelle, Introduction au Langage SQL.doc page 3 / 10 om (2001-2005)

Exemple : Soit la table FILM qui permet de gérer une vidéothèque. FILM no-film titre durée production code-catégorie 10 Camille Claudel 150 Gaumont COMD 20 Fenêtre sur cour 120 Pathé COMD 25 Sueurs froides 115 Pathé COMD 50 Cendrillon 140 UGC DESA 64 Super Mondet II 10 Universal DOCU 65 La vie des coccinelles 60. UGC DOCU 71 La guerre des étoiles I 120 Paramounth COMD......... On aimerait avoir les titres des films produits par Pathé. R1 = SELECTION FILM(production = "Pathé") R2 = PROJECTION R1(titre) SELECT FILM.titre FROM FILM WHERE FILM.production = "Pathé"; titre Fenêtre sur cour Sueurs froides C.3. La jointure La jointure consiste donc à combiner deux tables ligne à ligne en vérifiant la concordance entre certaines colonnes des deux tables. Autrement dit, cela permet de relier deux tables ayant un champ commun et de faire correspondre les lignes qui ont une même valeur. R3 = R1 R2 (Expression conditionnelle) Ou R3 = JOINTURE R1.R2 (Expression conditionnelle) R1 et R2 sont deux relations, entre parenthèses figure le critère de jointure. SELECT Nom-Table.Nom-Champ, Nom-table.Nom-Champ FROM Nom-Table, Nom-Table WHERE Condition de jointure; Opérateurs de comparaison : =!= <> > >= < <= Ch.1 - Algèbre Relationnelle, Introduction au Langage SQL.doc page 4 / 10 om (2001-2005)

Exemple : Soient les tables FILM et CATÉGORIE qui permettent de gérer une vidéothèque. FILM no-film titre durée production code-catégorie 10 Camille Claudel 150 Gaumont COMD 20 Fenêtre sur cour 120 Pathé COMD 25 Sueurs froides 115 Pathé COMD 50 Cendrillon 140 UGC DESA 64 Super Mondet II 10 Universal DOCU 65 La vie des coccinelles 60. UGC DOCU 71 La guerre des étoiles I 120 Paramounth COMD......... CATÉGORIE code-catégorie libellé-catégorie COMD comédie dramatique DESA dessin animé DOCU documentaire...... On souhaiterait avoir le titre des films ainsi que les libellés de leurs catégories (et non leur code ). R1 = FILM CATÉGORIE (FILM.code-catégorie = CATÉGORIE.code-catégorie) R2 = PROJECTION R1(titre, libellé-catégorie) SELECT FILM.titre, CATÉGORIE.libellé-catégorie FROM FILM, CATÉGORIE WHERE FILM.code-catégorie = CATÉGORIE.code-catégorie; titre libellé-catégorie Camille Claudel comédie dramatique Fenêtre sur cour comédie dramatique Sueurs froides comédie dramatique Cendrillon dessin animé Super Mondet II documentaire La vie des coccinelles documentaire La guerre des étoiles I comédie dramatique Remarque n 1 : Il est bien évidement possible de faire plusieurs jointures, autant qu il y a de tables à relier entre elles. Equijointure : le pivot utilise l opérateur = (jointure naturelle) Thétajointure : le pivot utilise les opérateurs <, <=, >, >=,!= ou <> Remarque n 2 : Il est possible d utiliser des alias (pour simplifier) pour nommer une table différemment dans la requête. Par exemple : SELECT F.titre, C.libellé-catégorie FROM FILM F, CATÉGORIE C WHERE F.code-catégorie = C.code-catégorie; Ch.1 - Algèbre Relationnelle, Introduction au Langage SQL.doc page 5 / 10 om (2001-2005)

C.4. Combinaison des opérateurs de base Une requête d extraction de données sur une base de données est la plupart du temps une combinaison astucieuse des trois opérations de base. On peut donc selon les besoins combiner les instructions. L opérateur AND permet d avoir plusieurs conditions de sélection. L instruction ORDER BY permet de trier selon l ordre d un des champs (ASCendant ou DESCendant). Exemple de séquence d opérations algébriques : R3 = R1 R2(Condition de Jointure) R4 = SELECTION R3(Critère de sélection ET Critère de sélection) R5 = SELECTION R4(Critère de sélection) R6 = PROJECTION R5(Nom-Champ, Nom-Champ, ) Exemple de séquence d instructions SQL : SELECT Nom-Table.Nom-Champ, Nom-table.Nom-Champ FROM Nom-Table, Nom-Table WHERE Condition de jointure AND Condition ORDER BY Nom-Table.Nom-Champ ASC; Exemple : Soient les tables FILM et CATÉGORIE qui permettent de gérer une vidéothèque. FILM no-film titre durée production code-catégorie 10 Camille Claudel 150 Gaumont COMD 20 Fenêtre sur cour 120 Pathé COMD 25 Sueurs froides 115 Pathé COMD 50 Cendrillon 140 UGC DESA 64 Super Mondet II 10 Universal DOCU 65 La vie des coccinelles 60. UGC DOCU 71 La guerre des étoiles I 120 Paramounth COMD......... CATÉGORIE code-catégorie libellé-catégorie COMD comédie dramatique DESA dessin animé DOCU documentaire...... On souhaiterait avoir le numéro, le titre des films, les libellés des catégories auxquelles ils appartiennent uniquement pour les films de plus de 100 minutes. Le tout trié alphabétiquement (ordre ascendant) selon le titre du film. R1 = FILM CATÉGORIE (FILM.code-catégorie = CATÉGORIE.code-catégorie) R2 = SELECTION R1(R1.Durée > 100) R3 = PROJECTION R2(no-film, titre, libellé-catégorie) SELECT FILM.no-film, FILM.titre, CATÉGORIE.libellé-catégorie FROM FILM, CATÉGORIE WHERE FILM.code-catégorie = CATÉGORIE.code-catégorie; AND FILM.Durée > 100 ORDER BY FILM.titre ASC; Ch.1 - Algèbre Relationnelle, Introduction au Langage SQL.doc page 6 / 10 om (2001-2005)

no-film titre libellé-catégorie 10 Camille Claudel comédie dramatique 50 Cendrillon dessin animé 20 Fenêtre sur cour comédie dramatique 71 La guerre des étoiles I comédie dramatique 65 La vie des coccinelles documentaire 25 Sueurs froides comédie dramatique 64 Super Mondet II documentaire Si l on avait demandé un classement dans l ordre inverse (descendant) : SELECT FILM.no-film, FILM.titre, CATÉGORIE.Libellé-catégorie FROM FILM, CATÉGORIE WHERE FILM.code-catégorie = CATÉGORIE.code-catégorie; AND FILM.Durée > 100 ORDER BY FILM.titre DESC; no-film titre libellé-catégorie 64 Super Mondet II documentaire 25 Sueurs froides comédie dramatique 65 La vie des coccinelles documentaire 71 La guerre des étoiles I comédie dramatique 20 Fenêtre sur cour comédie dramatique 50 Cendrillon dessin animé 10 Camille Claudel comédie dramatique D. Autres opérateurs (ensemblistes) D.1. L union (ou / or) L union consiste à combiner deux relations (compatibles) pour créer une troisième relation qui contient toutes les occurrences appartenant à l une ou à l autre des relations de départ. R3 = R1 R2 Ou R3 = UNION (R1, R2) FROM Nom-Table1 UNION FROM Nom-Table2; On peut utiliser UNION [ALL] pour avoir toutes les lignes communes aux deux tables (y compris celles en double), sans cela les doublons sont éliminés. Ch.1 - Algèbre Relationnelle, Introduction au Langage SQL.doc page 7 / 10 om (2001-2005)

Exemple : Soient les tables ANGLAIS et ESPAGN qui permettent de gérer les candidats à des épreuves de langue. ANGLAIS 10123 DUPONT Patrick 94010 10309 HERISSON Patrick 94010 10405 MAGNAN Hélène 75250 ESPAGN 10025 ACQUINO Patricia 91260 On souhaiterait obtenir la liste des candidats passant les épreuves d anglais ou d espagnol (l union des deux tables) (sans doublons). R1 = ANGLAIS ESPAGN FROM ANGLAIS UNION FROM ESPAGN; 10123 DUPONT Patrick 94010 10309 HERISSON Patrick 94010 10405 MAGNAN Hélène 75250 10025 ACQUINO Patricia 91260 D.2. L intersection (et / and) L intersection consiste à combiner deux relations (compatibles) pour créer une troisième relation qui contient toutes les occurrences appartenant à l une et à l autre des relations de départ. R3 = R1 R2 Ou R3 = INTERSECTION (R1, R2) FROM Nom-Table1 INTERSECT FROM Nom-Table2; Ch.1 - Algèbre Relationnelle, Introduction au Langage SQL.doc page 8 / 10 om (2001-2005)

Exemple : Soient les tables ANGLAIS et ESPAGN qui permettent de gérer les candidats à des épreuves de langue. ANGLAIS 10123 DUPONT Patrick 94010 10309 HERISSON Patrick 94010 10405 MAGNAN Hélène 75250 ESPAGN 10025 ACQUINO Patricia 91260 On souhaiterait obtenir souhaiterait obtenir la liste des candidats passant les épreuves d anglais et d espagnol (l intersection des deux tables). R1 = ANGLAIS ESPAGN FROM ANGLAIS INTERSECT FROM ESPAGN; D.3. La différence (non / not) La différence consiste à combiner deux relations (compatibles) pour créer une troisième relation qui contient toutes les occurrences appartenant à l une des relations et non contenues dans l autre des relations de départ. Deux différences sont possibles. R3 = R1 - R2 R3 = R2 R1 Ou R3 = DIFFERENCE (R1, R2) R3 = DIFFERENCE (R1, R2) FROM Nom-Table2 MINUS FROM Nom-Table1; FROM Nom-Table1 MINUS FROM Nom-Table2; Ch.1 - Algèbre Relationnelle, Introduction au Langage SQL.doc page 9 / 10 om (2001-2005)

Exemple : Soient les tables ANGLAIS et ESPAGN qui permettent de gérer les candidats à des épreuves de langue. ANGLAIS 10123 DUPONT Patrick 94010 10309 HERISSON Patrick 94010 10405 MAGNAN Hélène 75250 ESPAGN 10025 ACQUINO Patricia 91260 On souhaiterait obtenir souhaiterait obtenir la liste des candidats passant les épreuves d anglais seulement. R1 = ANGLAIS - ESPAGN FROM ANGLAIS MINUS FROM ESPAGN; Il est possible de combiner les opérateurs UNION, INTERSECT et MINUS, il faut pour cela utiliser des parenthèses pour déterminer les ordres de priorité de ces opérateurs. ANGLAIS nocandidat nomcandidat Prénomcandidat numétablissement 10123 DUPONT Patrick 94010 10309 HERISSON Patrick 94010 10405 MAGNAN Hélène 75250 Olivier Mondet http://unidentified-one.net Ch.1 - Algèbre Relationnelle, Introduction au Langage SQL.doc page 10 / 10 om (2001-2005)