La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C"— Transcript della presentazione:

1 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.2 Select - 2

2 Torniamo allo schema dei figli e dei genitori
Tre schemi di relazione: Persone (Nome, Eta’, Reddito) Maternita’ (NomeMadre, NomeFiglio) Paternita’ (NomePadre, NomeFiglio) 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

3 adattato da Atzeni-etal., Basi di dati, McGrawHill
Domanda 7.2.1 Perche’ nello schema la chiave di Maternita’ e Paternita’ e’ NomeFiglio e non NomeMadre e NomePadre? 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

4 adattato da Atzeni-etal., Basi di dati, McGrawHill
Risposta Perche’ noto il figlio c’e’ una sola madre e un solo padre, mentre una madre e un padre possono avere piu’ figli. Inoltre abbiamo dalle specifiche che il nome identifica univocamente la persona (C’e’ un solo Aldo, una sola Ada, ecc.) 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

5 adattato da Atzeni-etal., Basi di dati, McGrawHill
Domanda 7.2.2 Dati i tre schemi di relazione: Persone (Nome, Eta’, Reddito) Maternita’ (NomeMadre, NomeFiglio) Paternita’ (NomePadre, NomeFiglio) …individua i vincoli di integrita’ referenziale 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

6 adattato da Atzeni-etal., Basi di dati, McGrawHill
Risposta Tre schemi di relazione: Persone (Nome, Eta’, Reddito) Maternita’ (NomeMadre, NomeFiglio) Paternita’ (NomePadre, NomeFiglio) 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

7 adattato da Atzeni-etal., Basi di dati, McGrawHill
Nome Età Persone Reddito Madre Maternità Figlio Luisa Anna Maria Olga Filippo Andrea Aldo Luigi 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 Chiavi esterne primarie Padre Paternità Figlio Luigi Franco Sergio Olga Filippo Andrea Aldo Una istanza 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

8 Ora, per allenarci, eseguiamo alcune interrogazioni “a mente”
04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

9 adattato da Atzeni-etal., Basi di dati, McGrawHill
Domanda 7.2.3 Nome Età Persone Reddito Madre Maternità Figlio Trova: - I figli di Luisa - Le nonne - I genitori di Olga - I genitori con piu’ di un figlio Luisa Anna Maria Olga Filippo Andrea Aldo Luigi 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 Padre Paternità Figlio Luigi Franco Sergio Olga Filippo Andrea Aldo 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

10 adattato da Atzeni-etal., Basi di dati, McGrawHill
Risposte Nome Età Persone Reddito Maternità Madre Figlio I figli di Luisa Maria, Luigi I genitori di Olga Anna, Luigi - Le nonne - Luisa I genitori con piu’ di un figlio Luisa, Anna, Luigi, Franco Luisa Anna Maria Olga Filippo Andrea Aldo Luigi 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 Padre Paternità Figlio Luigi Franco Sergio Olga Filippo Andrea Aldo 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

11 adattato da Atzeni-etal., Basi di dati, McGrawHill
Osservazione Per poter fornire le risposte hai dovuto “navigare” tra le diverse relazioni, utilizzando la proprieta’ gia’ vista del modello relazionale in cui i valori collegano le diverse relazioni 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

12 adattato da Atzeni-etal., Basi di dati, McGrawHill
Attenzione Nel seguito rappresenteremo i termini del linguaggio sia (ad esempio) con SELECT maiuscole, sia con select minuscole 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

13 adattato da Atzeni-etal., Basi di dati, McGrawHill
Primo obiettivo Esprimiamo in SQL l’operazione di selezione delle n-ple in una relazione che rispettano una determinata condizione (Selezione nell’algebra relazionale, vedi prossima trasparenza), e, insieme, l’operazione che produce in output solo alcuni attributi (Proiezione nell’algebra relazionale) 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

14 adattato da Atzeni-etal., Basi di dati, McGrawHill
Attenzione Solo alcuni di voi hanno studiato l’algebra relazionale. Se l’algebra relazionale fa parte del vostro programma, nel seguito vi viene ricordata la espressione della interrogazione in algebra, e poi la espressione mediante SQL. Se non la avete studiata, nessun problema, ignorate la espressione in algebra relazionale. 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

15 Selezione e proiezione: esempio
Nome e reddito delle persone con meno di trenta anni. In Algebra: PROJNome, Reddito(SELEta<30(Persone)) select nome, reddito from persone where eta < 30 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 Paternità Padre 1. La relazione su cui effettuare la interrogazione e’ Persone.  From Persone Non dobbiamo fare nessun prodotto cartesiano. 2. Dobbiamo selezionare le persone con meno di 30 anni.  Where Eta’ < 30 3. Produrre Nome e Reddito  select Nome, Reddito 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

16 Selezione e proiezione: facciamo i vari passaggi
Nome e reddito delle persone con meno di trenta anni select nome, reddito from persone where eta < 30 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 Paternità Padre 1. La relazione su cui effettuare la Interrogazione e’ Persone.  From persone 2. Non dobbiamo fare nessun prodotto Cartesiano 3. Dobbiamo selezionare le persone con meno di 30 anni.  where Eta’ < 30 4. Produrre Nome e Reddito  select Nome, Reddito 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

17 adattato da Atzeni-etal., Basi di dati, McGrawHill
Nome Età Persone Reddito Risultato 21 15 30 Reddito Andrea 27 21 Aldo 25 15 Filippo 26 30 Andrea 27 21 Maria 55 42 Anna 50 35 Filippo 26 30 Luigi 40 Franco 60 20 Olga 41 Sergio 85 Luisa 75 87 Aldo 25 15 Andrea 27 21 Aldo 25 15 Filippo 26 30 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

18 adattato da Atzeni-etal., Basi di dati, McGrawHill
Ridenominazione Si possono fare ridenominazioni su attributi e relazioni con la clausola AS Esempio: Impiegato as I Effetto: nella SELECT Il termine Impiegato puo’ essere sostituito da I Si puo’ anche omettere AS Esempio: Impiegato I 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

19 SELECT, ridenominazioni
select nome, reddito from persone where eta < 30 Puo‘ scriversi, per ragioni di leggibilita‘, come select nome, reddito from persone as personegiovani where eta < 30 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

20 adattato da Atzeni-etal., Basi di dati, McGrawHill
SELECT, abbreviazioni Significa: tutti gli attributi select * from persone where eta < 30 E‘ equivalente a select nome, età, reddito from persone where eta < 30 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

21 Selezione senza proiezione
Nome, età e reddito delle persone con meno di trenta anni SELEta<30(Persone) select * from persone where eta < 30 Produce in output tutti i valori degli attributi di Persone con meno di 30 anni 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

22 Proiezione, senza selezione
Nome e reddito di tutte le persone PROJNome, Reddito(Persone) select nome, reddito from persone 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill

23 adattato da Atzeni-etal., Basi di dati, McGrawHill
Concetti introdotti Selezione delle n-ple che rispettano una condizione Proiezione di un insieme di attributi di una relazione Ridenominazione Operatore * 04/2007 adattato da Atzeni-etal., Basi di dati, McGrawHill


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

Presentazioni simili


Annunci Google