fondamenti di informatica
parte 2
appunti per le Scuole di
Specialita’ in Medicina,
a.a. 2010
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 grosso (fino a migliaia di gigabyte)
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  maggiore velocità di risposta;
 elaborazione +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 pur
mantenendo il posizionamento iniziale.
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: di massa o centrale ?);
 Operazioni da effettuare e loro frequenza (ricerche? solo
AnnaMaria Carminelli Gregori:
copie ?) (es. sindaco)
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 (sequenza);
albero;
File sequenziale;
File ad accesso diretto;
….
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
9
L’ elemento di una struttura
informativa (a prescindere dal D.B.)
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 o attributo che identifica un record
AUTOMOBILE e’ Targa: questo si assume come
chiave o chiave primaria 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
AnnaMaria Carminelli Gregori:
d.b.
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: come esempio di archivio personale,
nella diapositiva seguente, c’è la cantina “cellar” di
Date (autore tra tanti testi di “Database: a primer”,
Addison-Wesley Microcomputer-books come appare in
Bibliografia); in db11.mdb lo stesso file “cellar “ è
organizzato in modo diverso.
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 !!
…ma come viene fatta la codifica? Usare il Buo Senso!!!
es. Ferrari 8: Che significa? Attenzione al contesto!
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 del vino, gli
anni di imbottigliamento ed uso (ready) ed anche il
nome del proprietario da tenere RISERVATO;
1 file contenente record con le caratteristiche del
vino
1 file che riproponga la cantina precedente senza il
nome del proprietario;
è quello che fa db11.mdb.
18
Definizione di d.b. e caratteristiche:
insieme di dati fondamentali organizzati in file di
interesse per l’utente (o per il Sistema Informativo
di cui si parla tra 5 slides e 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;
19
Perchè NON ridondanti ?
I dati di interesse ad alcune applicazioni non
devono essere replicati tante volte quante sono
le applicazioni che li usano. Per es. nell’
Università le informazioni sui docenti sono
usate da alcuni enti come: Uff. Personale,
Facoltà, Uff. Web, Uff. Stipendi … Con una
gestione separata si può arrivare ad
aggiornamenti diversi anche non
allineati:GESTIONE INTEGRATA… di tutto? Il
sito Web può contenere pagine generate
dinamicamente dalla base di dati.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
20
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.
21
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.
22
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.
23
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 =file) 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.
24
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 INFO = raccolta, registrazione dell' Info
e sua trasmissione ed elaborazione)
Se tale Gestione informazioni (sintetizzate in dati
mediante processi di modellizzazione come
aggregazione e astrazione) e’ automatica il Sistema
si puo’ dire Sistema Informatico.
25
Queste sono definizioni
classiche
ma ormai negli ambienti economici attuali si parla
di MIS ossia Management Information System o
Sistemi Informativi Gestionali che si basano su tre
risorse chiave: Informazioni, “Personale
Competente”, Tecnologia. Il Personale Competente
viene indicato come “knovledge worker” ossia
individui che sanno come e quando utilizzare gli
strumenti tecnologici o tecnologie informative (IT =
Information Tecnology). Gli strumenti IT includono:
telefoni cellulari per collegarsi per es. con la Borsa,
computer (di tutti i tipi), reti per collegarsi ad altre
aziende, e per ultima, ma non ultima Internet
definibile come il Sistema Globale di Informazioni.
26
Informazioni
Notare che la prima componente dei MIS sono
le Informazioni che devono essere sintetizzate
in dati mediante processi di modellizzazione.
Significato: la componente primaria di un
MIS è il Data Base!
Seguono in dettaglio: il Progetto di D.B. e …
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
27
…la sua introduzione in un Sistema
Informatico:
3 Fasi delle quali la prima è:
–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 nuovo sistema
AnnaMaria Carminelli Gregori:
informatico
fondamenti di informatica parte 2.
28
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. (es. db11.mdb)
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
29
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.
30
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.
31
 Come si arriva a stendere tale schema?… partendo da un
Progetto o Schema Concettuale spesso in forma grafica
 Per avere un vero Schema Concettuale occorre usare un
Modello Concettuale dei dati come E-R ( Entity - Relathionship
Model): quello che segue e’ solo un primo abbozzo di schema
concettuale:

Name Address , Phone#,

Hospital

Hospital_Code ,# of beds)
 ……

