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