fondamenti di informatica
parte 2
appunti per le Scuole di
Specialita’ in Medicina,
a.a. 2003-05
di
anna maria carminelli gregori
Programma: parte 2
Data Base e Data Base Management
System: motivazioni;
progettazione di D.B. & utilizzo di
D.B.M.S. in vari ambienti: single _user &
multi_user;
problema della consistenza di dati e
soluzioni;
modelli di dati e sistemi relazionali;
esempi con uso di Access .
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
2
Argomenti:
basi di dati e i suoi 2 Aspetti
fondamentali:
1. Progettazione della base di dati;
2. Utilizzo del Sistema di Gestione
di Basi di Dati.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
3
Che cos'e' il D.B. ?
in prima approssimazione:
 e’ un insieme di dati persistenti (archivi=
file su disco), usabili da 1 o piu’ utenti,
 organizzati in modo “integrato” (
organizzazione integrata, correlata),
 eliminando ripetizioni di informazioni
(ridondanza  0) indipendentemente dal
loro volume.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
4
L’organizzazione integrata
permette:
accessi piu’ facili, piu’ rapidi, incrociati
ai dati …
ma come si ottiene ?
Con una Progettazione del data base BEN
FATTA e usando strutture di dati
adeguate!
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
5
… perche’ strutturare i dati ?
Le motivazioni si possono cosi’ sintetizzare:
 elaborazione +efficiente  algoritmo piu’ efficente;
“
+razionale  indipendenza “fisica” e
“logica” dei dati ossia indipendenza dallo loro
posizione sul disco e dallo loro rappresentazione. …
ma come si fa ? con filtri di rappresentazione
aggiuntivi! La maggiore razionalita’ si puo’ anche
semplicemente intendere come la possibilita’ di
svincolarsi dalla sequenzialita’ fisica: cio’ e’
necessario quando i dati devono apparire con
sequenzialita’ diverse;
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
6
Modelli o tipi di dati e Criteri di
scelta:
 Esistono molteplici tipi e modelli di strutture informative
o strutture dati con modelli omogenei e non, lineari,
gerarchici …
 I criteri di scelta sono basati su parametri di valutazione
come:
 Caratteristiche del modello strutturale (es. sequenziale come
un testo? gerarchico come un organigramma?)
 Memoria disponibile e sua permanenza/volatilita’ (es.
dimensioni e tipo di memoria: centrale o di massa ?);
 Operazioni da effettuare e loro frequenza (ricerche? solo
copie ?)
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
7
Operazioni sulle strutture
Accesso al singolo elemento della struttura per
interrogazioni e/o per aggiornamenti;
Inserzione di un nuovo elemento;
Cancellazione di un elemento;
Ricerca di un elemento di data chiave=campo
identificatore (+oltre);
Ordinamento degli elementi;
Copiatura di elementi;
AnnaMaria Carminelli Gregori:
….
fondamenti di informatica parte 2.
8
Modelli di strutture
 In base alle risposte date ed alla operazioni da
fare si sceglie un modello ...
Tabella;
lista;
albero;
File sequenziale;
File ad accesso diretto;
….
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
9
L’ elemento di una struttura
informativa
e’ chiamato record e si compone di campi o attributi .
Per es. Targa, Modello, Cilindrata, Peso, …
sono tutte caratteristiche (= CAMPI) di un record
relativo al tipo AUTOMOBILE;
il campo che identifica un record AUTOMOBILE e’
Targa: questo si assume come chiave del record.
Un record con i campi indicati ed un file di tanti
record ognuno relativo ad una data automobile sono
esempi di strutture informative presenti anche in
d.b.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
10
Aspetti del d.b.
 Progettazione del d.b.
 Cosa si vuole ottenere (i Desiderata);
 Cosa occorre memorizzare per ottenere i
