Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoLucia Pucci Modificato 6 anni fa
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.