PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE Gennaro Cordasco e Rosario De Chiara {cordasco,dechiara}@dia.unisa.it Dipartimento di Informatica ed Applicazioni “R.M. Capocelli” Laboratorio ISISLab2 OUTLINE DELLA LEZIONE Riepilogo Inserimento e recupero dati Filtri Query Report 2 RIEPILOGO Nella lezione scorsa abbiamo parlato di : Dato e informazione DB e DBMS Progettazione di un DB Analisi dei requisiti Progettazione concettuale Progettazione logica Schema ER Progettazione fisica Analisi dei requisiti Progettazione Progettazione Progettazione fisica logica concettuale 3 RIEPILOGO: PROGETTAZIONE CONCETTUALE Entità Attributi Relazioni Analisi dei requisiti Progettazione Progettazione Progettazione fisica logica concettuale Schema E/R 4 RIEPILOGO: PROGETTAZIONE CONCETTUALE Entità Per individuare le entità bisogna trovare le componenti omogenee di informazioni all’interno che intendiamo gestire: Esempio: Anagrafica Studenti: Gli studenti, gli esami sono ottimi candidati ad essere entità 5 RIEPILOGO: PROGETTAZIONE CONCETTUALE Attributi Gli attributi sono quei pezzi di informazione che rendono differenti fra loro gli elementi delle entità Esempio: Anagrafica Studenti: In cosa differiscono i 2 elementi appartenenti all’entità studenti fra di loro ? 6 RIEPILOGO: PROGETTAZIONE CONCETTUALE Relazioni La realtà che vogliamo rappresentare è complessa e le entità sono sempre in relazione fra loro Esempio: Anagrafica Studenti: Gli studenti sono un’entità così pure i corsi: qual è la relazione fra studenti ed i corsi? 7 RIEPILOGO: TIPI DI RELAZIONE Relazioni Supponiamo due entità A e B in relazione Relazione Uno a Uno (1 : 1) 1 elemento di A 1 elemento di B 1 elemento di B 1 elemento di A Relazione Uno a Molti (1 : n) 1 elemento di A più elementi di B 1 elemento di B 1 elemento di A Relazione Molti a Molti (n : m) 1 elemento di A più elementi di B 1 elemento di B più elementi di A 8 RIEPILOGO: SCHEMA E/R Schema E/R Entità Nome dell’entità Relazione Nome della relazione Arco di relazione Collega un’entità ad una relazione Attributo Dati interessanti per l’entità, da includere nel database 9 RIEPILOGO: SCHEMA E/R Schema Entità: ente o avvenimento E/R Ha un insieme di attributi Attributo: proprietà di una entità, che ne descrive una qualità Relazione: collegamento tra entità 10 RIEPILOGO: INTEGRITÀ E CHIAVE PRIMARIE Schema Regole di integrità: indicazioni riguardanti l’obbligo della presenza di elementi in entità distinte E/R Esempio: Un elemento dell’entità “Prodotti” deve essere sempre in relazione con un elemento dell’entità “CategorieProdotti” 11 RIEPILOGO: INTEGRITÀ E CHIAVE PRIMARIE Schema Chiave primaria: attributo (o insieme di attributi) dell’entità che identifica univocamente un elemento dell’entità stessa E/R Esempio: L’attributo CodiceFiscale dell’entità “Clienti” L’attributo Matricola dell’entità “Studenti” 12 ESEMPIO: ANAGRAFICA STUDENTI Analisi dei requisiti Progettazione Progettazione Progettazione fisica logica concettuale Gestione del libretto universitario Gestire gli studenti Gestire gli esami con i voti 13 ESEMPIO Analisi dei requisiti Progettazione Progettazione Progettazione fisica logica concettuale Due entità Quali sono gli attributi ? Quali sono le chiavi primarie ? Studenti Corsi 14 ESEMPIO Analisi dei requisiti Progettazione Progettazione Progettazione fisica logica concettuale Il database di esempio che useremo ha le seguenti entità dotate di attributi Studenti Nome Corsi Corso Cognome Matricola Codice 15 ESEMPIO Analisi dei requisiti Progettazione Progettazione Progettazione fisica logica concettuale Vi è un’unica relazione fra corsi e studenti Studenti n Nome Cognome Ha superato l’esame relativo al corso m Matricola Corsi 16 Corso Codice ESEMPIO Analisi dei requisiti Progettazione Progettazione Progettazione fisica logica concettuale Le tabelle 17 ESEMPIO Analisi dei requisiti Progettazione Progettazione Progettazione fisica logica concettuale La relazione La tabella Esami “implementa” la relazione molti-a-molti dello schema E/R 18 INSERIMENTO DATI Abbiamo descritto le relazioni che forniscono una visione d'insieme dei dati La gestione di tutti questi dati richiede strumenti evoluti che tengano conto della struttura 19 RECUPERO DATI Il metodo più semplice per ricercare un dato all’interno di una tabella consiste nell’utilizzare lo strumento Trova. Per attivare tale funzione occorre fare un clic Trova. A questo punto bisogna inserire il nome che si vuole ricercare Di seguito, nel campo Cerca in, dal menu a tendina, bisogna selezionare il campo nel quale vogliamo venga fatta la ricerca, ad esempio su tutta la tabella. I dati in un DB hanno struttura La funzione Trova ignora questa struttura 20 FILTRI Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo requisito Per applicare un filtro a una tabella è necessario lavorare in visualizzazione foglio dati 21 FILTRI Esempio: Visualizzare tutti i record con il cognome Rossi: Fare clic sul campo Cognome, in corrispondenza del cognome “Rossi” 22 FILTRI Esempio: Selezionare Filtro Fare clic su Filtro in base a selezione Il foglio mostrerà tutte e solo le righe del campo Cognome che contengono “Rossi” 23 QUERY Un DB è molto di più di una semplice tabella L’informazione è strutturata Esistono relazioni fra tabelle Quanti tipi diversi e quali sono ? Per estrarre informazioni da un database si utilizzano delle query Una query è una procedura di interrogazione Si possono creare più query per ogni tabella ed interrogare più tabelle in una query 24 QUERY Per creare una query velocemente si può usare la creazione guidata: 25 QUERY Occorre avere chiaro: Qual è l’obiettivo per il quale creare la query Da quale tabella si desiderano le informazioni Quali campi del record è utile visualizzare Se ci sono tabelle, correlate a quella principale, da cui leggere dati In quale ordine devono essere poste le informazioni Quali sono i criteri di selezione da applicare 26 QUERY Il risultato di una query viene chiamato RecordSet Un RecordSet non è una tabella, ma una particolare vista di una porzione dei dati in essa contenuti Una query può offrire risultati desunti da più tabelle in relazione tra loro 27 QUERY I RecordSet delle query create precedentemente possono essere usati in una nuova query I RecordSet sono trattati alla stregua di tabelle i cui valori vengono assemblati dinamicamente 28 QUERY Esistono differenti tipi di query: Query di selezione Query di eliminazione Query di creazione tabella Query di aggiornamento 29 QUERY Query di selezione Sono interrogazioni su una o più tabelle Non modificano i dati I dati presenti nelle tabelle possono essere manipolati per calcolare risultati aggregati Esempio: si possono calcolare medie, valori massimi, totali etc… 30 QUERY Esempio: stampare un elenco degli studenti Le query agiscono su tabelle (ed altre query). Il primo passo da fare è scegliere su quali tabelle/query lavorare 31 QUERY Esempio: stampare un elenco degli studenti Qui vengono mostrate le tabelle da cui attingiamo i dati Tasto di esecuzione della query Qui scegliamo i campi da mostrare nel RecordSet 32 QUERY Esempio: stampare un elenco degli studenti Nota bene: è una query non una tabella Abbiamo nascosto dei campi. Ma si può fare molto di più Tasto per tornare alla struttura della query 33 QUERY Esempio: calcolare la media di tutti gli studenti Quale tabelle prendiamo ? 34 QUERY Esempio: calcolare la media di tutti gli studenti Per calcolare la media useremo i dati provenienti da due tabelle: studenti ed esami Come facciamo ? 35 QUERY Esempio: calcolare la media di tutti gli studenti Scorriamo la lista degli studenti e per ogni studente i. Scorriamo la lista degli esami e troviamo gli esami appartenenti ad i 36 QUERY Esempio: calcolare la media di tutti gli studenti Per aggiungere le tabelle facciamo come al solito 37 QUERY Esempio: calcolare la media di tutti gli studenti Mettere in relazione i dati delle due tabelle Trasciniamo il campo “Matricola” su “Studente” 38 QUERY Esempio: calcolare la media di tutti gli studenti Mettere in relazione i dati delle due tabelle 39 QUERY Esempio: calcolare la media di tutti gli studenti La relazione che abbiamo creato permette di selezionare tutti e soli i record delle due tabelle per cui si ha che “Matricola” = “Studente” 40 QUERY Cosa è successo ? Si parte da un prodotto cartesiano fra due insiemi: { a, b, c } × { x, y } = { ax, ay, bx, by, cx, cy } × = 41 QUERY Da questo prodotto cartesiano selezioniamo solo i record che soddisfano delle condizioni Questa operazione si chiama join × = 42 QUERY Le operazioni di join sono le fondamenta sulle quali sono costruite tutte le operazioni che si possono eseguire sui dati presenti nei DB In particolare possiamo raggruppare gli elementi sul valore di un campo Raggruppare gli elementi permette di calcolare valori aggregati come media, massimo, minimo etc… 43 QUERY Esempio: calcolare la media di tutti gli studenti Questa selezione indica che vogliamo la media calcolata sul campo Voto della tabella Esami Tasto di esecuzione della query 44 QUERY Esempio: calcolare la media di tutti gli studenti 45 QUERY Query di creazione tabella Vengono utilizzate per creare nuove tabelle con le colonne estratte da tabelle esistenti Sono utili per creare tabelle temporanee da utilizzare per qualche scopo specifico Esempio: una tabella degli studenti più meritevoli 46 QUERY Esempio: una tabella degli studenti più meritevoli Modifichiamo il tipo di query in query di creazione tabella 47 QUERY Esempio: una tabella degli studenti più meritevoli Modifichiamo la query delle medie aggiungendo un semplice criterio di selezione Selezioniamo solo gli studenti che hanno media maggiore di 24 48 QUERY Esempio: una tabella degli studenti più meritevoli 49 QUERY Query di aggiornamento Sono query che modificano i dati Sono fondamentali per compiere modifiche su molti dati che corrispondono a criteri diversi attraverso più tabelle 50 QUERY Esempio: abbassare i voti a tutti gli studenti (!) Indica il tipo di operazione da compiere 51 REPORT I report (rapporti) hanno lo scopo di creare documenti pronti per la stampa La sorgente dei dati stampati all’interno di un report può essere una tabella o una query Il wizard di creazione report è molto semplice 52 REPORT Esempio: creare un report della media degli studenti 53 FINE