Basi di dati Da leggere: Cap. 6 Sawyer, Williams (testo A) Viviana Patti Informatica di base - 1/12/04 Basi di dati = database Sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi -> oggi anche sul web Real life: Avete già interagito con dei sistemi di gestione di basi di dati: (magari inconsapevolmente) all'anagrafe o in biblioteca... in lab consulteremo banche dati biologiche... Viviana Patti Informatica di base - 1/12/04 1 Basi di dati Problema: memorizzare grandi quantità di informazioni, in modo che siano facilitate le operazioni di modifica e di reperimento (Information Retrieval) Il problema è sentito in molti campi, non ultimo quello che a noi interessa relativo alla memorizzazione dei dati biologici: l'archiviazione dei dati è una procedura indispensabile per ordinare, conservare, aggiornare e utilizzare le nostre informazioni, soprattutto quando la mole d'informazioni diventa grande. Viviana Patti Informatica di base - 1/12/04 Basi di dati: perché? 1/6 Problema: memorizzare grandi quantità di informazioni, in modo che siano facilitate le operazioni di modifica e di reperimento Perché si usano le basi di dati per raggiungere questo obiettivo e non archiviamo le informazioni in diversi file del nostro file system o in fogli elettronici? Prendiamo il caso di sequenze biologiche Viviana Patti Informatica di base - 1/12/04 2 Basi di dati: perché 2/6 File system Potremmo pensare di memorizzare ogni sequenza con le sue annotazioni in un file diverso (magari di testo): vantaggi: semplice, nessun carico aggiuntivo di informazione svantaggi: l'organizzazione dei vari file è a carico dell'utente (categorizzazione dei dati per facilitare le procedure di accesso); non c'e' alcuna strutturazione dei dati, come confrontare e elaborare i dati? quando la mole dei dati da memorizzare cresce questo diventa velocemente ingestibile Viviana Patti Informatica di base - 1/12/04 Basi di dati: perché 3/6 Foglio elettronico Potremmo pensare di memorizzare le sequenze e le loro annotazioni usando fogli elettronici: vantaggi: i dati vengono strutturati in tabelle, posso utilizzare gli strumenti di calcolo forniti dal foglio elettronico per fare delle elaborazioni svantaggi: la gestione della ridondanza (e dell'eventuale evoluzione) dei dati è delegata all'utente non è possibile stabilire nessuna connessione fra dati di diverse analisi -> come confrontare i dati? Viviana Patti Informatica di base - 1/12/04 3 Basi di dati: perché 4/6 Foglio elettronico svantaggi: 1. la gestione della ridondanza (e dell'eventuale evoluzione) dei dati è delegata all'utente Esempio: supponiamo di avere la stessa sequenza A con le sue annotazioni memorizzata in diversi fogli di lavoro di una cartella Excel (ridondanza): sui diversi fogli faccio analisi diverse (per esempio di similarità con diverse sequenze) problema 1: se dovessi modificare A introducendo per esempio un nuovo campo relativo a un nuovo riferimento bibliografico? Devo farlo per tutte le istanze di A Viviana Patti Informatica di base - 1/12/04 Basi di dati: perché 5/6 Foglio elettronico svantaggi: 2. non è possibile stabilire nessuna connessione fra dati di diverse analisi Esempio: supponiamo di avere la stessa sequenza A con le sue annotazioni memorizzata in diversi fogli di lavoro di una cartella Excel (ridondanza): sui diversi fogli faccio analisi diverse (per esempio di similarità con diverse sequenze) problema 2: se scoprissi in un'analisi sul foglio x che seq A è simile a seq B e in una diversa analisi che seq A è simile a seq C vorrei poter indicare che le due sequenze sono in realtà la stessa sequenza (connessione) in modo da potere fare un'interrogazione complessa del tipo "quali seq. sono simili ad A" avendo in risposta "seqB e seqC". Ma questo non posso farlo in un foglio elettronico Viviana Patti Informatica di base - 1/12/04 4 Basi di dati: perché 6/6 Basi di dati vantaggi: i dati sono organizzati e strutturati in tabelle dove possono essere elaborati è possibile mettere in relazione dati memorizzati in "tabelle" diverse è possibile effettuare interrogazioni complesse -> linguaggi di interrogazione svantaggi: complessità di progettazione della base di dati (esistono diverse filosofie per costruirne, quel scegliere?); non facile acquisire padronanza delle metodologie e tecniche di progettazione e sviluppo di una base di dati occorre padronanza dei linguaggi di interrogazione delle basi di dati Viviana Patti Informatica di base - 1/12/04 Base di dati: cos'e' 1/3 possiamo chiamare base di dati la collezione dei dati grezzi utilizzati per rappresentare informazioni di interesse per un’organizzazione o un individuo Esempi la raccolta dei dati anagrafici degli abitanti la raccolta dei dati relativi al curriculum scolastico degli studenti la raccolta dei dati sulle sequenze di DNA la raccolta dei dati su sequenze proteiche Viviana Patti Informatica di base - 1/12/04 5 Base di dati: cos'e': 2/3 base di dati: è una collezione di dati omogenei e strutturati, ossia organizzati in strutture ben definite Es. dati di un’anagrafe relativi agli abitanti di una città struttura: i dati di ogni persona sono strutturati in campi: nome , cognome, età…; omogeneità: per ogni persona mantengo le stesse informazioni; Viviana Patti Informatica di base - 1/12/04 Base di dati: cos'e' 3/3 Es. elementi biologici, ad es. molecole di DNA: struttura: i dati relativi a ogni molecola sono strutturati in campi: nome, organismo, letteratura sull'argomento, rappresentazione come sequenza di acidi nucleici (acgt)...; omogeneità: per ogni elemento biologico voglio mantenere le stesse informazioni; Viviana Patti Informatica di base - 1/12/04 6 Esempio Per ogni elemento memorizzo l'informazione sulle stesse caratteristiche Viviana Patti Informatica di base - 1/12/04 Tipi di database Personali Aziendali condivisi Distribuiti Archivi pubblici Viviana Patti Informatica di base - 1/12/04 7 Database distribuiti Un database distribuito è contenuto in più computer situati in luoghi diversi e connessi tramite una rete, come ad esempio Internet L'interazione avviene secondo un modello client/server Esempio: banche dati biologiche Viviana Patti Informatica di base - 1/12/04 Database distribuiti Esempio: banche dati biologiche Server - db PC- client Server - db PC- client Viviana Patti Informatica di base - 1/12/04 8 DBMS base di dati: collezioni di dati omogenei e strutturati Per la realizzazione di basi di dati: DBMS (Data Base Management Systems): programmi applicativi (software) per la gestione di collezioni di dati, che permettono di strutturare i dati e di accedere in modo intelligente e efficace alle informazioni Viviana Patti Informatica di base - 1/12/04 Progettazione di una base di dati Problema affrontato: voglio organizzare le informazioni relative una certa realtà in un DB … voglio 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 Viviana Patti Informatica di base - 1/12/04 9 Progettazione di una base di dati Data una realtà da modellare (es. studenti e corsi) occorre 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 operare interrogazioni sui dati (es. quanti esami ha sostenuto Rossi nel 2002? Con quale media?) Viviana Patti Informatica di base - 1/12/04 Progettazione di una base di dati Viviana Patti Informatica di base - 1/12/04 10 Passo1: 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 ANALISI REQUISITI Viviana Patti descrizione informale Informatica di base - 1/12/04 Passo2: Analisi 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) -> modello entity-relation ANALISI concettuale Viviana Patti schema concettuale Informatica di base - 1/12/04 11 Passo3: 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 -> modello relazionale progettazione logica Viviana Patti schema logico Informatica di base - 1/12/04 Passo4: 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 progettazione fisica Viviana Patti schema fisico Informatica di base - 1/12/04 12 Passo 4: Progettazione fisica Viviana Patti Informatica di base - 1/12/04 DBMS DBMS (Data Base Management System): Sistema di Gestione della Base di Dati è un sistema software in grado di gestire collezioni di dati grandi condivise persistenti garantendo affidabilità e privatezza in modo efficiente affidabile Viviana Patti Informatica di base - 1/12/04 13 DBMS Esempi di DBMS: Sistema Sistema cliniche Sistema Sistema genoma Viviana Patti di prenotazione dei voli per la gestione delle cartelle per la gestione della biblioteca per la gestione dei dati del Informatica di base - 1/12/04 basi di dati e DBMS ...le collezioni di dati gestite da un DBMS: Grandi: ordine dei giga- o tera-byte Condivise: più utenti devono potervi accedere simultaneamente -> problema di mantenere la consistenza; es. dei dati bancari e dell’accesso simultaneo alle informazioni sullo stesso conto per un prelievo. I moderni DBMS gestiscono queste situazioni garantendo che non si verifichino situazioni di errore dovute ad accesso simultaneo. Persistenti: i dati vengono mantenuti, la loro esistenza non è limitata al periodo d’uso Viviana Patti Informatica di base - 1/12/04 14 basi di dati e DBMS il DBMS garantisce affidabilità e privatezza Affidabilità: i dati devono essere mantenuti anche in caso di malfunzionamento Privatezza: i dati devono essere protetti: si definiscono per ogni utente dei diritti; a certi utenti è concessa solo la lettura dei dati, ad altri anche la modifica es. dei dati di una biblioteca: il lettore ha diritto di lettura dei dati e di ricerca dei dati ma non di modifica/inserimento. Il bibliotecario -> deve aggiungere/togliere libri, segnalare prestiti: ha diritto di modificare i dati Viviana Patti Informatica di base - 1/12/04 basi di dati e DBMS Privatezza es. delle banche dati biologiche un utente non registrato (come noi) può solo fare delle interrogazioni per leggere i contenuti, non inserire nuove sequenze; un membro di un istituto scientifico di ricerca può essere abilitato all'inserimento di nuove sequenze Viviana Patti Informatica di base - 1/12/04 15 basi di dati e DBMS ...in modo efficiente ed efficacie Efficienza: tutte le operazioni acquisizione, ricerca, ordinamento devono essere svolte in tempi accettabili per l’utente -> più e più vero per basi di dati accessibili via Web, tempi di risposta brevi diventano veramente cruciali Efficacia: capacità di rendere produttiva l’attività dell’utente Viviana Patti Informatica di base - 1/12/04 Software DBMS DBMS commerciali Oracle Informix IBM DB2 SQL Server Microsoft Access (pacchetto Office) DBMS freeware (open source) MySQL (Linux, Windows) PostgressSQL (Linux) Viviana Patti Informatica di base - 1/12/04 16 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 deve essere Definire la struttura logica dei dati preliminare Inserire i dati Rimuovere i dati Aggiornare i dati Effettuare operazioni di ricerca/interrogazione Viviana Patti Informatica di base - 1/12/04 Struttura logica dei dati Il DBMS nasconde il formato fisico dei dati formato dei dati nei file file diversi per insiemi di dati di tipo diverso nome dei file/posizione dei file nel disco la sequenza di cartelle in cui si trovano i file accesso diretto ai dati sul supporto fisico offre una visione astratta dei dati e permette di operare su di essi senza conoscere la loro effettiva memorizzazione Viviana Patti Informatica di base - 1/12/04 17 Astrazione Viviana Patti Informatica di base - 1/12/04 Schema logico Primo passo: definizione della struttura generale dei dati, o schema logico caratteristiche invarianti nel tempo Secondo passo: Immissione dei dati (istanze) valori attuali Esempio di schema e istanza inserita del DB Schema Istanza nome Valeria cognome Lenti indirizzo V. Po 12 n. matricola 9002345 corso di laurea biotecnologie Viviana Patti Informatica di base - 1/12/04 18 Struttura dei dati Tipicamente i dati - come nel caso del foglio elettronico vengono strutturati in tabelle. Un po’ di terminologia Campi -> dominio dei valori Record • Ogni elemento della tabella occupa un record -> non posso organizzare per colonne • Ogni record è suddiviso in campi, ognuno dei quali contiene un'informazione elementare • Ogni campo ha un dominio dei valori associato Viviana Patti Informatica di base - 1/12/04 Esempio Possiamo dire che quello visualizzato è un record della banca dati GenBank Viviana Patti Informatica di base - 1/12/04 19 Database vs Fogli elettronici Considerazione: un programma di foglio elettronico come Excel ha diverse funzioni uguali a quelle di un DBMS -> permette di organizzare dati in tabelle MA gli obiettivi sono diversi e di conseguenza emergono delle differenze. Quali? Viviana Patti Informatica di base - 1/12/04 Database vs Fogli elettronici Un DBMS è pensato per trattare in modo facile GRANDI quantità di dati, organizzati in tabelle dalla STRUTTURA rigida e mi interessa fare solo operazioni di archiviazione e consultazione Un foglio elettronico è pensato per trattare quantità di dati più piccole, con struttura più flessibile (creo le tabelle come voglio) e il focus è sulle operazioni di elaborazione e analisi dei dati, non tanto sull’archiviazione e recupero Viviana Patti Informatica di base - 1/12/04 20 Database vs fogli elettronici Nel caso dei fogli elettronici ho maggior flessibilità nell’organizzazione dei dati -> es. possiamo organizzare gli elementi per righe ma anche per colonne, destinare liberamente le celle a contenere un certo risultato etc. Nel caso dei database nei record di una tabella i campi si succedono tutti con la stessa struttura Collaborazione dei due tipi di programmi per elaborare in modo sofisticato grandi quantità di dati: il DBMS accede all’archivio dei dati, il foglio elettronico elabora i dati reperiti Quello che proveremo a fare noi con i report dei dati reperiti sulla banca dati Viviana Patti Informatica di base - 1/12/04 Struttura dei dati ...i dati vengono strutturati in tabelle in particolare un db RELAZIONALE può essere pensato come un insieme di tabelle Ogni tabella mantiene informazioni di tipo omogeneo Diverse tabelle sono collegate (in relazione) fra loro grazie alla presenza di un campo comune, che permette di mettere in relazione i dati delle due tabelle Viviana Patti Informatica di base - 1/12/04 21 Struttura dei dati Esempio: campo comune fra tabella Prodotti e tabella Fornitori: Fornitori. Grazie alla relazione posso determinare chi fornisce i prodotti in magazzino pur memorizzando l’informazione di prodotti e fornitori in 2 tabelle separate Viviana Patti Informatica di base - 1/12/04 Aggiornamento dei dati I dati vengono inseriti in tabelle seguendo una certa struttura logica come modificare la struttura?: Inserire nuovi record, inserire nuovi campi in un record come aggiornare i contenuti?: modificare i valori di una cella etc… Di solito esistono dei vincoli che devono essere rispettati nella base di dati -> un’aggiornamento sia di struttura che di contenuto deve rispettare questi vincoli Quando i vincoli sono rispettati si dice che la base di dati è consistente Viviana Patti Informatica di base - 1/12/04 22 Aggiornamento dei dati Quali vincoli? sul dominio di valori che può assumere una certa informazione (campo) es.: banca dati dell'Università -> i voti devono essere compresi tra 0 e 30 sull'unicità dei valori ogni studente deve avere un numero di matricola diverso dall'altro vincoli che fra informazioni correlate es. anagrafe: i dati relativi al coniuge sono presenti solo se la persona è sposata i DBMS offrono strumenti per il mantenimento automatico della consistenza dei dati: Viviana Patti Informatica di base - 1/12/04 Effettuare interrogazioni=query Esecuzione di transazioni/interrogazioni Per leggere le informazioni contenute in una base di dati bisogna interrogarla -> query = atto dell’interrogare Facendo una query interroghiamo una tabella o un insieme di tabelle in un database al fine di ricavarne un SOTTOINSIEME di record Viviana Patti Informatica di base - 1/12/04 23 Query Language Esempio di query in linguaggio naturale: “Quali prodotti fornisce alla nostra azienda il fornitore New Orleans Cajun Delights?” Interrogazione sulle tabelle Fornitori e Prodotti fra loro in relazione Esistono linguaggi specifici di interrogazione usato in db (QL), in particolare per i db relazionali e in Access: SQL SQL = Structured Query Language Viviana Patti Informatica di base - 1/12/04 SQL Niente panico! - In molti programmi applicativi come Access abbiamo un’interfaccia grafica per costruire le query senza conoscere la sintassi e la semantica di SQL - nei db accessibili via Web le query vengono fatte per parole chiave come in un motore di ricerca Viviana Patti Informatica di base - 1/12/04 24 DBMS e Web Molti DBMS sono accessibili mediante browser l’interfaccia è come quella del Web la ricerca dei dati è per parole chiave come nel caso dei motori di ricerca per la ricerca dei documenti sul Web l’organizzazione interna dei dati è quella del DBMS Lab: banche dati biologiche Motori di ricerca Viviana Patti Informatica di base - 1/12/04 Database, web e nuova economia Commercio elettronico (e-commerce): acquisto e vendita di prodotti e servizi tramite Internet Data mining (DM) – attività di ricerca e analisi di dati Marketing Sanità Scienze Business-to-business (B2B): commercio fra aziende società aspetti di contrattazione Viviana Patti Informatica di base - 1/12/04 25