Title: Basi di Dati La Progettazione
1Basi di DatiLa Progettazione
2Piano della lezione
- Problema dellarchivio dei pazienti
- Realizzazione di una soluzione pre-informatica
archivio cartaceo - Importanza della buona progettazione
- Limiti della soluzione cartacea
- Realizzazione di una soluzione informatica
archivio elettronico - Progetto di un database
- Confronto con la soluzione cartacea
3Problema
- Gestione delle informazioni relative ad
unOrganizzazione - Inserimento, modifica, cancellazione ed
elaborazione delle informazioni
processi interni di aggiornamento e analisi
Organizzazione
richiesta di servizi e risposta
input esterni
4Soluzione 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
5Il 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?
6Tipologia di problema
- Gestione delle informazioni relative ad
unorganizzazione - 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
7Piano della lezione
- Problema dellarchivio dei pazienti
- Realizzazione di una soluzione pre-informatica
archivio cartaceo - Importanza della buona progettazione
- Limiti della soluzione cartacea
- Realizzazione di una soluzione informatica
archivio elettronico - Progetto di un database
- Confronto con la soluzione cartacea
8Tipica soluzione pre-informatica
- Realizzazione di un archivio cartaceo, ovvero uno
schedario con cassetti contenenti schede
informative - Effettuare le operazioni di ricerca e statistica
aprendo i cassetti dello schedario e operando
manualmente sulle schede - Opportune tecniche di archiviazione (ordinamento
delle schede e indici sulle schede) possono
talvolta velocizzare alcune delle operazioni
9Schedario rappresentazione della realtà
- Uno schedario è una rappresentazione in carta e
inchiostro dei fatti interessanti della nostra
realtà di interesse - La realtà di interesse che stiamo studiando è
quella dei pazienti di un medico - I fatti interessanti sono tutte e sole le
informazioni riguardanti la realtà dei pazienti
utili a migliorare il servizio ambulatoriale - Le informazioni rilevanti di un paziente devono
essere scritte in una rispettiva scheda,
contenuta in un cassetto dello schedario dedicato
ai pazienti
10Schedario 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
11Cassetto Pazienti
Schedario pazienti
Paziente dal 11/04/2000 CSSN 0601/1234567
DATI ANAGRAFICI E MEDICI Nome Maria Bianchi
Indirizzo Anno di nascita 1950
Via Marmolada 67 Luogo di
Nascita Pisa 56126
Pisa Stato coniugale sposata Tel
347 8910111 Gruppo sanguigno A Positivo
Altezza 158 cm Peso 56 kg Menarca 13
anni Modalità parto naturale
Patologie 1957 morbillo 1960 rosolia
DIARIO Prima visita influenza, consigliata
tachipirina (02/04/2000) Seconda 14/09/2000,
Commento allergia, rich. visita specialistica 3
visita 02/02/2001 ....
12Cassetto Pazienti
Schedario pazienti
CSSN 0608/7654321
DATI ANAGRAFICI Nome Mario Indirizzo Cognome
Rossi Via Palestro 6 Anno di nascita 1964
50100 Firenze Luogo di Nascita Firenze Tel. 345
678910 Cittadinanza Italiana E-mail
marossi_at_libero.it
DIARIO Data 22/03/2000 Commento influenza,
sintomi classici Li 3 maggio 2002 Comm. forte
tosse, consigliato TosseVia 1000
per una
settimana Data 23/08/2002 ...
13Le operazioni
Schedario pazienti
- 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
14I problemi
Schedario pazienti
- 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
15Assenza parziale di informazioni
Problemi dello schedario Mancanza di
progettazione
- Loperazione
- 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
16Assenza totale di informazioni
Problemi dello schedario Mancanza di
progettazione
- Loperazione
- Quanti pazienti di sesso femminile sono presenti?
- non può essere eseguita per assenza totale di
informazioni - Nessuna scheda riporta informazioni sul sesso del
paziente
17Assenza di omogeneità
Problemi dello schedario Mancanza di
progettazione
- Loperazione
- Trovare il nome, il cognome e il CSSN del
paziente più pesante - per quanto intuitivamente semplice diventa
estremamente tediosa - È necessario scorrere tutte le schede
dellarchivio - 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
18Assenza di omogeneità
Schedario pazienti
19Assenza di omogeneità
Schedario pazienti
CSSN 0608/7654321
DATI ANAGRAFICI Nome Mario Indirizzo Cognome
Rossi Via Palestro 6 Anno di nascita 1964
50100 Firenze Luogo di Nascita Firenze Tel. 345
678910 Cittadinanza Italiana E-mail
marossi_at_libero.it
DIARIO Data 22/03/2000 Commento influenza,
sintomi classici Li 3 maggio 2002 Comm. forte
tosse, consigliato TosseVia 1000
per una
settimana Data 23/08/2002 ...
20Archivio non ben progettato
Problemi dello schedario Mancanza di
progettazione
- Le informazioni riportate sulle schede non sono
scelte sulla base di unattenta 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)
21Archivio non ben progettato
Problemi dello schedario Mancanza di
progettazione
- 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
22Riepilogo conseguenze
Problemi dello schedario Mancanza di
progettazione
- Alcune operazioni interessanti possono divenire
molto laboriose o impossibili per lassenza
totale o parziale delle informazioni - Quanti pazienti sono di cittadinanza italiana?
(parziale) - Da quando è mio paziente Mario Rossi? (parziale)
- Quando è stata fatta lultima visita a domicilio
al paziente Maria Bianchi? (totale) - Trovare uninformazione su una scheda è tedioso
- Ogni scheda possiede una propria interpretazione
delle informazioni interessanti di un paziente
23Buona progettazione
- Massimizzare la quantità e la qualità dei servizi
per cui larchivio 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
dopera 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
24Progettare e realizzare
Buona progettazione
- La progettazione di uno schedario si basa su
unattenta 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à
25Il modello
Buona progettazione
- 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 unentità) - linsieme dei pazienti è un fatto interessante di
tipo collezione di entità, cioè un insieme di
entità che hanno gli stessi attributi
26Operazioni e fatti
Buona progettazione Il modello
- 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
27Modello della realtà dei pazienti
Buona progettazione Il modello
- 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
28Dal modello allo schedario
Buona progettazione Realizzazione
- Ad ogni entità nel modello è associata una scheda
nello schedario - Una scheda per ogni paziente
- Ogni attributo di unentità è rappresentato da
uninformazione 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
29Identità
Buona progettazione Il modello
- Supponiamo di avere 2 pazienti di nome Mario
Rossi, come potremmo eseguire loperazione - trovare il peso di Mario Rossi?
- troveremmo due schede nello schedario, a quale
dovremmo riferirci per trovare la risposta? - Ogni entità nella realtà possiede unidentità
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
30Identità nello schedario
Buona progettazione Il modello
- Problema tipico di ogni rappresentazione di una
realtà rappresentare lidentità delle entità - Esempi noti di rappresentazioni di identità
- CSSN (realtà sanitaria)
- Codice Fiscale (realtà dello stato italiano)
- Nello schedario dei pazienti potremmo quindi
sfruttare lunicità 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
31Identità con chiave muta
Buona progettazione Il modello
- Buona regola di progettazione
- Per rappresentare lidentità è 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 lunico scopo di
rappresentare lidentità - 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
32Struttura omogenea delle schede
Buona progettazione Il modello
Per garantire lomogeneità dello schedario si
definisce un fac-simile della generica scheda
paziente. Questo guida il medico nel corretto
inserimento di informazioni
Patologie nome (anno)
33Struttura omogenea delle schede
Buona progettazione Il modello
Per garantire lomogeneità dello schedario si
definisce un fac-simile della generica scheda
paziente. Questo guida il medico nel corretto
inserimento di informazioni
Patologie nome (anno)
34Struttura omogenea delle schede
Buona progettazione Il modello
35Struttura omogenea delle schede
Buona progettazione Il modello
36Struttura omogenea delle schede
Buona progettazione Il modello
Scheda paziente 31
Paziente dal 10/12/99 CSSN 0608/7654321
DATI ANAGRAFICI Nome Mario Indirizzo Cognome
Rossi Via Palestro 6 Anno di nascita 1964
50100 Firenze Luogo di Nascita Firenze Tel. 345
678910 Cittadinanza Italiana E-mail
marossi_at_libero.it
Dati anagrafici Nome Mario
Indirizzo Cognome Rossi Via Palestro
6 Anno di nascita 1964 50100 Firenze Sesso M
F Tel. 345 678910 Cittadinanza
Italiana E-mail marossi_at_libero.it
DATI MEDICI Gruppo sanguigno B Negativo Altezza
e peso 1.65 m, 63 Kg
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 ...
37Le operazioni
Problemi dello schedario Problemi intrinseci
- 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 dellarchivio - Qualè il telefono del paziente con CSSN
0608/7654321 - Quanti pazienti hanno gruppo sanguigno B Negativo?
38Velocizzare le ricerche Indici
Problemi dello schedario Problemi intrinseci
- Qualè il telefono del paziente con CSSN
0608/7654321? - Per rendere loperazione più rapida si può tenere
aggiornato un indice cartaceo (simile allindice
analitico di un libro) in cui vengono tenuti
tutti i nomi dei pazienti ordinati per CSSN - Dato il CSSN 0608/7654321, tramite lindice si
può risalire rapidamente al nome Mario Rossi,
cercare la scheda corrispondente nel cassetto e
trovare il telefono -
39Velocizzare le statistiche
Problemi dello schedario Problemi intrinseci
- Quanti pazienti hanno gruppo sanguigno B
Negativo? - Per rendere efficiente loperazione si può tenere
un indice per ogni gruppo sanguigno - Dallindice relativo al gruppo B Negativo si può
ricavare rapidamente il totale desiderato
contandone gli elementi -
40Problemi pratici di uno schedario
Problemi dello schedario Problemi intrinseci
- Dato lordine alfabetico delle schede, le
operazioni di ricerca e statistica in base al
cognome del paziente sono le uniche veramente
rapide - Allaumentare del numero delle schede, le
operazioni di ricerca non basate sul cognome e
quelle statistiche divengono molto laboriose e
soggette ad errore
41Problemi pratici di uno schedario
Problemi dello schedario Problemi intrinseci
- Gli indici sono una possibile soluzione, ma il
loro aggiornamento richiede tempo e energie - Devono essere aggiornati tutti in seguito
allinserimento 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
42Piano della lezione
- Problema dellarchivio dei pazienti
- Realizzazione di una soluzione pre-informatica
archivio cartaceo - Importanza della buona progettazione
- Limiti della soluzione cartacea
- Realizzazione di una soluzione informatica
archivio elettronico - Progetto di un database
- Confronto con la soluzione cartacea
43Soluzione 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)
44Progettazione e realizzazione di un database
- Un database è una rappresentazione elettronica,
della realtà di interesse ogni fatto
interessante della realtà deve essere
rappresentato nel database in forma di dati
elettronici - La progettazione di un database è come quella di
uno schedario e consiste nel definire un modello
schematico della realtà
45Realizzazione 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 unentità corrisponde un
campo del record relativo a quellentità
46Schedario e databasecollezione di entità
- Ad un cassetto dello
- schedario corrisponde
- una tabella del database
Cassetto Pazienti
47Schedario e database entità
- Ad una scheda del
- cassetto corrisponde un record della tabella
Cassetto Pazienti
48Schedario e database attributi
- Ad ogni informazione
- sulla scheda corrisponde
- un valore nel record
Cassetto Pazienti
49Schedario e database operazioni
- Un DBMS offre gli strumenti per la definizione di
interrogazioni (query) su un database operazioni
automatiche sui dati che corrispondono alle
operazioni manuali sulle schede dello schedario -
50Progettazione di un archivio
- Abbiamo visto che è improponibile progettare un
archivio sulla base del solo universo del
discorso e senza ladozione 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 è unoperazione complessa
(intuizione e metodo)
51Metodologie
- Esistono metodologie di modellazione che
forniscono gli strumenti e linguaggi per - individuare e rappresentare le componenti
interessanti delluniverso 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
52Modellazione e progettazione
ER
Modello concettuale
Organizzazione
Mappatura in modello relazionale equivalente
Soluzione anni 70
Creazione DB
Database
Archivio cartaceo
53Linguaggio per la definizionedi 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
54ER 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
55Es. Associazioni (11)
Aspetto linguistico
- (11) associazione CorsiTenuti-TenutoDa tra
Professori e Corsi ogni professore deve tenere
un corso (totale) e ogni Corso è tenuto da un
professore (totale)
corsoTenuto
tenutoDa
Corsi
Professori
56Es. Associazioni (1n)
Aspetto linguistico
- (1n) associazione Tesista-Relatore tra
Professori e Studenti ogni professore può avere
uno, nessuno o più tesisti (parziale), mentre uno
studente può avere nessuno o un relatore
(parziale)
relatoreDi
tesistaDi
Studenti
Professori
57Es. Associazioni (nn)
Aspetto linguistico
- (nn) associazione CorsiSeguiti-StudentiIscritti
tra Studenti e Corsi ogni studente segue almeno
un corso (totale) e ogni corso è seguito da
almeno uno studente (totale)
studentiIscritti
corsiSeguiti
Studenti
Corsi
58EsempioSegreteria dellUniv. 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 alluniversità, 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.
59Modello concettuale
esamiSuperati
passatoDa
Esami
Studenti
60Soluzione 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
61Soluzione anni 70 (2/2)
- Per cercare gli esami passati dagli studenti di
Pisa, limpiegato 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
62Soluzione 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
63Tabella Studenti
Struttura tabella Nome Text Matricola
Number Provincia Text(2) DataNascita Date
Campo
Record
Valore
64Tabella Esami
Struttura tabella Corso Text Candidato
Text Data Date Voto Number(2) Lode Si/No
Voto Lode
Data
Candidato
Materia
28 No
12/01/01
Isaia
BD
30 Si
15/01/01
Rossi
BD
30 No
13/02/01
Bianchi
FP
25 No
15/01/01
Bonini
BD
18 No
11/02/01
Isaia
LMM
65Struttura 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 lanno, il
giorno o il mese del valore.
66Chiave 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
67Chiave 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
68Chiave 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)
69Chiave 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 unaltra tabella, che contiene quel
valore per la chiave primaria
70Chiave Esterna (2/3)
- Per i nostri scopi, in quale tabella dellesempio
deve essere definita una chiave esterna? - Quale campo potrebbe essere chiave esterna?
Nella tabella Esami
Nessuno nessun campo della tabella ha valori
nella chiave primaria della tabella Studenti
71Chiave 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!!!
72Tabella Esami corretta
La tabella Esami deve essere definita come
Struttura tabella Corso Text Candidato
Number Data Date Voto Number(2) Lode Si/No
73Relazione tra tabelle
Studenti
Nome Matricola Provincia DataNascita
Isaia 171523 PI 01/01/1980
Esami
Corso Candidato Data Voto
BD 171523 12/01/01 29
Il campo Candidato è chiave esterna di Esami.
Contiene valori della chiave primaria Matricola
di Studenti. Il valore di Candidato mette in
relazione il relativo record con il record dello
studente che ha passato lesame.
74Schema relazionale
esamiSuperati
passatoDa
Esami
Studenti
Nome
Candidato
Provincia
Voto
Esami
Studenti
Corso
Matricola
Lode
DataNascita
Data
75Ricerca 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
76MS Access (1/2)
- Un Sistema per la Gestione di Basi di Dati
(SGBD), altrimenti detto DataBase Management
System (DBMS)
77MS 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
78Esercizio
- Definire un database Access che consenta la
gestione delle informazioni relative agli Agenti
dellFBI. 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...
79Definizione del database
- Creazione delle tabelle
- Attributi e tipi
- Creazione delle associazioni
- Integrità referenziale
- Cancellazione e modifica a cascata
- Caselle combinate
- Inserimento dati rispetto dellintegrità
referenziale
80Definizione 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
-
81Query tipologie
- Query per la ricerca
- Selezione e visualizzazione di record
- Query per il calcolo
- Max, min, media, somma, etc.
82Esercizio 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, lindirizzo 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 allagenzia del
comune in cui vende - Ogni città ha una sola agenzia
83Eserciziole 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.
84Esercizio 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 lanno di uscita.