Structured Query Language



Documents pareils
Structured Query Language

Bases de Données et Internet

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

Les bases de données

Bases de données relationnelles

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

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

Cours 4 : Agrégats et GROUP BY

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

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

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

MODE OPERATOIRE OPENOFFICE BASE

16H Cours / 18H TD / 20H TP

Systèmes de Gestion de Bases de Données

Initiation à l algorithmique

CREATION WEB DYNAMIQUE

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

Diplôme de Comptabilité et de Gestion. D é c r e t N d u 2 2 d é c e m b r e A r r ê t é d u 8 m a r s

SQL Historique

Cours: Les Jointures 1

Le Langage SQL version Oracle

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Langage SQL : créer et interroger une base

Le langage SQL Rappels

UE 8 Systèmes d information de gestion Le programme

1 Introduction et installation

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL Beauvais. 8 Juillet 2015

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

Année Universitaire 2009/2010 Session 2 de Printemps

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 Outils de gestion

Master Exploration Informatique des données DataWareHouse

Introduction aux Bases de Données 2004/2005

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Introduction aux Bases de Données

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

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

BTS/CGO P10 SYSTEME INFORMATION Année

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

TP Bases de données réparties

(structure des entêtes)

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

Introduction aux SGBDR

Information utiles. webpage : Google+ : digiusto/

Base de données relationnelle et requêtes SQL

Bases de données Cours 4 : Le langage SQL pour ORACLE

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

SQL Server et Active Directory

Présentation du module Base de données spatio-temporelles

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

PostgreSQL. Formations. Calendrier... 14

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

Mysql avec EasyPhp. 1 er mars 2006

Mysql. Les requêtes préparées Prepared statements

ÉTUDE DE CAS. Durée : 5 heures Coefficient : 5 CAS FEFORT ÉLÉMENTS DE CORRECTION

Bases de données multidimensionnelles et mise en œuvre dans Oracle

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

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

Devoir Data WareHouse

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

Bases de données élémentaires Maude Manouvrier

Les Entrepôts de Données

La rencontre du Big Data et du Cloud

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

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

FileMaker 10. Guide ODBC et JDBC

Cours Bases de données

Auto-évaluation SQL. Document: f0453test.fm 19/04/2012. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

Optimisation SQL. Quelques règles de bases

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

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

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

PostgreSQL. Formations. SQL avancé Calendrier... 18

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

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

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

Gestion de base de données

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

Pratique et administration des systèmes

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

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

Les BASES de DONNEES dans WampServer

Programme de formation

Exercices et solutions

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

Manuel Viadeis CRM Connecteur intégration L100 étendue.

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

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

Accès à l'information XML par des requêtes XQuery au travers de son XSchema

Réplication E-maj Foreign Data Wrapper PostGIS PostgreSQL-f

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

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

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

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

IFT3030 Base de données. Chapitre 1 Introduction

Transcription:

Informatique S6 3A Structured Query Language Logique & requêtes SQL Alexis NEDELEC LISYC EA 3883 UBO-ENIB-ENSIETA Centre Européen de Réalité Virtuelle Ecole Nationale d Ingénieurs de Brest enib c 2007 nedelec@enib.fr (ENIB-CERV) Structured Query Language enib c 2007 1 / 11

Equivalences Logiques Un peu de logique (,,,, ) Formules équivalentes x p(x) ( x p(x)) x y p(x, y) x ( y p(x, y)) p q p q Implication : p q Condition nécessaire mais non-suffisante : SI p ALORS q p q p q 0 0 1 0 1 1 1 0 0 1 1 1 Ex : Pour avoir le diplôme ENIB (proposition p) il faut avoir passé 5 années d étude (proposition q) nedelec@enib.fr (ENIB-CERV) Structured Query Language enib c 2007 2 / 11

Récupérer les bars qui servent toutes les bières Reformulation de la question Quelque soit la bière ( bi) de la Base de Donnée, elle doit être servie (s) dans les bars (ba) en question Traduction en calcul relationnel {ba bars(ba), ( bi bieres(bi) s services(ba, bi) s.id bar = ba.id bar s.id biere = bi.id biere)} Equivalence logique : x y p(x, y) x ( y p(x, y)) x y p(x, y) x ( y p(x, y)) {ba bars(ba), ( bi bieres(bi) ( s services(ba, bi)) s.id bar = ba.id bar s.id biere = bi.id biere)} nedelec@enib.fr (ENIB-CERV) Structured Query Language enib c 2007 3 / 11

