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