Tecnologia dei sistemi informativi - Progettoatena.It
Tecnologia dei sistemi informativi - Progettoatena.It
Tecnologia dei sistemi informativi - Progettoatena.It
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Tecnologia</strong><br />
<strong>dei</strong> <strong>sistemi</strong><br />
<strong>informativi</strong><br />
tecnologia S.I. 1<br />
Sistema Informativo<br />
• comprende risorse umane<br />
• è fortemente integrato con il sistema<br />
organizzativo<br />
• è essenziale per il funzionamento<br />
dell'azienda<br />
tecnologia S.I. 2
Architettura <strong>dei</strong> <strong>sistemi</strong> informatici<br />
LAN<br />
MAN<br />
distribuzione<br />
geografica<br />
ufficio<br />
città<br />
WAN<br />
tecnologia S.I. 3<br />
Paradigma client-server<br />
• tecnica per strutturare<br />
<strong>sistemi</strong> software<br />
• viene resa “pubblica”<br />
una “interfaccia<br />
di servizi”<br />
• due tipologie di<br />
<strong>sistemi</strong>:<br />
CLIENT<br />
richiedono i servizi<br />
SERVER<br />
forniscono i servizi<br />
servizi<br />
richiesti<br />
dal CLIENT<br />
svolti dai<br />
SERVER<br />
tecnologia S.I. 4
Client-server<br />
nei <strong>sistemi</strong> <strong>informativi</strong><br />
• separazione funzionale ideale<br />
CLIENT : presentazione dell'informazione<br />
SERVER : gestione <strong>dei</strong> dati<br />
• SQL : il linguaggio ideale per separare gli<br />
ambienti<br />
CLIENT : formula query, elabora risultati<br />
SERVER : esegue query<br />
RETE : trasferisce i comandi di attivazione<br />
(es: di procedure SQL)<br />
tecnologia S.I. 5<br />
Architettura client-server<br />
classica (1 tierideale)<br />
CLIENT<br />
compone richieste<br />
in SQL<br />
SERVER<br />
esegue richieste<br />
in SQL<br />
tecnologia S.I. 6
Architettura con server<br />
applicativo (2 tiervera)<br />
CLIENT<br />
richiede<br />
applicazioni<br />
CLIENT<br />
CLIENT<br />
SERVER<br />
APPLICATIVO<br />
compone richieste<br />
in SQL<br />
DATABASE<br />
SERVER<br />
esegue richieste<br />
in SQL<br />
tecnologia S.I. 7<br />
Parallelismo nei server<br />
• uso di macchine<br />
multiprocessore<br />
• elaborazione<br />
identica su ciascun<br />
processore<br />
• obiettivo :<br />
prestazioni<br />
DATABASE SERVER<br />
con parallelismo<br />
processori<br />
base di dati<br />
parallela<br />
dischi<br />
tecnologia S.I. 8
Distribuzione <strong>dei</strong> dati<br />
• NON SOLO presenza<br />
di molteplici<br />
basi di dati<br />
• MA ANCHE presenza<br />
di applicazioni che<br />
usano dati provenienti<br />
da più fonti<br />
CLIENT<br />
applicazione<br />
base di dati<br />
distribuita<br />
DATABASE<br />
SERVER 1<br />
DATABASE<br />
SERVER 2<br />
tecnologia S.I. 9<br />
Replicazione <strong>dei</strong> dati<br />
• motivazione: maggior disponibilità, efficienza<br />
differente trattamento <strong>dei</strong> dati<br />
base di dati replicata<br />
copia<br />
principale<br />
copia<br />
secondaria<br />
copia<br />
secondaria<br />
tecnologia S.I. 10
Separazione funzionale degli ambienti<br />
• ambiente operativo: gestione "in linea" <strong>dei</strong><br />
dati, finalizzato alla gestione delle<br />
modifiche<br />
On Line Transaction Processing (OLTP)<br />
• ambiente di analisi: gestione "fuori linea" <strong>dei</strong><br />
dati, finalizzato ad interrogazioni e<br />
analisi statistiche<br />
On Line Analytical Processing (OLAP)<br />
tecnologia S.I. 11<br />
Ambiente per l'analisi :<br />
data warehouse<br />
• data warehouse: descrizione organizzata di<br />
tutti i dati<br />
• necessari per una analisi strategica del<br />
comportamento dell'impresa<br />
• Analisi Multidimensionale<br />
• Data Mining<br />
tecnologia S.I. 12
Ambiente per l'analisi :<br />
data warehouse<br />
CLIENT<br />
OLTP<br />
CLIENT<br />
OLAP<br />
DATABASE<br />
SERVER<br />
DATABASE<br />
SERVER<br />
DATA<br />
WAREHOUSE<br />
tecnologia S.I. 13<br />
Sistemi “LEGACY”<br />
• <strong>sistemi</strong> realizzati su architetture basate su<br />
MAINFRAME (grande calcolatore centrale)<br />
cui si collegano terminali poco sofisticati<br />
(con interfaccia a caratteri) …(<strong>sistemi</strong><br />
..ereditati)<br />
tecnologia S.I. 14
Sistemi “LEGACY”<br />
terminale 1<br />
MAINFRAME<br />
terminale 2<br />
terminale 3<br />
terminale 4<br />
MODEM<br />
linea telefonica<br />
MODEM<br />
terminale 5<br />
DATABASE<br />
sistema legacy<br />
tecnologia S.I. 15<br />
Molti <strong>sistemi</strong> LEGACY sono<br />
tecnologicamente superati<br />
• scelta dell'hardware<br />
• scelta del software (COBOL, DL/1, RPG)<br />
• su archivi separati (senza DBMS)<br />
però sono <strong>sistemi</strong> affidabili in operatività<br />
il cui funzionamento continuo è<br />
indispensabile<br />
tecnologia S.I. 16
Evoluzione <strong>dei</strong> <strong>sistemi</strong> legacy<br />
• downsizing:<br />
- trasformazione verso architetture<br />
client-server<br />
• incapsulamento:<br />
- definizione di funzioni server di alto<br />
livello richiamabili tramite interfacce<br />
client standard che mascherano la<br />
reale struttura del software<br />
tecnologia S.I. 17<br />
Interoperabilità<br />
• capacità di costruire applicazioni con <strong>sistemi</strong><br />
fra loro eterogenei:<br />
- diverso sistema operativo<br />
- diverso protocollo di comunicazione<br />
- diverso software di gestione <strong>dei</strong> dati<br />
Soluzioni per l’interoperabilità<br />
1 standard commerciali<br />
2 GATEWAY:<br />
emulazione di un ambiente in un altro<br />
tecnologia S.I. 18
Standard<br />
un mondo complicatissimo e in perenne evoluzione<br />
a software di costruzione delle applicazioni<br />
(ODBC: open data base connectivity)<br />
b software di gestione <strong>dei</strong> dati<br />
(SQL: structured query language)<br />
c software di gestione delle reti<br />
(TCP- IP: transmission control protocolinternet<br />
protocol)<br />
d software di base (sistema operativo)<br />
(UNIX, WINDOWS- NT)<br />
tecnologia S.I. 19<br />
Uso <strong>dei</strong> GATEWAY<br />
• tra <strong>sistemi</strong> relazionali<br />
• verso LEGACY SYSTEM<br />
gateway<br />
SISTEMA<br />
RELAZIONALE<br />
UTENTE<br />
REL<br />
UTENTE<br />
LEGACY<br />
MAINFRAME<br />
DATABASE<br />
LEGACY<br />
DATABASE<br />
RELAZIONALE<br />
UTENTE<br />
RELAZIONALE<br />
tecnologia S.I. 20
Evoluzione delle interfacce<br />
• orientate ad utenti inesperti<br />
• grafiche (GUI: graphic user interface)<br />
• spesso multi- mediali<br />
• influenzate da Internet<br />
tecnologia S.I. 21<br />
Data Base<br />
Management<br />
Systems<br />
(DBMS)<br />
tecnologia S.I. 22
Uso <strong>dei</strong> linguaggi di programmazione<br />
P<br />
R<br />
O<br />
G<br />
R<br />
S<br />
O<br />
FILE<br />
FILE<br />
FILE<br />
FILE<br />
dichiarazione <strong>dei</strong> files , dichiarazione sull'uso<br />
dichiarazione delle variabili del programma<br />
apertura <strong>dei</strong> files<br />
per tutti i records{ciclo/i di elaborazione}<br />
se ok presentazione/modifica<br />
chiusura <strong>dei</strong> files<br />
tecnologia S.I. 23<br />
DBMS<br />
P<br />
R<br />
O<br />
G<br />
D<br />
B<br />
M<br />
S<br />
FILE<br />
FILE<br />
FILE<br />
FILE<br />
LOG<br />
DIZ 1<br />
2<br />
3<br />
Il DBMS è un componente fondamentale<br />
del Sistema Informativo<br />
tecnologia S.I. 24
uso del DBMS<br />
ISTRUZIONI DBMS (SQL) sulla relazione: IMPIEGATI<br />
(MATR,NOME,DNO,LAVORO,SALARIO,MGR...)<br />
SELECT NOME<br />
FROM IMPIEGATI<br />
WHERE DNO = 50<br />
AND LAVORO = 'PROGRAMMATORE'<br />
AND SALARIO > 15000000<br />
UPDATE IMPIEGATI<br />
SET SALARIO = SALARIO*1.2<br />
WHERE DNO = 50<br />
Le stesse istruzioni possono essere utilizzate sia<br />
da terminale che all'interno di un programma "ospite".<br />
tecnologia S.I. 25<br />
OBIETTIVI DEL DBMS<br />
1 STANDARDIZZAZIONE DEI DATI ALL'INTERNO<br />
DELL’ORGANIZZAZIONE<br />
catalogazione unificata <strong>dei</strong> files (relazioni),<br />
chiarezza, disponibilità per molti utenti<br />
ESEMPIO SQL<br />
SYSCATALOG: catalogo delle relazioni<br />
(TNAME, OWNER, NCOLS, CARD, CLUST, NPAG, ..)<br />
( IMPIEGATI,TIBERIO,6,4000,Y,200,...)<br />
SYS COLUMNS:catalogo delle colonne<br />
(COLNAME,TNAME,TYPE,LENGTH,MAX, MIN...)<br />
( NOME, IMPIEGATI,CHAR,30 VAR...)<br />
SYSINDEXES, SYSAUTH, SYSVIEWS, ecc.<br />
tecnologia S.I. 26
OBIETTIVI DEL DBMS<br />
2 INTEGRAZIONE / CONSISTENZA<br />
Evitare versioni multiple dello stesso dato<br />
gestione delle versioni multiple,<br />
3 CONSISTENZA / INTEGRITÀ / SICUREZZA<br />
Possibilità di imporre vincoli sui dati in modo da<br />
mantenere (per quanto possibile) la consistenza di<br />
valori successivi. Ogni tentativo di violazione viene<br />
segnalato.<br />
gestione delle conseguenze delle violazioni.<br />
4 PROTEZIONE DELL'INVESTIMENTO IN SOFTWARE<br />
ridurre al minimo il rifacimento del software<br />
indipendenza <strong>dei</strong> dati dalla struttura fisica<br />
tecnologia S.I. 27<br />
OBIETTIVI DEL DBMS<br />
5 FACILITÀ DI USO DEI DATI<br />
• linguaggio di interrogazione interattivo (SQL, QBElike),<br />
• svincolare la programmazione di tipo applicativo<br />
dalle strutture fisiche(INDICI), possibilità di<br />
ristrutturare le strutture fisiche senza dover alterare<br />
i programmi applicativi,<br />
• creazione di VISTE.<br />
6 SEGRETEZZA/PRIVATEZZA<br />
controllo della autorizzazione all'accesso ed all'uso.<br />
7 RECOVERY<br />
ripristino automatico <strong>dei</strong> dati in caso di guasti.<br />
tecnologia S.I. 28
OBIETTIVI DEL DBMS<br />
8 CONDIVISIONE DEI DATI: l'utente può<br />
– interrogare i cataloghi (senza modificare)<br />
– creare nuove relazioni<br />
– interrogare e/o modificare i files PUBBLICI<br />
– interrogare e modificare i propri FILES<br />
– interrogare e/o modificare files di altri per i<br />
quali ha avuto l'AUTORIZZAZIONE<br />
– ACCESSO CONCORRENTE: gestione degli<br />
accessi di più utenti agli stessi dati senza<br />
interferenza<br />
tecnologia S.I. 29<br />
ESEMPIO DI SISTEMA DI FILES "RISCHIOSO"<br />
ANAGRAFICA PRODOTTI<br />
CONSISTENZA MAGAZZINO<br />
FORNITURE DALL'ESTERNO<br />
PAGAMENTO FATTURE<br />
FORNITURE ALL'ESTERNO<br />
EMISSIONE FATTURE<br />
DBA<br />
DATI PER LA FINANZA<br />
ANAGRAFICA CLIENTI<br />
ANAGRAFICA FORNITORI<br />
tecnologia S.I. 30
ESEMPIO DI SISTEMA DI FILES "RISCHIOSO"<br />
ACQUISTI<br />
ANAGRAFICA<br />
PRODOTTI<br />
giallo<br />
giallo<br />
VENDITE<br />
giallo<br />
verde<br />
blu<br />
nero<br />
tecnologia S.I. 31<br />
Linguaggi relazionali : SQL<br />
• Struttura tipica: SELECT <br />
FROM <br />
WHERE <br />
SELECT<br />
WHERE<br />
NOME FROM IMPIEGATI<br />
DNO = 40 AND LAVORO = 'PROGR'<br />
l'utente esprime "cosa vuole" ma non come i dati<br />
devono essere cercati nel sistema<br />
• Sistemi DBMS: "non navigazionali"/"navigazionali"<br />
<strong>sistemi</strong> relazionali/ <strong>sistemi</strong> reticolari e gerarchici<br />
tecnologia S.I. 32
Definizione di viste:views<br />
IMPIEGATI (MATR,NOME,DNO,LAVORO,SALARIO,MGR...)<br />
1) l'utente può creare una relazione permanente<br />
(DNO40P)<br />
CREATE TABLE DNO40P (def......... )<br />
INSERT INTO DNO40P:<br />
SELECT MATR, LAVORO, MGR<br />
FROM IMPIEGATI<br />
WHERE DNO = 40<br />
tecnologia S.I. 33<br />
Definizione di viste:views<br />
2)oppure: DEFINE VIEW DNO40 AS:<br />
SELECT MATR, LAVORO, MGR<br />
FROM IMPIEGATI WHERE DNO = 40<br />
La vista corrisponde a:<br />
DNO40(MATR,LAVORO,MGR)<br />
Il sistema traduce automaticamente una query sulla<br />
vista in una query sulla relazione effettiva:<br />
SELECT MATR FROM DNO40<br />
WHERE LAVORO = ‘rag’<br />
SELECT MATR FROM IMPIEGATI<br />
WHERE DNO = 40 AND LAVORO = ‘rag’<br />
tecnologia S.I. 34
Esecuzione delle query<br />
Cosa fa il sistema:<br />
1) controlla la correttezza formale dello<br />
statement (query, interrogazione)<br />
ad esempio la query su IMPIEGATI<br />
2) verifica l'esistenza del file IMPIEGATI<br />
- verifica l'autorizzazione all'accesso<br />
- verifica l'esistenza delle colonne (campi)<br />
citate nella query<br />
- verifica il rispetto di eventuali vincoli di<br />
integrità<br />
tecnologia S.I. 35<br />
Esecuzione delle query<br />
3) OTTIMIZZA L'INTERROGAZIONE:<br />
– controlla se esistono vie di accesso (indici)<br />
su IMPIEGATI (la scansione sequenziale è<br />
sempre disponibile)<br />
– ne valuta il costo<br />
– sceglie la strategia di costo minimo<br />
– esegue l'interrogazione<br />
NEI SISTEMI RELAZIONALI ESISTE UN MODULO<br />
OTTIMIZZATORE<br />
(l'ottimizzazione viene eseguita controllando le<br />
informazioni contenute nei vari cataloghi)<br />
tecnologia S.I. 36
Protezione dell'investimento in software<br />
• Ridurre al minimo il rifacimento del software<br />
• Rendere i dati indipendenti dalla struttura fisica<br />
ciò si ottiene:<br />
svincolando la programmazione di tipo<br />
applicativo dalle strutture fisiche<br />
fornendo la possibilità di ristrutturare<br />
senza dover alterare i programmi applicativi.<br />
• Entro certi limiti si può:<br />
- aggiungere o eliminare campi di una relazione<br />
- cambiare la definizione <strong>dei</strong> campi<br />
- scaricare e ricaricare la relazione secondo un<br />
altro criterio<br />
- aggiungere o eliminare indici (vie d’accesso)<br />
- aggiungere VISTE<br />
tecnologia S.I. 37<br />
SQL: cenno storico<br />
• DB relazionale:<br />
– E.F. Codd: “A Relational Model for Large Shared Data Banks”.<br />
Comm. ACM, 13, 6, 1970.<br />
SQL:<br />
– Chamberlin D.D., Astrahan M.M., Eswaran K.P., Griffiths P.P., Lorie<br />
R.A., Mehl J.W., Price T.G., Reisner P., Wade B.W.:”SEQUEL2: A<br />
Unified View to Data Definition, Manipulation and Control”. IBM J.<br />
Res. Dev., 20, 6, 1976.<br />
•SYSTEM R:<br />
– Astrahan M.M., Blasgen M.W., Chamberlin D.D., Gray J.M., King<br />
W.F.,Lindsay B.G., Lorie R.A., Mehl J.W., Price T.G., Putzolu G.R.,<br />
Schkolnick M., Selinger P.P., Slutz P.P.R., Strong H.R., Traiger I. L.,<br />
Wade B.W., Yost R.A.:” System R:, Relational Approach to<br />
Database Management”. ACM Trans. on Database Syst., 1, 2, 1976.<br />
– Astrahan M.M., Blasgen M.W., Chamberlin D.D., Gray J.M., King<br />
W.F.,Lindsay B.G., Lorie R.A., Mehl J.W., Price T.G., Putzolu G.R.,<br />
Schkolnick M., Selinger P.P., Slutz P.P.R., Strong H.R., Tiberio P.,<br />
Traiger I. L., Wade B.W., Yost R.A.:”System R: A Relational<br />
Database Management System”. IEEE Computer, 12, 5, 1979.<br />
tecnologia S.I. 38