Basi di Dati La Progettazione
Piano della lezione Problema dell’archivio dei pazienti Realizzazione di una soluzione pre-informatica: archivio cartaceo Importanza della buona progettazione Limiti della soluzione cartacea Realizzazione di una soluzione informatica: archivio elettronico Progetto di un database Confronto con la soluzione cartacea
aggiornamento e analisi Problema Gestione delle informazioni relative ad un’Organizzazione Inserimento, modifica, cancellazione ed elaborazione delle informazioni processi interni di aggiornamento e analisi Organizzazione richiesta di servizi e risposta input esterni
Soluzione: archivi Trovare il modo di conservare e organizzare le informazioni interessanti di una realtà per poterle recuperare ed elaborare Anni ’70: archivi cartacei Oggi: archivi elettronici, database Gli archivi sono un modello della parte della realtà che si ritiene interessante
Il problema Migliorare il servizio ambulatoriale conservando e organizzando in maniera sistematica le informazioni sui pazienti Dati anagrafici Preparazione rapida di ricette Accesso alle informazioni anche in assenza del paziente: quanto pesa il paziente Mario Rossi? Dati medici e appunti sulle visite passate Visite e diagnosi più accurate Calcolo di statistiche: quale è il peso medio dei pazienti?
Tipologia di problema Gestione delle informazioni relative ad un’organizzazione Conservare e organizzare informazioni in modo da poterle recuperare, modificare e consultare in maniera efficiente Caratteristiche tipiche del problema Gestione di quantità ingenti di informazioni dalla struttura omogenea (ad esempio, di tutti i pazienti ci interessa sapere nome, età, indirizzo, patologie, ecc.) Operazioni di ricerca di informazioni, possibilmente combinate al calcolo di statistiche
Piano della lezione Problema dell’archivio dei pazienti Realizzazione di una soluzione pre-informatica: archivio cartaceo Importanza della buona progettazione Limiti della soluzione cartacea Realizzazione di una soluzione informatica: archivio elettronico Progetto di un database Confronto con la soluzione cartacea
Tipica soluzione pre-informatica Realizzazione di un archivio cartaceo, ovvero uno schedario con cassetti contenenti schede informative Effettuare le operazioni di ricerca e statistica aprendo i cassetti dello schedario e operando manualmente sulle schede Opportune tecniche di archiviazione (ordinamento delle schede e indici sulle schede) possono talvolta velocizzare alcune delle operazioni Ordinamento delle schede e aggiornamento degli indici sono operazioni fortemente dipendenti dalla precisione della persona che li mette in pratica.
Schedario: rappresentazione della realtà Uno schedario è una rappresentazione in carta e inchiostro dei fatti interessanti della nostra realtà di interesse La realtà di interesse che stiamo studiando è quella dei pazienti di un medico I fatti interessanti sono tutte e sole le informazioni riguardanti la realtà dei pazienti utili a migliorare il servizio ambulatoriale Le informazioni rilevanti di un paziente devono essere scritte in una rispettiva scheda, contenuta in un cassetto dello schedario dedicato ai pazienti
Schedario dei pazienti Lo schedario che costruiremo rappresenta in carta e inchiostro la realtà di interesse dei pazienti Se la signora Maria Bianchi diventa una paziente del medico, si deve inserire una nuova scheda nel cassetto, la quale riporta tutte le informazioni rilevanti riguardo la signora Maria Se il medico prevede di dover utilizzare in futuro il peso del paziente Mario Rossi, allora il peso deve essere scritto sulla sua scheda Se il paziente Mario Rossi cambia indirizzo, il cambiamento deve essere riportato sulla sua scheda Se il paziente Mario Rossi decide di cambiare medico, la sua scheda deve essere eliminata dal cassetto
Cassetto Pazienti Schedario pazienti Paziente dal 01/08/1995 CSSN: 0603/3454567 Paziente dal 11/04/2000 CSSN: 0601/1234567 DATI ANAGRAFICI E MEDICI: Nome: Maria Bianchi Indirizzo: Anno di nascita: 1950 Via Marmolada 67 Luogo di Nascita: Pisa 56126 Pisa Stato coniugale: sposata Tel: 347 8910111 Gruppo sanguigno: A Positivo Altezza: 158 cm Peso: 56 kg Menarca: 13 anni Modalità parto: naturale Patologie: 1957 morbillo 1960 rosolia DIARIO: Prima visita: influenza, consigliata tachipirina (02/04/2000) Seconda: 14/09/2000, Commento: allergia, rich. visita specialistica 3 visita: 02/02/2001 ....
Cassetto Pazienti Schedario pazienti Paziente dal 15/11/1996 CSSN: 0604/9786554 CSSN: 0608/7654321 DATI ANAGRAFICI: Nome: Mario Indirizzo: Cognome: Rossi Via Palestro 6 Anno di nascita: 1964 50100 Firenze Luogo di Nascita: Firenze Tel.: 345 678910 Cittadinanza: Italiana E-mail: marossi@libero.it DATI MEDICI: Gruppo sanguigno: B Negativo Altezza e peso: 1.65 m, 63 Kg Patologie: morbillo (1970), parotite (1971), rosolia (1973), varicella (1973) DIARIO: Data: 22/03/2000 Commento: influenza, sintomi classici Li: 3 maggio 2002 Comm.: forte tosse, consigliato TosseVia 1000 per una settimana Data: 23/08/2002 ...
Schedario pazienti Le operazioni Osservazione: il medico prevede di effettuare molte ricerche in base al cognome del paziente Ordiniamo le schede nel cassetto dei pazienti in ordine alfabetico rispetto al cognome Quanto pesa il paziente Mario Rossi? Nel cassetto relativo ai pazienti cerchiamo la sezione dedicata alla lettera R e tra queste la scheda del paziente Rossi Mario. Quindi leggiamo il peso riportato sulla scheda
I problemi Mancanza di progettazione dello schedario Schedario pazienti I problemi Mancanza di progettazione dello schedario Assenza parziale o totale di informazioni Eterogeneità delle informazioni sulle schede Problemi intrinseci agli schedari Uso del supporto cartaceo per conservare informazioni Controlli di correttezza e operazioni eseguiti manualmente
Assenza parziale di informazioni Problemi dello schedario: Mancanza di progettazione Assenza parziale di informazioni L’operazione: Quanti pazienti sono di cittadinanza italiana? non può essere eseguita per assenza parziale di informazioni Non tutte le schede riportano informazioni sulla cittadinanza, quindi il risultato di un conteggio sarebbe falsato
Assenza totale di informazioni Problemi dello schedario: Mancanza di progettazione Assenza totale di informazioni L’operazione: Quanti pazienti di sesso femminile sono presenti? non può essere eseguita per assenza totale di informazioni Nessuna scheda riporta informazioni sul sesso del paziente
Assenza di omogeneità L’operazione: Problemi dello schedario: Mancanza di progettazione Assenza di omogeneità L’operazione: Trovare il nome, il cognome e il CSSN del paziente più pesante per quanto intuitivamente semplice diventa estremamente tediosa È necessario scorrere tutte le schede dell’archivio Inoltre, le stesse informazioni sono riportate sulle schede in maniera eterogenea: individuare la posizione del nome, del cognome e peso su una scheda diviene non banale
Assenza di omogeneità Schedario pazienti Paziente dal 01/08/1995 CSSN: 0603/3454567 DATI ANAGRAFICI E MEDICI: Nome: Maria Bianchi Indirizzo: Anno di nascita: 1950 Via Marmolada 67 Luogo di Nascita: Pisa 56126 Pisa Stato coniugale: sposata Tel: 347 8910111 Gruppo sanguigno: A Positivo Altezza: 158 cm Peso: 56 kg Menarca: 13 anni Modalità parto: naturale Paziente dal 11/04/2000 CSSN: 0601/1234567 DIARIO: Prima visita: influenza, consigliata tachipirina (02/04/2000) Seconda: 14/09/2000, Commento: allergia, rich. visita specialistica 3 visita: 02/02/2001 .... Patologie: 1957 morbillo 1960 rosolia
Assenza di omogeneità Schedario pazienti Paziente dal 15/11/1996 CSSN: 0604/9786554 CSSN: 0608/7654321 DATI ANAGRAFICI: Nome: Mario Indirizzo: Cognome: Rossi Via Palestro 6 Anno di nascita: 1964 50100 Firenze Luogo di Nascita: Firenze Tel.: 345 678910 Cittadinanza: Italiana E-mail: marossi@libero.it DATI MEDICI: Gruppo sanguigno: B Negativo Altezza e peso: 1.65 m, 63 Kg Patologie: morbillo (1970), parotite (1971), rosolia (1973), varicella (1973) DIARIO: Data: 22/03/2000 Commento: influenza, sintomi classici Li: 3 maggio 2002 Comm.: forte tosse, consigliato TosseVia 1000 per una settimana Data: 23/08/2002 ...
Archivio non ben progettato Problemi dello schedario: Mancanza di progettazione Archivio non ben progettato Le informazioni riportate sulle schede non sono scelte sulla base di un’attenta analisi delle operazioni che si intendono effettuare Informazioni inutili: menarca e modalità parto Informazioni non sempre presenti: e-mail, cittadinanza, data di inizio rapporto del paziente Informazioni assenti: sesso, tipologia di visita (domicilio o in studio)
Archivio non ben progettato Problemi dello schedario: Mancanza di progettazione Archivio non ben progettato Le informazioni riportate sulle schede non sono strutturate omogeneamente Informazioni presenti su tutte le schede ma esposte in maniera diversa: nome e cognome, altezza e peso, visite del paziente, patologie
Riepilogo conseguenze Problemi dello schedario: Mancanza di progettazione Riepilogo conseguenze Alcune operazioni interessanti possono divenire molto laboriose o impossibili per l’assenza totale o parziale delle informazioni Quanti pazienti sono di cittadinanza italiana? (parziale) Da quando è mio paziente Mario Rossi? (parziale) Quando è stata fatta l’ultima visita a domicilio al paziente Maria Bianchi? (totale) Trovare un’informazione su una scheda è tedioso Ogni scheda possiede una propria interpretazione delle informazioni interessanti di un paziente
Buona progettazione Massimizzare la quantità e la qualità dei servizi per cui l’archivio si è reso necessario Il maggior numero di operazioni necessarie al medico devono essere eseguibili nel minor tempo possibile Minimizzare il numero di modifiche in corso d’opera allo schedario necessarie a introdurre o migliorare i servizi di cui sopra È costoso in termini di tempo (o impossibile) operare modifiche sui cassetti o sulle schede contenute in uno schedario avviato Esempio di modifica in corso d’opera: aggiungere a tutte le visite di tutte le schede la tipologia di visita fatta, se in studio o a domicilio
Progettare e realizzare Buona progettazione Progettare e realizzare La progettazione di uno schedario si basa su un’attenta analisi della realtà di interesse che si conclude con la definizione di un modello schematico della realtà stessa La realizzazione di un schedario si basa fedelmente su questo modello della realtà
Buona progettazione Il modello Un modello è una rappresentazione schematica dei fatti interessanti della realtà di interesse in termini di entità, attributi delle entità e collezioni di entità Un paziente è un fatto interessante della nostra realtà di tipo entità nome e peso dei pazienti sono fatti interessanti di tipo attributo delle entità (fatti che contraddistinguono un’entità) l’insieme dei pazienti è un fatto interessante di tipo collezione di entità, cioè un insieme di entità che hanno gli stessi attributi
Buona progettazione: Il modello Operazioni e fatti I fatti interessanti di una realtà si identificano a partire dalle operazioni che si intendono effettuare Nella realtà dei pazienti è necessario effettuare ricerche e statistiche su informazioni relative ai pazienti
Modello della realtà dei pazienti Buona progettazione: Il modello Modello della realtà dei pazienti Visto il tipo di operazioni richieste, un modello ragionevole della nostra realtà potrebbe essere: Una sola collezione Pazienti in cui ogni entità è un paziente con i seguenti attributi data di inserimento nello schedario CSSN nome cognome anno di nascita luogo di nascita cittadinanza indirizzo telefono e-mail gruppo sanguigno altezza peso sesso patologie (anno) visite: data, tipo, esito
Dal modello allo schedario Buona progettazione: Realizzazione Dal modello allo schedario Ad ogni entità nel modello è associata una scheda nello schedario Una scheda per ogni paziente Ogni attributo di un’entità è rappresentato da un’informazione sulla rispettiva scheda, nella forma: Nome attributo: valore attributo Ad esempio, Peso: 56 Kg Ad ogni collezione di entità nel modello è associato un cassetto dello schedario, quindi tutte le schede relative alle entità di una collezione sono contenute nello stesso cassetto
trovare il peso di Mario Rossi? Buona progettazione: Il modello Identità Supponiamo di avere 2 pazienti di nome Mario Rossi, come potremmo eseguire l’operazione trovare il peso di Mario Rossi? troveremmo due schede nello schedario, a quale dovremmo riferirci per trovare la risposta? Ogni entità nella realtà possiede un’identità propria che la distingue da tutte le altre entità i due pazienti Mario Rossi seduti nel vostro studio sono distinti dalla propria identità di persone: voi scegliereste a quale dei due chiedere il peso
Identità nello schedario Buona progettazione: Il modello Identità nello schedario Problema tipico di ogni rappresentazione di una realtà: rappresentare l’identità delle entità Esempi noti di rappresentazioni di identità: CSSN (realtà sanitaria) Codice Fiscale (realtà dello stato italiano) Nello schedario dei pazienti potremmo quindi sfruttare l’unicità del codice CSSN per distinguere univocamente le nostre schede In questo modo potremmo definire operazioni non ambigue del tipo: trovare il peso del paziente Mario Rossi con CSSN 0608/7654321
Identità con chiave muta Buona progettazione: Il modello Identità con chiave muta Buona regola di progettazione: Per rappresentare l’identità è bene introdurre per ogni cassetto un codice unico, detto chiave muta Tale codice è detto chiave muta (o anonima) perché non rappresenta nessun fatto della realtà modellata, ma è introdotto con l’unico scopo di rappresentare l’identità Tipicamente i valori della chiave muta sono numeri interi progressivi Nel nostro schedario introdurremo come chiave muta il codice della scheda paziente, un numero intero progressivo associato ad ogni scheda
Struttura omogenea delle schede Buona progettazione: Il modello Struttura omogenea delle schede Per garantire l’omogeneità dello schedario si definisce un fac-simile della generica scheda paziente. Questo guida il medico nel corretto inserimento di informazioni Dati medici: Gruppo sanguigno: Altezza: m Peso: kg Scheda paziente: Diario: Prima visita: influenza, consigliata tachipirina (02/04/2000) Seconda visita: 14/09/2000, Commento: allergia, rich. visita specialistica 3 visita: 02/02/2001 .... Paziente dal: CSSN: / Visite: Data: Tipo [studio/domicilio]: Esito: FOTO Dati anagrafici: Nome: Indirizzo: Cognome: Anno di nascita: Sesso: Tel.: Cittadinanza: E-mail: M F Patologie [nome (anno)]:
Struttura omogenea delle schede Buona progettazione: Il modello Struttura omogenea delle schede Tracce per la compilazione uniforme delle informazioni Unità di misura uguali per tutte le schede Per garantire l’omogeneità dello schedario si definisce un fac-simile della generica scheda paziente. Questo guida il medico nel corretto inserimento di informazioni Dati medici: Gruppo sanguigno: Altezza: m Peso: kg Scheda paziente: Diario: Prima visita: influenza, consigliata tachipirina (02/04/2000) Seconda visita: 14/09/2000, Commento: allergia, rich. visita specialistica 3 visita: 02/02/2001 .... Paziente dal: CSSN: / Visite: Data: Tipo [studio/domicilio]: Esito: FOTO Dati anagrafici: Nome: Indirizzo: Cognome: Anno di nascita: Sesso: Tel.: Cittadinanza: E-mail: M F Patologie [nome (anno)]:
Struttura omogenea delle schede Buona progettazione: Il modello Struttura omogenea delle schede DATI ANAGRAFICI: Nome: Mario Indirizzo: Cognome: Rossi Via Palestro 6 Anno di nascita: 1964 50100 Firenze Luogo di Nascita: Firenze Tel.: 345 678910 Cittadinanza: Italiana E-mail: marossi@libero.it DIARIO: Data: 22/03/2000 Commento: influenza, sintomi classici Li: 3 maggio 2002 Comm.: forte tosse, consigliato TosseVia 1000 per una settimana Data: 23/08/2002 ... DATI MEDICI: Gruppo sanguigno: B Negativo Altezza e peso: 1.65 m, 63 Kg Patologie: morbillo (1970), parotite (1971), rosolia (1973), varicella (1973) CSSN: 0608/7654321 Scheda paziente: 31 Paziente dal: 10/12/99 CSSN: 0608/7654321 Dati anagrafici: Nome: Mario Indirizzo: Cognome: Rossi Via Palestro 6 Anno di nascita: 1964 50100 Firenze Sesso: Tel.: 345 678910 Cittadinanza: Italiana E-mail: marossi@libero.it M F Dati medici: Gruppo sanguigno: B Negativo Altezza: 1.65 m Peso: 63 kg Patologie [nome (anno)]: morbillo (1970), parotite (1971), rosolia (1973), varicella (1973) Visite: Data Tipo [studio/domicilio] Esito 22/03/2000 domicilio influenza, sintomi classici 03/05/2002 studio forte tosse, consigliato TosseVia 1000 per una sett...
Struttura omogenea delle schede Buona progettazione: Il modello Struttura omogenea delle schede Dati anagrafici e medici: Nome: Maria Bianchi Indirizzo: Anno di nascita: 1950 Via Marmolada 67 Luogo di Nascita: Pisa 56126 Pisa Stato coniugale: sposata Tel: 347 8910111 Gruppo sanguigno: A Positivo Altezza: 1.58 cm Peso: 56 kg Scheda paziente: 12 Paziente dal: 11/04/2000 CSSN: 0601/1234567 Diario: Prima visita: influenza, consigliata tachipirina (02/04/2000) Seconda visita: 14/09/2000, Commento: allergia, rich. visita specialistica 3 visita: 02/02/2001 .... Visite: Data Tipo [studio/domicilio] Esito 02/04/2000 domicilio influenza, tachipirina 14/09/2000 studio allergia, rich. visita specialistica 02/02/2001 .... Dati anagrafici: Nome: Maria Indirizzo: Cognome: Bianchi Via Marmolada 67 Anno di nascita: 1950 56126 Pisa Sesso: Tel.: 347 8910111 Cittadinanza: Italiana E-mail: - Dati medici: Altezza: 1.58 m Patologie [nome (anno)]: morbillo (1957), rosolia (1960) M F
Struttura omogenea delle schede Buona progettazione: Il modello Struttura omogenea delle schede DATI ANAGRAFICI E MEDICI: Nome: Maria Bianchi Indirizzo: Anno di nascita: 1950 Via Marmolada 67 Luogo di Nascita: Pisa 56126 Pisa Stato coniugale: sposata Tel: 347 8910111 Gruppo sanguigno: A Positivo Altezza: 158 cm Peso: 56 kg Menarca: 13 anni Modalità parto: naturale Paziente dal 11/04/2000 CSSN: 0601/1234567 DIARIO: Prima visita: influenza, consigliata tachipirina (02/04/2000) Seconda: 14/09/2000, Commento: allergia, rich. visita specialistica 3 visita: 02/02/2001 .... Patologie: 1957 morbillo 1960 rosolia Scheda paziente: 12 Visite: Data Tipo [studio/domicilio] Esito 02/04/2000 domicilio influenza, tachipirina 14/09/2000 studio allergia, rich. Visita specialistica Dati anagrafici: Nome: Maria Indirizzo: Cognome: Bianchi Via Marmolada 67 Anno di nascita: 1950 56126 Pisa Sesso: Tel. 7 8910111 Cittadinanza: Italiana E-mail: - Dati medici: Gruppo sanguigno: A Positivo Altezza: 1.58 m Peso: 56 kg Patologie [nome (anno)]: morbillo (1957), rosolia (1960) Paziente dal: 11/04/2000 CSSN: 0601/1234567 M F DATI ANAGRAFICI: Nome: Mario Indirizzo: Cognome: Rossi Via Palestro 6 Anno di nascita: 1964 50100 Firenze Luogo di Nascita: Firenze Tel.: 345 678910 Cittadinanza: Italiana E-mail: marossi@libero.it DIARIO: Data: 22/03/2000 Commento: influenza, sintomi classici Li: 3 maggio 2002 Comm.: forte tosse, consigliato TosseVia 1000 per una settimana Data: 23/08/2002 ... DATI MEDICI: Gruppo sanguigno: B Negativo Altezza e peso: 1.65 m, 63 Kg Patologie: morbillo (1970), parotite (1971), rosolia (1973), varicella (1973) CSSN: 0608/7654321 Scheda paziente: 31 Paziente dal: 10/12/99 CSSN: 0608/7654321 Dati anagrafici: Nome: Mario Indirizzo: Cognome: Rossi Via Palestro 6 Anno di nascita: 1964 50100 Firenze Sesso: M F Tel.: 345 678910 Cittadinanza: Italiana E-mail: marossi@libero.it DATI ANAGRAFICI: Nome: Mario Indirizzo: Cognome: Rossi Via Palestro 6 Anno di nascita: 1964 50100 Firenze Luogo di Nascita: Firenze Tel.: 345 678910 Cittadinanza: Italiana E-mail: marossi@libero.it Dati medici: Gruppo sanguigno: B Negativo Altezza: 1.65 m Peso: 63 kg Patologie [nome (anno)]: morbillo (1970), parotite (1971), rosolia (1973), varicella (1973) DATI MEDICI: Gruppo sanguigno: B Negativo Altezza e peso: 1.65 m, 63 Kg Visite: Data Tipo [studio/domicilio] Esito 22/03/2000 domicilio influenza, sintomi classici 03/05/2002 studio forte tosse, consigliato DIARIO: Data: 22/03/2000 Commento: influenza, sintomi classici Li: 3 maggio 2002 Comm.: forte tosse, consigliato TosseVia 1000 per una settimana Data: 23/08/2002 ...
Problemi dello schedario: Problemi intrinseci Le operazioni Le schede sono ordinate in ordine alfabetico per cognome e nome Le operazioni di ricerca per cognome sono le più rapide Qual’è il telefono di Maria Bianchi? Le operazioni di ricerca non basate sul cognome e quelle di statistica richiedono in generale lo scorrimento di tutte le schede dell’archivio Qual’è il telefono del paziente con CSSN 0608/7654321 Quanti pazienti hanno gruppo sanguigno B Negativo?
Velocizzare le ricerche: Indici Problemi dello schedario: Problemi intrinseci Velocizzare le ricerche: Indici Qual’è il telefono del paziente con CSSN 0608/7654321? Per rendere l’operazione più rapida si può tenere aggiornato un indice cartaceo (simile all’indice analitico di un libro) in cui vengono tenuti tutti i nomi dei pazienti ordinati per CSSN Dato il CSSN 0608/7654321, tramite l’indice si può risalire rapidamente al nome Mario Rossi, cercare la scheda corrispondente nel cassetto e trovare il telefono Indice schede … 0601/1234567, Bianchi Maria 0604/9786554, Verdi Luigi 0608/7654321, Rossi Mario
Velocizzare le statistiche Problemi dello schedario: Problemi intrinseci Velocizzare le statistiche Quanti pazienti hanno gruppo sanguigno B Negativo? Per rendere efficiente l’operazione si può tenere un indice per ogni gruppo sanguigno Dall’indice relativo al gruppo B Negativo si può ricavare rapidamente il totale desiderato contandone gli elementi Indice gruppo: B Negativo … Rossi Mario Verdi Luigi Indice gruppo: A Positivo … Bianchi Maria Gialli Marta
Problemi pratici di uno schedario Problemi dello schedario: Problemi intrinseci Problemi pratici di uno schedario Dato l’ordine alfabetico delle schede, le operazioni di ricerca e statistica in base al cognome del paziente sono le uniche veramente rapide All’aumentare del numero delle schede, le operazioni di ricerca non basate sul cognome e quelle statistiche divengono molto laboriose e soggette ad errore
Problemi pratici di uno schedario Problemi dello schedario: Problemi intrinseci Problemi pratici di uno schedario Gli indici sono una possibile soluzione, ma il loro aggiornamento richiede tempo e energie Devono essere aggiornati tutti in seguito all’inserimento di ogni nuova scheda Sono spesso soggetti ad errore umano, di scrittura o copiatura Dato lo sforzo richiesto per tenere gli indici, il loro numero è piuttosto basso, quindi alcune operazioni sulle schede rimarranno sempre proibitive
Piano della lezione Problema dell’archivio dei pazienti Realizzazione di una soluzione pre-informatica: archivio cartaceo Importanza della buona progettazione Limiti della soluzione cartacea Realizzazione di una soluzione informatica: archivio elettronico Progetto di un database Confronto con la soluzione cartacea
Soluzione informatica In informatica, la gestione automatica e organizzata di grandi quantità di informazioni, è risolta adottando Sistemi per la Gestione di Basi di Dati (SGBD, in inglese DataBase Management System, DBMS)
Progettazione e realizzazione di un database Un database è una rappresentazione elettronica, della realtà di interesse: ogni fatto interessante della realtà deve essere rappresentato nel database in forma di dati elettronici La progettazione di un database è come quella di uno schedario e consiste nel definire un modello schematico della realtà
Realizzazione di un database Dato un modello della realtà Ad ogni collezione di entità nella realtà di interesse corrisponde una tabella nel database Ad ogni entità nella realtà corrisponde un record di una tabella Ad ogni attributo di un’entità corrisponde un campo del record relativo a quell’entità
Schedario e database: collezione di entità Ad un cassetto dello schedario corrisponde una tabella del database Dati anagrafici: Nome: Mario Cognome: Rossi Anno di nascita: 1964 … Dati medici: Gruppo sanguigno: B Negativo … Scheda paziente: 31 Diario: Data: 22/03/2000 Commento: influenza, sintomi classici... Visite: Data: 22/03/2000 Tipo: domicilio Esito: influenza, sintomi classici … Paziente dal: 10/12/1999 CSSN: 0608/7654321 Cassetto Pazienti
Schedario e database: entità Dati anagrafici: Nome: Mario Cognome: Rossi Anno di nascita: 1964 … Dati medici: Gruppo sanguigno: B Negativo … Scheda paziente: 31 Diario: Data: 22/03/2000 Commento: influenza, sintomi classici... Visite: Data: Tipo [studio/domicilio] Esito 22/03/2000 domicilio influenza, … Paziente dal: 10/12/1999 CSSN: 0608/7654321 Ad una scheda del cassetto corrisponde un record della tabella Cassetto Pazienti
Schedario e database: attributi Dati anagrafici: Nome: Mario Cognome: Rossi Anno di nascita: 1964 … Dati medici: Gruppo sanguigno: B Negativo … Scheda paziente: 31 Diario: Data: 22/03/2000 Commento: influenza, sintomi classici... Visite: Data: Tipo [studio/domicilio] Esito 22/03/2000 domicilio influenza, … Paziente dal: 10/12/1999 CSSN: 0608/7654321 Ad ogni informazione sulla scheda corrisponde un valore nel record Cassetto Pazienti
Schedario e database: operazioni Un DBMS offre gli strumenti per la definizione di interrogazioni (query) su un database: operazioni automatiche sui dati che corrispondono alle operazioni manuali sulle schede dello schedario
Progettazione di un archivio Abbiamo visto che è improponibile progettare un archivio sulla base del solo universo del discorso e senza l’adozione di metodologie di progettazione Un modello (es. un database) è il risultato di un processo di interpretazione, guidato dalle idee e conoscenze possedute dal soggetto che interpreta Definire un modello è un’operazione complessa (intuizione e metodo)
Metodologie Esistono metodologie di modellazione che forniscono gli strumenti e linguaggi per: individuare e rappresentare le componenti interessanti dell’universo del discorso, al fine di realizzarne un modello concettuale; per successivamente convertire il modello concettuale in un database relazionale Il modello concettuale descrive la realtà in maniera intuitiva (“poco” informatica) ed è allo stesso tempo facilmente trasformabile in un database, cioè in un modello della realtà interpretabile da un computer
Modellazione e progettazione ER Modello concettuale Organizzazione A B Mappatura in modello relazionale equivalente Soluzione anni ‘70 B A Creazione DB Database Archivio cartaceo
Linguaggio per la definizione di modelli: formalismo grafico ER Descrizione della natura della realtà in termini di classi e associazioni Il modello ER di un universo del discorso è detto schema
ER: classi e attributi Si modellano le classi, cioè collezioni di entità dalla struttura omogenea lingueParlate Persone telefono nome La classe Persone: una collezione di entità persone con proprietà lingueParlate, telefono, nome multivalore totale parziale unione strutturato Attributi
Aspetto linguistico Es. Associazioni (1:1) (1:1) associazione CorsiTenuti-TenutoDa tra Professori e Corsi: ogni professore deve tenere un corso (totale) e ogni Corso è tenuto da un professore (totale) corsoTenuto tenutoDa Professori Corsi
Aspetto linguistico Es. Associazioni (1:n) (1:n) associazione Tesista-Relatore tra Professori e Studenti: ogni professore può avere uno, nessuno o più tesisti (parziale), mentre uno studente può avere nessuno o un relatore (parziale) relatoreDi tesistaDi Professori Studenti
Aspetto linguistico Es. Associazioni (n:n) (n:n) associazione CorsiSeguiti-StudentiIscritti tra Studenti e Corsi: ogni studente segue almeno un corso (totale) e ogni corso è seguito da almeno uno studente (totale) studentiIscritti corsiSeguiti Corsi Studenti
Esempio: Segreteria dell’Univ. di Pisa Gestione degli studenti e degli esami da essi passati Le classi di entità in gioco sono Classe degli Studenti: tutti gli studenti iscritti all’università, con proprietà Nome, Matricola, Provincia, Data di nascita Classe degli Esami: tutti gli statini (prove ufficiali) reative agli esami passati dagli studenti, con proprietà Corso, Voto, Lode, Data, Candidato.
Modello concettuale esamiSuperati passatoDa Studenti Esami
Soluzione anni ’70 (1/2) Uno schedario di studenti Ad ogni studente corrispondeva una scheda con tutti i suoi dati: nome, matricola, provincia, data di nascita Uno schedario degli esami Ad ogni esame sostenuto corrispondeva uno statino: candidato, voto, lode (si/no), data, corso
Soluzione anni ’70 (2/2) Per cercare gli esami passati dagli studenti di Pisa, l’impiegato doveva: Cercare nello schedario studenti tutte le schede relative a studenti di Pisa Per ogni scheda trovata: leggere il numero di matricola Cercare nello schedario degli esami, tutti gli statini relativi al numero di matricola dello studente
Soluzione con Database Relazionale Un database relazionale Una collezione di dati elettronici che rappresentano/modellano una realtà di interesse Ad ogni collezione di entità nella realtà di interesse corrisponde una tabella nel database
Tabella Studenti Struttura tabella: Nome: Text Matricola: Number Provincia: Text(2) DataNascita: Date Campo Record 25/12/1980 PI 175649 Bonini 12/07/1978 LI 179856 Bianchi 03/10/1975 LU 167459 Rossi 01/01/1980 171523 Isaia DataNascita Provincia Matricola Nome Valore
Tabella Esami Struttura tabella: Corso: Text Candidato: Text Data: Date Voto: Number(2) Lode: Si/No Materia Candidato Data Voto Lode BD Isaia 12/01/01 28 No BD Rossi 15/01/01 30 Si FP Bianchi 13/02/01 30 No BD Bonini 15/01/01 25 No LMM Isaia 11/02/01 18 No
Struttura Tabella Una tabella è una collezione di dati caratterizzati dalla stessa struttura: Insieme di coppie (NomeCampo,TipoCampo) Un tipo qualifica quali valori possono essere inseriti in un campo e di conseguenza quali operazioni sono consentite su di esso: Nome in Studenti è un campo di tipo Text: una sequenza di caratteri di lunghezza arbitraria; due valori Text possono essere concatenati per ottenerne uno solo che li mette insieme DataNascita è un campo di tipo Date: un valore di tipo gg/mm/aaaa; un valore Date può essere passato a funzioni che ritornano l’anno, il giorno o il mese del valore.
Chiave Primaria (1/3) Definizione: se un campo di una tabella è definito come chiave primaria, non esistono due record nella tabella che hanno gli stessi valori per quel campo Uso: la chiave primaria di ogni tabella è definita da chi definisce il database, per avere modo di distinguere univocamente i record di una tabella
Chiave Primaria (2/3) Nella realtà degli studenti non esistono due studenti con la stessa matricola Nella tabella Studenti la chiave primaria dichiarata è il numero di matricola Ogni tentativo di inserire nella tabella il record di uno studente che ha lo stesso valore del campo matricola di un altro già presente nella tabella, viene impedito e causa un messaggio di errore
Chiave Primaria (3/3) Nella realtà degli Esami? Nella realtà degli Esami non possono esistere due esami con lo stesso candidato e la stessa materia: la chiave primaria dichiarata è la coppia di campi (materia, candidato) in alternativa un nuovo campo, codiceEsame: a volte può essere conveniente definire una proprietà fittizia, non presente nella realtà di interesse, che compia la funzione di chiave primaria (ad esempio quando la chiave reale è composta da troppi campi)
Chiave Esterna (1/3) Ultima nozione fondamentale è quella di Chiave Esterna di una tabella Una chiave esterna è un campo che contiene il valore di una chiave primaria: Questo mette in relazione il record che contiene un certo valore per la chiave esterna con il record, in un’altra tabella, che contiene quel valore per la chiave primaria
Chiave Esterna (2/3) Per i nostri scopi, in quale tabella dell’esempio deve essere definita una chiave esterna? Quale campo potrebbe essere chiave esterna? Nella tabella Esami Nessuno: nessun campo della tabella ha valori nella chiave primaria della tabella Studenti
Chiave Esterna (3/3) Se si definisse il campo Candidato come chiave esterna, quali problemi potremmo avere? Studenti omonimi: in una ricerca, gli esami passati da studenti diversi con lo stesso nome verrebbero associati ad entrambi gli studenti!!!
Tabella Esami corretta La tabella Esami deve essere definita come: Struttura tabella: Corso: Text Candidato: Number Data: Date Voto: Number(2) Lode: Si/No 30 13/02/01 179856 FP 18 11/02/01 171523 LMM 25 15/01/01 175649 BD 167459 28 12/01/01 Voto Data Candidato Materia 30 No 18 No 25 No 30 Si 28 No Voto Lode
Relazione tra tabelle Il campo Candidato è chiave esterna di Esami. Studenti Nome Matricola Provincia DataNascita Isaia 171523 PI 01/01/1980 Esami Corso Candidato Data Voto BD 171523 12/01/01 29 Il campo Candidato è chiave esterna di Esami. Contiene valori della chiave primaria Matricola di Studenti. Il valore di Candidato mette in relazione il relativo record con il record dello studente che ha passato l’esame.
Schema relazionale esamiSuperati passatoDa Studenti Esami Studenti Nome Candidato* Provincia Voto Studenti Esami Corso Matricola Lode DataNascita Data
Ricerca dei dati Un database relazionale consente la ricerca dei dati attraverso un particolare linguaggio di interrogazione detto SQL In SQL è possibile formulare richieste del tipo: Singola tabella: Dammi i nomi degli studenti nati prima del 1980 Dammi tutti gli esami passati prima del 12/31/2001 Tabelle multiple: Dammi tutti i nomi e i voti dei corsi che sono stati passati da studenti di Pisa Dammi il nome degli studenti e il numero di esami da essi passati tra il 2000 e il 2001
MS Access (1/2) Un Sistema per la Gestione di Basi di Dati (SGBD), altrimenti detto DataBase Management System (DBMS)
MS Access (2/2) Un insieme di strumenti per la Gestione automatica ed efficiente del database: Definizione delle tabelle (campi e tipi) e delle relazioni tra di esse Query di inserimento, cancellazione, modifica e ricerca dei record nelle tabelle Definizione di applicazioni con interfacce utente per la gestione del database Maschere e Report
Esercizio Definire un database Access che consenta la gestione delle informazioni relative agli Agenti dell’FBI. Di ogni agente interessa il nome, il codice e la data di assunzione. Ogni agente lavora per un dipartimento, il quale è caratterizzato da una specializzazione (stragi, cospirazioni, guerre, etc.). Ci interessa fare ricerche sugli agenti in base a continente, stato e indirizzo dei dipartimenti per cui lavorano; sui dipartimenti in base alle date di assunzione degli agenti; altro...
Definizione del database Creazione delle tabelle Attributi e tipi Creazione delle associazioni Integrità referenziale Cancellazione e modifica a cascata Caselle combinate Inserimento dati: rispetto dell’integrità referenziale
Definizione delle query Selezione della tabella coinvolta Selezione degli attributi coinvolti Da visualizzare Da sottoporre a vincoli (And e Or) Query a più tabelle Concetto di giunzione Una query è a tutti gli effetti una tabella I record vengono calcolati dinamicamente al momento della esecuzione Può essere utilizzata per effettuare altre query
Query: tipologie Query per la ricerca Query per il calcolo Selezione e visualizzazione di record Query per il calcolo Max, min, media, somma, etc.
Esercizio: il database Catena di agenzie immobiliari. Degli acquirenti ci interessa il nome il telefono, la città in cui intendono comprare, i mq desiderati e la cifra che sono disposti a spendere. Dei proprietari ci interessa sapere il nome, il telefono e le case in vendita. Delle case ci interessano i mq, il prezzo, l’indirizzo e i proprietari. Delle agenzie ci interessa sapere il nome, il comune, la provincia, il telefono, i clienti e i venditori. Sappiamo che: ogni venditore può riferirsi solo all’agenzia del comune in cui vende Ogni città ha una sola agenzia
Esercizio:le query Trovare il nome, il telefono e i mq di chi vende a Milano una casa per meno di 150.000 Euro Trovare il nome, il telefono e gli Euro di chi intende acquistare una casa di 80mq a Roma Trovare il prezzo medio delle case in vendita a Parma Trovare i prezzo massimo tra tutte le case in vendita a Pontedera (PI) e Empoli (FI) Trovare il nome, il comune, la privincia e il numero di telefono delle agenzie che hanno acquirenti per la provincia di Pisa Trovare tutti i nomi e i telefoni dei venditori e degli acquirenti le cui richieste in mq e Euro hanno uno scarto di 20mq e 10.000 Euro rispettivamente.
Esercizio: il database Ci interessa trattare i dati delle sale cinematografiche italiani. Di ogni cinema interessa sapere il nome, la città e le sale. Le sale sono caratterizzate da un nome, da un film in proiezione, dal prezzo del biglietto, data di inizio e di fine proiezione del film e dal numero di posti a sedere. [Dei film interessa sapere il titolo, il regista e l’anno di uscita.]