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
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,
Vincoli interrelazionali
I Polinomi Prof.ssa A.Comis.
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
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
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
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
Progettazione 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 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
Interrogazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Interrogazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
I vincoli di integrità Alcuni aspetti della realtà NON possono essere modellati solamente con entità, attributi e relazioni, per esempio i vincoli di integrità.
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
Il modello relazionale
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
SQL per la modifica di basi di dati
Join, una difficoltà Impiegato Reparto Rossi A Neri B Bianchi Reparto
Il modello relazionale
Operatori aggregati e raggruppamenti
Quantificazione Esistenziale ed Universale
Selezione e Proiezione
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere.
Il questionario: progettazione e redazione II Modulo
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.2 Select - 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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