260 likes | 374 Views
Informatica. Introduzione alle basi di dati Lezione 8 (bis) Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico: 2005-2006. Interrogazioni con Algebra Relazionale.
E N D
Informatica Introduzione alle basi di dati Lezione 8 (bis) Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico: 2005-2006
Interrogazioni con Algebra Relazionale • Dato schema R(Y) di DB, un’interrogazione è una funzione che, per ogni istanza r di R(Y), produce una relazione su un dato insieme di attributi X • Le espressioni di un linguaggio di interrogazione (per esempio, algebra relazionale), permettono di realizzare interrogazioni a un DB • E(r): risultato dell’applicazione dell’espressione E al DB r • E(r) è una relazione
Esempi di Interrogazioni: 1 Impiegati Supervisione
Esempi di Interrogazioni: 1 • Trovare matricola, nome ed età degli impiegati che guadagnano più di 2.000 Matr,Nome,Età(Stip>2.000(Impiegati))
Esempi di Interrogazioni: 1 • Trovare matricola, nome ed età degli impiegati che guadagnano più di 2.000
Esempi di Interrogazioni: 2 • Trovare gli impiegati che guadagnano più del loro capo, mostrando matricola, nome e stipendio di ciascuno di essi e del capo • Definire relazione R che lega (join) descrizione di impiegati a descrizione di capo • Per non confondere gli attributi dell’impiegato e del capo bisogna ridenominare una delle due relazioni
Esempi di Interrogazioni: 2 • Trovare gli impiegati che guadagnano più del loro capo, mostrando matricola, nome e stipendio di ciascuno di essi e del capo • Selezionare le tuple di R tali nelle quali lo stipendio dell’impiegato è superiore a quello del capo
Esempi di Interrogazioni: 2 • Trovare gli impiegati che guadagnano più del loro capo, mostrando matricola, nome e stipendio di ciascuno di essi e del capo • Proiettare risultato su attributo Matr, Nome e Stip di impiegato e sui corrispettivi (ridenominati) di capo
Esempi di Interrogazioni: 2 • Definire relazione R che lega descrizione di impiegati a descrizione di capo • Definire relazione R1 che descrive gli impiegati di ciascun capo • Schema: R1(Matr,Nome,Età,Stip,Capo,Impiegato) R1 = Impiegati Matr=Impiegato Supervisione
Esempi di Interrogazioni: 2 R1 = Impiegati Matr=Impiegato Supervisione R1
Esempi di Interrogazioni: 2 • Definire relazione R che descrive impiegati e capo: per non confondere gli attributi dell’impiegato e del capo ridenominare impiegati R2=MatrC,NomeC,EtàC,StipCMatr,Nome,Età,Stip(Impiegati) R = R1 Capo=MatrC R2
Esempi di Interrogazioni: 2 R2=MatrC,NomeC,EtàC,StipCMatr,Nome,Età,Stip(Impiegati) R2
Esempi di Interrogazioni: 2 R = R1 Capo=MatrC R2 R
Esempi di Interrogazioni: 2 (Impiegati Matr=Impiegato Supervisione) Capo=MatrC MatrC,NomeC,EtàC,StipCMatr,Nome,Età,Stip(Impiegati) • Definire relazione R che descrive impiegati e capo: per non confondere gli attributi dell’impiegato e del capo ridenominare impiegati R2=MatrC,NomeC,EtàC,StipCMatr,Nome,Età,Stip(Impiegati) R = R1 Capo=MatrC R2
Esempi di Interrogazioni: 2 • Selezionare tuple in R in cui lo stipendio dell’impiegato è superiore a quello del capo: Stip>StipC(R)
Esempi di Interrogazioni: 2 • Selezionare tuple in R in cui lo stipendio dell’impiegato è superiore a quello del capo: Stip>StipC(R) Stip>StipC((Impiegati Matr=ImpiegatoSupervisione) Capo=MatrC MatrC,NomeC,EtàC,StipCMatr,Nome,Età,Stip(Impiegati))
Esempi di Interrogazioni: 2 • Proiettare Stip>StipC(R) su attributi richiesti: Matr,Nome,Stip,MatrC,NomeC,StipC(Stip>StipC(R))
Esempi di Interrogazioni: 2 • Proiettare Stip>StipC(R) su attributi richiesti: Matr,Nome,Stip,MatrC,NomeC,StipC(Stip>StipC(R)) Matr,Nome,Stip,MatrC,NomeC,StipC( Stip>StipC((Impiegati Matr=ImpiegatoSupervisione) Capo=MatrC MatrC,NomeC,EtàC,StipCMatr,Nome,Età,Stip(Impiegati)))
Esempi di Interrogazioni: 2 • Trovare gli impiegati che guadagnano più del loro capo, mostrando matricola, nome e stipendio di ciascuno di essi e del capo Matr,Nome,Stip,MatrC,NomeC,StipC( Stip>StipC((Impiegati Matr=ImpiegatoSupervisione) Capo=MatrC MatrC,NomeC,EtàC,StipCMatr,Nome,Età,Stip(Impiegati)))
Esempi di Interrogazioni: 3 • Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di 2.000 • Tutti gli impiegati? Selezionare capi che hanno impiegati con stipendio < 2.000 Capo(Supervisione Matr=Impiegato(Stip<2.000(Impiegati)))
Esempi di Interrogazioni: 3 Capo(Supervisione Matr=Impiegato(Stip<2.000(Impiegati))) Stip<2.000(Impiegati) Capo(Supervisione Matr=Impiegato (Stip<2.000(Impiegati))) Supervisione Matr=Impiegato(Stip<2.000(Impiegati))
Esempi di Interrogazioni: 3 • Sottrarre tali capi all’insieme di tutti i capi Capo(Supervisione) – Capo(Supervisione Matr=Impiegato(Stip<2.000(Impiegati)))
Esempi di Interrogazioni: 3 Capo(Supervisione) – Capo(Supervisione Matr=Impiegato(Stip<2.000(Impiegati))) Capo(Supervisione) – Capo(Supervisione Matr=Impiegato (Stip<2.000(Impiegati))) Capo(Supervisione)
Esempi di Interrogazioni: 3 • Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di 2.000 Matr,Nome(Impiegati Matr=Capo (Capo(Supervisione) – Capo(Supervisione Matr=Impiegato(Stip<2.000(Impiegati)))))
Esempi di Interrogazioni: 3 Impiegati Matr=Capo (Capo(Supervisione) – Capo(Supervisione Matr=Impiegato(Stip<2.000(Impiegati))))
Esempi di Interrogazioni: 3 Matr,Nome(Impiegati Matr=Capo (Capo(Supervisione) – Capo(Supervisione Matr=Impiegato(Stip<2.000(Impiegati)))))