Doctor
(Hospital_Code, Doctor#) Name, Speciality


Patient
Registration#, Name, Address, Birthdate, Sex,

SSnN
 …..
 Ogni Entita’ dell’ ambiente da automatizzare (come Hospital o
Doctor o Patient o … altro) può stare in un rettangolo ed e’
32
collegata ai suoi attributi con simboli di tipo diverso.
e se volessimo….
trovare tutti i Medici con gli occhi celesti ?
….
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
33
Modello relazionale:
lo schema logico 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 e realizzata con un file;
Aspetto fondamentale Rappresentazione in forma
tabellare dei dati e delle loro interrelazioni
AnnaMaria Carminelli Gregori:
permanenti;
fondamenti di informatica parte 2.
34
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.
35
Istanza e Schema della relazione REL
 ______________________________
 | nome-1 nome-2 .......nome-n |
 |_____________________________|
|
|
x1
x2
y1
y2
z1 |
z2 |
Istanza di REL =
|
...
...
... | = contenuto
|
xk
yk
zk |
 |_____________________________|
della tabella
riga = ennupla = tupla =record; colonna = attributo
Schema della tabella = schema della relazione 
  REL(nome-1, nome-2, ....nome-n)
Schema logico di D.B.= insieme di schemi di
relazioni.
36
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.
37
? 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.
38
Esempio corrispondenza
chiave_indirizzo

Attributo Chiave c
 1a tupla
Cai
Attributii Dettaglio
=======
 2a tupla
Bia
=======  DISORDINATO!!!!
 3a tupla
Zizi
=======
 ..............................................……….....…….
 10a tupla
Ada
=======
 Corrispondenza chiave_indirizzo  ordinamento su CHIAVE
CHIAVE
INDIRIZZO
CHIAVE
INDIRIZZO
 Cai
1
Ada
10
 Bia
2
Bia
2
 Zizi
3
Cai
1
......................………..
......................………..
 Ada
10
Zizi
3
39
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.
40
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.
41
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.
42
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.
43
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.
44
SEMANTICA DELLA RELAZIONE:
ENTITA' E LEGAME TRA ENTITA’
Entita' = oggetti fondamentali del S.I. esaminato.
Attributi di Entita' = proprieta' tipiche di Entita’, loro
caratteristiche.
LEGAME tra Entita’o inter-relazione: collegamento
esplicito tra 2 relazioni
Vedere Esempio schema di un “Medical d.b.” (31) dove
Doctor (Hosp_code, Doctor#, Name,Speciality) è collegato
all’ Ospedale implicitamente tramite la chiave primaria e
Attending_Doctor(Doctor#, Registration#) è collegato ai
pazienti che cura tramite una relazione di collegamanto
esplicito.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
45
Altr esempio: progetto di un D.B.
privato e suo uso in RDBMS
ENTITA' presenti:
Medici  Relazione Medico
Malati  Relazione Malato
LEGAMI (inter-relazioni) tra le ENTITA' presenti:
1 medico cura N malati
1 malato consulta M medici
Inter_relazione molti a molti ossia N:M  Relazione
Med_Mal
Vedere anche Medical.db slide 31 Attending_Doctor
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
46
Relazioni 1 a 1
Più semplici sono le relazioni 1 a 1 come
quella tra la chiave primaria ed il record
(per es. Targa e Automobile),
o come le inter-relazioni tra “tabelle” che
legano un record di una tabella ad un
altro di un’ altra tabella che aggiunge
attributi al record della prima tabella. Può
essere un modo utile per non fare tabelle
troppo “larghe” in orizzontale.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
47
Istanze e Schemi delle relazioni:Esempi
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.
48
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.
49
Istanze e Schemi delle relazioni
 Es. di un’ inter-relazione N a M
Es. di un’ inter-relazione 1 a 1
Medico-Anagr(Codice, Età,Reddito)
Med_Mal (Codice, #Mal)
|Codice #Mal |
|Codice Età
Reddito|
| 0010
001 |
| 0010
35 36000€|
| 0010
003 |
| 0015
50 50000€|
| 0015
002 |
| 0159
38 46000€|
| 0159
001 |
| 0159
002 |
Seguono esempi in Access come: db1mediciconv.mdb
con Medici, Pazienti con allergie, Farmaci,
Diagnosi.
AnnaMaria Carminelli Gregori:
fondamenti di informatica parte 2.
50
Scarica

MEDsec - UniNa STiDuE