Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Introduzione alle Basi di Dati Anno Accademico 2009/2010 Da: • Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati • Lucidi del Corso di Basi di Dati 1, Prof. Carlo Batini, Laurea in Informatica, AA 2007-2008 1 Cos’è un Sistema Informativo? Un’organizzazione (azienda, ente, singolo individuo, etc.) in genere è dotata di un sistema informativo, ovvero di un sistema di organizzazione e di gestione delle informazioni che sono necessarie al suo funzionamento. L’esistenza di un sistema informativo è totalmente indipendente dalla sua eventuale automazione. I sistemi informativi infatti esistono da molto prima dell’invenzione dei calcolatori. 2 Cos’è un Sistema Informatico? Un sistema informatico è la parte di sistema informativo che viene automatizzata e che quindi fa uso di tecnologie informatiche. In un sistema informatico le informazioni vengono rappresentate per mezzo di dati. 3 Dato vs Informazione Un dato è ciò che è immediatamente presente alla conoscenza prima di ogni elaborazione. In Informatica è un elemento di informazione costituito da simboli che devono essere elaborati. Ad esempio le due stringhe “Mario Rossi” e “25775” sono due dati che prima di essere elaborati non significano nulla. 4 Dato vs Informazione Un’informazione è una notizia o un elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni o modi di essere. I dati precedenti “Mario Rossi” e “25775” possono essere interpretati per arricchire la nostra conoscenza con il fatto che l’interno telefonico del signor Mario Rossi è 25775. 5 Cos’è una Base di Dati? Una Base di Dati (in inglese Database) è, nella sua accezione generica, una collezione di dati organizzata per reperire le informazioni necessarie allo svolgimento delle attività di un’organizzazione (azienda, ente, persona, etc.). In un’accezione specifica, una Base di Dati è una collezione di dati gestita da un particolare sistema software che prende il nome di DataBase Management System 6 (DBMS). Cos’è una Base di Dati? Una Base di Dati, nella sua accezione generica, rientra nella definizione di sistema informativo e, nella sua accezione specifica, rientra nella definizione di sistema informatico. A questo punto ci si chiede: quali sono le peculiarità di una Base di Dati? Ovvero, quali caratteristiche deve avere un sistema informatico per poter essere definito Base di Dati? Infatti non tutti i sistemi informatici sono Basi di Dati… 7 Un primo esempio di Sistema Informativo …che NON è una Base di Dati Un’agendina telefonica (su carta o su calcolatore) A-B Berti Aldini Bombi C-D 02 34556743 Ciri 335 4554679 Cometti 323 4565430 Dini Cirielli Telefono Telefono 02 02 02 06 34554322 34221 3443232 3432321 Si supponga che la regola di questa agendina è di specificare i cognomi e i numeri telefonici con prefisso, esattamente come nell’esempio riportato sopra 8 Un primo esempio di Sistema Informativo Possibile DIFETTO: nessuno può impedire il non rispetto della regola precedente e quindi, di scrivere come nell’esempio di seguito riportato A-B Berti Aldo B. C-D 02 34556743 Casa 335 4554679 Comune 323 4565430 Dini Telefono Telefono 02 34554322 02 34221 02 3443232 Ciro (a Roma) 3432321 Al posto del cognome c’è un nome (Aldo e Ciro), o solo l’iniziale con un punto (B.), o un luogo (Casa) o un riferimento sociale (Comune). Nel numero telefonico di Ciro (a Roma) manca il prefisso in quanto la persona che ha scritto questa agendina ha specificato la città (Roma) e quindi implicitamente si riferisce al 9 prefisso 06. Un secondo esempio di Sistema Informativo …che NON è una Base di Dati due archivi separati gestiti da due uffici distinti di una stessa università: Archivio 1 orario delle lezioni gestito dall’Ufficio A Archivio 2 orario di ricevimento dei docenti gestito dall’Ufficio B 10 Un secondo esempio di Sistema Informativo Archivio 1 11 Un secondo esempio di Sistema Informativo Archivio 2 12 Un secondo esempio di Sistema Informativo Possibili DIFETTI: 1. Ridondanza delle informazioni (ad esempio l’informazione che Mario Bruni insegna Fisica I e Fisica II è ricavabile da entrambi gli archivi) 2. Incoerenza delle informazioni (Luigi Neri insegna Analisi Matematica I o II?) 13 Le Basi di Dati Motivazione di una Base di Dati Ogni organizzazione (università, azienda, ufficio, etc.) è divisa in settori e svolge diverse attività. In genere ogni settore ha un proprio sistema informativo. Possono però esistere sovrapposizioni tra i dati di interesse dei vari settori. Ad esempio i dati sui docenti, e sui corsi che insegnano, sono di interesse sia per l’ufficio orario lezioni che per quello di ricevimento docenti. Si rende quindi evidente la necessità di creare un risorsa di informazione integrata e condivisa dai vari settori di un’organizzazione. 14 Le Basi di Dati Una Base di Dati è una risorsa di informazione: grande in termini di dimensioni di memoria sul calcolatore condivisa (cioè applicazioni e utenti diversi devono poter accedere a dati comuni) ciò riduce la ridondanza e la ripetizione delle informazioni persistente (cioè la sua vita non è limitata a quella dei programmi che la utilizzano) affidabile (cioè il suo contenuto deve essere conservato intatto anche in caso di malfunzionamenti e devono essere previste funzionalità di ripristino e di salvataggio, recovery e backup) 15 Le Basi di Dati Una Base di Dati è una risorsa di informazione: privata (cioè ogni utente deve essere riconosciuto e di conseguenza autorizzato a svolgere solo determinate attività sui dati) efficiente (cioè deve permettere agli utenti di svolgere le attività utilizzando risorse di tempo e spazio che siano accettabili) efficace (cioè rende produttiva l’attività degli utenti che ne fanno uso) 16 Le Basi di Dati Una Base di Dati è quindi una risorsa di informazione che richiede: meccanismi di autorizzazione (protezione dei dati condivisi in modo che l’accesso avvenga solo da parte di soggetti autorizzati e secondo modalità prestabilite) meccanismi di controllo della concorrenza (gestione contemporanea dell’accesso ai dati condivisi da parte di più soggetti) Una Base di Dati necessità di un particolare sistema di gestione il DBMS 17 Le Basi di Dati: il DBMS Un DBMS (DataBase Management System) è un software in grado di gestire Basi di Dati, cioè collezioni di dati che siano: grandi condivise persistenti affidabili private efficienti efficaci 18 Le Basi di Dati: il DBMS Alcuni esempi di DBMS sul mercato: Access DB2 Oracle Informix Sybase SQLServer 19 Il modello dei dati I “protagonisti” di una Base di Dati sono i dati relativi ad una certa realtà (ad esempio la realtà di un’università, di un’azienda, di un ente pubblico, etc.). Quindi, una Base di Dati contiene i dati relativi ad una certa realtà e permette il reperimento di informazioni che descrivono tale realtà. In sintesi, una Base di Dati rappresenta una certa realtà. 20 Il modello dei dati Come vengono descritti e rappresentati i dati relativi alla realtà di interesse di una Base di Dati? Ovvero, come vengono modellizzati i dati di interesse di una Base di Dati? In generale un modello dei dati è un insieme di costrutti utilizzati per descrivere e rappresentare i dati propri di una realtà di interesse. 21 I livelli di modellizzazione I livelli di modellizzazione dei dati di una determinata realtà di interesse di una Base di Dati sono tre: 1. Livello concettuale modelli concettuali 2. Livello logico modelli logici 3. Livello fisico modelli fisici 22 Il livello concettuale A livello concettuale, più che modellizzare i dati relativi ad una certa realtà, si cerca di descrivere i concetti della realtà stessa (modellizzazione del mondo reale). I modelli concettuali offrono infatti i concetti e i costrutti che permettono di descrivere una realtà di interesse in maniera indipendente dall’organizzazione della Base di Dati che poi la rappresenterà. Essi sono utilizzati nella fase preliminare di progettazione di una Base di Dati. 23 Il livello concettuale Cosa vedremo? Il modello concettuale più usato è il Modello Entità-Relazione (Modello E-R), in cui il concetto di relazione è da intendersi nel senso di legame (in inglese relationship). Il modello E-R descrive la realtà di interesse attraverso i costrutti principali di entità e di relazione. 24 Il livello logico A livello logico, si modellizzano i dati relativi ad una certa realtà al fine di descrivere la loro organizzazione nella Base di Dati. I modelli logici offrono i concetti e i costrutti che permettono di organizzare i dati nella Base di Dati in modo indipendente dalle strutture fisiche effettivamente utilizzate per memorizzare i dati su calcolatore. 25 Il livello logico I modelli logici usati per le Basi di Dati sono: modello relazionale modello gerarchico modello reticolare modello ad oggetti 26 Il livello logico In base al modello logico che seguono, le Basi di Dati si possono quindi suddividere nelle seguenti categorie: Basi di Dati relazionali se seguono il modello relazionale Basi di Dati gerarchiche se seguono il modello gerarchico Basi di Dati reticolari se seguono il modello reticolare Basi di Dati ad oggetti se seguono il modello ad oggetti 27 Il livello logico Di conseguenza, i DBMS funzionano sulla base del particolare modello logico della Base di Dati e quindi si avranno: DBMS relazionali per Basi di Dati relazionali DBMS gerarchici per Basi di Dati gerarchiche DBMS reticolari per Basi di Dati reticolari DBMS a oggetti per Basi di Dati a oggetti 28 Il livello logico Cosa vedremo? Il modello relazionale è attualmente il modello logico più diffuso per organizzare i dati di una Base di Dati. Esso utilizza il costrutto di relazione, inteso in questo caso come concetto matematico proveniente dalla teoria degli insiemi (e non come legame/relationship), e organizza i dati secondo relazioni. Vedremo che una relazione potrà essere interpretata come una tabella a struttura fissa e vedremo che in sostanza una Base di Dati relazionale organizza (logicamente) i dati in 29 tabelle. Il modello (logico) relazionale Ad esempio i dati degli studenti di una Base di Dati relazionale di un’università possono essere organizzati dal punto di vista logico nella seguente relazione (o tabella): Matricola 545 876 454 111 Cognome Rossi Verdi Bianchi Rossi Nome Marco Andrea Luca Chiara Nascita 15-06-1987 13-01-1986 16-04-1985 25-08-1988 Ogni riga (o record) corrisponde ad uno studente. Gli attributi di ogni studente sono le intestazioni delle colonne (cioè “Matricola”, “Cognome”, “Nome”, “Nascita”). 30 Il livello fisico A livello fisico, si modellizzano i dati per descrivere la loro organizzazione fisica sulla memoria del calcolatore. 31 In sintesi… Un modello concettuale descrive una realtà di interesse in maniera completamente indipendente da come i relativi dati verranno poi organizzati logicamente nella Base di Dati (cioè indipendentemente dal modello logico). Un modello logico descrive l’organizzazione dei dati in una Base di Dati in maniera completamente indipendente da come questi verranno poi effettivamente memorizzati sulla memoria del calcolatore (cioè indipendentemente dal modello fisico) 32 Schema e istanza Lo schema di una Base di Dati è la parte che rimane invariata nel tempo e che definisce la struttura logica dei dati. Ad esempio la tabella (o relazione) precedente ha uno schema definito da 4 colonne (4 attributi) con intestazione “Matricola”, “Cognome”, “Nome”, “Nascita”. L’istanza di una Base di Dati è la parte che varia nel tempo ed è costituita dai dati contenuti. Ad esempio l’istanza della tabella precedente sono le 4 righe (o record) che corrispondono ai dati relativi a 4 studenti. L’istanza varia nel tempo poiché si possono aggiungere studenti (immatricolazione) o togliere studenti (quando si laureano). 33 Linguaggi per Basi di Dati I linguaggi per Basi di Dati si possono distinguere in due categorie: linguaggi di definizione dei dati (Data Definition Language, DDL) per definire lo schema della Base di Dati linguaggi di manipolazione dei dati (Data Manipulation Language, DML) per interrogare e aggiornare la Base di Dati (istanza). Il linguaggio SQL (che vedremo) (Structured Query Language) è sia un DDL che Un DML 34