INFORMATICA (Sistemi informativi, basi di dati, e sistemi di accesso alle informazioni) I Anno Accademico 2004-2005 Prof. M. Cristina Cipriani [email protected] Informazioni generali sul corso 2UDULRGHOOHOH]LRQL • Lun: 12.15-13.45 • Mar: 14.00-15.30 • Mer: 09.30-11.00 5LFHYLPHQWR Mercoledì (11.00-13.00) (nel 3° periodo) Su appuntamento [email protected] (negli altri periodi) +:6: • +DUGZDUH: il termine include qualsiasi dispositivo fisico : tangibile, concreto, tipicamente contenente componentistica elettronica, in grado di eseguire una qualche attività di elaborazione dell'informazione all’interno di un sistema informatico – L'hardware include non solo il computer e dispositivi tipo schermo, tastiera, …, ma anche altri componenti che servono per , "assemblare" un sistema informatico (ad es. i cavi che permettono di collegare due computer via rete, o le antenne che ne permettono il collegamento via radio, eccetera) • 6RIWZDUH: sequenze di istruzioni che guidano l’hardware e definiscono con precisione l' esecuzione di un dato compito • Ciò che aziona un computer è un insieme di istruzioni, chiamate programma, (o software), che vanno caricate in memoria centrale, la cui esecuzione permette l’elaborazione di dati • Nella maggior parte dei computer esistono due tipi di software: il sistema operativo e i programmi applicativi. • sistema operativo (es.: DOS e Windows della Microsoft, oppure MacOS di Apple, oppure Linux) è un programma che abilita e facilita gli utenti nell’esecuzione di programmi applicativi sull’hardware del computer • programmi applicativi (es.: MS Word, MS Excel, Netscape Navigator, o Adobe Photoshop) sono programmi distinti che permettono l' esecuzione di compiti specifici, che possono essere molto diversi. – Ne esistono moltissimi: si calcola che esistano circa 100.000 programmi abilitati ("compatibili") del sistema operativo più diffuso, cioè MS Windows – sotto questa categoria ricadono le varie applicazioni gestionali/aziendali • gestione personale, gestione magazzino, anagrafe clienti, ... • L’industria ICT (Information Communication Tecnology) è di tipo di tipo “orizzontale”: il consumatore confeziona il prodotto “computer” scegliendo i componenti preferiti in un mercato organizzato per fasce orizzontali 9HQGLWDHGLVWULEX]LRQH: negozi, superstore, dealer on-line $SSOLFD]LRQL: Office, WordPerfect, SuperMarioBros, ecc. 6LVWHPLRSHUDWLYL: DOS e Windows, MacOS, Linux, Unix &RPSXWHU: Compaq, IBM, HewlettPackard, ecc. &KLS: Intel, Motorola, Amd, ecc. • La funzione dei sistemi operativi è duplice: – offrire agli utenti un insieme di servizi di base (“interfaccia”) per gestire documenti e applicazioni – offrire alle applicazioni un insieme di servizi di base per gestire i dispositivi in modo uniforme SURJUDPPLDSSOLFDWLYL programmi di video-scrittura (es. Microsoft Word) browser, usati per “navigare il Web” e spedire posta elettronica (es. MS Explorer, Netscape Communicator) fogli elettronici, usati per manipolare e analizzare numeri e dati (es. Microsoft Excel) Srogrammi per la gestione di banche di dati (database), utilizzati per conservare ed elaborare dati strutturati SURJUDPPLSHUcreare applicazioni multimediali/grafiche, manipolare foto, fare presentazioni con audio/video, ecc. videogiochi emulatori (di altro hardware, di altro sistema operativo) ,PSRUWDQWH: ad ogni programma applicativo corrisponde di solito un formato specifico dei documenti che riesce a trattare ,OWXWWRFRPHXQDFLSROOD« DOFXQHIUDVLFHOHEUL - Nel futuro i computer peseranno non meno di 1.5 ton (Popular Mechanics 1949) - Penso che ci sia mercato nel mondo per non più di cinque computer (Thomas Watson, chairman di IBM, 1943) - Ho girato avanti e indietro questa nazione (USA) e ho parlato con la gente. Vi assicuro che questa moda dell’elaborazione automatica non vedrà l' anno prossimo (Editor dei libri scientifici di Prentice Hall 1947) - Non c’è ragione per cui qualcuno possa volere un computer in casa (Ken Olson, fondatore di Digital, 1977) ... e si potrebbe continuare 6,67(0,,1)250$7,9, Si parte da un “Fatto”: Le organizzazioni gestiscono informazioni al fine di migliorare il loro funzionamento. di una 'HILQL]LRQH Un sistema informativo organizzazione è una combinazione di risorse, umane e materiali, e di procedure organizzate per la raccolta, l’archiviazione, l’elaborazione e lo scambio delle informazioni necessarie: alle attività operative (informazioni di servizio), alle attività di gestione (informazioni di gestione), e alle attività di programmazione, controllo e valutazione dell’organizzazione (informazioni di governo). 6,67(0,,1)250$7,&, Un sistema informatico è l’insieme degli strumenti informatici impiegati per il trattamento automatico delle informazioni di un un’organizzazione al fine di agevolare le funzioni del suo sistema informativo. (92/8=,21('(,6,67(0,,1)250$7,&, 3ULPDIDVH Utilizzo della tecnologia dei sistemi di archiviazione per applicazioni settoriali, soprattutto nell’amministrazione, con l’obiettivo di automatizzare quelle attività che richiedono l’elaborazione sistematica e ripetitiva di grandi quantità di dati. 6HFRQGDIDVH A partire dagli anni ’70, utilizzo della tecnologia dei sistemi per la gestione di basi di dati che hanno consentito la realizzazione di sistemi informatici di supporto ad ogni livello delle organizzazioni. 7HU]DIDVH Alla fine degli anni’80 utilizzo della tecnologia dei sistemi per la gestione di basi di dati distribuite, su rete locale o geografica. 4XDUWDIDVH A partire dagli anni ’90, utilizzo della tecnologia Web 352%/(0$$5&+,9,$=,21(5(&83(52 (/$%25$=,21(',,1)250$=,21, ±Tipi di dati ±Tipi di usi ±Tipi di sistemi $VSHWWLGHOSUREOHPD 7,3,','$7, • Collezioni di dati di tipo: – Strutturato (semplice o complesso) “'DWL VX VWXGHQWL GHL TXDOL LQWHUHVVDQR PDWULFROD QRPHSURYLQFLDDQQRGLQDVFLWD” – Multimediale • Testo • Disegno • Immagine • Suono • Filmato • Collezioni di dati e relazioni fra loro “'DWLVXVWXGHQWLHGHVDPLGDORURVXSHUDWL” 7,3,',86, • Ricerca per contenuto: – Caso di dati strutturati “7URYDUH LO QRPH GHJOL VWXGHQWL GHOOD SURYLQFLD GL 3DGRYD” – Caso di testi “7URYDUHJOLDUWLFROLFKHULJXDUGDQRL'%06UHOD]LRQDOL” – Caso di immagini “7URYDUHOHIRWRGLVSLDJJH” – Caso di collezioni e relazioni “7URYDUHLQRPLGHJOLVWXGHQWLFKHKDQQRVXSHUDWRWXWWL JOLHVDPLFRQ” • Modifiche • Elaborazioni complesse di supporto al funzionamento di organizzazioni 7,3,',6,67(0, • Sistemi di archiviazione • Sistemi per basi di dati (DBMS) &RQGLYLVLRQH • Ogni organizzazione (specie se grande) è divisa in settori o comunque svolge diverse attività • A ciascun settore o attività corrisponde un (sotto)sistema informativo • Possono esistere sovrapposizioni fra i dati di interesse dei vari settori • Una base di dati è una risorsa LQWHJUDWD, condivisa, fra i vari settori 3RVVLELOLSUREOHPL 5LGRQGDQ]D: – informazioni ripetute Rischio di LQFRHUHQ]D: – le versioni possono non coincidere 5DFFROWHGLLQIRUPD]LRQL • Se ne fa uso da tempo … – archivi anagrafici, biblioteche, banche … • La tipica struttura di memorizzazione – tabella, campi, record • I vantaggi derivanti dalla gestione automatizzata delle informazioni – es. carte di credito, rubriche telefoniche, … 3UREOHPLGDULVROYHUH • Come strutturare i dati in modo che possano essere facilmente aggiornati senza dover modificare le procedure che vi accedono? • Come organizzare i dati in modo da consentire l’accesso condiviso (eventualmente anche in scrittura) evitando inutili ridondanze e pericolose inconsistenze? • Come limitare l’accesso esclusivamente a chi è autorizzato? alle informazioni $UFKLYLH%DVLGLGDWL OLPLWLGHLVLVWHPLGLDUFKLYLD]LRQH 6HSDUD]LRQHHLVRODPHQWRGHLGDWL – Ogni programma gestisce il proprio insieme di dati: gli utenti di un programma non hanno la possibilità di accedere a dati utili gestiti da altri programmi 'XSOLFD]LRQHGHLGDWL – Gli stessi dati sono gestiti da programmi diversi. Spazio di memoria sprecato e talora valori e formati diversi per lo stesso dato OLPLWL 'DWDGHSHQGHQFH – La struttura dei file è definita nel codice del programma )RUPDWLLQFRPSDWLELOLSHULGDWL – I programmi sono scritti in linguaggi diversi e non possono accedere agli altrui 4XHU\ILVVHHSUROLIHUD]LRQHGHLSURJUDPPLDSSOLFDWLYL – I programmi sono scritti per funzioni particolari; ogni nuova esigenza richiede un nuovo programma GDJOLDUFKLYLDOOHEDVLGLGDWL • /D GHILQL]LRQH GHL GDWL HUD HPEHGGHG (incastonato) nei programmi applicativi piuttosto che essere memorizzata separatamente e indipendentemente • 1HVVXQ FRQWUROOR sugli accessi e la manipolazione di dati se non quella imposta dal programma applicativo • 2UJDQL]]D]LRQH'DWDEDVH – un sistema di gestione dati integrato in cui i dati sono mantenuti in modo non ridondante e in cui l’utente può specificare con un comando unico una richiesta (query) per una varietà di dati • '%06 - Data Base Management System – Un sistema software che consente all’utente di definire, creare, e mantenere il database e fornisce accesso controllato ad esso %DVHGL'DWL • accezione generica, PHWRGRORJLFD ,QVLHPH RUJDQL]]DWR GL GDWL XWLOL]]DWL SHU LO VXSSRUWR DOOR VYROJLPHQWR GHOOH DWWLYLWj GL XQ HQWH D]LHQGD XIILFLRSHUVRQD • accezione specifica, PHWRGRORJLFDe WHFQRORJLFD LQVLHPHGLGDWLJHVWLWRGDXQ'%06 %$6(','$7, 'HILQL]LRQH 8QD EDVH GL GDWL q XQD UDFFROWD GL GDWL SHUPDQHQWLVXGGLYLVLLQGXHFDWHJRULH: i PHWDGDWL (schema): descrivono la struttura degli insiemi di dati, le restrizioni sui valori ammissibili dei dati (vincoli d’integrità) e le relazioni fra gli insiemi. Lo schema va definito prima di creare dati ed è indipendente dalle applicazioni che usano la base di dati; i GDWL, le rappresentazioni di certi fatti conformi alle definizioni dello schema, con le seguenti caratteristiche: – sono organizzati in insiemi omogenei, fra i quali sono definite delle relazioni. La struttura dei dati e le relazioni sono descritte nello schema con opportuni meccanismi di astrazione che caratterizzano il cosiddetto modello dei dati; – sono molti, in assoluto e rispetto ai metadati, non possono essere gestiti in memoria temporanea; – sono permanenti; – sono accessibili; – sono protetti sia da accesso da parte di utenti non autorizzati, sia da corruzione dovuta a malfunzionamenti hardware e software; – sono utilizzabili contemporaneamente da utenti diversi. '$7$%$6(0$1$*(0(176<67(0 Sistema ( SURGRWWR VRIWZDUH) in grado di gestire FROOH]LRQLGLGDWLche siano (anche): JUDQGL (di dimensioni (molto) maggiori della memoria centrale dei sistemi di calcolo utilizzati) SHUVLVWHQWL (con un periodo di vita indipendente dalle singole esecuzioni dei programmi che le utilizzano) FRQGLYLVH( utilizzate da applicazioni diverse) garantendo DIILGDELOLWj (resistenza a malfunzionamenti hardware e software) e SULYDWH]]D (con una disciplina e un controllo degli accessi). Come ogni prodotto informatico, un DBMS deve essere HIILFLHQWH (utilizzando al meglio le risorse di spazio e tempo del sistema) ed HIILFDFH (rendendo produttive le attività dei suoi utilizzatori). • • • • • Access DB2 Oracle Sybase SQLServer $OFXQL'%06LQFRPPHUFLR )XQ]LRQDOLWj Un DBMS è un sistema (centralizzato o distribuito) che offre opportuni linguaggi per: – definire lo schema della base di dati, – scegliere le strutture dati per la memorizzazione dei dati, – memorizzare i dati rispettando i vincoli definiti nello schema; – recuperare e modificare i dati interattivamente (linguaggio di interrogazione o query language) o da programmi. 81(6(03,2',6(66,21( 'HILQL]LRQHEDVHGLGDWL ¾ FUHDWHGDWDEDVHEsempioEsami 'HILQL]LRQHVFKHPD > FUHDWHWDEOHEsami (Materia char(5), Candidato char(8), Voto int , Lode char(1), Data char(6)) ,QVHULPHQWRGDWL > LQVHUWLQWREsami YDOXHV(‘BDSI1’,’080709’,30,’S’,070996) 81(6(03,2',6(66,21( ,QWHUURJD]LRQH > VHOHFW Candidato IURP Esami ZKHUH Materia = "BDSI1" and Voto = 30 Candidato 080709 ,QROWUH: accesso ai dati da programma, interrogazioni con interfaccia grafica, direttive per definire le strutture fisiche… 6FKHPLHLVWDQ]H In ogni base di dati esistono: – lo VFKHPD, sostanzialmente invariante nel tempo, che ne descrive la struttura (SDUWHVWDWLFD) • le intestazioni delle tabelle Access – l’LVWDQ]D, i valori attuali, che possono cambiare, anche molto rapidamente (SDUWHGLQDPLFD) • il “corpo” (il contenuto) di una tabella LQJHQHUDOH – Linguaggio per la definizione della base di dati; – Linguaggi per l’uso dei dati; – Meccanismi per il controllo dei dati; – Strumenti per il responsabile della base dati di dati; – Strumenti per lo sviluppo delle applicazioni /LQJXDJJLRSHUODGHILQL]LRQHGHOODEDVHGLGDWL • L’approccio con tre livelli di descrizione dei dati è stato proposto come un modo per garantire le proprietà di indipendenza logica e fisica dei DBMS, che sono un obiettivo importante di questi sistemi. • Indipendenza fisica: i programmi applicativi non devono essere modificati in seguito a modifiche dell’organizzazione fisica dei dati. • Indipendenza logica: i programmi applicativi non devono essere modificati in seguito a modifiche dello schema logico. /,1*8$**,3(5/¶862'(,'$7, Come conseguenza dell’integrazione dei dati, un DBMS deve prevedere più modalità d’uso per soddisfare le esigenze delle diverse categorie di utenti che possono accedere alla base di dati: - programmatori delle applicazioni: • integrazione DDL e DML nel linguaggio ospite: procedure predefinite, estensione del compilatore, precompilazione • comunicazione tra linguaggio e DBMS – utenti non programmatori – utenti delle applicazioni 0(&&$1,60,3(5,/&21752//2'(,'$7, • Una caratteristica molto importante dei DBMS è il tipo di meccanismi offerti per garantire le seguenti proprietà di una base di dati: – Integrità, sicurezza e affidabilità. • Integrità: mantenimento delle proprietà specificate in modo dichiarativo nello schema (vincoli d’integrità) • Sicurezza: protezione dei dati da usi non autorizzati • Affidabilità: protezione dei dati da malfunzionamenti hardware o software (fallimenti di transazione, di sistema e disastri) e da interferenze indesiderate dovute all’accesso concorrente ai dati da parte di più utenti. &KLIDFKHFRVD • Operazioni sulla base dati 1. Modifica della struttura dati: ''/(Data Definition Language) 2. Modifica del contenuto: '0/(Data Manipulation Language) 3. Interrogazione: 4/(Query Language) • SQL (Structured Query Language) è il linguaggio standard per svolgere tutte e 3 le operazioni • Utenti della base dati – Database Administrator (DBA) – Programmatore applicativo – Utente finale FRPSRQHQWLGHOO¶DPELHQWH'%06 • Hardware – da un pc a una rete di computer • Software – DBMS, sistema operativo, programmi applicativi, software di rete (se necessario) • Dati –dell’organizzazione e una loro descrizione in schema e sottoschema • Procedure – istruzioni e regole da applicare al progetto e all’uso del database e dal DBMS • Persone – Data Base Administrator - DBA – Data administrator, programmatori applicativi – Progettisti di database (sia logici che fisico) – Utenti