Corso di Elementi di Bioinformatica Ingegneria Biomedica Elementi di Basi di Dati Progettazione di basi di dati: Esercizi di Algebra Relazionale Tratto dalle slide relative al Cap. 3 del libro “Basi di Dati” di Atzeni, Ceri, Paraboschi, Torlone - McGraw-Hill, 1996-2006 AA 2014-15 Esercizi Impiegati Matricola Nome 7309 Rossi 5998 Bianchi 9553 Neri 5698 Bruni 4076 Mori 8123 Lupi Supervisione AA 2014-15 Età 34 37 42 43 45 46 Impiegato 7309 5998 9553 5698 4076 Stipendio 45 38 35 42 50 60 Capo 5698 5698 4076 4076 8123 2 Esercizio 1 • Trovare matricola, nome, età e stipendio degli impiegati che guadagnano più di 40 (Keuro) SELStipendio>40(Impiegati) AA 2014-15 3 Esercizio 2 Trovare matricola, nome ed età degli impiegati che guadagnano più di 40 PROJMatricola, Nome, Età (SELStipendio>40(Impiegati)) AA 2014-15 4 Esercizio 3 Trovare le matricole dei capi degli impiegati che guadagnano più di 40 PROJ ( Supervisione JOIN SEL (Impiegati) ) Capo Impiegato=Matricola Stipendio>40 AA 2014-15 5 Esercizio 4 Trovare nome e stipendio dei capi degli impiegati che guadagnano più di 40 PROJNome,Stipendio (Impiegati JOIN Matricola=Capo PROJCapo(Supervisione JOIN Impiegato=Matricola SELStipendio>40(Impiegati))) AA 2014-15 6 Esercizio 5 Trovare gli impiegati che guadagnano più del proprio capo, mostrando matricola, nome e stipendio dell'impiegato e del capo PROJMatricola, Nome, Stipendio, MatrC, NomeC, StipC (SELStipendio>StipC (RENMatrC, NomeC, StipC, EtàC ← Matricola, Nome, Stipendio, Età (Impiegati) JOIN MatrC=Capo Supervisione AA 2014-15 JOIN Impiegato=Matricola Impiegati))) 7 Esercizio 6 Trovare le matricole dei capi i cui impiegati guadagnano tutti più di 40 PROJCapo (Supervisione) PROJCapo (Supervisione JOIN Impiegato=Matricola SELStipendio ≤ 40(Impiegati)) AA 2014-15 8 NB è sostanzialmente l'approccio usato in SQL Una convenzione e notazione alternativa per i join Ignoriamo il join naturale ... cioè non consideriamo implicitamente condizioni su attributi con nomi uguali Per "riconoscere" attributi con lo stesso nome ... gli premettiamo il nome della relazione Usiamo “assegnazioni” (cioé viste) ... per ridenominare le relazioni e gli attributi (questi ultimi solo quando serve per l'unione) AA 2014-15 9 Esercizio 7 • Trovare gli impiegati che guadagnano più del proprio capo, mostrando matricola, nome e stipendio dell'impiegato e del capo AA 2014-15 10 Esercizio 7 – Soluzione (a) PROJMatricola, Nome, Stipendio, MatrC, NomeC, StipC (SELStipendio>StipC (RENMatrC, NomeC, StipC, EtàC ← Matricola, Nome, Stipendio, Età (Impiegati) JOIN MatrC=Capo Supervisione JOIN Impiegato=Matricola Impiegati)) AA 2014-15 11 Esercizio 7 – Soluzione (b) Capi := Impiegati PROJImpiegati.Matricola, Impiegati.Nome, Impiegati.Stipendio, Capi.Matricola,Capi.Nome, Capi.Stipendio (SELImpiegati.Stipendio>Capi.Stipendio Capi JOIN Matricola=Capo Supervisione JOIN AA 2014-15 Impiegato=Matricola Impiegati)) 12