Basi di Dati Microsoft Office: Access OpenOffice: Base Scopo dei programmi Office • Word: scrivere un documento e stamparlo • Excel: stilare un rendiconto e (eventualmente) tradurre i risultati in grafici • PowerPoint: fare una presentazione (di solito, di fronte ad un uditorio) • Access: gestire una base di dati Informatica 1 SCICOM (COM) - a.a. 2010/11 2 Base di dati Insieme organizzato di dati utilizzati per il supporto allo svolgimento delle attività di un ente (azienda, ufficio, persona) Informatica 1 SCICOM (COM) - a.a. 2010/11 3 Sistema di gestione di basi di dati DataBase Management System — DBMS Sistema (prodotto software) in grado di gestire collezioni di dati che siano (anche): grandi (di dimensioni (molto) maggiori della memoria centrale dei sistemi di calcolo utilizzati) persistenti (con un periodo di vita indipendente dalle singole esecuzioni dei programmi che le utilizzano) Condivise (utilizzate da applicazioni e utenti diversi) garantendo affidabilità (resistenza a malfunzionamenti hardware software) e privatezza (con una disciplina e un controllo degli accessi). Come ogni prodotto informatico, un DBMS deve essere efficiente (utilizzando al meglio le risorse di spazio e tempo del sistema) ed efficace (rendendo produttive le attività dei suoi utilizzatori). Informatica 1 SCICOM (COM) - a.a. 2010/11 4 Alcuni DBMS in commercio Access DB2 Oracle Informix Sybase SQLServer Ingres Postgres MySQL Informatica 1 SCICOM (COM) - a.a. 2010/11 5 Condivisione Ogni organizzazione (specie se grande) è divisa in settori o comunque svolge diverse attività A ciascun settore o attività corrisponde un (sotto)sistema informativo Possono esistere sovrapposizioni fra i dati di interesse dei vari settori Una base di dati è una risorsa integrata, condivisa fra i vari settori Informatica 1 SCICOM (COM) - a.a. 2010/11 6 Informatica 1 SCICOM (COM) - a.a. 2010/11 7 Informatica 1 SCICOM (COM) - a.a. 2010/11 8 Possibili problemi Ridondanza: informazioni ripetute Rischio di incoerenza: le versioni possono non coincidere Informatica 1 SCICOM (COM) - a.a. 2010/11 9 Archivi e basi di dati Gestione orario lezioni Archivio 1: orario lezioni Gestione ricevimento Archivio 2: ricevimento Informatica 1 SCICOM (COM) - a.a. 2010/11 10 Archivi e basi di dati Gestione orario lezioni Base di dati Gestione ricevimento Informatica 1 SCICOM (COM) - a.a. 2010/11 11 Obiettivo • Gestire dati strutturati – Inserire, modificare, cancellare dati • Fare ricerche sui dati secondo svariati criteri • Presentare i dati in modi diversi Informatica 1 SCICOM (COM) - a.a. 2010/11 12 Relazioni nel modello relazionale dei dati A ciascun dominio associamo un nome (attributo), unico nella relazione, che “descrive” il ruolo del dominio L’ordinamento fra gli attributi è irrilevante: la struttura è non posizionale Informatica 1 SCICOM (COM) - a.a. 2010/11 13 Tabelle e relazioni Una tabella rappresenta una relazione se i valori di ogni colonna sono fra loro omogenei le righe sono diverse fra loro le intestazioni delle colonne sono diverse tra loro In una tabella che rappresenta una relazione l’ordinamento tra le righe è irrilevante l’ordinamento tra le colonne è irrilevante Informatica 1 SCICOM (COM) - a.a. 2010/11 14 Il modello è basato su valori i riferimenti fra dati in relazioni diverse sono rappresentati per mezzo di valori dei domini che compaiono nelle ennuple Informatica 1 SCICOM (COM) - a.a. 2010/11 15 studenti Matricola Cognome Nome Data di nascita 6554 Rossi Mario 05/12/1978 8765 Neri Paolo 03/11/1976 9283 Verdi Luisa 12/11/1979 3456 Rossi Maria 01/02/1978 esami Studente 3456 3456 9283 6554 Voto 30 24 28 26 Corso 04 02 01 01 corsi Codice Titolo Docente 01 Analisi Mario 02 Chimica Bruni 04 Chimica Verdi Informatica 1 SCICOM (COM) - a.a. 2010/11 16 studenti Matricola Cognome Nome Data di nascita 6554 Rossi Mario 05/12/1978 8765 Neri Paolo 03/11/1976 9283 Verdi Luisa 12/11/1979 3456 Rossi Maria 01/02/1978 esami Studente Voto 30 24 28 26 Corso corsi Codice Titolo Docente 01 Analisi Mario 02 Chimica Bruni 04 Chimica Verdi Informatica 1 SCICOM (COM) - a.a. 2010/11 17 Vantaggi della struttura basata su valori indipendenza dalle strutture fisiche (si potrebbe avere anche con puntatori di alto livello) che possono cambiare dinamicamente si rappresenta solo ciò che è rilevante dal punto di vista dell’applicazione l’utente finale vede gli stessi dati dei programmatori i dati sono portabili piu' facilmente da un sistema ad un altro i puntatori sono direzionali Informatica 1 SCICOM (COM) - a.a. 2010/11 18 Chiavi Matricola Cognome Nome Corso Nascita 27655 78763 Rossi Rossi Mario Mario Ing Inf Ing Inf 5/12/78 3/11/76 65432 87654 Neri Neri Piero Mario 67653 Rossi Piero Ing Mecc Ing Inf Ing Mecc 10/7/79 3/11/76 5/12/78 non ci sono due ennuple con lo stesso valore sull’attributo Matricola non ci sono due ennuple uguali su tutti e tre gli attributi Cognome, Nome e Data di Nascita Informatica 1 SCICOM (COM) - a.a. 2010/11 19 Chiave insieme di attributi che identificano univocamente le ennuple di una relazione – Superchiave – Minimale Informatica 1 SCICOM (COM) - a.a. 2010/11 20 Esempio Matricola Cognome Nome Corso Nascita 27655 Rossi Mario Ing Inf 78763 Rossi Mario Ing Inf 5/12/78 3/11/76 65432 Neri Piero Ing Mecc 10/7/79 87654 Neri Mario Ing Inf 3/11/76 67653 Rossi Piero Ing Mecc 5/12/78 Matricola è una chiave: è superchiave contiene un solo attributo e quindi è minimale Informatica 1 SCICOM (COM) - a.a. 2010/11 21 Esempio Matricola Cognome Nome Corso Nascita 27655 Mario Mario Ing Inf 78763 Rossi Rossi Rossi Rossi Rossi Mario Mario Ing Inf 5/12/78 5/12/78 3/11/76 3/11/76 65432 Neri Piero Ing Mecc 10/7/79 87654 Neri Mario Mario Ing Inf 3/11/76 3/11/76 67653 Rossi Rossi Piero Ing Mecc 5/12/78 5/12/78 Cognome, Nome, Nascita è un’altra chiave: è superchiave minimale Informatica 1 SCICOM (COM) - a.a. 2010/11 22 Importanza delle chiavi l’esistenza delle chiavi garantisce l’accessibilità a ciascun dato della base di dati le chiavi permettono di correlare i dati in relazioni diverse: il modello relazionale è basato su valori Informatica 1 SCICOM (COM) - a.a. 2010/11 23 Oggetti di una base di dati Access • Tabelle • Query (“domanda”, “interrogazione”) – per estrarre alcuni dati selezionati Informatica 1 SCICOM (COM) - a.a. 2010/11 24 Oggetti di una base di dati access (2) • Maschere – per inserimento dati in un formato “a scheda” • Report (“riassunto”) – per elencare i dati secondo un formato che li raccoglie per categorie Informatica 1 SCICOM (COM) - a.a. 2010/11 25 Tabelle • Griglia righe-colonne • Attributi (o campi) sulle colonne • Ogni riga è un record, indivisibile • Ogni record rappresenta un dato strutturato Informatica 1 SCICOM (COM) - a.a. 2010/11 26 Visualizzazioni di una tabella • Foglio dati (è la tabella stessa) • Struttura: per ogni campo, si visualizza (e si cambia eventualmente) – il tipo di dato (numero, testo, data, si/no,…) – le sue caratteristiche Informatica 1 SCICOM (COM) - a.a. 2010/11 27 Modifica e inserimento • Dal foglio dati, è possibile inserire nuovi record (nell’ultima riga vuota del foglio) • È possibile copiare, tagliare, incollare singoli valori, o interi record • Access controlla sempre che i dati inseriti o modificati rispettino i vincoli stabiliti nella struttura – es. duplicati, tipo dei dati Informatica 1 SCICOM (COM) - a.a. 2010/11 28 Caratteristiche di un tipo di dato • Es. per il testo: – numero di caratteri • fino a 255 – richiesto (si/no) • se sì, ogni record deve avere il campo riempito – duplicati ammessi, – indicizzato Informatica 1 SCICOM (COM) - a.a. 2010/11 29 Uso delle caratteristiche • Access controlla che ogni dato inserito rispetti le caratteristiche specificate – ad es., se un campo "codice fiscale" ha lunghezza 16 caratteri, Access rifiuta inserimenti di C.F. di 17 o più caratteri Informatica 1 SCICOM (COM) - a.a. 2010/11 30 Perché dei controlli sui dati • I dati sono un patrimonio (asset) dell'istituzione che li detiene • spesso hanno un valore di mercato • Dati inaffidabili producono: • perdita di valore • inefficacia del loro uso (ad es., invio di lettere) Informatica 1 SCICOM (COM) - a.a. 2010/11 31 Limiti dei controlli • I controlli sui dati che può fare Access sono puramente formali, non sostanziali (sintattici e non semantici) – si può scartare un C.F. come "Blabla" – non si riesce a scartare un C.F. come ABCDEF12G34H567Z (formalmente giusto) Informatica 1 SCICOM (COM) - a.a. 2010/11 32 Indicizzazione Se un campo è indicizzato, la ricerca di un dato secondo quel campo è molto veloce • Es. l’ordine alfabetico dei cognomi nell’elenco telefonico • si apre l'elenco a metà, e si continua la ricerca nella sola metà in cui sta il cognome Informatica 1 SCICOM (COM) - a.a. 2010/11 33 indicizzazione (2) • Se un campo non è indicizzato, per cercare un dato bisogna (nel caso peggiore) scorrere tutti i record – Es. cercare sull’elenco il nome di una persona avendo il suo numero di telefono... – non si può saltare neanche una pagina • il nome-numero potrebbe essere proprio lì Informatica 1 SCICOM (COM) - a.a. 2010/11 34 Chiave primaria • campo speciale di ogni tabella • duplicati non ammessi, valore mai vuoto • identifica univocamente un record • es., il codice fiscale di una persona • di solito, campo "ID" di tipo contatore Informatica 1 SCICOM (COM) - a.a. 2010/11 35