documento sistema informativo ambulatorio veterinario on-line
1. REALIZZAZIONE DEL
PROGETTO
AMBULATORIO VETERINARIO ON-LINE
Ing. Nelson Firmani
Dipartimento di Ingegneria Elettrica
Università di L’Aquila, AQ 67040, Italy
1
2. Ambulatorio
veterinario on-line
Studio diFattibilita’
Requisiti Utente e specifiche Funzionali del Sistema
Progettazione Della Base di dati
Progettazione Del sistema
2
4. Table of contents
1 Il contesto dello studio ................................................................................................................. 2
2 Progetto di massima ...................................................................................................................... 4
2.1 Obiettivi .............................................................................................................................................. 4
2.2 Funzioni del sistema .................................................................................................................. 4
2.3 Natura e caratteristica dei dati da gestire.................................................................. 5
2.4 Aspetti tecnologici ....................................................................................................................... 6
2.5 Analisi costi-benefici e analisi rischio .......................................................................... 7
Glossario dei termini ....................................................................................................................... 10
4
5. STUDIO DI FATTIBILITA’
finalizzato alla realizzazione del progetto ambulatorio veterinario
on-line
1 Il contesto dello studio
In Italia negli ultimi anni è cresciuta la presenza di strutture sanitarie
veterinarie private. Dei 30000 veterinari iscritti nell’apposito albo tenuto
dagli ordini provinciali dei medici veterinari, più del 60% esercita la
libera professione sia in forma singola che associata.
Inoltre nel settore si assiste ad una sempre maggiore specializzazione
basata sul tipo di prestazione:
Qualche anno fa, il veterinario si occupava prevalentemente di animali da
reddito ospitati da aziende zootecniche. Oggi si parla sempre più di
veterinario di città per indicare colui che si dedica quasi esclusivamente
alla cura degli animali di compagnia, fra cui i più comuni sono il cane ed
il gatto.
La differente specializzazione si riflette sulle condizioni e modalità di
esercizio delle attività e sulla tipologia ed organizzazione della struttura
adibita all’esercizio dell’attività.
In questo ambito si individuano i seguenti tipi di strutture sanitarie
veterinarie private:
• Studio veterinario
E’ l’ambiente privato dove vengono erogate le prestazioni che non
comportano la degenza, oltre quella giornaliera.
• Ambulatorio veterinario
E’ l’ambiente costituito da una sala d’attesa e da una o più sale per
l’esecuzione delle prestazioni diagnostiche e terapeutiche. Uno o più
medici erogano prestazioni sanitarie che possono comportare anche
una degenza giornaliera.
• Cliniche veterinarie.
Si tratta di strutture sanitarie più complesse ove è prevista la
possibilità di una degenza superiore a quella giornaliera e la
5
6. presenza di un medico veterinario 24 ore su 24.
Le strutture più ricorrenti sono senza dubbio gli ambulatori veterinari in
quanto attraverso gli stessi viene fornito un servizio di più ampia richiesta.
La realtà della citta di Teramo riguardo alla presenza di strutture
sanitarie veterinarie private è la seguente:
• 4 ambulatori privati
• 1 clinica veterinaria
Da una indagine sui 4 ambulatori privati si è scoperto che non esiste una
raccolta dei dati ambulatoriali informatizzati né tantomeno servizi on-line
o siti web informativi.
Tutti i dati connessi alla diagnosi e cura degli animali e alla gestione dei
clienti proprietari degli animali è quasi assente o al più in forma cartacea.
L’idea di un sistema informatico finalizzato alla raccolta dei dati
ambulatoriali è nata dai colloqui tenuti con un medico veterinario
proprietario di un ambulatorio sito nella città di Teramo.
L’esigenza principale manifestata dal medico è stata quella di avere a
disposizione in maniera semplice tutte le informazioni storiche relative ad
un animale in cura presso l’ambulatorio. E quella di un sito web per la
promozione del suo ambulatorio che non fosse solo una vetrina ma offrisse
un servizio utile ai propri clienti.
Se trascuriamo le problematiche relative alla sicurezza dei dati (esigenza
non necessaria)
dal punto di vista tecnologico il progetto è di facile attuazione con costi
contenuti.
L’unico fattore di criticità è rappresentato dall’impatto che l’introduzione
delle nuove procedure informatizzate può produrre sulla preesistente
organizzazione lavorativa. Se l’impatto è troppo traumatico, è inevitabile
che nascano fenomeni di reazione che si oppongono al corretto
funzionamento del nuovo sistema dovuto anche alla non sempre adeguata
confidenza con le tecnologie informatiche da parte dei fruitori del servizio.
6
7. 2 Progetto di massima
Il progetto di massima consiste nella descrizione degli elementi portanti e delle linee di
realizzazione del progetto ambulatorio veterinario on-line.
L’elaborazione del progetto di massima risponde principalmente all’esigenza di verificare
la fattibilità del progetto e di stimarne costi, benefici e tempi, quindi la descrizione del progetto in
termini di dettaglio è limitato alle componenti principali del sistema informativo e all’esame dei
casi normali o generali.
2.1 Obiettivi
1. Promuovere l’ambulatorio veterinario attraverso un sito web e dotando la propria clientela di
un servizio on-line innovativo.
2. Un nuovo scenario lavorativo nel quale sia davvero più semplice operare all’interno
dell’attività ambulatoriale e dove l’uso del computer possa essere un valido aiuto.
Ma nello stesso tempo evitare un impatto traumatico delle nuove procedure informatizzate
su una preesistente organizzazione lavorativa.
2.2 Funzioni del sistema
Sulla base dei numerosi colloqui avuti con il cliente si possono elencare
alcuni dei requisiti utente che devono essere considerati nello studio di
fattibilità.
La prima parte del progetto riguarda:
• La creazione del sito http://www.ambulatorioonline.it/
La prima pagina deve consentire di valutare immediatamente il
contenuto informativo di tutto il sito che potrebbe essere riassunto in
3 sezioni:
o Presentazione dell’ambulatorio veterinario
o Servizi di community quali ad esempio: FAQ e news inerenti il
mondo animale.
o La fornitura di un servizio alla clientela dell’ambulatorio.
Questo prevvede la possibilità di accedere attraverso internet
alle informazioni riguardanti i propri animali trattati in
ambulatorio. Secondo alcune interviste a possibili utenti è
emerso che questo servizio è particolarmente gradito quando il
proprio animale è ricoverato in ambulatorio e si vuole sapere
7
8. come procede la degenza.
La seconda parte del progetto, in un certo senso il cuore del progetto,
prevede la informatizzazione della raccolta dei dati durante l’attività
ambulatoriale:
• L’inserimento dei dati ambulatoriali ad opera del veterinario deve
essere semplice ed avvenire attraverso una interfaccia web:
Gli strumenti di navigazione (link, bottoni, trova ecc. ) devono essere
sempre ben visibili e possibilmente conservare la stessa posizione in
tutte le pagine e consentire rapidamente di tornare alla pagina
menù.
• La raccolta e la gestione dei dati deve riprodurre il più possibile
l’abituale modo di lavorare del medico veterinario.
• Prevedere applicativi che facilitino la pubblicazione e la gestione
delle informazioni minimizzando le modifiche delle pagine web del
sito.
• Prevedere una gestione delle autorizzazione all’accesso del sistema
2.3 Natura e caratteristica dei dati da gestire
Per poter memorizzare dati è pratica corrente progettare e realizzare un
sistema i nformativo
automatizzato che si basa sulla tecnologia delle basi di dati.
In un ambulatorio veterinario è possibile individuare due settori
applicativi:
1. Gestione degli animali assistiti (anagrafe del proprietario,
informazioni sull’animale, dati clinici);
2. Gestione amministrativa dell’attività ambulatoriale: gestione del
bilancio, dei capitoli spesa, di atti amministrativi.
Il progetto mira ad informatizzare il primo settore applicativo.
8
9. L’insieme dei dati riguardanti il primo settore applicativo è costituita
certamente da:
• dati numerici e testuali per la gestione dei clienti
• dati numerici e testuali per la gestione degli animali assistiti;
• dati numerici e testuali per la gestione dei dati clinici
• dati immagine previsti per la memorizzazione della foto
dell’animale.
Il volume dei dati previsto è basso.
9
10. 2.4 Aspetti tecnologici
In questa sezione si presenta le diverse soluzioni tecnologiche offerte dal
mercato in termini di ambiente di sviluppo di linguaggio di
programmazione e di data base da utilizzare.
Il panorama delle principali soluzioni disponibili sul mercato sono:
• Ambiente di sviluppo Microsoft su piattaforma Microsof:
Per lo sviluppo di soluzioni web based la scelta è quasi obbligata:
Windows 2000 Server o Windows NT, SQL Server 2000, IIS (Internet
Information Server) come web server e tecnologia ASP.NET per la
costruzione dell'applicazione. Asp è l'acronimo di ACTIVE SERVER
PAGES, le istruzioni contenute nelle pagine ASP vengono elaborate
dal web server per produrre vari effetti che vanno dalla
formattazione automatica dei contenuti, all'accesso tramide ODBC
ad informazioni remote indipendentemente dal database usato.
• Ambiente di sviluppo Java
E’ portabile su qualsiasi piattaforma, non prendiamo in
considerazione la classica piattaforma java, server Sun e database
ORACLE in quanto il volume di dati scambiato nel nostro caso è
basso ed inoltre questo tipo di piattaforma è tra le più
costose.Prendiamo invece in considerazione l’ambiente di sviluppo
Open Source Java su piattaforma Linux con qualunque database di
qualità disponibile sul mercato (MySQL http://www.mysql.com e
PostgreSQL http://www.postgresql.org sono le scelte tipiche).
Entrambi questi database hanno dimostrato ottimi risultati quando
utilizzati in progetti piccoli e medio/piccoli. Nel nostro caso specifico
le due soluzioni sono certamente adeguate al volume di dati previsto.
MySQL è Free Software, PostgreSQL è sotto licenza BSD, che è una
licenza Open Source ma non Free Software. Quindi l’ambiente di
sviluppo java su piattaforma linux con Mysql come data base
relazionale e server Apache Tomcat come web server e contenitore
JSP e servlet e di Eclipse (Eclipse è un editor di servlets e di JSP è
scritto in Java ed è open source) come strumento di sviluppo
potrebbe essere una scelta economicamente molto vantaggiosa
10
11. grazie alla licenza Open source.
• Ambiente Open Source su piattaforma Linux con web server apache
databse Mysql e linguaggio PHP per lo sviluppo dell’applicazione.
In conclusione i risparmi di natura economica in una scelta Open Source
sono sensibili.
Per quanto riguarda la scelta del linguaggio di programmazione di pagine
dinamiche che interagiscono con le informazioni contenute in un database
risiedente sul server web la scelta può essere tra CGI Perl, PHP, ASP,
JSP e Servlet:
• CGI : ogni volta che viene richiamato uno script Cgi (scritto in un
qualsiasi linguaggio), viene avviato un nuovo processo sul server
Web, questo comporta problemi di sovraccaricamento del server.
• PHP: E’ un linguaggio di scripting simile al C molto semplice da
apprendere. Tra i pregi del Php ci sono la velocità, la robustezza e il
fatto che essendo Open Source si ha la visibilità sui sorgenti e la
possibilità di correggere errori e apportare migliorie.
• ASP: Tecnologia legata all’ambiente Microsoft Windows con
Internet Information Server.
Le pagine ASP includono istruzioni scrite in “VBSCRIPT” oppure
“JSCRIPT” che vengono elaborate dal server.
• JSP (Java Server Page) e Servlet: La Servlet è una classe java
orientata alla comunicazione client-server, mentre la pagina JSP è
un modo più semplice per scrivere servlet. Infatti una pagina jsp
contiene codice HTML misto a codice Java che viene trasformata dal
server container (es: APACHE Tomcat) in una servlet e quindi
compilata.
Non solo bisogna conoscere il linguaggio Java e le innumerevoli
classi di cui è composto Ma anche una nuova filosofia di
programmazione, quella orientata agli oggetti.
11
12. Un breve confronto fra i linguaggi a disposizione porta ad individuare
Php da abbinare a HTML CSS e Javascript come linguaggio da utilizzare
per lo sviluppo dell’applicazione.
La scelta è motivata in base alle seguenti considerazioni:
PHP è open source, adatto alle dimensioni del progetto e rispetto a JSP
consente un costo di sviluppo molto più basso.
2.5 Analisi costi-benefici e analisi rischio
In questa parte del documento si evidenzieranno i costi di sviluppo e di
esercizio del progetto.
Le principali voci che costituiscono i costi di sviluppo riguarda in
particolar modo l’ambiente di sviluppo software (già analizzato nella
parte del documento relativo agli aspetti tecnologici) e il costo dovuto
all’impegno di risorse umane.
Per quanto riguarda i costi operativi o di esercizio occorre individuare la
soluzione più idonea per la gestione del sito. Escluse a priori le soluzioni
completamente interna (homing) per i costi elevati e completamente
esterna (outsourcing), in quanto l’inserimento dati deve essere eseguito
dal medico veterinario, restano da confrontare due possibili soluzioni:
• HOUSING
La soluzione che lascia la maggiore libertà di gestione all'utente è
quella che prevede l'acquisto di un server e di software specifico.
L'utente, una volta realizzato il sistema, potrà stipulare un contratto
di housing con un Internet Access Provider, che inserirà il server
nella sua rete locale collegata ad Internet. Ma i problemi hardware
di un computer in housing non possono, ovviamente, essere risolti da
remoto e inoltre le spese di acquisto del server e di gestione di
hardware e sistema operativo sono consistenti. Si potrebbe adottare
la soluzione noleggio server. Il mercato attualmente offre questo tipo
di soluzione al prezzo di circa 250 Euro mensili.
• HOSTING
Un contratto di hosting prevede la possibilità per il cliente di
operare sul server del provider in relativa autonomia, limitatamente
allo spazio assegnatogli. I vantaggi di tale soluzione sono evidenti:
12
13. l'utente non si deve fare carico del costo dell'hardware e non ha
inoltre bisogno di reclutare personale tecnico in grado di gestirlo. A
ciò bisogna aggiungere che il costo dell' hosting, a parità di banda
disponibile, è di norma molto più basso di quello di un normale
housing. Il costo di un contratto di hosting dipende da fattori come il
livello di autonomia operativa e la qualità del servizio (il cui primo
parametro di valutazione è ovviamente costituito dalle dimensioni
della banda disponibile). La macchina del provider ospita il server
dell’azienda e può essere amministrata a distanza in alcune sue
funzionalità: nei contenuti delle pagine Web, caselle di posta, con
strumenti di gestione e analisi degli accessi al sito, attraverso la
configurazione di applicazioni quali mailing list e consultazioni di
database online. Il mercato attualmente offre questo tipo di soluzione
a partire da 60 Euro l’anno. Vedi tabella 2
Tabella Server Dedicati
Offerte Intel Celeron
Traffico Costo di Canone mensile
CPU RAM HD
mensile attivazione (Euro)
Intel Celeron 1.3 512MB 60GB 700GB Gratuito 199,00
Intel Celeron 1.3 1 GB 60GB 700GB Gratuito 199,00
OFFERTA
Intel Celeron 1.3 1 GB (2) 60GB 700GB Gratuito 258,00
Intel Celeron 1.7 512MB 60GB 700GB Gratuito 199,00
OFFERTA
Intel Celeron 1.7 1 GB 60GB 700GB Gratuito 238,00
Intel Celeron 1.7 1 GB (2) 60GB 700GB Gratuito 278,00
Offerte Intel Pentium 4
Traffico Costo di
CPU RAM HD Canone mensile
mensile attivazione
Intel Pentium 4
512MB 60GB 700GB Gratuito 238,00
2.0
Intel Pentium 4
512MB 80GB 700GB Gratuito 258,00
2.0
Intel Dual Xeon
Costo di
CPU RAM HD Transfer Canone mensile
attivazione
Intel Dual Xeon
512MB 73GB SCSI 700GB Gratuito 398,00
2.0
13
15. Tabella offerta hosting
Piano STANDARD Hosting Linux con 60,00 € l'anno
Dominio
Sistema operativo Linux RedHat
1 Dominio .com, .net, .org, .it
100 MB di spazio disco
10 e-mail
alias e-mail illimitati
2 GB di Trasferimento Mensile
Pannello di controllo Cpanel
Supporto PHP4, CGI/Perl, MySQL
Piano PROFESSIONAL Hosting Linux 90,00 € l'anno
con Dominio
Sistema operativo Linux RedHat
1 Dominio .com, .net, .org, .it
200 MB di spazio disco
20 e-mail
alias e-mail illimitati
3 GB di Trasferimento Mensile
Pannello di controllo Cpanel
Supporto PHP4, CGI/Perl, MySQL
Piano ADVANCED Hosting Linux con 135,00 € l'anno
Dominio
Sistema operativo Linux RedHat
1 Dominio .com, .net, .org, .it
500 MB* di spazio disco
illimitate e-mail
alias e-mail illimitati
6 GB** di Trasferimento Mensile
Pannello di controllo Cpanel
15
16. Supporto PHP4, CGI/Perl, MySQL
Tabella 2 (dati eurosito.it)
L' hosting costituisce un buon compromesso tra flessibilità del sistema e
difficoltà di gestione, ad un costo decisamente più contenuto di quello dell'
housing.
In termini di benefici sebbene difficili da monetizzare il progetto
sicuramente potrà produrre significativi miglioramenti del servizio reso
alla clientela, una migliore gestione dell’attività ambulatoriale, una
riduzione dei tempi di risposta e una riduzione dei supporti cartacei.
Quanto ai rischi inerenti il progetto è rappresentato dall’impatto che
l’introduzione delle nuove procedure informatizzate può produrre sulla
preesistente organizzazione lavorativa. Se l’impatto è troppo traumatico, è
inevitabile che nascano fenomeni di reazione che si oppongono al corretto
funzionamento del nuovo sistema. In ultima analisi è da tenere presente
che il sistema gestisce informazioni non critiche, per il quale un eventuale
malfunzionamento comporta danni limitati.
16
17. Glossario dei termini
Applicativo Insieme di procedure (software) in grado di processare dati secondo modalità
definite
DB, Data Base Archivio elettronico in grado di gestire e archiviare dati organizzati, sui quali
effettuare eventuali ricerche successive
DBMS Data Base Management System – E’ il sistema che gestisce il database
Hosting Servizio che prevede di ospitare applicativi e/o siti presso un computer di
proprietà del fornitore di servizi in modalità condivisa con altri utenti
Housing Servizio che prevede di ospitare applicativi e/o siti presso un computer in
modalità non condivisa con altri utenti presso il fornitore di servizi
HW HardWare: tutto ciò che costituisce fisicamente una unità di
elaborazione/computer
Interfaccia E’ la parte di un pacchetto SW orientata a facilitare il dialogo tra la macchina
utente e l’utilizzatore (es.: in un database è la maschera di interrogazione con i vari
strumenti che permette all’utilizzatore di estrarre le informazioni che cerca
dall’archivio)
Internet La più grande rete dati pubblica mondiale
ISP Internet Service Provider – Fornitore di servizi Internet
JDBC Java data base connetivity (soluzione tecnologica per far comunicare
applivcativi java con qualunque database
Open Source Si dice di programmi di cui sia liberamente disponibile il sorgente
ODBC Open data base connetivity (soluzione tecnologica per far comunicare
applicativi con qualunque database)
Protocollo Modalità di interscambio di dati
Server Sistema “centrale” cardine di una rete informativa
SW SoftWare: insieme di procedure che rendono possibili il trattamento di
informazioni in modalità definita in ambiente di elaborazione dati automatico
Web Browser E’ il software che consente di muoversi in Internet e di accedere alle risorse ivi
disponibili
17
19. Ambulatorio
veterinario on-line
Requisiti Utente
e
Specifiche Funzionali del Sistema
19
20. Table of contents
1 Introduzione........................................................................................................................................ 3
1.1 Obiettivo del documento ......................................................................... 3
1.2 Struttura del documento .......................................................................................................... 3
2 Requisiti utente ................................................................................................................................. 4
3 Requisiti funzionali ....................................................................................................................... 5
3.1 Gestione informazione on-line ............................................................................................ 5
3.1.1 Visualizzazione ................................................................................................................................ 5
3.2 Gestione cliente ............................................................................................................................. 6
3.2.1 Inserimento ........................................................................................................... 6
3.2.2 Cancellazione ....................................................................................................... 6
3.2.3 Ricerca ................................................................................................................................................ 6
3.3 Gestione attività ............................................................................................................................ 7
3.3.1 Registrazione.................................................................................................................................... 7
3.3.2 Visualizzazione ................................................................................................................................ 7
4 Diagramma di contesto ............................................................................................................... 8
4.1 Descrizione del diagramma di contesto ....................................................................... 9
4.1.1 Individuazione dei terminatori ............................................................................. 9
4.1.2 Flussi di dati in ingresso al sistema ..................................................................... 9
4.1.3 Flussi di dati in uscita dal sistema .......................................................................................... 9
5 Specifica delle funzioni............................................................................................................. 11
5.1 Diagramma di flusso di livello 0 – DFD 0 ............................................................... 11
5.1.1 Descrizione diagramma di flusso di livello 0 – DFD 0 ................................................ 13
5.2 Diagramma di flusso di livello 1 – DFD 2 ............................................................... 14
5.2.1 Descrizione diagramma di flusso di livello 1 – DFD 2 ................................................ 15
5.3Diagramma di flusso di livello 1 – DFD 3 ................................................................ 16
5.3.1 Descrizione diagramma di flusso di livello 1 – DFD 3 ................................................ 17
5.4 Dizionario dei dati .................................................................................................................... 19
6 Glossario termini ........................................................................................................................... 20
20
21. 1 Introduzione
La raccolta dei requisiti nasce dai contatti preliminari che si sono tenuti con il Cliente per la
realizzazione del progetto ambulatorio on line.
1.1 Obiettivo del documento
Lo scopo che si prefigge questo documento è quello di raccogliere e formalizzare in modo chiaro le
necessità dell'utente e stabilire un elenco di obblighi che il sistema deve soddisfare. Questo
documento sarà alla base dell’intero sviluppo del progetto e costituirà la base da cui si ricaveranno i
“Requisiti funzionali” e i diagrammi “DFD”.
1.2 Struttura del documento
Il presente documento è così strutturato:
1. Introduzione: definisce gli obiettivi del documento.
2. Analisi dei requisiti utente: descrive la portata del progetto e individua gli utenti del
sistema e le informazioni d’interesse per l’utente nel dominio considerato.
3. Analisi dei requisiti funzionali: descrive le funzionalità da automatizzare; tramite una
specifica basata su “diagramma di contesto” e “DFD”.
21
22. 2 Requisiti utente
Un ambulatorio veterinario per solo animali d’affezione, al fine di offrire un servizio sempre più
vicino alle esigenze dei suoi clienti, vuole dotare la propria clientela della possibilità di accedere
alle informazioni riguardanti i propri animali trattati in ambulatorio.
A tal fine è necessario informatizzare la raccolta dei dati durante l’attività ambulatoriale.
Il sistema prevede due scenari di uso, legati ai due tipi di utente: cliente (proprietario dell’animale)
e veterinario (amministratore dell’ambulatorio).
Al cliente (proprietario dell’animale o degli animali) il sistema deve presentarsi come un normale
sito web la cui pagina introduttiva deve contenere una presentazione del servizio e una richiesta di
identificazione dell’utente. Dopo aver inserito una username e una password (che certifica l’identità
dell’utente) si accede ad una pagina che riassume: i dati principali del proprietario e un elenco
cronologico delle prestazioni effettuate presso l’ambulatorio sui propri animali.
I dati relativi agli animali assistiti sono la principale fonte di informazione del sistema informativo
da realizzare. La maggior parte di questi dati concorrono alla definizione delle prestazioni effettuate
(storico dell’assistito).
Ogni prestazione registrata è costituita:
1. dal tipo di prestazione che può essere una visita, un ricovero, una dimissioni o un esame di
laboratorio.
2. Dai dati sull’animale (foto, nome, specie, razza, sesso, età)
3. Data e ora in cui è stata effettuata la prestazione
Inoltre nel caso in cui la prestazione registrata è una visita il cliente può visualizzare informazioni
più dettagliate quali diagnosi, terapia, dieta e farmaci.
Il medico veterinario (amministratore dell’ambulatorio) gestisce i dati tramite una base di dati, un
DBMS e un’interfaccia sviluppata in linguaggio Html.
Dopo il login accede alla pagina principale costituita dal menù delle operazioni che può effettuare e
dall’elenco degli animali attualmente ricoverati.
Operando sui link presenti nella pagina il medico deve poter accedere, per ogni animale alla sua
scheda (storico dell’assistito) che tiene traccia di tutte le prestazioni registrati presso l’ambulatorio.
Inoltre per ogni prestazione il veterinario deve poter visualizzare informazioni più dettagliate:
1. nel caso di una visita:temperatura, peso, frequenza cardiaca, diagnosi, terapia, dieta, farmaci.
2. nel caso di un ricovero:numeroBox
3. nel caso di una dimissione: causa
4. nel caso di un esame di laboratorio: tipo esame, risultato, file esame.
Dei bottoni di navigazione deve permettere al veterinario di accedere a dei form per poter:
1. Aggiungere, se non presente nel data base, l’anagrafe di un nuovo cliente e relativa
informazione sugli animali posseduti.
2. Registrare ogni prestazioni effettuate e relative informazioni.
3. Effettuare ricerche nel data base
22
23. 3 Requisiti funzionali
3.1 Gestione informazione on-line
il sistema deve consentire ai clienti di consultare le informazioni relative a visite o ricoveri dei
propri animali registrati dal veterinario.
Le funzionalità sono:
3.1.1 Visualizzazione
• scheda animale
i dati da fornire sono:
username e password.
i dati da visualizzare sono:
nome, cognome, indirizzo e telefono del proprietario.
E per ogni animale posseduto la lista delle prestazioni registrate in ambulatorio, una
prestazione può essere una visita, un ricovero, una dimissione e un esame di laboratorio; ed
è caratterizzato dalla data e ora in cui è stata effettuata dal nome dalla specie dalla razza e
dalla foto dell’animale coinvolto.
• dettaglio (solo nel caso in cui la prestazione è una visita o un ricovero o una dimissione)
i dati da visualizzare sono:
nome, specie, razza, sesso, età e foto dell’animale.
data e ora della prestazione
Diagnosi, terapia, dieta e farmaci
23
24. 3.2 Gestione cliente
Il sistema deve consentire al veterinario di gestire i dati dei clienti e dei loro animali nella base dati.
Le funzionalità sono:
3.2.1 Inserimento
• di un cliente (colui che è proprietario di animali).
i dati da fornire sono:
Codice fiscale, nome, cognome, indirizzo, telefono, username, password
• di un animale (posseduto dal cliente)
i dati da fornire sono:
Specie, nome, razza, sesso, data nascita, foto* (* indicano valori opzionali)
3.2.2 Cancellazione
• di un cliente (colui che è proprietario di animale)
i dati da fornire sono:
codice fiscale
• di un animale (posseduto dal cliente)
i dati da fornire sono:
nome e cognome cliente; specie e nome dell’animale
3.2.3 Ricerca
• di un cliente (colui che è proprietario di animali).
i dati da fornire sono:
nome, cognome
i dati da visualizzare sono:
Codice fiscale, nome, cognome, indirizzo, telefono, username, password
e l’elenco degli animali posseduti
24
25. 3.3 Gestione attività
Il sistema deve consentire al veterinario di registrare l’attività ambulatoriale nella base dati.
Le funzionalità sono:
3.3.1 Registrazione
• di una visita
i dati da fornire sono:
temperatura*, peso*, fc*, diagnosi,terapia, motivo, farmaci*, dieta*. Data e ora della
registrazione (* indicano valori opzionali)
• di un ricovero, che comprende la verifica disponibilità Box
i dati da fornire sono:
il numero Box. data e ora dell’inizio ricovero.
• di una dimissione
i dati da fornire sono:
il numero Box, causa data e ora della fine ricovero
• di un esame di laboratorio
i dati da fornire sono:
Tipo esame, risultato, file esame*. data e ora della registrazione (* indica valori opzionali)
3.3.2 Visualizzazione
• lista di animali ricoverati
i dati da visualizzare sono:
specie, nome, numero Box, data e ora inizio ricovero di tutti gli animali ricoverati.
• scheda di un animale
i dati da fornire sono:
codice animale
i dati da visualizzare sono:
codice fiscale, nome, cognome, indirizzo e telefono del proprietario dell’animale.
specie, nome, razza, sesso, data di nascita e foto dell’animale.
storico dell’animale (ovvero la lista delle prestazioni registrate in ambulatorio, una
prestazione può essere una visita, un ricovero, una dimissione e un esame di laboratorio; ed
è caratterizzato dalla data e ora in cui avviene.
• dettaglio prestazione
i dati da visualizzare nel caso in cui la prestazione è una visita sono:
temperatura, peso, fc, diagnosi,terapia, farmaci, dieta.
i dati da visualizzare nel caso in cui la prestazione è un ricovero sono:
numero Box.
i dati da visualizzare nel caso in cui la prestazione è una dimissione sono:
causa
i dati da visualizzare nel caso in cui la prestazione è un esame di laboratorio sono:
tipoEsame, fileAnalisi e risultato
25
26. 4 Diagramma di contesto
L’interazione tra il sistema (cioè sostanzialmente l’insieme delle pagine web costituenti il software
qui rappresentato) ed il mondo esterno sono rappresentabili mediante il seguente diagramma di
contesto:
richiesta identificazione
dati cliente
aggiungi/canc. cliente
dati identificazione
Gestione riscontro
sch eda amb ulat orio
lista prestazioni effettuate
Cliente io Ambulatorio richiesta
ricerca cliente Veterinario
Amministratore
ric hies ta de tta gl inform. cliente
*
inform. ricerca
esito cliente
de tta glio
ti
ric o v d a a n ima le
o
v e ra
o v e ra t
Riscontro prestazione
ris c o n
li ric o
reg is tra
e ra t o
a le ric
t
ro a t t iv
e
n ima
ta s ch
Dati prestazione
a tt iv it à
a a n im
a
lis t a
it à
s
ric h ie
s ch e d
Veterinario*
Amministratore
* terminatore duplicato
26
27. 4.1 Descrizione del diagramma di contesto
4.1.1 Individuazione dei terminatori
Cliente
E’ il proprietario degli animali in cura presso l’ambulatorio. Ha la possibilità di visualizzare
le cure prescritte al proprio animale, o di controllare come procede la degenza quando
l’animale è ricoverato in ambulatorio.
Veterinario
Il veterinario ha la responsabilità di gestire le principali attività ambulatoriale. Esso ha il
compito di inserire i dati di un cliente e dei suoi animali assistiti in ambulatorio e registrare
ogni prestazione eseguita. Esso ha la possibilità di visualizzare l’elenco delle prestazioni
effettuate sull’animale assistito.
4.1.2 Flussi di dati in ingresso al sistema
• dati identificazione
I clienti forniscono i dati di identificazione (username e password)
• richiesta dettaglio
I clienti chiedono di visualizzare le informazioni ambulatoriali del suo animale
• dati cliente
Il veterinario fornisce i dati di un cliente da inserire nella base dati.
• richiesta inform. cliente
Il veterinario chiede di visualizzare informazioni relative a un cliente
• richiesta scheda animale
il veterinario chiede di visualizzare informazioni ambulatoriali su un animale assistito
• dati prestazione
il veterinario fornisce i dati relativa alla prestazione che vuole registrare (le prestazioni
possono essere: visita, ricovero, dimissione, esame di laboratorio).
4.1.3 Flussi di dati in uscita dal sistema
• richiesta identificazione
Il sistema richiede ai clienti i dati per l’identificazione.
• lista prestazioni effettuate
Il sistema visualizza l’elenco cronologico delle prestazioni effettuate presso l’ambulatorio
sugli animali del cliente.
27
28. • dettaglio
Il sistema visualizza l’informazione richiesta dal cliente (visualizza informazione dettagliata
su una prestazione effettuata presso l’ambulatorio).
• inform. cliente
il sistema visualizza l’informazione richiesta dal veterinario
• lista animali ricoverati
Il sistema visualizza la lista degli animali ricoverati.
• scheda animale
Il sistema visualizza l’informazione richiesta dal veterinario
• riscontro prestazione
il sistema visualizza la convalida della prestazione
28
29. 5 Specifica delle funzioni
5.1 Diagramma di flusso di livello 0 – DFD 0
te
t o rio
n
Lista prestazioni
o
lie
g li
.c
tt a
effettuate
la
nc
mb u
de
a
i/c
ta
o
t ro
g li
da a
ng
ie s
Dati cliente
on
tta
g iu
h
c
ric
s ch e
de
ris
ag
e
en t
richiestaliinformazione
rich ie st a ac
id en tificazio
r ic e rc cliente
ne
1.
2. informazione ca
d a ti id e ce r
n tifica zi Produce proprietario o ri
one rilascia e s it cliente
informazione gestione
informazione
on-line clienti
on-line
scheda ambulatorio
scheda prestazioni
animale Dati prestazione ità
a a t t iv
t r
re g is
riscontro prestazione it à
a t t iv
o n t ro
ris c
4. 3.
d a an imale
ta s ch e to
ric h ies ra
crea visita gestione rico v e
scheda attività
ambulatorio
prestazioni v erat o
imale rico
scheda animale
sc h ed a an
esamiLab
lista animali ricoverati
ti
v e ra
ic o
a li r
a a n im
lis t
5.
ricovero
crea lista
animali
ricoverati
29
30. 5.1.1 Descrizione diagramma di flusso di livello 0 – DFD 0
Processo 1: produce informazione on-line
Nome Produce informazione on-line
terminatore
Cliente
Scopo Fornisce l’elenco delle prestazioni effettute e per ognuna di esse poter richiedere
dettagli.
Scenario principale di successo:
1. Il sistema richiede username e password
2. Il cliente inserisce username e password
3. Il sistema visualizza un elenco di prestazioni effettuate
4. Il cliente seleziona una prestazione effettuata
5. Il sistema visualizza il dettaglio della prestazione effettuata
Processo 2: gestione clienti (vedi DFD 2)
Nome Gestione clienti
terminatore
Veterinario
Scopo inserire dati nuovi clienti, cancellare i dati clienti, visualizzare informazioni
clienti.
Processo 3: gestione attività (vedi DFD 3)
Nome Gestione attività
terminatore
Veterinario
Scopo
Registra prestazioni, fornisce lista animali ricoverati, fornisce scheda
animale
Processo 4: crea scheda prestazioni
Nome Crea scheda prestazioni
terminatore
Utilizzato dal processo 1
Scopo fornisce scheda prestazioni effettuate
30
31. 5.2 Diagramma di flusso di livello 1 – DFD 2
aggiungi
inserimento nte
clie
Dati ca nc.
i/ cliente
ung
aggi
2.1
inserire animale
dati cliente cancella
a
c e ll
can
proprietario
2.2
cancella
cancella
dati cliente
o
ntr
co
ris
e t
lie n
Richiesta inform.
ac
e rc
cliente
2.3 ric
a ricerca
c erc
Inform.ricliente cliente
to
es i
proprietario
31
32. 5.2.1 Descrizione diagramma di flusso di livello 1 – DFD 2
Processo 2.1: inserire dati cliente
Nome Inserire dati cliente
terminatore
Veterinario
Scopo Inserire i dati associati ad un cliente proprietario di animali che desidera curare i
propri animali in questo ambulatorio. L’operazione include l’inserimento dei dati
degli animali posseduti dal cliente
Scenario principale di successo:
1. Il veterinario inserisce i dati del cliente e dei relativi animali posseduti
2. Il sistema inserisce i dati nella base dati
Processo 2.2: cancella dati cliente
Nome Cancella dati cliente
terminatore
Veterinario
Scopo Cancellare i dati associati ad un cliente. L’operazione include la cancellazione dei
dati degli animali posseduti dal cliente.
Scenario principale di successo:
1. Il veterinario richiede informazioni su un cliente
2. il sistema visualizza le informazioni del cliente con l’informazione relativa agli
animali posseduti
3. il veterinario cancella i dati relativi ad un animale posseduto dal cliente
4. il sistema aggiorna la base dati
Processo 2.3: Ricerca cliente
Nome Ricerca cliente
Terminatore
Veterinario
Scopo Cercare informazioni su un cliente
Scenario principale di successo:
1. Il veterinario inserisce il codice fiscale del cliente.
2. Il sistema visualizza le informazioni del cliente.
32
33. 5.3Diagramma di flusso di livello 1 – DFD 3
3.1
aggiorna di
mi
dati ricovero ss
io
n e
ità
box disponibile
attiv
Dati
prestazione
tra
regis
ro
ont
ricovero
risc
risc
riscontro 3.2
ont
prestazione
ro
verifica ric o v
atti
e ro
disponibilità
vità
box
nibile
dispo
non_
box_
ontro ita
risc vis
3.3
riscontro inserisci
dati visita
rio
o
ra t
visita
bo
la
ris
me
co
ntr
es a
o
3.4
inserisci
dati esamiLab
esamiLab an imale
h ed a
ta s c to
ric h ies ico v e ra
r
o
3.5 v e ra t
ric o
a le
visita
crea scheda a n im
ed a
animale s ch
ricoverato
lista animali ricoverati
ricovero
3.6
crea lista
animali
ricoverati
33
34. 5.3.1 Descrizione diagramma di flusso di livello 1 – DFD 3
Processo 3.1: aggiorna dati ricovero
Nome Aggiorna dati ricovero
terminatore
Veterinario
Scopo Registrazione della prestazione di ricovero se il numero Box assegnato è
disponibile.
Registrazione dell’attività di dimissione
Scenario principale di successo (caso registrazione della prestazione di ricovero):
1. Il veterinario inserisce il numero Box assegnato all’animale
2. il sistema verifica la disponibilità del Box. In caso affermativo registra l’attività
alla data e ora in cui si verifica, in caso negativo visualizza che il box è già
occupato.
Scenario principale di successo (caso registrazione della prestazione di dismissione):
1. Il veterinario inserisce la causa della dimissione
2. il sistema registra la prestazione di dimissione alla data e ora in cui si verifica.
Processo 3.3: inserisci dati visita
Nome Inserisci dati visita
terminatore
Veterinario
Scopo Inserire l’informazione associata alla prestazione di visita
Scenario principale di successo:
1. il veterinario inserisce i dati della visita
2. il sistema inserisce i dati nella base dati
Processo 3.4: inserisci dati esami laboratorio
Nome Inserisci esamiLab
Terminatore
Veterinario
Scopo Inserire l’informazione associata alla prestazione di un esame di laboratorio
34
35. Scenario principale di successo:
1. Il veterinario inserisce i dati dell’esame di laboratorio
2. Il sistema inserisce i dati nella base dati
35
36. Processo 3.5: crea scheda animale
Nome Crea scheda animale
Terminatore
Veterinario
Scopo Fornire i dati ambulatoriali riguardanti un animale
Scenario principale di successo (caso animale non ricoverato):
1. Il veterinario inserisce il codice dell’animale
2. Il sistema visualizza lo storico dell’animale
Scenario principale di successo (caso animale ricoverato):
1. Il veterinario seleziona l’animale ricoverato dalla lista degli animali ricoverati.
2. Il sistema visualizza lo storico dell’animale
Processo 3.6: Crea lista animali ricoverati
Nome Crea lista animali ricoverati
Terminatore
Veterinario
Scopo Fornire la lista degli animali attualmente ricoverati
Scenario principale di successo :
1. Il veterinario accede al sistema.
2. Il sistema visualizza la lista degli animali attualmente ricoverati
36
37. 5.4 Dizionario dei dati
dati identificazione = username + password
lista prestazione effettuata = {(foto) + nome + specie + razza + data prestazione + tipo
prestazione} * dati riferiti ad animale*
data prestazione = giorno + mese + anno + ora +minuti + secondi
tipo prestazione = [visita | ricovero | dimissione | esame laboratorio]
dettaglio = animale + data prestazione + diagnosi + terapia + farmaci + dieta
animale = (foto) + nome + specie + razza + sesso + data nascita
data nascita = giorno + mese + anno
dati cliente = proprietario + animale
proprietario = nome + indirizzo + telefono + codice fiscale + username + password
dati prestazione = [visita | ricovero | dimissione | esami lab]
visita = (temperatura) + (peso) + (freq. Cardiaca) + diagnosi + terapia +
(farmaci) + (dieta) + data prestazione
ricovero = numeroBox + data inizio
data inizio giorno + mese + anno + ora +minuti + secondi
dimissione = causa + data fine
data fine = giorno + mese + anno + ora +minuti + secondi
esami Lab = tipo esame + (file analisi) + risultato + data prestazione
lista animali ricoverati = {(foto) + nome + specie + razza +data ricovero + numeroBox}
scheda animale = proprietario + animale + lista prestazione effettuata
37
38. 6 Glossario termini
Ambulatorio veterinario E’ la struttura avente organizzazione autonoma dall’ambiente privato,
presso la quale uno o più medici veterinari erogano prestazioni
sanitarie
Animale d’affezione Animali da compagnia, fra cui i più comuni sono cane ed il gatto
Base di dati Archivio elettronico in grado di gestire e archiviare dati organizzati,
sui quali effettuare eventuali ricerche successive
Bottoni di navigazione L’insieme degli elementi grafici presenti nelle pagine web per poter
richiamare altre pagine
Cliente Chi ricorre alle prestazioni di qualcuno. Nel contesto del documento è
il proprietario di animali che ricorre alle prestazioni del medico
veterinario per curare i propri animali
Convalida Conferma
DBMS Data Base Management System – E’ il sistema che gestisce il database
Degenza Nel contesto del documento è degente l’animale ricoverato
nell’ambulatorio veterinario
Diagnosi Definizione della natura di una malattia e sua classificazione in base ai
sintomi
Diagramma DFD Formalismo grafico di facile lettura per descrivere le funzioni del
sistema
Diagramma di contesto E’ un diagramma DFD che evidenzia l’interazione tra il sistema ed il
mondo esterno
Dizionario dati E’ un elenco organizzato di tutti gli elementi di dati che riguardano il
sistema
File esame E’ il risultato (in forma elettronica) fornito dal laboratorio di analisi
Form Pagina in HTML che contiene dei campi riempibili con testo, dei check
e dei menu a discesa per scegliere tra diverse opzioni, quindi inviare al
sistema
HTML Linguaggio per scrivere pagine web
Informazione on-line Informazione ricevuta quando si è connessi ad internet
Link Testo o immagine presente sulle pagine Internet che, con un click,
trasporta in un'altra pagina
Login Viene considerato login quando sia necessario digitare un username e
password per accedere a dei servizi
NumeroBox Numero che identifica la cuccia di ricovero degli animali
Prestazione Ciò che il veterinario adempie: può essere una visita un esame di
laboratorio un ricovero o una dimissione
Razza Nel contesto del documento l’insieme degli animali della stessa specie
Riscontro Verifica
Scheda animale Scheda che riassume i dati dell’animale
Storico dell’animale Scheda costituita da un elenco di prestazioni effettuate sull’animale da
quando è in cura presso l’ambulatorio.
Terapia Insieme dei mezzi per curare una malattia
Terminatore E’ un elemento presente nei diagrammi di flusso e rappresenta una
persona o una organizzazione al di fuori del sistema modellato (viene
anche detto interfaccia)
Web Un ipertesto distribuito, multimediale, interattivo, fluido
38
40. Table of contents
1 Introduzione........................................................................................................................................ 3
1.1Obiettivo del documento ........................................................................................................... 3
1.2 Riferimenti ........................................................................................................................................ 3
1.3 Struttura del documento .......................................................................................................... 3
2 Progettazione dello schema concettuale ........................................................................ 4
2.1 Schema ER (Entity - Relationship) .................................................................................. 4
2.1.1 Scelte fatte nella fase di progettazione concettuale ......................................................... 5
2.2 Glossario delle entità e delle relazioni ......................................................................... 6
2.3 Volume dei dati.............................................................................................................................. 7
3 Progettazione logica ...................................................................................................................... 8
3.1 Schema ER ristrutturato.......................................................................................................... 9
3.2 Ristrutturazione dello schema E-R ................................................................................ 10
3.2.1 Specifica di vincoli esterni........................................................................................................ 10
3.3 Schema Relazionale ................................................................................................................. 11
3.3.1 Ristrutturazione dello schema logico ................................................................................... 11
3.4 Schema Logico ............................................................................................................................. 12
4 Progettazione fisica ..................................................................................................................... 13
4.1 Creazione del data base ........................................................................................................ 13
40
41. 1 Introduzione
L’architettura della base di dati verrà descritta a partire dallo schema concettuale fino ad arrivare al
codice SQL sviluppato per l’implementazione del progetto.
1.1 Obiettivo del documento
Lo scopo che si prefigge questo documento è quello di spiegare nel dettaglio tutte le scelte
effettuate nella progettazione della base di dati, sulla base delle richieste dell’utente formalizzate nei
requisiti utente e funzionali.
1.2 Riferimenti
[1] “Requisiti Utente e Specifiche funzionali”
[2] “Progettazione del sistema”
1.3 Struttura del documento
Il presente documento è così strutturato:
1. Introduzione: definisce gli obiettivi del documento e riporta i riferimenti.
2. Progettazione schema concettuale: descrive lo schema ER e le scelte effettuate.
3. Progettazione logica e fisica : trasformazione delle specifiche concettuali sui dati in una
vera e propria base di dati relazionale in SQL.
41
42. 2 Progettazione dello schema concettuale
2.1 Schema ER (Entity - Relationship)
cf nome indirizzo
telefono
userName Proprietario
password
(1,N)
Codice Ha
Anagrafe codice
canina
Data_oraInizio
(1,1)
specie
nome
razza Animale Ricovero
sesso Va_in
(0,N) (1,1)
dataNascita
fileFoto
(0,N) (0,N)
numeroBox Ricovero Ricovero
in corso concluso
EffettuaEsame
Data_oraFine causa
data_ora
data_ora (1,1)
temperatura
EsamiLab peso
Visita fc
EffettuaVisita diagnosi
(1,1)
cura
farmaci
risultato
tipoEsame fileAnalisi
farmaci dieta terapia motivo dieta
42
43. 2.1.1 Scelte fatte nella fase di progettazione concettuale
Introduzione delle entità:
• Dalle specifiche si evince che i clienti dell’ambulatorio devono avere animali. Quindi
introduciamo l’entità PROPRIETARIO (chi possiede l’animale) e l’entità ANIMALE
(animale posseduto)
• Dalle specifiche si nota che l’animale può effettuare una visita, un esame di laboratorio un
ricovero, o una dimissione qualora è stato ricoverato. Quindi introduciamo le entità VISITA
(contiene i dati di una visita) ESAMILAB (contiene i dati di un esame) e l’entità
RICOVERO che ha RICOVERO IN CORSO e RICOVERO CONCLUSO come
generalizzazione.
Introduzione delle relazioni:
• Tra le entità proprietario e animale introduciamo la relazione HA per modellare il requisito
di possesso “un proprietario possiede almeno un animale, un animale ha un solo
proprietario”
• Tra le entità animale e visita introduciamo la relazione EFFETTUA VISITA per modellare
il requisito “ un animale può non effettuare visite o effettuare più visite, i dati di una visita
sono relativi ad uno ed un solo animale”
• Tra le entità animale e esami laboratorio introduciamo la relazione EFFETTUA ESAME per
modellare il requisito “ un animale può non effettuare esami o effettuare più esami, i dati di
un esame sono relativi ad uno ed un solo animale”
• Tra le entità animale e ricovero introduciamo la relazione VA_IN per modellare il requisito
“ un animale può non essere mai ricoverato o subire più ricoveri, i dati di un ricovero sono
relativi ad uno ed un solo animale”
Scelta degli identificatori:
• Per l’entità proprietario si è scelto l’attributo CODICE FISCALE come chiave primaria, e
gli attributi USERNAME e PASSWORD come identificatori non primari
• Per l’entità animale viene associato come chiave un CODICE numerico
• Per l’entità ricovero viene assegnato un identificatore esterno tra l’attributo
DATA_ORA_INIZIO e l’entità ANIMALE perché si ritiene che nello stesso istante non può
essere ricoverato più di un animale.
• Per l’entità visita viene assegnato un identificatore esterno tra l’attributo DATA_ORA e
l’entità ANIMALE perché si ritiene che nello stesso istante non può essere visitato più di un
animale.
• Per l’entità esamiLab viene assegnato un identificatore esterno tra l’attributo DATA_ORA
e l’entità ANIMALE perché si ritiene che nello stesso istante non può essere effettuato un
esame su più animali.
43
44. 2.2 Glossario delle entità e delle relazioni
Nome Entità Descrizione Attributi Identificatore
Cf,nome,indirizzo, PrimaryKey{Cf}
Proprietario I dati di un cliente proprietario di animali username, password, Unique{username,
telefono Password}
Specie, nome, razza,
Animale I dati dell’animale posseduto dal proprietario sesso, dataNascita, PrimaryKey{Codice}
file foto, codice
Identificatore
Data_ora, temperatura,
I dati relativi alle visite effettuate dagli esterno con
Visita peso, fc, diagnosi,
animali Animale{codice} e
terapia, farmaci, dieta
data_ora
Identificatore
I dati relativi agli esami di laboratorio Data_ora, tipoEsame, esterno con
EsamiLab
Effettuati dagli animali file esame, risultato Animale{codice} e
data_ora
Identificatore
esterno
Ricovero Può essere in corso o concluso Data inizio Con
Animale{codice}
e data_ora
Ricovero in
Generalizzazione di Ricovero numeroBox
corso
Ricovero
Generalizzazione di ricovero Data_fine, causa
Concluso
Nome Relazione Descrizione Entità Coinvolte cardinalità motivazione
Proprietario (1,N) Un proprietario deve avere almeno un
Indica animali animale
Ha posseduti dal
proprietario Animale (1,1) Un animale è posseduto da un solo
proprietario
Animale (0,N) un animale può non essere mai
Indica ricoverato o subire più ricoveri
Va_in l’accettazione a
un ricovero Ricovero (1,1) i dati di un ricovero sono relativi ad uno
ed un solo animale
Animale (0,N) un animale può non effettuare visite o
Indica effettuare più visite
EffettuaVisita l’effettuazione di
una visita Visita (1,1) i dati di una visita sono relativi ad uno
ed un solo animale
Animale (0,N) un animale può non effettuare esami o
Indica
effettuare più esami
l’effettuazione di
EffettuaEsame
un esame di
EsamiLab (1,1) i dati di un esame sono relativi ad uno
laboratorio
ed un solo animale
44
45. 2.3 Volume dei dati
Dei 200 clienti
Tavola dei volumi (riferiti in un anno) dell’ambulatorio mediamente
Concetto <Nome> Tipo E/R ognuno possiede 2 animali.
Volume
<Dim>
proprietario E 200
ha R 400
animale E 400 Mediamente un animale
subisce un ricovero ogni 3-4
ricovero E 100 anni. 400*1/4=100
va_in R 100
visita E 1200
effettua visita R 1200 Mediamente un animale
effettua 3 visite l’anno.
EsameLab E 400 400*3=1200
Effettua esame R 400
Mediamente un animale
effettua 1 esame di laboratorio
l’anno.
400*1=400
45
46. 3 Progettazione logica
L’ obiettivo della progettazione logica è tradurre lo schema concettuale in uno schema logico che
rappresenti gli stessi dati:
• in ingresso:
schema concettuale (diagramma ER);
informazioni sul carico applicativo;
• in uscita:
schema logico;
vincoli aggiuntivi.
46
47. 3.1 Schema ER ristrutturato
id_proprietario
cf nome indirizzo
telefono
userName Proprietario
password
(1,N)
Ha Data_oraInizio Data_oraFine
id_animale numeroBox
id_ricovero
(1,1)
specie
nome
razza Animale Ricovero
sesso
Va_in (1,1)
(0,N)
dataNascita
fileFoto
(0,N) (0,N)
causa tipo
data_ora
EffettuaEsame temperatura
(1,1) peso
EffettuaVisita Visita fc
diagnosi
id_esame terapia
(1,1) id_visita
farmaci dieta motivo
EsamiLab
data_ora risultato
tipoEsame fileAnalisi
47
48. 3.2 Ristrutturazione dello schema E-R
• Eliminazioni delle gerarchie (accorpamento delle entità figlie ricovero in corso e ricovero
concluso nell’entità padre ricovero ).
• Sono stati introdotti identificatori ad hoc (es: id_esame) per non usare chiavi complesse nel
collegamento delle tabelle (chiavi composte da più attributi o basate su stringhe).
3.2.1 Specifica di vincoli esterni
Nella ristrutturazione è necessario formulare dei vincoli esterni. In particolare dovremo specificare
vincoli dovuti alla eliminazione delle generalizzazioni.
Per tener conto delle proprietà della generalizzazione si aggiungono opportuni vincoli esterni, detti
vincoli di generalizzazione, quindi le proprietà:
• istanze(Ricovero in corso) ∩ istanze(Ricovero concluso) = 0
• istanze(Ricovero in corso) ∪ istanze(Ricovero concluso) = istanze(Ricovero)
48
49. 3.3 Schema Relazionale
traduzione dallo schema E-R ristrutturato ad uno schema logico equivalente del modello
relazionale.
In base alle regole relative alle associazioni uno a molti, è stato prodotto il seguente schema
relazionale:
• Proprietario(id_proprietario, cf, nome, indirizzo, telefono, userName, password)
• Animale(id_animale, ha, specie, nome, razza, sesso, dataNascita, fileFoto)
• Ricovero(id_ricovero, va_in, dataInizio, dataFine, causa, numeroBox, tipo)
• Visita(Id_visita, effettuaVisita, data_ora, temperatura, peso, fc, diagnosi, terapia,
farmaci, dieta, motivo)
• EsamiLab(id_esami, effettuaEsame, tipoEsame, data_ora, fileAnalisi, risultato)
Sono presenti i seguenti vincoli di integrità referenziale (detti anche vincoli di chiave esterna):
• Proprietario.id_proprietario e Animale.ha
• Animale.id_animale e Ricovero.va
• Animale.id_animale e EsamiLab.EffettuaEsame
• Animale.id_animale e Visita.EffettuaVisita
3.3.1 Ristrutturazione dello schema logico
L’ultimo passo che porta ad avere un corretto schema logico è la ristrutturazione del medesimo.
La ristrutturazione si rende necessaria per migliorare aspetti legati all’efficienza della base dati.
Ma visto il volume dei dati basso non è necessario ristrutturazioni verso l’efficienza.
49
50. 3.4 Schema Logico
Ricovero
Id_ricovero
Va_in
∞ DataInizio
Proprietario DataFine
Causa
Id_proprietario NumeroBox
Cf 1 Tipo
Nome Animale
Indirizzo
1
Telefono Id_animale
UserName Ha
Password ∞ Specie Visita
Nome
Razza Id_visita
Sesso EffettuaVisita
DataNascita ∞ Data_ora
FileFoto Temperatura
Peso
Fc
Diagnosi
Terapia
Farmaci
Dieta
Motivo
EsamiLab
Id_esame
EffettuaEsame
∞ TipoEsame
Data_ora
FileAnalisi
Risultato
50