Modulo
Gestione
Informazione
1
Termine ‘informatica’
due parole
• informazione
• automatica
• elaboratore
tre concetti
• automatismo
• dati
“L’elaborazione dei dati, attraverso il computer, è una elaborazione automatica;
Le operazioni una volta avviate, vengono svolte attraverso un meccanismo in
grado di portarle a termine anche senza l’intervento diretto dell’uomo.
Ovviamente il sistema di elaborazione deve in qualche modo “conoscere” il
processo che porta dai dati di partenza al risultato finale.”
2
Struttura elaboratore
•
•
•
•
unità di ingresso: per l’inserimento dei dati
unità di elaborazione: per effettuare manipolazioni dei dati
unità di uscita: per comunicare i dati all’esterno
unità di memoria di massa: per la conservazione di dati
unità di elaborazione
unità di ingresso
unità di uscita
unità di memoria di
massa
3
Elaboratore: macchina programmabile
All’elaboratore vengono forniti:
• dati sui quali operare
• insieme di azioni da svolgere
• modalità di svolgimento
programma
dati
elaboratore
risultati
programma
4
dato vs informazione
L’elaboratore ‘tratta’ dati
L’uomo interpreta i dati ed ottiene informazioni.
“Il dato in sé (indicatore) , da solo non ha alcun senso. Perché il dato assuma
significato e quindi si trasformi in informazione deve essere associato ad almeno
un descrittore.”
– 75 da solo non ha alcun senso, lo assume se lo associamo ad una unità di misura, ad
esempio km
– Le cifre 0733491026 non comunicano nulla se non sappiamo che si tratta di un
numero telefonico, …
• Cristoforo Colombo
• 125
Non ci dicono nulla se non pensiamo al nome di una via e ad un numero
civico
5
• dati: elementi che derivano dai
fenomeni e dagli oggetti.
–dati elementari, dati “grezzi”
• informazioni: dati selezionati,
elaborati, confezionati, presentati e
distribuiti in modo tale da avere un
significato ed essere di utilità per
un particolare compito o attività
6
1.http://www2.gest.unipd.it/labtesi/eb-didattica/ERCE/KM.ppt
• Dati:
– Mario; 12,00; 36,5; 21,00; 38,5
• Informazione
– Mario: ore 12.00, febbre: 36.5; ore 21.00, febbre: 38.5
7
1.http://www2.gest.unipd.it/labtesi/eb-didattica/ERCE/KM.ppt
• Dati:
– FF150, 1500, 1200
• Informazione:
– Codice: FF150, richiesta: 1500 pezzi,disponibilità: 1200
pezzi
8
1.http://www2.gest.unipd.it/labtesi/eb-didattica/ERCE/KM.ppt
• Un dato che assume significato diventa informazione
• Informazione = dato + semantica*
• L’aggregazione di più informazioni genera, a sua volta,
altre informazioni
* Significato che il dato assume in un particolare contesto di riferimento
9
km
255
500
300
90
…………
km
da_citta
a_citta
255
Roma
Ancona
500
Ancona
Venezia
300
Napoli
Foggia
90
Macerata
Spinetoli
…………
………..
…………
L’aggregazione di più
informazioni genera, altre
informazioni
10
Una base di dati è un insieme di dati organizzati
secondo uno schema prefissato
Lo schema è il risultato di una progettazione
La progettazione si sviluppa attraverso tre fasi:
1° fase: progettazione concettuale
2° fase: progettazione logica
3° fase: progettazione fisica
Ciascuna fase restituisce un schema di dati:
progettazione concettuale  schema concettuale
progettazione logica  schema logico
progettazione fisica  schema fisico
11
Progettazione concettuale
Si parte da una descrizione verbale del problema, fatta da un esperto, del
problema in questione. Dalla descrizione verbale si deve ottenere uno schema,
chiamato Entità-Relazioni (Entity-Relationships), che rappresenta le principali
entit๠nel dominio del problema, gli attributi2 delle entità e le relazioni tra le entità
Esempio: rappresentare in un diagramma E-R l’insieme degli studenti di una Università, prendendo in
considerazione i Corsi di Laurea e le Dipartimenti di appartenenza.
Le entità sono: studenti, corsi_laurea, dipartimenti.
Le entità hanno degli attributi che le definiscono:
studenti: matricola, cognome, nome, indirizzo
dipartimenti: codice_dipartimenti, nome, indirizzo
corsi_laurea: codice_corso_laurea, nome, indirizzo
Le entità sono rappresentate nel seguente modo:
cod_f
dipartimenti
12
[1] oggetto del mondo reale distinguibile da altri oggetti
[2] gli attributi rappresentano le proprietà elementari delle entità
Fra gli insiemi esistono delle relazioni; esse possono essere:
1:1  ad un elemento in un insieme corrisponde un solo elemento nell’altro
insieme e viceversa;
1:n  ad un elemento del primo insieme corrispondono n elementi nel
secondo e ad un elemento nel secondo corrisponde un solo elemento nel
primo;
n:m  ad una entità del primo insieme corrispondono n entità nel secondo e
ad una entità nel secondo corrispondono m entità nel primo.
Nel nostro esempio:
fra dipartimenti e corsi_laurea  1:n, ad un dipartimento corrispondono più
corsi di laurea; il viceversa è 1:1, un corso di laurea è di un dipartimento;
fra corsi_laurea e studenti  1:n, ad un corso di laurea corrispondono più
studenti; il viceversa è 1:1, uno studente è di un corso di laurea;
13
Il diagramma E-R risultante è il seguente
codice_dipartimento
dipartimenti
1
n
14
Una relazione n:m (ad esempio fra studenti e materie) viene rappresentata
nel seguente modo:
(non sono stati riportati tutti gli attributi dell’entità studenti)
Uno studente può studiare più materie e
una materia può essere studiata da più studenti.
15
1
dipartimenti
dc
n
n
m
E-R finale, prendendo in considerazione
anche l’insieme entità ‘esami
16
Progettazione logica
Nella seconda fase della progettazione (progettazione logica), si sceglie il tipo di database che si vuole
utilizzare per rappresentare la nostra realtà; è possibile scegliere fra database:
gerarchico
reticolare
relazionale.
Il modello che qui prendiamo in considerazione è quello relazionale. In esso il database è rappresentato
come un insieme di tabelle chiamate ‘relazioni’.
Relazione: tabella bidimensionale (chiamata semplicemente tabella).
Una tabella è formata da righe chiamate record.
Ciascun record è formato da campi.
Esempio:
17
Nella progettazione logica occorre esplicitare le relazioni fra le entità individuate nel
modello E-R.
Una relazione uno-a-uno
tab. nazioni
tab. capitali
cod_naz
nazione
cod_cap
capitale
10
italia
1
parigi
20
francia
2
londra
30
inghilterra
3
roma
fra due tabelle viene realizzata introducendo, come attributo, in una qualsiasi delle due
tabelle la chiave[1] dell'altra.
tab. nazioni
tab. capitali
cod_naz
nazione
cod_cap
capitale
cod_naz
10
italia
1
parigi
20
20
francia
2
londra
30
30
inghilterra
3
roma
10
18
[1]
Chiave: campo del record il cui valore identifica in modo univoco il record nella tabella
Una associazione uno-a-molti
tabella corsi_laurea
codice_c
orso_laur
ea
10
20
indirizzo
10
Consulente del lavoro e per
l'impresa
……………
20
Operatore giudiziario
……………
tabella dipartimenti
codice_dipart
nome
nome
indirizzo
30
Scienze del servizio sociale
…………
Scienze della Formazione
…………
….
40
Scienze giuridiche
……………
…………
50
Scienze dell’amministrazione
Giurisprudenza
60
Scienze dell’educazione e della
formazione
70
Formazione e management dei
sistemi turistici
80
Formatore per l'e-learning e la
multimedialità
30
…………
40
…………
50
…………
viene realizzata introducendo, come attributo, nella tabella con cardinalità 'N' la chiave della
tabella con cardinalità '1'. Ogni record della tabella 'N' avrà i suoi campi ed un valore che
esprime l'associazione con il record corrispondente dell'altra tabella.
19
tabella corsi_laurea
codice_corso
_laurea
tabella dipartimenti
codice_dipart
nome
indirizzo
10
Scienze della Formazione
…………
20
Giurisprudenza
…………
30
…………
40
…………
50
…………
nome
indirizzo
codice_dipart
10
Consulente del lavoro e
per l'impresa
……………
20
20
Operatore giudiziario
……………
20
30
Scienze del servizio
sociale
…………
20
40
Scienze giuridiche
……………
20
Scienze
dell’amministrazione
20
50
Scienze dell’educazione
e della formazione
10
60
Formazione e
management dei sistemi
turistici
10
70
Formatore per l'elearning e la
multimedialità
10
80
20
Una relazione molti-a-molti
tab. materie
tab. studenti
matricola
studente1
10
Bianchi
20
rossi
30
neri
40
verdi
50
viola
cod_mater
denominazione_mat
1
materia1
2
materia2
3
materia3
4
materia4
5
materia5
fra due tabelle viene realizzata introducendo un'apposita tabella, i cui record
contengono le chiavi dei record che si corrispondono nelle due tabelle.
tab. materie_studenti
tab. studenti
matricola
10
20
30
40
50
studente
Bianchi
rossi
neri
verdi
viola
.....
....
....
.....
matricola
cod_mater
10
1
20
3
30
5
10
4
10
5
20
2
50
1
40
2
20
1
tab. materie
cod_mater
denominazione_mat
1
materia1
2
materia2
3
materia3
4
materia4
5
materia5
....
....
[1] facendo riferimento agli attributi della entità ‘studenti’, descritta in precedenza, avremmo dovuto inserire gli attributi: cognome, nome, indirizzo
21
Il diagramma per il nostro esempio (materie, studenti, corsi di laurea, dipartimenti) sarà quindi:
codice_dipart
dipartimenti
dc
Mettendo a confronto questo diagramma con quello
realizzato nella progettazione concettuale, si notano i
nuovi attributi ‘codice_dipart’, in ‘corsi_laurea’,
‘codice_corso_laurea’, in ‘studenti’, infine i nuovi attributi
‘matricola’ e ‘cod_mater’ in ‘stu_mat’; tutti questi attributi
sono stati inseriti per esplicitare le associazioni.
codice_dipart
22
dipartimenti
Schema restituito
dalla progettazione
concettuale
codice_dipart
dipartimenti
codice_dipart
Schema restituito
dalla progettazione
logica
notare
23
Progettazione fisica
Vengono definite le strutture di memorizzazione dei dati:
dipartimenti(codice_dipart: testo(20 ch1), nome: testo(100 ch), indirizzo: testo(255 ch))
corsi_laurea(codice_corso_laurea: testo(20 ch), nome: testo(100 ch), indirizzo: testo(255 ch))
studenti(matricola: testo(10 ch), cognome: testo(80 ch), nome: testo(60 ch), indirizzo: testo(255 ch))
materie(cod_mater: intero, descrizione_mat: testo(200 ch))
stu_mat( cod_mater: intero, matricola: testo(10 ch))
Si tenga presente che quando il database viene creato su calcolatore occorre:
1. creare le tabelle
2. nella creazione delle tabelle occorre specificare l’elenco dei campi e, per
ciascun campo, quale dato potrà contenere(insieme di caratteri, numero
intero o con la virgola, valore logico, data, ..)
24
[1] ch sta per carattere, intero per numero intero
Fasi della progettazione:
1.
fase:
progettazione concettuale;
restituisce modello concettuale
codice_dipart
dipartimenti
2.
codice_dipart
fase:
progettazione logica;
restituisce modello logico
dipartimenti(codice_dipart: testo(20 ch1), nome: testo(100 ch), indirizzo: testo(255 ch))
3.
fase:
progettazione fisica;
restituisce modello fisico
studenti(matricola: testo(10 ch), cognome: testo(80 ch), nome: testo(60 ch), indirizzo: testo(255 ch))
corsi_laurea(codice_corso_laurea: testo(20 ch), nome: testo(100 ch), indirizzo: testo(255 ch))
materie(cod_mater: intero, descrizione_mat: testo(200 ch))
stu_mat( cod_mater: intero, matricola: testo(10 ch))
25
Dopo aver progettato il db, utilizzando un DBMS (Data Base
Management System), si passa alla sua costruzione sull’elaboratore.
Un DBMS per un database di tipo relazionale è essenzialmente
costituito da tre insiemi di comandi:
DDL:Data Definition Language;
DML:Data Manipulation Language;
DCL:Data Control Language.
DDL serve a creare, modificare o eliminare gli oggetti in un database.
Sono i comandi DDL a definire la struttura del database e quindi dei dati
ivi contenuti. Ma non fornisce gli strumenti per modificare i dati stessi:
per tale scopo di usa il DML1
DML fornisce i comandi per inserire, modificare, eliminare o leggere i
dati all'interno delle tabelle di un database. La struttura di questi dati
deve già essere stata definita tramite il DDL2.
DCL permette di gestire gli utenti e i permessi.
[1][2] http://it.wikipedia.org/wiki/SQL
26
Come esempio vediamo alcuni comandi del secondo insieme: selezione(restrizione), proiezione, join.
La selezione, su una tabella, restituisce un insieme di righe che è la totalità o un sottoinsieme delle righe
della tabella che si interroga. L’insieme di righe restituito è determinato da un criterio di selezione. Il criterio
di selezione è una espressione logica che viene valutata (vero/falso) su ciascuna riga: le righe per cui
l’espressione vale “vero” sono selezionate e fanno parte del risultato, le altre, per cui l’espressione vale
“falso” sono scartate. Se si vuole che l’insieme sia l’intera tabella si omette il criterio.
Esprimiamo i comandi in linguaggio naturale ricordando che, dovendo interagire concretamente con un
dbms relazionale (ad es. Access), i comandi vanno scritti utilizzando il linguaggio SQL (Structured Query
Language)
Esempio 1
ricercare nella seguente tabella ‘studenti_con_esami’, gli studenti con media maggiore di 21.
Matricola
Cognome
Nome
Esami_sost
media
100
bianchi
nicola
10
25
200
verdi
franca
14
21
300
rossi
enrica
10
28
400
neri
mario
18
29
500
viola
andrea
5
24
Il comando da impostare è il seguente:
seleziona matricola, cognome, nome, esami_sost, media
da studenti_con_esami
dove media>21
e la tabella che verrà restituita sarà:
Matricola
Cognome
Nome
Esami_sost
media
100
bianchi
nicola
10
25
300
rossi
enrica
10
28
400
neri
mario
18
29
500
viola
andrea
5
24
27
Esempio 2
Visualizzare tutti gli studenti della tabella ‘studenti_con_esami’.
Il comando da impostare è il seguente:
seleziona matricola, cognome, nome, esami_sost, media
da studenti_con_esami
e la tabella restituita sarà l’intera tabella
‘studenti_con_esami’
Matricola
Cognome
Nome
Esami_sost
media
100
bianchi
nicola
10
25
200
verdi
franca
14
21
300
rossi
enrica
10
28
400
neri
mario
18
29
500
viola
andrea
5
24
Nel primo caso è stato impostato il criterio di selezione (‘dove media>21’); nel secondo non è stato
impostato.
La struttura del comando ‘seleziona’ è la seguente:
seleziona <elenco campi da visualizzare>
da <tabella presa in considerazione>
dove <criterio di selezione>
Il criterio di selezione può essere omesso o può anche essere formato da più condizioni; ad es:
28
Esempio 3
Visualizzare tutti gli studenti della tabella ‘studenti_con_esami’ con media > 21 e < 28.
Il comando da impostare è il seguente:
seleziona matricola, cognome, nome, esami_sost, media
da studenti_con_esami
dove media > 21
e media < 28
e la tabella restituita sarà:
Matricola
Cognome
Nome
Esami_sost
media
100
bianchi
nicola
10
25
500
viola
andrea
5
24
Esempio 4
Visualizzare tutti gli studenti della tabella ‘studenti_con_esami’ con media = 25 o media = 28
Il comando da impostare è il seguente:
seleziona matricola, cognome, nome, esami_sost, media
da studenti_con_esami
dove media = 25
o media = 28
e la tabella restituita sarà:
Matricola
Cognome
Nome
Esami_sost
media
100
bianchi
nicola
10
25
300
rossi
enrica
10
28
29
L’operazione di proiezione consente di effettuare la scelta di particolari attributi di una relazione. Mentre
la selezione elimina, se si applica un criterio di selezione, delle righe dalla tabella indicata, la proiezione
elimina delle colonne. Contrariamente al caso della selezione il criterio di eliminazione non dipende da
un’espressione da valutare, bisogna specificare direttamente l’insieme degli attributi che vanno
selezionati
Esempio:
visualizzare gli attributi cognome, nome, media della seguente tabella ‘studenti_con_esami’
Matricola
Cognome
Nome
Esami_sost
media
100
bianchi
nicola
10
25
200
verdi
franca
14
21
300
rossi
enrica
10
28
400
neri
mario
18
29
500
viola
andrea
5
24
Il comando da impostare è il seguente:
seleziona cognome, nome, media
da studenti_con_esami
e la tabella che verrà restituita sarà:
Cognome
Nome
media
bianchi
nicola
25
verdi
franca
21
rossi
enrica
28
neri
mario
29
viola
andrea
24
30
Il join è una operazione fra due o più tabelle e rappresenta un sottoinsieme del prodotto cartesiano fra le
due o più tabelle.
Il prodotto cartesiano crea una relazione avente per righe tutte le possibili combinazioni ottenibili
combinando una riga del primo operando con una riga del secondo.
Tabella R
Tabella T =(RxS)
Tabella S
cr1
cr2
cr3
cs1
cs2
cr1
cr2
cr3
cs1
cs2
a
a1
a2
x
x1
a
a1
a2
x
x1
b
b1
b2
y
y1
a
a1
a2
y
y1
c
c1
c2
a
aa1
a
a1
a2
a
aa1
c
cc1
a
a1
a2
c
cc1
b
b1
b2
x
x1
b
b1
b2
y
y1
b
b1
b2
a
aa1
b
b1
b2
c
cc1
c
c1
c2
x
x1
c
c1
c2
y
y1
c
c1
c2
a
aa1
c
c1
c2
c
cc1
Prodotto cartesiano fra R e S:
Il prodotto cartesiano raramente è utile, perché generalmente si vogliono ottenere solo le
combinazioni di righe per le quali vale una certa proprietà.
Esistono diversi tipi di join; vediamo il ‘natural join’: si combinano tra loro solo le righe in cui i valori
delle relazioni in due attributi verificano la proprieta’ di uguaglianza nella tabella risultante;
supponendo che gli attributi che debbono verificare l’uguaglianza siano ‘cr1’ e ‘cs1’, avremo
31
cr1
cr2
cr3
cs1
cs2
a
a1
a2
x
x1
a
a1
a2
y
y1
a
a1
a2
a
aa1
a
a1
a2
c
cc1
b
b1
b2
x
x1
b
b1
b2
y
y1
b
b1
b2
a
aa1
b
b1
b2
c
cc1
c
c1
c2
x
x1
c
c1
c2
y
y1
c
c1
c2
a
aa1
c
c1
c2
c
cc1
e quindi la tabella T(RxS) sara:
cr1
cr2
cr3
cs1
cs2
a
a1
a2
a
aa1
c
c1
c2
c
cc1
Il comando da impostare è il seguente:
seleziona cr1, cr2, cr3, cs1, cs2
da R, S
dove cr1=cs1
32
Il comando Join viene utilizzato quando si ha la necessità di gestire dati che appartengono a tabelle diverse che
sono in relazione fra loro. In questo caso occorre inserire nella clausola ‘dove’, l’elenco delle tabelle da prendere
in considerazione e nel criterio la condizione (o le condizioni se le tabelle in join sono più di 2) di join.
Esempio:
visualizzare i dipartimenti con i propri corsi di laurea; le tabelle interessate
sono:
dipartimenti e corsi_laurea
corsi_laurea
dipartimenti
codice_dipart
nome
indirizzo
codice_corso_laurea
nome
indirizzo
codice_dipart
sdf
Scienze della Formazione
…………
sfp
Scienze della
Formazione Primaria
…………
sdf
let_fil
Lettere e Filosofia
…………
fgru
…………
sdf
……………
………….
…………
Formazione Gestione
Risorse Umane
…………
..........................
..........
let
Lettere
…………
let_fil
fil
Filosofia
…………
let_fil
…………
…………. ………..
….
…………..
………………
………..
…………..
………………
Il comando da impostare è il seguente:
seleziona dipartimenti.nome, corsi_laurea.nome, corsi_laurea.indirizzo
da dipartimenti, corsi_laurea
dove dipartimenti.codice_dipart=corsi_laurea.codice_dipart¹
e la tabella risultato sarà:
dipartimenti.nome
corsi_laurea.nome
corsi_laurea.indirizzo
Scienze della Formazione Primaria
Scienze della Formazione Primaria
……………..
Scienze della Formazione Primaria
Formazione Gestione Risorse Umane
…………………..
Lettere e Filosofia
Lettere
……………………..
Lettere e Filosofia
Filosofia
…………………..
33
[1] quando i nomi dei campi sono uguali, nelle due tabelle, occorre qualificarli attraverso il nome della tabella, secondo la notazione
[nome tabella].[nome campo]
Da http://it.wikipedia.org/wiki/SQL, riportiamo la sintassi del comando ‘seleziona’ espressa in SQL
Select
Col comando select abbiamo la possibilità di estrarre i dati, in modo mirato, dal database.
Sintassi del comando select
SELECT [ ALL | DISTINCT ] lista_elementi_selezione
FROM lista_riferimenti_tabella
[ WHERE espressione_condizionale ]
[ GROUP BY lista_colonne HAVING Condizione] [ ORDER BY lista_colonne ];
dove lista_elementi_selezione è l'elenco dei campi da estrarre, lista_riferimenti_tabella è l'elenco delle
tabella da cui estrarre i dati, espressione_condizionale rappresenta l'elenco delle condizioni, ovvero dei
requisiti che un campo deve rispettare per poter essere prelevato dall' interrogazione; lista_colonne è la
colonna o le colonne che devono essere prese come riferimento per l'ordinamento dei dati in uscita.
Un esempio è il seguente:
SELECT cognome, nome, citta_residenza
FROM utenti
WHERE anni >= 18
ORDER BY citta_residenza
Questa query estrae l'elenco di tutti gli utenti maggiorenni ordinando l'output in base alla città di residenza.
La definizione di select è comunque molto più ampia, prevede molte altre opzioni ma in linea di massima
con queste opzioni si compongono la maggior parte delle interrogazioni.
34
Scarica

Document