DB e DBMS Corso di Fondamenti di Informatica (PEU-Z) Dott.ssa Rossella Aiello Testi di riferimento Atzeni, Ceri, Paraboschi, Torlone “Basi di Dati” Mc Graw Hill – 2014 (IV Edizione) Altri testi di consultazione e approfondimento sui DBMS: Elmasri, Navathe “Sistemi di Basi di Dati: Fondamenti” Pearson Education Italia, 2007 (V Edizione) SISTEMI INFORMATIVI, INFORMAZIONI E DATI Dati ed Informazioni I Dati da soli non hanno alcun significato Sono simboli, sono elementi primari. Rappresenta un fatto o un evento senza relazione con altre cose, è un fatto risultante dall’osservazione diretta, prodotto dalla sensazione e dalla misurazione, è una cosa che accade, verità e realtà. Un fatto appartiene al mondo reale, e il dato corrispondente è nella nostra mente. Il dato può esistere in qualunque forma, utilizzabile o non. Esempi di dati: Π = 3,14159; piove; anno 1492; l’ultima alluvione dell’Arno è stata nel 1966; stipendio = € 1.500 Dati ed Informazioni I Dati interpretati e correlati forniscono Informazione I dati sono una versione “grezza” dell’informazione I dati “Mario Rossi” e “25775” in risposta alla domanda “Nome del dipendente e suo numero di telefono” forniscono informazione In un romanzo giallo, la scoperta del colpevole avviene “interpretando” i dati, cioè deducendo da tanti dati sconnessi (un bottone verde, una penna gialla e l’abbaiare di un cane) fatti e situazioni. Dati e Applicazioni I Dati sono più stabili (duraturi) delle stesse procedure che li gestiscono. Frequentemente è necessario sostituire ad una procedura un’altra più aggiornata (perché magari è cambiata la normativa). Migrazione dei dati: La nuova versione della procedura utilizza i dati esistenti che quindi devono “migrare” dalla precedente. Dati “più importanti” delle procedure Dati sono una “risorsa” importante per l’organizzazione che li gestisce. Essi sono un patrimonio significativo da proteggere. BASI DI DATI E SISTEMI DI GESTIONE DI BASI DI DATI Atzeni, cap. 1.2 Gestione dei Dati senza DBMS Approccio convenzionale alla gestione dei dati: in assenza di un software specifico (il DBMS), la gestione dei dati è affidata ai programmi scritti con i comuni linguaggi di programmazione (Cobol, C, C++, Java) Con l’approccio convenzionale, il programmatore memorizza i dati in “files” sulla memoria di massa. Un file consente di memorizzare e ricercare i dati, ma offre meccanismi primitivi di accesso e di condivisione crea un programma per ogni “operazione” da fare I programmi sono autonomi e indipendenti gli uni dagli altri, cioè ciascuno di essi definisce e utilizza uno o più files “privati” I dati vengono replicati tante volte quanti sono i programmi che li utilizzano (con problemi di ridondanza e incoerenza) Gestione dei Dati senza/con DBMS Senza DBMS PROGRAMMA 1 PROGRAMMA 2 PROGRAMMA 3 DATA BASE MANAGEMENT SYSTEM Archivio A Archivio B Archivio C Archivio D Archivio E … DATABASE Con DBMS DB e DBMS BASE DI DATI (DB=Database) collezione di dati (tipicamente molto corposa) memorizzati in un computer organizzati in forma strutturata condivisi tra più utenti (anche migliaia) e da questi accessibili contemporaneamente sui quali è possibile operare efficientemente ricerche e aggiornamenti DBMS (Data Base Management System) Software che permette di gestire un Database (es.: memorizzare, cancellare, interrogare in modo efficiente e semplice i dati) DataBase Management System (DBMS) Prodotti software (complessi) disponibili sul mercato; esempi: Access DB2 Oracle Informix Sybase SQLServer MySQL DataBase Management System (DBMS) Più formalmente: Un DBMS è un Sistema Software che gestisce collezioni di dati: Grandi Condivise Persistenti garantendo Affidabilità Privatezza Efficienza Efficacia Le Basi di Dati sono … grandi Il DB è di dimensioni molto maggiore della memoria centrale dei sistemi di calcolo utilizzati i dati devono quindi essere gestiti in memoria di massa il limite è solo quello fisico dei dispositivi Le Basi di Dati sono ... condivise Il DB è condiviso, cioè applicazioni e utenti diversi devono poter accedere a dati comuni, anche contemporaneamente. In questo modo Si riduce la ridondanza Si evita l’inconsistenza. Si ha inconsistenza di dati quando in un dato momento esistono due o più versioni di uno stesso dato che non presentano lo stesso livello di aggiornamento. Questo si verifica quando un programma accede e aggiorna solo la propria copia di un dato, lasciando inalterate le altre copie dello stesso dato. Gestione degli Accessi Condivisi Problematiche legate alla “condivisione” Alcune operazioni non interferiscono l’una con l’altra (es.: la lettura di un estratto conto da più parti) Altre operazioni vanno eseguite non simultaneamente (prelievo e deposito di denaro). In questo caso c’è un meccanismo di “blocco” di un’operazione mentre è in corso un’altra operazione critica. Il DB può anche essere distribuito in più parti (luoghi fisicamente lontani) Procedure per la prenotazione posti aereo (DB è composto dai posti) Procedure per accesso a prelievo Bancomat Le Basi di Dati sono ... persistenti Il DB è persistente cioè i dati hanno un tempo di vita indipendente dalle singole esecuzioni dei programmi che li utilizzano I dati “sopravvivono” ai processi I DBMS garantiscono ... affidabilità Affidabilità (per le basi di dati): resistenza a malfunzionamenti hardware e software Il DBMS garantisce l’affidabilità dei dati, cioè è capace di conservare praticamente intatto il contenuto della base di dati, anche in presenza di guasti hardware e software. Presenta meccanismi sofisticati di backup/recovery con i quali è possibile recuperare dati persi a seguito di guasti hw/sw del sistema I DBMS garantiscono ... privatezza Per ogni utente è specificato il tipo di operazione che può effettuare (autorizzazione dell’accesso) accesso in lettura / scrittura / eliminazione / esecuzione Ad esempio, in un Database bancario: Un cliente può leggere il suo estratto conto, ma non modificarlo, se non tramite un’operazione di prelievo. Un cliente non può leggere l’estratto conto di altri. Lo sportellista può leggere e modificare solo alcune informazioni sul conto di un cliente (non può cioè eseguire tutte le operazioni; ad esempio non può modificare l’importo del fido assegnato). Il Direttore può leggere e modificare tutti i campi del conto. I DBMS debbono essere ... efficienti Il DBMS usa efficientemente le risorse disponibili svolge tutte le operazioni utilizzando un insieme di risorse di spazio (memoria principale e secondaria) e di tempo (di esecuzione e di risposta) che sia accettabile per gli utenti Questa caratteristica dipende da almeno tre fattori: Bontà della progettazione (fattore umano) Tecniche scelte per l’implementazione del progetto (fattore umano legato a scelte basate sulla qualità dell’insieme di funzionalità disponibili) Dimensionamento adeguato del sistema informatico (fattore tecnologico) I DBMS debbono essere ... efficaci Un DBMS rende produttive le attività degli utilizzatori, offrendo servizi e funzionalità articolate, potenti e flessibili Un DBMS mette a disposizione un insieme di strumenti software che rendono veloce l’accesso ai dati questo corso è in buona parte dedicato ad illustrare come i DBMS perseguono l'efficacia