Basi di dati Riferimenti: Curtin cap. 8 Versione: 13/03/2007 Facoltà di Farmacia - Corso di Informatica 1 Basi di dati (Database, DB) •Una delle applicazioni informatiche più utilizzate, ma meno conosciute dai non informatici •Avete già interagito (inconsapevolmente?) con DB: anagrafe, biblioteca, banca, voti degli esami, prenotazioni voli, treni, cinema, concerti… •Problema: memorizzare grandi quantità di informazioni in modo da facilitare la modifica e il reperimento Facoltà di Farmacia - Corso di Informatica 2 Basi di dati •Prima soluzione: soluzione il file system (magari in file di testo) •Svantaggi: –Organizzazione dei file a carico dell’utente (categorizzazione dei dati per poterli reperire) –Dati non strutturati: come confrontarli e elaborarli? –Quando si hanno molti dati, i file diventano difficili da gestire •Seconda soluzione: soluzione foglio elettronico •Svantaggi: –Difficile condivisione tra più utenti –Difficile reperire informazioni •Quindi: Basi di dati Facoltà di Farmacia - Corso di Informatica 3 Basi di dati • “Magazzini” di dati • Un DB è un grande insieme di dati organizzati e memorizzati in forma strutturata e omogenea • Strutturata: es. anagrafe: nome, cognome, data di nascita, … • Omogenea: es. anagrafe: per ogni persona mantengo le stesse informazioni Facoltà di Farmacia - Corso di Informatica 4 Basi di dati •DB adatti a memorizzare dati omogenei che devono essere strutturati; ad es. – ok dati anagrafe – no testo di un libro •DB gestiti da DBMS (DataBase Management System, sistema di gestione di basi di dati) Facoltà di Farmacia - Corso di Informatica 5 Basi di dati Un DBMS gestisce insiemi di dati: a. grandi b. persistenti c. condivisi garantendo a. affidabilità b. privatezza c. efficienza d. efficacia Facoltà di Farmacia - Corso di Informatica 6 Le basi di dati sono… grandi a. Dimensioni: Dimensioni un DB può avere dimensioni di 1000 Gigabyte ⇒ DBMS deve gestire dati su memoria secondaria Facoltà di Farmacia - Corso di Informatica 7 Le basi di dati sono… persistenti b. Persistenza: Persistenza i dati hanno un tempo di vita che non è limitato a quello delle singole esecuzioni delle applicazioni Facoltà di Farmacia - Corso di Informatica 8 Le basi di dati sono… condivise c. Condivisione: Condivisione i dati di un DB devono essere condivisibili da più utenti che utilizzano varie applicazioni (es. azienda con magazzino) L’accesso si deve svolgere secondo opportune modalità Facoltà di Farmacia - Corso di Informatica 9 Problemi Concorrenza: nello stesso tempo più transazioni (sequenze di operazioni sul DB) possono richiedere e/o modificare il medesimo dato Ridondanza: informazioni ripetute Incoerenza: errori di “allineamento” dei dati es.: se due assegni vengono incassati contemporaneamente sullo stesso c/c, non bisogna trascurarne nessuno Facoltà di Farmacia - Corso di Informatica 10 Le basi di dati sono… condivise Utente 1 Applicazione Applicazione Utente 2 Utente 3 Utente 4 Applicazione Applicazione Applicazione DBMS DB Facoltà di Farmacia - Corso di Informatica 11 Le basi di dati garantiscono… affidabilità d.Affidabilità: il DBMS garantisce il contenuto del DB in caso di malfunzionamenti hw o sw •I DBMS danno backup e recovery Facoltà di Farmacia - Corso di Informatica 12 Le basi di dati garantiscono… privatezza e.Privatezza: gli utenti svolgono solo determinate azioni sui dati, con meccanismi di autorizzazione Es. biblioteca: a. il lettore ha diritto di lettura e ricerca dei dati, ma non di modifica/inserimento; b. il bibliotecario ha diritto di modificare i dati: deve aggiungere/togliere libri e segnalare i prestiti Facoltà di Farmacia - Corso di Informatica 13 Le basi di dati garantiscono… efficienza f. Efficienza: le operazioni devono essere svolte in tempi accettabili per l’utente (molto brevi!) nonostante la grande mole di dati Facoltà di Farmacia - Corso di Informatica 14 Le basi di dati garantiscono… efficacia g. Efficacia: cercano di rendere produttiva l’attività dell’utente, offrendo funzionalità articolate, potenti e flessibili Facoltà di Farmacia - Corso di Informatica 15 Utenti del Database •L’amministratore della base di dati (database administrator, DBA) è il responsabile della progettazione, controllo e amministrazione della base di dati •Progettisti e programmatori di applicazioni •Utenti Facoltà di Farmacia - Corso di Informatica 16 Modello relazionale •Introdotto nel 1970 •Affermato negli anni ’80 •Attualmente è il modello di DB più diffuso: probabilmente ogni DB che incontrerete sarà relazionale Facoltà di Farmacia - Corso di Informatica 17 Modello relazionale Il modello relazionale si basa sull'algebra delle relazioni fra i dati. Che cosa e' una relazione? Si definisce a partire dalla teoria degli insiemi. Facoltà di Farmacia - Corso di Informatica 18 Modello relazionale Consideriamo 2 insiemi A=(a, b, c) e Y=(1,2): il prodotto cartesiano A x Y e' l'insieme formato da tutte le possibili coppie formate da un elemento di A e da uno di Y, cioè AxY=(<a,1>, <a,2>, <b,1>, <b,2>, <c,1>, <c,2>) Facoltà di Farmacia - Corso di Informatica 19 Una relazione e' un sottoinsieme di AxY definito attraverso una legge (o regola). Ad esempio definiamo R1 la relazione che associa ad a e c il numero 1 e a b il numero 2, allora R1=(<a,1>, <c,1>, <b,2>) Notiamo come una relazione selezioni gli elementi del prodotto cartesiano: per quello che ci riguarda una relazione definisce l'insieme delle caratteristiche di un dato in termini matematici Facoltà di Farmacia - Corso di Informatica 20 Un esempio.... Facoltà di Farmacia - Corso di Informatica 21 Modello relazionale: struttura dei dati Come nei fogli elettronici, sono organizzati in tabelle Es.: tabella Studenti del database di una università Facoltà di Farmacia - Corso di Informatica 22 Modello relazionale: struttura dei dati Le entità (i fatti) compongono le righe (record) Le caratteristiche delle entità sono le (intestazioni delle) colonne (attributi) Il valore di un attributo per una specifica entità compone le celle (campi) Tutti i record di una tabella hanno lo stesso formato, cioè gli stessi attributi Facoltà di Farmacia - Corso di Informatica 23 Modello relazionale: struttura dei dati attributo record campo Facoltà di Farmacia - Corso di Informatica 24 Tabelle, Record e Campi •A ogni campo sono associati: – nome – lunghezza – tipo di dato (numero, data, caratteri) •Es. campo “Città”: – nome: Città – lunghezza: 30 caratteri – tipo di dato: caratteri Facoltà di Farmacia - Corso di Informatica 25 Campo chiave (chiave primaria) In una tabella devono essere definiti uno o più campi attraverso i quali è possibile distinguere sempre qualsiasi coppia di record di una stessa tabella Es.: • numero di matricola • codice fiscale • nome, cognome, data di nascita e luogo di nascita (forse insufficiente) Facoltà di Farmacia - Corso di Informatica 26 Utilità dei DB •I programmi che abbiamo visto finora (word processor, fogli elettronici) hanno funzionalità che hanno anche i DB: ordinamento, tabelle di dati •I dati rappresentati da questi programmi sono difficilmente condivisibili da applicazioni diverse •Questo comporta ridondanza e duplicazione di informazioni Facoltà di Farmacia - Corso di Informatica 27 Esempio di ridondanza in un DB Tabella Esami Ridondante: i dati degli studenti sono ripetuti per ogni esame Se uno studente cambiasse domicilio, bisognerebbe modificare più record Facoltà di Farmacia - Corso di Informatica 28 Svantaggi della duplicazione •La duplicazione comporta svantaggi – aumenta i dati da inserire – aumenta il rischio di errori (consistenza dei dati: per esempio, stessa data di nascita per la stessa persona, ovunque sia inserita) – usa più spazio di memoria secondaria Facoltà di Farmacia - Corso di Informatica 29 Esempio di ridondanza in un DB Come eliminare la ridondanza? Usando più tabelle legate tra loro Tabella Esami Tabella Studenti Congiuntamente, le tabelle contengono le stesse informazioni della tabella iniziale, ma senza ridondanze Facoltà di Farmacia - Corso di Informatica 30 Basi di Dati vs file system •Tecnicamente, i DB sono insiemi di file, ma i DB sono qualcosa di più di semplici file •Si potrebbero usare direttamente i file per memorizzare i dati, ma si perdono le proprietà garantite dai DB •Normalmente i file sono pensati per una specifica applicazione, e non per servire più applicazioni, magari in parallelo Facoltà di Farmacia - Corso di Informatica 31 Query •Per reperire le informazioni di interesse da un DB non è possibile semplicemente leggere le tabelle: – le tabelle sono molto grosse – può essere necessario utilizzare più tabelle contemporaneamente •Si usano le query Facoltà di Farmacia - Corso di Informatica 32 Query •Una query permette di specificare – cosa cercare all’interno del DB (criteri di selezione) – quali informazioni (campi) visualizzare •Una query crea una nuova tabella temporanea con i campi e i record di interesse Facoltà di Farmacia - Corso di Informatica 33 Query: esempio Vogliamo avere tutti gli esami superati dagli studenti con i dati degli studenti Nota: la tabella risultante è ridondante, ma è generata dinamicamente, quindi nessun problema Facoltà di Farmacia - Corso di Informatica 34 Query •Le query possono essere create in vari modi, in funzione dei programmi •Due “paradigmi”: – basato su esempi (QBE) • uso di maschere predefinite di interrogazione che costruiscono la query automaticamente • utilizzato da utenti poco esperti – linguaggi di interrogazione (es. SQL) • vero e proprio linguaggio (testuale) strutturato • usato dai programmi e dagli utenti più esperti Facoltà di Farmacia - Corso di Informatica 35 Query •In una query si specificano – i campi da includere nel risultato – i criteri di selezione delle informazioni, specificati attraverso operatori di confronto Facoltà di Farmacia - Corso di Informatica 36 Query: esempio Vogliamo spedire una lettera di congratulazioni agli studenti che hanno superato l’esame di Informatica A (L0507) Criterio di selezione: CodiceCorso=L0507 Facoltà di Farmacia - Corso di Informatica 37 Query: esempio Vogliamo spedire una lettera di congratulazioni agli studenti che hanno superato un esame con voto almeno 27 Criterio di selezione: Voto>=27 Facoltà di Farmacia - Corso di Informatica 38 Query •Composizione di operatori logici AND, OR, NOT •Consente di selezionare i record che soddisfano particolari criteri Facoltà di Farmacia - Corso di Informatica 39 Query: esempio Elenco studenti che hanno superato Informatica A (L0507) con voto almeno 27 Criterio di selezione: CodiceCorso=L0507 AND Voto>=27 Facoltà di Farmacia - Corso di Informatica 40 Query: esempio Elenco studenti che hanno superato Informatica (L0014) o Informatica A (L0507) con voto almeno 27 (CodiceCorso=L0507 OR CodiceCorso=L0014) AND Voto>=27 Facoltà di Farmacia - Corso di Informatica 41 E per finire... Facoltà di Farmacia - Corso di Informatica 42 Facoltà di Farmacia - Corso di Informatica 43 Facoltà di Farmacia - Corso di Informatica 44