Récupérer les bars qui servent toutes les bières Traduction SQL, ce que l on veut obtenir (SELECT) SELECT * FROM bars ba WHERE... Traduction SQL, en vérifiant (clause WHERE) NOT EXISTS(SELECT * FROM bieres bi WHERE NOT EXISTS(SELECT * FROM services s WHERE ba.id_bar=s.id_bar AND s.id_biere=bi.id_biere)) nedelec@enib.fr (ENIB-CERV) Structured Query Language enib c 2007 4 / 11

Récupérer les bars qui servent toutes les bières Trouver les bars tel qu il n existe pas de bière pour laquelle... SELECT * FROM bars ba WHERE NOT EXISTS( SELECT * FROM bieres bi... il n existe pas de service associant ce bar et cette bière WHERE NOT EXISTS(SELECT * FROM services s WHERE ba.id_bar=s.id_bar AND s.id_biere=bi.id_biere) ) nedelec@enib.fr (ENIB-CERV) Structured Query Language enib c 2007 5 / 11

Récupérer les bars qui servent toutes les bières Autre formulation naturelle Un bar est sélectionné s il n existe aucune bière n ayant été servie dans ce bar (double negation). Même requête SQL SELECT * FROM bars ba WHERE NOT EXISTS( SELECT * FROM bieres bi WHERE NOT EXISTS( SELECT * FROM services s WHERE ba.id_bar=s.id_bar AND s.id_biere=b i.id_biere) ) nedelec@enib.fr (ENIB-CERV) Structured Query Language enib c 2007 6 / 11

Récupérer les bars qui servent toutes les bières Autre formulation naturelle si la différence entre l ensemble des bieres et l ensemble des bieres servies dans un bar est nulle alors le bar sert toutes les bieres Requête SQL correspondante SELECT bar FROM bars ba WHERE NOT EXISTS ( (SELECT id_biere FROM bieres bi) EXCEPT (SELECT id_biere FROM services WHERE id_bar = ba.id_bar) ); nedelec@enib.fr (ENIB-CERV) Structured Query Language enib c 2007 7 / 11

Récupérer les bars qui servent toutes les bières Autre formulation moins naturelle trouver les bars qui servent un nombre de bieres différentes qui soit égal au nombre total de bieres de la base de données Requête SQL correspondante SELECT bar FROM bars ba NATURAL JOIN services s GROUP BY bar HAVING COUNT(DISTINCT s.id_biere)=(select COUNT(id_biere) FROM bieres); nedelec@enib.fr (ENIB-CERV) Structured Query Language enib c 2007 8 / 11

SQL et Implication bars qui servent les ˆm bières qu au Bar du Coin Reformulation de la question Quelque soit la bière ( bi) servie au Bar du Coin elle doit-être servie dans le bar en question, Si une bière (bi) est servie (s) au Bar du Coin alors elle sera servie (s) dans le bar (ba) en question. Implication (p q) : proposition p : services(bi,bar= Bar du Coin ) proposition q : services(bi,ba) Traduction en calcul relationnel {ba bars(ba), bi services(bi, bar = BarduCoin ) s services(bi, ba)} nedelec@enib.fr (ENIB-CERV) Structured Query Language enib c 2007 9 / 11

SQL et Implication bars qui servent les ˆm bières qu au Bar du Coin Equivalence logique : p q p q bi services(bi, bar = BarduCoin ) s services(bi, ba) Equivalence logique : x p(x) ( x p(x)) ( bi services(bi, bar = BarduCoin ) s services(bi, ba)) Reformulation en calcul relationnel {ba bars(ba), ( s1 services(bi, bar = BarduCoin ) s2 services(bi, ba) s1.id biere = s2.id biere s2.id bar = ba.id bar) nedelec@enib.fr (ENIB-CERV) Structured Query Language enib c 2007 10 / 11

Calcul Relationnel Requêtes SQL et Implication Traduction en SQL SELECT * FROM bars ba WHERE NOT EXISTS(SELECT * FROM services s1 WHERE s1.id_bar IN(SELECT id_bar FROM bars WHERE bar= Bar du Coin ) AND NOT EXISTS(SELECT * FROM services s2 WHERE s2.id_bar = ba.id_bar AND s1.id_biere = s2.id_biere)); nedelec@enib.fr (ENIB-CERV) Structured Query Language enib c 2007 11 / 11