Basi di Dati La Progettazione SSIS 1 2 Piano della lezione Problema dell’archivio dei pazienti Realizzazione di una soluzione preinformatica: 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 SSIS 3 Problema Gestione delle informazioni relative ad un’Organizzazione Inserimento, modifica, cancellazione ed elaborazione delle informazioni processi interni di aggiornamento e analisi input esterni Organizzazione richiesta di servizi e risposta SSIS 4 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 SSIS 5 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? SSIS 6 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 SSIS 7 Piano della lezione Problema dell’archivio dei pazienti Realizzazione di una soluzione preinformatica: 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 SSIS Tipica soluzione preinformatica 8 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 SSIS Schedario: rappresentazione della realtà 9 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 SSIS 10 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 SSIS 11 Schedario pazienti Cassetto 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 Patologie: Peso: 56 kg 1957 morbillo Menarca: 13 anni 1960 rosolia Modalità parto: naturale DIARIO: Prima visita: influenza, consigliata tachipirina (02/04/2000) Seconda: 14/09/2000, Commento: allergia, rich. visita specialistica 3 visita: 02/02/2001 .... SSIS 12 Schedario pazienti Cassetto Pazienti Paziente dal 15/11/1996 CSSN: 0604/9786554 CSSN: 0608/7654321 DATI ANAGRAFICI: Nome: Mario Cognome: Rossi Anno di nascita: 1964 Luogo di Nascita: Firenze Cittadinanza: Italiana Indirizzo: Via Palestro 6 50100 Firenze Tel.: 345 678910 E-mail: [email protected] DATI MEDICI: Gruppo sanguigno: B Negativo Patologie: morbillo (1970), parotite (1971), Altezza e peso: 1.65 m, 63 Kg 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 ... SSIS Schedario pazienti 13 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 SSIS 14 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 SSIS 15 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 SSIS Problemi dello schedario: Mancanza di progettazione 16 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 SSIS Problemi dello schedario: Mancanza di progettazione 17 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 SSIS 18 Schedario pazienti Assenza di omogeneità 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 Patologie: Peso: 56 kg 1957 morbillo Menarca: 13 anni 1960 rosolia Modalità parto: naturale DIARIO: Prima visita: influenza, consigliata tachipirina (02/04/2000) Seconda: 14/09/2000, Commento: allergia, rich. visita specialistica 3 visita: 02/02/2001 .... SSIS 19 Schedario pazienti Assenza di omogeneità Paziente dal 15/11/1996 CSSN: 0604/9786554 CSSN: 0608/7654321 DATI ANAGRAFICI: Nome: Mario Cognome: Rossi Anno di nascita: 1964 Luogo di Nascita: Firenze Cittadinanza: Italiana Indirizzo: Via Palestro 6 50100 Firenze Tel.: 345 678910 E-mail: [email protected] DATI MEDICI: Gruppo sanguigno: B Negativo Patologie: morbillo (1970), parotite (1971), Altezza e peso: 1.65 m, 63 Kg 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 ... SSIS Problemi dello schedario: Mancanza di progettazione 20 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) SSIS Problemi dello schedario: Mancanza di progettazione 21 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 SSIS Problemi dello schedario: Mancanza di progettazione 22 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 SSIS delle informazioni interessanti di un paziente 23 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 SSIS Buona progettazione 24 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à SSIS 25 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 SSIS Buona progettazione: Il modello 26 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 SSIS 27 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 SSIS Buona progettazione: Realizzazione 28 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 SSIS 29 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 SSIS Buona progettazione: Il modello 30 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 SSIS Buona progettazione: Il modello 31 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 SSIS 32 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 Scheda paziente: Paziente dal: CSSN: / Dati anagrafici: medico nel Nome: Indirizzo: Cognome: corretto FOTO Anno di nascita: inserimento di Sesso: M Tel.: F Cittadinanza: E-mail: informazioni Dati medici: Gruppo sanguigno: Altezza: m Peso: kg Patologie [nome (anno)]: Diario: Visite: Prima visita:Tipo Data: influenza, [studio/domicilio]: consigliata tachipirina Esito: (02/04/2000) Seconda visita: 14/09/2000, 3 visita: 02/02/2001 .... Commento: allergia, rich. visita specialistica SSIS 33 Buona progettazione: Il modello Tracce per la Unità di misura compilazione uguali per tutte le uniforme delle schede Per garantire l’omogeneità dello schedario informazionisi definisce un Struttura omogenea delle schede fac-simile della generica scheda paziente. Questo guida il Scheda paziente: Paziente dal: CSSN: / Dati anagrafici: medico nel Nome: Indirizzo: Cognome: corretto FOTO Anno di nascita: inserimento di Sesso: M Tel.: F Cittadinanza: E-mail: informazioni Dati medici: Gruppo sanguigno: Altezza: m Peso: kg Patologie [nome (anno)]: Diario: Visite: Prima visita:Tipo Data: influenza, [studio/domicilio]: consigliata tachipirina Esito: (02/04/2000) Seconda visita: 14/09/2000, 3 visita: 02/02/2001 .... Commento: allergia, rich. visita specialistica SSIS 34 Buona progettazione: Il modello Struttura omogenea delle schede Paziente 0608/7654321 dal: 10/12/99 Scheda paziente: 31 CSSN: DATI ANAGRAFICI: Dati anagrafici: Nome: Mario Nome: Mario Cognome: Rossi Cognome: Rossi Anno Anno di di nascita: nascita:1964 1964 Luogo di Nascita: FFirenze M Sesso: Cittadinanza: Italiana Cittadinanza: Italiana Dati DATImedici: MEDICI: Gruppo sanguigno: Negativo Gruppo sanguigno: B BNegativo Altezza: 1.65 m CSSN: 0608/7654321 Indirizzo: Indirizzo: Via Palestro 6 50100 Firenze Tel.: 345 678910 Tel.: E-mail: [email protected] E-mail: Patologie (anno)]: Patologie:[nome morbillo (1970), parotite (1971), morbillo (1970), varicella parotite (1971), Altezza e peso: 1.65 m, 63 Kg rosolia (1973), (1973) Peso: 63 kg rosolia (1973), varicella (1973) DIARIO: Visite: Data: 22/03/2000 Commento: influenza, sintomi Data Tipo [studio/domicilio] Esito classici Li: 3 maggio 2002 Comm.: forte tosse, consigliato TosseVia 22/03/2000 domicilio influenza, sintomi1000 classici per una settimana 03/05/2002 studio forte tosse, consigliato Data: 23/08/2002 ... TosseVia 1000 per una sett... SSIS 36 Buona progettazione: Il modello Struttura omogenea delle schede 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 Patologie: Peso: 56 kg Menarca: 13 anni 1957 morbillo Modalità parto: naturale 1960 rosolia Scheda paziente: 12 Paziente dal: 11/04/2000 CSSN: 0601/1234567 Dati anagrafici: Nome: Maria Indirizzo: Cognome: Bianchi Via Marmolada 67 Anno di nascita: 1950 56126 Pisa Sesso: M Tel. 7 8910111 F Cittadinanza: Italiana E-mail: Dati medici: Gruppo sanguigno: A Positivo Patologie [nome (anno)]: Altezza: 1.58 m morbillo (1957), rosolia (1960) Peso: 56 kg Visite: DIARIO: Prima visita: influenza, consigliata tachipirina (02/04/2000) CSSN: 0608/7654321 Seconda: 14/09/2000, Commento: allergia, rich. visita specialistica 3 visita: 02/02/2001 .... 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: [email protected] DATI MEDICI: Gruppo sanguigno: B Negativo Patologie: morbillo (1970), parotite (1971), Altezza e peso: 1.65 m, 63 Kg 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 ... Data Tipo [studio/domicilio] Esito 02/04/2000 domicilio influenza, tachipirina Scheda paziente: 31 Paziente dal: 10/12/99 CSSN: 0608/7654321 14/09/2000 studio allergia, rich. Visita specialistica DATIanagrafici: ANAGRAFICI: Dati Nome: Mario Indirizzo: Nome: Mario Indirizzo: Cognome: Rossi Cognome: Rossi Via Palestro 6 Via Palestro 6 Anno di Anno dinascita: nascita:1964 1964 50100 Firenze 50100 Firenze Sesso: M F Tel.: 345 678910 Luogo di Nascita: Firenze Tel.: 345 678910 Cittadinanza: Italiana E-mail: [email protected] Cittadinanza: Italiana E-mail: [email protected] Dati DATImedici: MEDICI: Gruppo sanguigno: B Negativo Patologie [nome (anno)]: Gruppo sanguigno: B Negativo Altezza: 1.65 m morbillo (1970), parotite (1971), Altezza e peso: 1.65 m, 63 Kg Peso: 63 kg rosolia (1973), varicella (1973) DIARIO: Visite: Data: 22/03/2000 Commento: influenza, Esito sintomi classici Data Tipo [studio/domicilio] Li: 3 maggio 2002 Comm.: forte tosse, consigliato TosseVia 22/03/2000 domicilio influenza, sintomi1000 per una settimana classici Data: 23/08/2002 03/05/2002 studio... forte tosse, consigliato SSIS Problemi dello schedario: Problemi intrinseci 37 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? SSIS Problemi dello schedario: Problemi intrinseci 38 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 Indice schede … 0601/1234567, Bianchi Maria 0604/9786554, Verdi Luigi 0608/7654321, Rossi Mario … – 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 SSIS 39 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 Indice gruppo: B Negativo … Rossi Mario Verdi Luigi … Indice gruppo: A Positivo … Bianchi Maria Gialli Marta … – Dall’indice relativo al gruppo B Negativo si può ricavare rapidamente il totale desiderato contandone gli elementi SSIS 40 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 SSIS 41 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 SSIS 42 Piano della lezione Problema dell’archivio dei pazienti Realizzazione di una soluzione preinformatica: 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 SSIS 43 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) SSIS Progettazione e realizzazione di un database 44 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à SSIS 45 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à SSIS Schedario e database: collezione di entità Scheda paziente: 31 Paziente dal: 10/12/1999 CSSN: 0608/7654321 Dati anagrafici: Nome: Mario Cognome: Rossi Anno di nascita: 1964 … 46 Ad un cassetto dello schedario corrisponde una tabella del database Dati medici: Gruppo sanguigno: B Negativo … Visite: Diario: Data: 22/03/2000 Tipo: domicilioinfluenza, sintomi Commento: classici... Esito: influenza, sintomi classici Pazienti … Cassetto SSIS 47 Schedario e database: entità Scheda paziente: 31 Paziente dal: 10/12/1999 CSSN: 0608/7654321 Dati anagrafici: Nome: Mario Cognome: Rossi Anno di nascita: 1964 … Dati medici: Gruppo sanguigno: B Negativo … Ad una scheda del cassetto corrisponde un record della tabella Visite: Diario: Data: 22/03/2000 Tipo [studio/domicilio] Esito sintomi Commento: influenza, classici... 22/03/2000 domicilio influenza, … Cassetto Pazienti SSIS 48 Schedario e database: attributi Scheda paziente: 31 Paziente dal: 10/12/1999 CSSN: 0608/7654321 Dati anagrafici: Nome: Mario Cognome: Rossi Anno di nascita: 1964 … Dati medici: Gruppo sanguigno: B Negativo … Ad ogni informazione sulla scheda corrisponde un valore nel record Visite: Diario: Data: 22/03/2000 Tipo [studio/domicilio] Esito sintomi Commento: influenza, classici... 22/03/2000 domicilio influenza, … Cassetto Pazienti SSIS Schedario e database: operazioni 49 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 SSIS 50 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) SSIS 51 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 SSIS 52 Modellazione e progettazione Organizzazione A B Modello concettuale ER A Mappatura in modello relazionale equivalente B Soluzione anni ‘70 Creazione DB Database Archivio cartaceo SSIS 53 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 SSIS 54 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 Attributi totale strutturato multivalore parziale unione SSIS Aspetto linguistico 55 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 Professori tenutoDa Corsi SSIS Aspetto linguistico 56 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 Professori tesistaDi Studenti SSIS Aspetto linguistico 57 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 Corsi corsiSeguiti Studenti SSIS 58 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. SSIS 59 Modello concettuale esamiSuperati passatoDa Studenti Esami SSIS 60 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 SSIS 61 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 SSIS 62 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 SSIS 63 Tabella Studenti Struttura tabella: Nome: Text Matricola: Number Provincia: Text(2) DataNascita: Date Record Campo Nome Matricola Provincia DataNascita Isaia 171523 PI 01/01/1980 Rossi 167459 LU 03/10/1975 Bianchi 179856 LI 12/07/1978 Bonini 175649 PI 25/12/1980 Valore SSIS 64 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 SSIS 65 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. SSIS 66 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 SSIS 67 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 SSIS 68 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) SSIS 69 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 SSIS 70 Chiave Esterna (2/3) Per i nostri scopi, in quale tabella dell’esempio deve essere definita una chiave esterna? Nella tabella Esami Quale campo potrebbe essere chiave esterna? Nessuno: nessun campo della tabella ha valori nella chiave primaria della tabella Studenti SSIS 71 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!!! SSIS 72 Tabella Esami corretta La tabella Esami deve essere definita Struttura tabella: come: Corso: Text Candidato: Number Data: Date Voto: Number(2) Lode: Si/No Materia Candidato Data Voto Lode BD 171523 12/01/01 28 No BD 167459 15/01/01 30 Si FP 179856 13/02/01 30 No BD 175649 15/01/01 25 No LMM 171523 11/02/01 18 No SSIS 73 Relazione tra tabelle Studenti Nome Matricola Provincia DataNascita Isaia 171523 PI 01/01/1980 Corso Candidato Data Voto BD 171523 12/01/01 29 Esami 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. SSIS 74 Schema relazionale esamiSuperati passatoDa Studenti Esami Nome Provincia Matricola DataNascita Studenti Esami Candidato* Voto Corso Lode Data SSIS 75 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 SSIS 76 MS Access (1/2) Un Sistema per la Gestione di Basi di Dati (SGBD), altrimenti detto DataBase Management System (DBMS) SSIS 77 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 SSIS 78 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... SSIS 79 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 SSIS 80 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 SSIS 81 Query: tipologie Query per la ricerca – Selezione e visualizzazione di record Query per il calcolo – Max, min, media, somma, etc. SSIS 82 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 SSIS 83 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. SSIS 84 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.] SSIS