Desiderata.
QUESTO E’ L’ ASPETTO PIU’
IMPORTANTE DEL data base
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
11
Utilizzo del d.b.
Ma dopo la fase di progettazione, come si
costruisce, come si aggiorna, come si usa
un d.b. ?
Con Software dedicato ossia con un
Sistema di Gestione di Basi di Dati (SGBD)
o Data Base Management System (DBMS)
che si colloca tra i programmi applicativi.
Come usare i DBMS a disposizione ?
(manuali, help in linea…)
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
12
D.B. single-user (privato) & multiusers
single-user: archivio personale per
esempio la cantina di Date (diapositiva
seguente) e db11.mdb
D.B. multi-users: per rappresentare le
informazioni che interessano un insieme
di utenti appartenenti per esempio ad un
Ente.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
13
14
D.B. multi-users:
Sorgono problemi come:
moltiplicando il numero degli utenti
si moltiplica il numero degli archivi ?
l’ utente x puo’ accedere e
modificare l’ archivio dell’ utente y?
......
ma chi e’ l’ utente ?
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
15
l’ utente
puo’ essere una persona, ma anche un
processo (programma in esecuzione) che
lavora in modo concorrente con altri; cio’
pone i problemi:
 della consistenza dei dati;
“
protezione e riservatezza dei dati;
 degli accessi concorrenti ai dati (parziale,
totale serializzazione dei processi ?)
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
16
Soluzione razionale ?
Software adeguato !! D.B.M.S. sempre
+complesso!!
Occorre un sistema di gestione automatica …
ma di cosa? NON di archivi tradizionali, ma di
informazioni di interesse fondamentale da
mantenere consistenti tra loro permettendone
o vietandone l’ accesso.
NOTA: informazione codificata  dato !!
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
17
Esempio: la cantina di Date
trasformata per essere utile a molti utenti
diventerebbe:
1 file contenente record con: il nome e
code del vino, il code del proprietario, gli
anni di imbottigliamanto ed uso (ready);
1 file contenente record con: il nome ed i
dati del proprietario (RISERVATO);
1 file di collegamento tra i 2 precedenti.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
18
Definizione di d.b. e caratteristiche:
insieme di dati fondamentali organizzati in file di
interesse per l’utente (o per il Sistema Informativo
in cui il d.b. deve essere introdotto);
 che possono avere grandi dimensioni;
“ “
essere condivisi tra +utenti anche con
accessi simultanei;
 devono essere affidabili, consistenti tra loro,
persistenti, non ridondanti: per questo sono
necessarie procedure di salvataggio e ripristino
(backup & recovery) in caso di malfunzionamento;
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
19
I dati fondamentali
 devono anche rispondere a requisiti di
