Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C

Slides:



Advertisements
Presentazioni simili
Istruzione SELECT (versione base)
Advertisements

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti SQL :Structured Query Language: SELECT (IV) SQL (Slide tratte in parte da da Atzeni, Ceri,
SQL, esempi 30/10/2014Basi di dati SQL1. 30/10/2014Basi di dati SQL2 CREATE TABLE, esempi CREATE TABLE corsi( codice numeric NOT NULL PRIMARY KEY, titolo.
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
SQL Linguaggio per l’interrogazione di una base dati.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Capitolo 4:SQL 24/09/2002.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rileaborato da M. Lenzerini - Basi di dati
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
rielaborato da Atzeni-etal., Basi di dati, Capitolo 4
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Interrogazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
A. A – 2008 Basi di dati 1 Corso Prof
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Corso di Basi di Dati Il Linguaggio SQL
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Corso di Basi di Dati Il Linguaggio SQL
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
SQL, Definizione e interrogazione di basi di dati
Programma DB-A Franco Turini.
Interrogazioni Nidificate
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
SQL per la modifica di basi di dati
Operatori aggregati e raggruppamenti
Quantificazione Esistenziale ed Universale
Condizioni decisionali
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere.
Docente: Sabato Bufano
Vincoli di Integrità Non tutte le combinazioni possibili di valori dei domini su cui è definita una relazione sono accettabili. Alcuni attributi possono.
Transcript della presentazione:

Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C. Batini 7. SQL DML 7.9 Interrogazioni nidificate Introduzione

Interrogazioni nidificate Hanno una struttura in cui la clausola WHERE puo’ essere del tipo: … WHERE Attributo o ListadiAttributi OperatoreDiConfronto SELECT … 15/10/2001 adattato da Atzeni-etal., Basi di dati, McGrawHill

Interrogazioni nidificate Nelle interrogazioni nidificate gli operatori di confronto permettono A. il confronto fra uno o piu’ attributi e il risultato di una sottointerrogazione B. l’uso di quantificazioni esistenziali (esiste un …) Come conseguenza, permettono di collegare interrogazioni semplici, citando nella clausola WHERE una interrogazione, e quindi una nuova Select, e costruendo quindi interrogazioni piu’ complesse. 15/10/2001 adattato da Atzeni-etal., Basi di dati, McGrawHill

adattato da Atzeni-etal., Basi di dati, McGrawHill 1. Per ora analizziamo il caso A. confronto di uno o piu’ attributi con il risultato di una sottointerrogazione 15/10/2001 adattato da Atzeni-etal., Basi di dati, McGrawHill

adattato da Atzeni-etal., Basi di dati, McGrawHill Nome Età Persone Reddito Andrea 27 Maria 55 Anna 50 Filippo 26 Luigi Franco 60 Olga 30 Sergio 85 Luisa 75 Aldo 25 21 42 35 40 20 41 87 15 Madre Maternità Figlio Padre Paternità Legami logici 15/10/2001 adattato da Atzeni-etal., Basi di dati, McGrawHill

Interrogazioni nidificate diamo anzitutto un esempio Nome e reddito dei padri di Franco o Sergio select Nome, Reddito from Persone, Paternita where Nome = Padre and Figlio = 'Franco‘ or Figlio = ‘Sergio‘ Puo’ essere resa con una interrogazione nidificata come: select Nome, Reddito from Persone where Nome = any (select Padre from Paternita where Figlio = 'Franco‘ or Figlio = ‘Sergio‘ ) Uno qualunque 15/10/2001 adattato da Atzeni-etal., Basi di dati, McGrawHill

adattato da Atzeni-etal., Basi di dati, McGrawHill Esecuzione della interrogazione nidificata (per ora con procedimento informale) Select Nome, Reddito from Persone where Nome = any ( Select Padre from Paternita where Figlio ='Franco‘ or Figlio =‘Sergio’ ) 1. Ogni valore di Nome nella tabella Persone viene confrontato con il risultato della interrogazione interna, cioe’ i padri di Franco e Sergio. 2. Il confronto fornisce esito VERO se uno qualunque dei padri selezionati con la Select interna coincide con il valore di Nome. 3. Quindi l’esito della interrogazione e’ il nome e reddito dei padri di Franco e Sergio. 15/10/2001 adattato da Atzeni-etal., Basi di dati, McGrawHill

Forma generale delle interrogazioni nidificate SELECT … FROM … WHERE AttributooListaAttributi OperatoreDiConfronto 15/10/2001 adattato da Atzeni-etal., Basi di dati, McGrawHill

Semantica informale delle interrogazioni nidificate - 1 L’attributo (o attributi) nella clausola WHERE puo’ essere confrontato con il risultato della interrogazione mediante: operatori relazionali =, <, >, <=, >=, <> seguiti da: Any (e’ il caso visto poco fa) in questo caso il valore dell’ attributo soddisfa la condizione se risulta vero il confronto con almeno uno dei valori restituiti dalla interrogazione 15/10/2001 adattato da Atzeni-etal., Basi di dati, McGrawHill

Semantica informale delle interrogazioni nidificate - 2 L’attributo (o attributi) nella clausola WHERE puo’ essere confrontato con il risultato della interrogazione mediante operatori relazionali =, <, >, <=, >=, <> seguiti da: 2. All in questo caso il valore dell’ attributo soddisfa la condizione se risulta vero il confronto con tutti i valori restituiti dalla interrogazione 15/10/2001 adattato da Atzeni-etal., Basi di dati, McGrawHill

adattato da Atzeni-etal., Basi di dati, McGrawHill Operatori in e not in Per rappresentare il controllo di appartenenza e di esclusione rispetto a un insieme, e’ possibile usare gli operatori in e not in, che hanno significato del tutto analogo a = any e ≠ all in ha valore VERO se il valore compare nell’insieme risultato della interrogazione not in ha valore VERO se il valore non compare (cioe’ e’ diverso da tutti i valori) nell’insieme risultato della interrogazione. 15/10/2001 adattato da Atzeni-etal., Basi di dati, McGrawHill

2. Secondo caso B. Quantificazione esistenziale (Esiste, Non esiste) 15/10/2001 adattato da Atzeni-etal., Basi di dati, McGrawHill

Quantificazione esistenziale Ulteriore tipo di condizione WHERE EXISTS (Sottoespressione) Dove la sottoespressione e’ una interrogazione SQL Restituisce il valore vero se la interrogazione restituisce un risultato non vuoto (percio’, esiste un valore). 15/10/2001 adattato da Atzeni-etal., Basi di dati, McGrawHill

adattato da Atzeni-etal., Basi di dati, McGrawHill Domanda 7.9.1 Nelle pagine seguenti e’ proposto un esercizio per il quale ti viene chiesto di esprimere in linguaggio naturale il risultato di una interrogazione in cui e’ usata la clausola exists. Se trovi difficolta’, segui la risoluzione passo per passo, cercando ogni volta di formulare la risposta finale. 15/10/2001 adattato da Atzeni-etal., Basi di dati, McGrawHill

adattato da Atzeni-etal., Basi di dati, McGrawHill Esempio di uso della EXISTS - 1 select * from Persone where exists ( select * from Paternita where Padre = Nome) or exists ( select * from Maternita where Madre = Nome) Ogni n-pla di persone e’ confrontata con il risultato della select interna Nome Età Persone Reddito Andrea 27 Maria 55 Anna 50 Filippo 26 Luigi Franco 60 Olga 30 Sergio 85 Luisa 75 Aldo 25 21 42 35 40 20 41 87 15 Madre Maternità Figlio Padre Paternità Analogo per le madri 15/10/2001 adattato da Atzeni-etal., Basi di dati, McGrawHill

adattato da Atzeni-etal., Basi di dati, McGrawHill Esempio di uso della EXISTS - 2 select * from Persone where exists ( select * from Paternita where Padre = Nome) or exists ( select * from Maternita where Madre = Nome) La select interna calcola i figli della persona, vista come padre Nome Età Persone Reddito Andrea 27 Maria 55 Anna 50 Filippo 26 Luigi Franco 60 Olga 30 Sergio 85 Luisa 75 Aldo 25 21 42 35 40 20 41 87 15 Madre Maternità Figlio Padre Paternità La select interna calcola i figli della persona, vista come madre 15/10/2001 adattato da Atzeni-etal., Basi di dati, McGrawHill

adattato da Atzeni-etal., Basi di dati, McGrawHill Esempio di uso della EXISTS - 3 select * from Persone where exists ( select * from Paternita where Padre = Nome) or exists ( select * from Maternita where Madre = Nome) Trova i padri che hanno almeno un figlio Nome Età Persone Reddito Andrea 27 Maria 55 Anna 50 Filippo 26 Luigi Franco 60 Olga 30 Sergio 85 Luisa 75 Aldo 25 21 42 35 40 20 41 87 15 Madre Maternità Figlio Padre Paternità Trova le madri che hanno almeno un figlio 15/10/2001 adattato da Atzeni-etal., Basi di dati, McGrawHill

Esempio di uso della EXISTS - 4 Nome Età Persone Reddito Andrea 27 Maria 55 Anna 50 Filippo 26 Luigi Franco 60 Olga 30 Sergio 85 Luisa 75 Aldo 25 21 42 35 40 20 41 87 15 Madre Maternità Figlio Padre Paternità L’interrogazione seleziona le persone, padri o madri, che hanno almeno un figlio, segnati in rosso nella figura. 15/10/2001 adattato da Atzeni-etal., Basi di dati, McGrawHill

adattato da Atzeni-etal., Basi di dati, McGrawHill Concetti introdotti Select nidificata Operatore IN Operatore ANY Operatore EXISTS 15/10/2001 adattato da Atzeni-etal., Basi di dati, McGrawHill