Basi di dati (Sistemi Informativi) Scuola di Dottorato in Scienze Veterinarie per la Salute Animale e la Sicurezza Alimentare Lezione 1 Ing. Mauro Zaninelli – [email protected] a.a. 2005 - 2006 1 Obiettivi del Corso Come progettare un DB: il modello ER Come gestire e interrogare un DB: l’SQL Come organizzare e raccogliere dati via web: MySQL, il PHP e l’HTML Come organizzare e raccogliere dati in locale: ACCESS. Ob. 1. Strutturare grandi quantità di dati Ob. 2. Raccoglierle e/o condividerle: a. in rete. b. sul proprio PC. 2 Cos’è una Base di Dati? 3 Basi di dati Sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi (e oggi anche sul web) Avete già interagito (magari inconsapevolmente) con dei sistemi di gestione di basi di dati: all’anagrafe, in segreteria studenti, in biblioteca, … 4 Basi di dati L’obiettivo è quello di memorizzare grandi quantità di informazioni, rendendone disponibili anche le operazioni di modifica e di reperimento Una base di dati è solo software? No! Ad esempio, gli archivi bancari esistono da diversi secoli. Noi ci occuperemo di sistemi informativi informatizzati 5 Basi di dati e DBMS Base di dati: collezione di dati omogenei DBMS (Database Management System): software in grado di gestire collezioni di dati che siano grandi, condivise e persistenti, garantendo affidabilità e privatezza, in modo efficiente ed efficace Grandi: ordine dei giga- o tera-byte Condivise: più utenti devono potervi accedere simultaneamente Persistenti: i dati vengono mantenuti, la loro esistenza non è limitata al periodo d’uso Affidabili: i dati devono essere mantenuti anche in caso di malfunzionamento Privatezza: i dati devono essere protetti Efficiente: tutte le operazioni devono essere svolte in tempi accettabili per l’utente Efficace: capacità di rendere produttiva l’attività dell’utente 6 DBMS Permettono di definire in modo semplice la struttura della base di dati e forniscono dei comandi per l’accesso alle informazioni. In genere si usano per Inserire i dati Rimuovere i dati Aggiornare i dati Effettuare operazioni di ricerca I moderni DBMS forniscono la possibilità di accesso simultaneo ai dati garantendone la consistena 7 DBMS DBMS prelievo bancomat pagamento bolletta amministratore bancario inserisce nuovo cliente base di dati (es. dati bancari) 8 DBMS Utente dati dati dati dati DBMS Programma applicativo Non ci occuperemo dell’organizzazione e della gestione di DBMS ma della progettazione di basi di dati … 9 Perché si utilizza una Base di dati? 10 Problema affrontato raccogliere, organizzare, conservare e gestire dati omogenei e strutturati studente studenti Avrà un nome, un indirizzo, una matricola, ecc. Ognuno avrà il proprio nome, matricola, ecc. singolo molti 11 Problema affrontato corso Avrà un titolo, un docente, dei crediti … diventa interessante mantenere informazioni su quali studenti hanno sostenuto quali esami e con quale risultato … quindi mettere in relazione le informazioni relative agli studenti e quelle relative ai corsi 12 Problema affrontato Data una realtà da modellare (es. studenti e corsi) Capire quali informazioni sono utili (es. “matricola” è utile per rappresentare gli studenti) Capire come le informazioni utili sono correlate (es. chi ha sostenuto quale esame) Sapere chi può accedere a quali informazioni per eseguire quali azioni Avere strumenti per lavorare sui dati (es. quanti esami ha sostenuto Rossi nel 2002? Con quale media?) 13 Come si progetta una Base di Dati? 14 Progettazione di una base di dati 1. Analisi dei requisiti individuare e studiare le funzionalità che il sistema dovrà fornire 2. Progettazione (a) concettuale (b) logica (c) fisica 3. Collaudo verifica del corretto funzionamento del sistema 15 Progettazione di una base di dati Requisiti della base di dati Progettazione Progettazione concettuale Progettazione logica Progettazione fisica Prodotto della progettazione 16 Analisi dei requisiti Raccolta e studio delle funzionalità che il sistema dovrà avere. Comporta l’interazione con gli utenti del sistema e si conclude in una descrizione informale dei suoi requisiti Descrizione informale 17 Progettazione concettuale Ha lo scopo di rappresentare la realtà di interesse in termini di una descrizione precisa e completa ma indipendente dai criteri di rappresentazione usati dal sistema informatico scelto per gestire la base di dati (rappresentazione astratta) Schema concettuale 18 Progettazione logica Ha lo scopo di rappresentare la realtà di interesse in termini di una descrizione ancora indipendente dai dettagli fisici ma concreta, in quanto presente nei sistemi di gestioni delle basi di dati. Lo schema concettuale definito nella fase precedente viene tradotto nello schema logico Schema logico 19 Progettazione fisica Lo schema logico viene completato con le specifica dei parametri fisici di memorizzazione dei dati (organizzazione dei file e degli indici). Si definisce lo schema fisico dei dati che dipende dal sistema di gestione di basi di dati scelto Schema fisico 20 Progettazione concettuale Schema concettuale 21 Il modello Entità-Relazioni (E-R) Consente di rappresentare la realtà di interesse tramite un insieme di costrutti Ogni costrutto ha una rappresentazione grafica corrispondente. Ad esempio: entità relazione attributo semplice attributo composto …….. 22 Entità Sono classi di oggetti, che hanno tutti le stesse proprietà ed esistono in modo autonomo; ogni entità è quindi un insieme di oggetti, detti anche istanze o occorrenze STUDENTI LIBRI IMPIEGATI 23 Relazioni (anche dette associazioni) Sono legami logici fra due o più entità. Anche un’associazione è un insieme, è l’insieme delle correlazioni fra i singoli elementi delle entità coinvolte e1 e2 e3 Stud1 Corso1 e4 Stud2 e5 Stud3 Stud4 e6 Corso2 Corso3 24 Relazioni In uno schema E-R ogni relazione ha un nome che la identifica in modo univoco ed è rappresentata mediante un rombo STUDENTI ESAMI CORSI Nella scelta dei nomi per le relazioni è preferibile usare sostantivi anzichè verbi per evitare di dare un “verso” alla relazione. Ad esempio ESAMI invece di HA SOSTENUTO 25 Esempio Entità: PERSONE Istanze: Marco, Paolo, Liliana, Giorgia, … Entità: CITTÀ Istanze: Milano, Torino, Genova, Salerno, ESAMI: relazione (anche detta associazione) fra le entità STUDENTI e CORSI PRESTITI: relazione fra le entità UTENTI e LIBRI DIREZIONE: relazione fra le entità IMPIEGATI e REPARTI 26 Attributi Descrivono le proprietà elementari di Entità e Relazioni. Ogni attributo assume dei valori all’interno di un insieme di valori ammissibili detto dominio Nome Giorno Data Mese Cognome Anno Attributi semplici Attributi composti 27 Esempio Via PERSONA Indirizzo Numero civico CAP Nome Cognome Data nascita 28 Esempio Voto STUDENTI Data ESAMI CORSI Docente Nome Cognome Nascita Nome corso Crediti Anche le relazioni possono avere degli attributi che vengono rappresentati come nel caso delle entità, ma associati ai rombi che le descrivono 29 Cardinalità delle relazioni Per ogni entità che partecipa a una relazione è possibile indicare il num. min e max di legami che le sue istanze possono avere con istanze delle altre entità partecipanti alla medesima relazione LIBRI (0,1) PRESTITI (0,5) PERSONE Un libro può essere in prestito (1) oppure non essere in prestito (0) Una persona può non avere libri in prestito (0) o averne al massimo 5 30 Cardinalità delle relazioni Se la cardinalità minima è 0 si dice che la partecipazione dell’entità relativa è opzionale, se la cardinalità minima è maggiore o uguale a 1, la partecipazione è obbligatoria (1,1) REPARTI (0,3) GESTIONE PERSONE Ogni reparto è gestito da una (1) e una sola (1) persona Alcune persone non gestiscono alcun reparto (0) ma una persona può gestirne fino a tre (3) 31 Cardinalità delle relazioni Nella maggior parte dei casi si usano solo tre valori: zero, uno, e il simbolo N (ovvero >=1) Se la cardinalità massima è 1 la partecipazione all’entità può essere vista come una funzione che associa ad una occorrenza di una entità una sola occorrenza dell’altra entità Se la cardinalità massima è N esiste una associazione con un numero arbitrario di occorrenze dell’altra entità 32 Tipi di relazioni Osservando le cardinalità massime si ottiene la classificazione seguente 1 1 1:N (uno a molti) 1 N N:M (molti a molti) N M 1:1 33 Esempio PASSEGGERI 1 1 POSTO ASSEGNATO POSTI A ogni passeggero è assegnato al più un posto e a ogni posto è assegnato al più un passeggero PASSEGGERI N POSTO ASSEGNATO M VOLI Ogni passeggero può avere assegnati posti su più voli, ogni volo porta diversi passeggeri 34 Esempio PERSONE N NUM ASSEGNATO 1 NUM_TELEFONO Ogni persona può avere associati più numeri di telefono, ogni numero di telefono può essere associato al più ad una persona Che tipo di relazione si può stabilire tra 1. CALCOLATORI e INDIRIZZI IP 2. STUDENTI ed ESAMI 3. ATLETI e GARE 35 Associazioni a molte entità Le associazioni possono collegare più di due entità, per esempio il concetto di pubblicazione, intesa come libro scritto da un certo scrittore per una certa casa editrice, potrebbe essere rappresentato come SCRITTORI LIBRI PUBBLICAZIONI CASE EDITRICI 36 Identificatori (chiavi) Ogni entità è un insieme di oggetti aventi le stesse proprietà. È necessario poter identificare in modo univoco ciascuna istanza di un’entità Identificatore interno: sottoinsieme di attributi che costituiscono una chiave per l’entità Identificatore esterno: quando non è sufficiente utilizzare un sottoinsieme di attributi ma l’entità partecipa a una relazione con cardinalità (1,1), i suoi elementi possono essere identificati tramite tale relazione 37 Esempio: identificatore interno Titolo Autore LIBRI ISBN (identificatore interno) Nome STUDENTI Cognome … Matricola (identificatore interno) Vi vengono in mente altri esempi? 38 Esempio: identificatore esterno Matricola STUDENTI Cognome (1,1) ISCRIZIONE (1,N) UNIVERSITÀ Indirizzo Nome Indirizzo Città Nome Quando gli attributi interni non sono sufficienti si possono considerare attributi di più entità. 39 Esempio: identificatore esterno Ad esempio, nel caso precedente che considera tutti gli studenti universitari iscritti a tutte le università italiane, non c’è garanzia che i numeri di matricola siano univoci Per identificare in modo univoco uno studente servirà quindi, oltre al suo numero di matricola, anche il nome dell’università cui è iscritto Quindi un identificatore corretto per l’entità STUDENTE è dato dal suo attributo Matricola e dall’entità UNIVERSITÀ, in partcolare dall’attributo Nome di UNIVERSITÀ, che è un identificatore esterno Naturalmente questo funziona perchè ad ogni studente è associata una e una sola università 40 Generalizzazioni Rappresentano legami logici tra una entità E detta padre e più entità E1, E2, …, En, dette entità figlie. L’entità E è più generale e comprende le entità figlie … ritorna una struttura gerarchica, ad albero. Questo tipo di struttura è fondamentale nell’informatica … 41 Generalizzazioni Codice fiscale Nome PERSONE Indirizzo Attributi comuni Nascita STUDENTI Matricola IMPIEGATI Stipendio Sotto categorie Reparto Livello 42 Esercizi: In particolare, aggiungere: generalizzazioni, chiavi e cardinalità delle relazioni. 43 Soluzioni esercizio 5.3 n°1: 44 Soluzioni esercizio 5.3 n°2: 45 Soluzioni esercizio 5.3 n°3: 46 Soluzioni esercizio 5.4 n°1: 47 Soluzioni esercizio 5.4 n°2: 48 Soluzioni esercizio 5.4 n°3: 49