privatezza (si usano meccanismi di controllo
che salvaguardino da azioni non autorizzate),
di efficienza (pari al COSTO di un programma
ossia al suo "running time“  tempo di esecuzione) e
di efficacia (rendimento produttivo ottimale
per le attivita’ degli utenti). Obiettivo primario
(virtuale): una modifica nell’ ambiente da
automatizzare deve produrre una modifica nel
d.b.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
20
Obiettivo primario/ Obiettivo sperimentato
Obiettivo sperimentato raggiungibile con
un buon progetto: una modifica nell’
ambiente da automatizzare non deve
propagarsi in un numero incontrollato di
modifiche del d.b.
ESSENZIALE un’ attivita’ di progettazione ben fatta
in modo da non avere problemi di consistenza
come per esempio il disallineamento di
informazioni.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
21
DBMS= Data Base Management
Systems:
sistema software per gestire archivi anche di
notevole dimensioni, persistenti e
condivisibili.
Presenta una organizzazione logica dei dati
(interessante per l' utente) che si basa su una
organizzazione fisica degli archivi.
L'Organizzazione logica dei dati segue
un modello di dati che "e' un insieme di
concetti per organizzare i dati e descriverne la
AnnaMaria Carminelli Gregori:
struttura".
fondamenti di informatica parte 2.
22
Il modello puo’ essere di tipo
gerarchico (anni '60) con strutture ad albero;
reticolare o CODASYL (da Conference on Data
Systems Languages, l' organizzazione che lo
propose negli anni '70) con strutture reticolari;
relazionale (il piu' importante e diffuso) con la
struttura “relation” (relazione) intuitivamente
rappresentata in forma tabellare (ideato da E.F. Codd
e presentato in un articolo del CACM del Giugno
1970 ...).
Questi sono modelli usati nei DBMS.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
23
DB & DBMS: dove si usano ?
Generalmente in Sistemi Informativi aziendali.
Sistema Informativo = Insieme organizzato di
Risorse e Procedure di natura diversa (umana e
materiale) che interagiscono tra loro, finalizzato alla
GESTIONE dell' INFORMAZIONE in un’ azienda.
(GESTIONE dell' INFORMAZIONE = raccolta,
registrazione, trasmissione, elaborazione dell' INFO)
Se la GESTIONE delle informazioni (modellate in
strutture dati per es. aggregandole) e’ automatica il
Sistema si puo’ dire Sistema Informatico.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
24
In dettaglio: il Progetto di D.B. e la sua
introduzione in un Sistema Informatico: 3 Fasi
–Analisi:
1.1 analisi del preesistente ossia del sistema
informativo in uso (automatico o no): struttura,
finalita’, funzioni, attivita’ effettive, interfacce tra
aree funzionali, settori e procedure da
automatizzare, possibilita’ e convenienza, dati e
loro tipo, volume, privatezza …
1.2 definizione dei requisiti del nuovosistema
informatico .
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
25
Fasi
–Progettazione
costruzione del progetto di tipo semantico,
concettuale del d.b.
–Realizzazione
definizione conforme al progetto concettuale
del progetto logico e fisico del d.b. detti anche
schema logico e schema fisico relativo alla
memorizzazione fisica dei dati.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
26
Schema logico
I modelli di dati si usano per rappresentare i tipi di
dati che compaiono nello Schema logico di un d.b.
 descrizione sintetica di tutti i tipi di dati,
 delle interrelazioni o legami tra i tipi di dati,
 dei vincoli tra i tipi di dati.
Puo’ essere realizzato solo dopo approfondita analisi
dell’ ambiente dove il d.b. deve essere inserito.
Il D.B.M.S. si riferisce allo schema logico per
controllare accessi e aggiornamenti dei dati.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
27
Un esempio di schema logico
e’ estratto dal testo “Data Model” di TsichritzisLochovsky e rappresenta lo schema logico
relazionale di un “Medical d.b.”
Hospital (Hosp_code,Name,Address,Phone#, #beds)
Ward (Hosp_code, Ward_code, Name, #beds)
Doctor (Hosp_code, Doctor#, Name,Speciality)
Patient (Registration#, Diagnosis_code, Diagno_inf)
Attending_Doctor(Doctor#, Registration#)
….
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
28
Modello relazionale:
lo schema visto e’ “di tipo relazionale” ossia
realizzato per un R(elational)DBMS;
caratteristica essenziale del Modello Relazionale e’
che, “un Sistema Relazionale e’ percepito dall’
utente come un insieme di tabelle”.
Struttura fondamentale Relazione intesa come
costrutto matematico, ma schematizzata come
tabella;
Aspetto fondamentale Rappresentazione in forma
tabellare dei dati e delle loro interrelazioni
AnnaMaria Carminelli Gregori:
permanenti;
fondamenti di informatica parte 2.
29
RELAZIONE:
_ pone in corrispondenza piu’ dati
Esempio: generalita’ di individui come: (Paolo,
Rossi, 1/2/73, Vicenza) o
(Romolo, Remo,
25/12/97, Roma) o ...
Relazione Generalita’(Nome,Cognome, data,Citta’)
| Nome
Cognome data
Citta’
|
| Paolo
Rossi
1/ 2/73 Vicenza |
| Romolo Remo 25/12/97 Roma |
| Gennaro Vero
1/ 1/79 Napoli |
|____________________________________|
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
30
Istanza
e
Schema
della
relazione
REL
 ______________________________
 | nome-1 nome-2 .......nome-n |
 |_____________________________|
|
x1
y1
z1 |
|
x2
y2
z2 |
|
...
...
...
Istanza di REL =
| = contenuto
della tabella
|
xk
yk
zk |
 |_____________________________|
riga = ennupla = tupla =record; colonna = attributo
Schema della tabella = schema della relazione 
  REL(nome-1, nome-2, ....nome-n)
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
31
CHIAVE DI UNA RELAZIONE:
_ insieme di attributi che identifica una tupla
univocamente: nello schema si sottolinea !
_ non e’ ridondante
_ unica per ciascuna tupla
_ detta anche chiave primaria.
Esempio chiave strutturata:
 _ nome, cognome, data di nascita NOT
NULL !!!! CAMPI MAI NON DEFINITI !
Esempio chiave semplice: codice fiscale.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
32
SEMANTICA DELLA RELAZIONE:
ENTITA' E LEGAME TRA ENTITA’
Entita' = oggetti fondamentali del Sistema
Informativo esaminato.
Attributi di Entita' = proprieta' tipiche di Entita’,
loro caratteristiche.
LEGAME tra Entita’o inter-relazione:
collegamento tra 2 relazioni.
Vedere Esempio schema di un “Medical d.b.”
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
33
? Esiste sempre una chiave in una
relazione ?
SI ! LA CHIAVE PRIMARIA

Relazione = Insieme “matematico”=>
indipendente ordine tuple
ordine di caricamento
indirizzo (o posizione) tupla nell'archivio
corrispondenza tra C (chiave) e I (indirizzo)
rappresentata dalle coppie (c,i)
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
34
Esempio corrispondenza
chiave_indirizzo

Campo Chiave c Campi Dettaglio
 1a tupla
Cai
=======
 2a tupla
Bia
=======
 3a tupla
Zizi
=======
 ..............................................……….....…….
 10a tupla
Ada
=======
 Corrispondenza chiave_indirizzo 
INDICE SU CHIAVE
 CHIAVE
INDIRIZZO
CHIAVE
INDIRIZZO
 Cai
1
Ada
10
 Bia
2
Bia
2
 Zizi
3
Cai
1
......................………..
......................………..
 Ada
10 AnnaMaria Carminelli Gregori:
Zizi
3
fondamenti di informatica parte 2.
35
ORDINAMENTO LOGICO
DELL'ARCHIVIO
_archivio A puo’ avere una o piu’ chiavi usate per l’
ordinamento;
_L’ ordinamento logico di A rispetto a chiave c è la
_sequenza delle coppie {c,i}
 ordinate rispetto alla chiave c =
 =indice sequenziale rispetto alla chiave c
ESEMPIO INDICE SEQUENZIALE: gia’ visto
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
36
Operazioni su singola relazione = tabella
memorizzata in archivio (file)
operazioni sulle relazione trattate con lo stile
tipico del modello relazionale ma tradotte in
OPERAZIONI DEFINITE SU archivi del tipo:
_apertura archivio _chiusura archivio
_aggiunta record
_ricerca record
_modifica record
_cancellazione record
_ripristino record
_compattamento archivio
_ordinamento logico dell'archivio
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
37
Significato di operazioni come
CANCELLAZIONE RECORD
cancellazione fisica: operazione lunga, eseguita periodic.
con nuova numerazione record
cancellazione logica: record contrassegnato come
cancellato non visibile in normali operazioni & non
stampato
COMPATTAMENTO ARCHIVIO
_esegue copia archivio
_non copia record cancellati logicamente
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
38
ordinamento rispetto ad altri campi
Archivio B

CHIAVE1 CITTA’ DETTTAGLIO
1a tupla Cai
Roma
=======
2a tupla Bia
Milano
=======
3a tupla Zizi
Napoli
=======
4a tupla Roi
Milano
=======
.................………….........................................
10a tupla Ada Firenze
=======
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
39
Ordinamento rispetto a citta’
CITTA’
INDIRIZZO
Firenze
10
Milano
2, 4
Napoli
3
........................
Roma
1
ORDINAMENTO rispetto attributo NON
chiave primaria => piu’ record con uguali
valori dell'attributo
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
40
Esempio: progetto di un D.B. privato e
suo uso in RDBMS
ENTITA' presenti:
Medici  Relazione Medico
Malati  Relazione Malato
LEGAMI tra le ENTITA' presenti:
1 medico cura N malati
1 malato consulta M medici
Inter_relazione N:M  Relazione Med_Mal
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
41
Istanze e Schemi delle relazioni
Medico (Codice, Nome, Specialita’, TempoPieno)
|Codice Nome Specialita’ TempoPieno |
| 0010
Rossi
x
T
|
| 0015
Verdi
x
T
|
| 0159
Neri
x
T
|
|____________________________________|
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
42
Istanze e Schemi delle relazioni
Malato(#Mal, Nome, Diagnosi)
|#Mal Nome Diagnosi |
| 001
Pippo
ma ? |
| 002
Peppo
se... |
| 003
Pupa
xy |
|______________________|
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
43
Istanze e Schemi delle relazioni
Med_Mal (Codice, #Mal)
|Codice #Mal |
| 0010
001 |
| 0010
003 |
| 0015
002 |
| 0159
001 |
| 0159
002 |
Seguono esempi in Access come: db1mediciconv.mdb
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
44
Scarica

MED2003-5sec