Sistemi informativi
I sistemi informativi sono un insieme di risorse (di qualunque natura) e di metodologie finalizzate alla raccolta, all’uso e scambio di informazioni. Qualunque organizzazione è dotata di un sistema informativo per organizzare e gestire le informazioni necessarie al perseguimento dei suoi obiettivi. L’informazione viene codificata e rappresentata nelle macchine sotto forma di dati. Quando si parla di sistemi informativi si fa particolare riferimento alle basi di dati, un insieme di dati strutturati, ovvero omogeneo per contenuti e formato, memorizzati in un computer, rappresentando di fatto la versione digitale di un archivio dati o schedario.
Base dati
- Grandi dimensioni (più della memoria centrale)
- Condivisione – gli stessi dati possono essere utilizzati contemporaneamente da più utenti all’interno dell’organizzazione, evitando:
- Ridondanza – informazioni ripetute
- Rischio di incoerenza – due versioni possono non coincidere
- Persistenza – garantire la sopravvivenza in ogni situazione dell’informazione (ciclo di vita che dura nel tempo)
Accezione generica: insieme organizzato di dati utilizzati per il supporto allo svolgimento delle attività di un ente.
Accezione specifica: insieme organizzato di dati utilizzati per il supporto allo svolgimento delle attività di un ente gestito per mezzo di DBMS (software per la gestione di base di dati).
Per fare ciò, non sono sufficienti programmi scritti da programmatori, anche esperti, ma è necessario l’utilizzo di un sistema di gestione, detto Database Management System – DBMS. Si tratta di un grande pacchetto software che gestisce le caratteristiche precedentemente elencate e i dati, garantendo:
- Affidabilità (strettamente legato alla persistenza)
- Privatezza (in quanto non deve essere usata da tutti gli utenti allo stesso modo)
- Efficacia (riuscire a fare le cose che devono essere fatte in ogni momento)
- Efficienza (riuscire a fare le cose nel minor tempo possibile e con la massima efficienza)
Un sistema informativo è dunque un insieme degli strumenti, risorse e procedure che consentono la gestione delle informazioni aziendali. È essenziale per il funzionamento (in quanto l’azienda per fare qualunque cosa ha bisogno delle informazioni) e fortemente integrato con il sistema organizzativo, comprendendo risorse umane.
Sistema azienda, sistema informativo, sistema informatico
Modello a buccia di cipolla
Sistema informatico
È una porzione automatizzata del sistema informativo. Insieme dei sistemi hardware e software presenti in un'azienda; assicura la generazione, l'elaborazione, la circolazione e la memorizzazione delle informazioni su supporti informatici.
Cos’è l'informatica?
Scienza del trattamento razionale, specialmente per mezzo di macchine automatiche, dell’informazione, considerata come supporto alla conoscenza umana e alla comunicazione. [Def. Accademia di Francia]
Ha due anime:
- Metodologica – “trattamento razionale dell’informazione”
- Tecnologica – “specialmente per mezzo di macchine automatiche”
Tipici esempi di sistemi informativi
- Applicazioni gestionali classiche - gestione ordini, personale, magazzino
- Applicazioni finanziarie - banche, borsa, carte di credito
- Sistemi di prenotazione - treni, aerei, alberghi, autonoleggi
- Nuove applicazioni - gestione dei progetti, del territorio, commercio elettronico
Fondamentale è dunque il passaggio dal dato all’informazione.
Dato: unità elementare (grezza) di informazione.
Informazione: elaborazione dei dati per rispondere a esigenze specifiche dell'impresa.
Compiti della tecnologia dell’informazione (visione centrata sui dati)
- Immissione, memorizzazione, cancellazione dei dati
- Accesso, elaborazione, trasferimento: dai dati all'informazione
- Presentazione, visualizzazione dell'informazione
Esiste anche una visione alternativa, che analizza il passaggio dai dati ai processi.
Processo
Procedura aziendale che risponde a un particolare compito applicativo.
Come analizzare i sistemi informativi?
- Partendo dai dati
- Partendo dai processi
L’attenzione, però, sarà fondamentalmente rivolta ai dati più che ai processi, perché pur essendo possibili i due approcci, i dati sono molto più stabili rispetto ai processi, in quanto costituiscono tutto il patrimonio informativo di proprietà dell’organizzazione.
Confronto con architettura senza/con DBMS
La differenza fondamentale sta nella gestione dati unitaria e a più alto livello attraverso linguaggi specializzati che permette assenza di rischio di incoerenza e inconsistenza dai dati presente in file distinti.
Database management system (DBMS)
- Sistemi software dedicati alla gestione dei dati
- Esistono sul mercato alcune centinaia di prodotti diversi
- Per uso personale
- Per server in una rete
- Per mainframe
Vi sono 2 categorie di utenti:
- Utenti finali – interessati semplicemente all’informazione
- Utenti speciali – non lavorano sul contenuto della base di dati ma sulla struttura dei dati stessi – schema dei dati
Come si usa un DBMS?
- Definendo la struttura generale dei dati
- Definendo le specifiche operazioni sui dati
Architettura a livelli degli schemi
- Schema esterno: descrizione per specifiche applicazioni
- Schema logico: descrizione globale
- Schema interno: descrizione dei meccanismi di gestione dei dati
Perché a tre livelli?
- Indipendenza logica: capacità di offrire una visione dei dati differente ad utenti differenti
- Indipendenza fisica: capacità di astrarre completamente dai meccanismi di gestione dei dati
I linguaggi del DBMS
Data Definition Language (DDL) es:
- CREATE, DROP, ALTER
Data Manipulation Language (DML)
- es: SELECT, INSERT, UPDATE, DELETE
Gli utenti del DBMS
- Database administrator: programma il DDL
- Programmatori applicativi: programmano le applicazioni, usano il DML
- Utenti casuali: eseguono versioni "amichevoli" del DML (query language, interfacce grafiche)
- Utenti finali ("terminalisti"): eseguono le applicazioni
Il modello relazionale dei dati
Cronologia dei modelli per la rappresentazione dei dati
Esistono diversi modelli per la rappresentazione dei dati, tra questi si distinguono:
- Modello gerarchico (anni '60)
- Modello reticolare (anni '70)
- Modello relazionale (anni '80)
- Modello a oggetti (anni '90)
I modelli preesistenti (gerarchico e reticolare) erano fortemente influenzati da considerazioni di natura fisica, che caratterizzano quindi aspetti di efficienza rispetto a quelli di semplicità d'uso. Questi primi modelli erano molto mirati all'organizzazione fisica dei dati e proprio per questo motivo consentivano accessi veloci per particolari percorsi predefiniti. La principale differenza tra relazionale e gerarchico o reticolare sta nel modo in cui si rappresentano i “legami” (associazioni) tra diverse strutture: gerarchico e reticolare usano puntatori, mentre il modello relazionale fa solo uso di valori.
Un'altra differenza importante è che, a differenza del gerarchico e della reticolare, il modello relazionale è formalmente definito. Il modello relazionale introduce una grossa novità: non prevede percorsi predefiniti. Qualunque tipo di query può essere espressa e non è privilegiata rispetto ad altre: alcune risulteranno meno efficienti di quanto si poteva fare con i modelli precedenti, ma è più universale.
Il modello relazionale viene introdotto nel 1970 da T.Codd, ricercatore dell’IBM Research di Santa Teresa in California. In parallelo alla pubblicazione del modello teorico, nei laboratori di Santa Teresa è stato sviluppato il primo prototipo funzionante che implementava il modello relazionale dei dati noto come System R a cui si è affiancato poi INGRES, che è stato il primo sistema relazionale prototipo sviluppato nella città di Berkeley. Le principali scoperte tecnologiche che hanno permesso di realizzare, partendo dai primi prototipi, dei veri e propri sistemi funzionanti che sono quelli che sono stati poi commercializzati, vedono la loro luce alla fine degli anni '70. I primi sistemi commerciali vedono la luce all'inizio degli anni '80 quali Oracle, IBM-SQL DS e DB2, Ingres, Informix, Sybaye e si può aggiungere il sistema della Microsoft che è sequel server (SQL server). Il primo successo commerciale, però, fu dal 1985.
Definizione informale
Se dobbiamo rappresentare dei dati, un modo per esprimerli è in formato tabellare. Esempio: (Tabella – Struttura Bidimensionale) Nel modello relazionale il termine relazione indica una generalizzazione della relazione matematica.
Definizione formale
Per introdurre il modello relazionale e quindi opportuno rivedere il concetto di:
Proprietà
Le proprietà formali che discendono dalla definizione sono le seguenti:
- Grado della relazione: numero di domini (n) su quella relazione
- Cardinalità della relazione: numero di tuple della relazione ottenuta
- Attributo: nome che viene dato al dominio in una relazione. I nomi degli attributi in una relazione devono essere tutti distinti fra loro
- Schema di una relazione: definita come il nome della relazione e fra parentesi tonde l'elenco degli attributi separati da virgole. Nello schema di un database i nomi delle relazioni devono essere distinti fra loro.
Confronto della terminologia: Una relazione può essere informalmente definita come una tabella, le cui colonne (attributi) rappresentano le proprietà di interesse e le cui righe (tuple) rappresentano ciascuna uno specifico oggetto descritto nel database.
Riflessioni
Quando si parla di relazioni ci si riferisce a un oggetto composto di due parti:
- Lo schema, formato dal nome della relazione e dal nome degli attributi. Lavorare sullo schema significa progettare lo schema del database
- L’istanza, formata dai dati veri e propri, quindi memorizzare i dati ed eseguire le interrogazioni per trovare l'informazione che ci serve.
Due attività assai differenti sono contraddistinte da:
- Progetto dello schema
- Gestione dell'istanza
Fondamentale è, inoltre, il passaggio dai dati all'informazione (Query Language).
Come arricchire lo schema?
A questo schema di base si aggiungono, ai cosiddetti vincoli di integrità. Il vincolo di integrità è una proprietà che deve essere soddisfatta dalle istanze; le istanze che non verificano il vincolo non possono essere memorizzate nel database. Questi vincoli devono definire correttamente quando un dato memorizzato è significativo rispetto al mondo applicativo. Quindi, i vincoli di integrità escludono alcune istanze in quanto non rappresentano correttamente il mondo applicativo.
Esistono diversi vincoli di integrità, alcuni di questi vengono definiti vincoli fondamentali del modello relazionale, tra cui:
- Quello che definisce la nozione di chiave
- Vincoli sui valori nulli
- Integrità referenziale
- Vincoli generici
Nozione di chiave
Un tipo importantissimo di vincoli sono i vincoli di chiave, che vietano la presenza di tuple distinte che hanno lo stesso valore su uno o più attributi. La chiave di una relazione è un sottoinsieme degli attributi dello schema che ha la proprietà di unicità e minimalità. La proprietà di unicità afferma che, in una relazione non esistono due tuple con chiave uguale. La proprietà di minimalità afferma che, sottraendo un qualunque attributo alla chiave, si perde la proprietà di unicità. Un insieme di attributi per cui vale la proprietà di unicità ma non è minimale la chiamiamo superchiave.
Vincoli fondamentali
Tra i vincoli fondamentali, oltre alla nozione di chiave vi sono:
- Entity integrity: non ci possono essere valori nulli in nessun componente di una chiave (valore nullo vuol dire assenza di informazioni)
- Chiave esterna: si considerano due relazioni R1 e R2 è un insieme di attributi K comuni ad entrambe le relazioni, quindi K è un sottoinsieme di attributi sia di R1 che di R2. Se questo insieme di attributi K è chiave primaria in R1, allora seguirà che è chiave esterna in R2
- Referential integrity: se K è chiave esterna in R2 e primaria in R1, i valori di K in R2 sono compresi fra quelli che ha in R1 (o al più nulli).
È necessario, pertanto, scegliere una chiave detta chiave primaria, su cui non si ammettono valori nulli.
Riassumendo:
- Il modello relazionale è basato sul concetto di relazione, che estende quello di relazione matematica tra n domini associando a ciascuna occorrenza di dominio un nome, detto attributo
- Lo schema di una relazione consiste di un nome e di un insieme di attributi, l’istanza di una relazione è un insieme di tuple, ovvero funzioni che associano a ogni attributo dello schema un valore del corrispondente dominio.
- In assenza di informazioni si fa uso di un particolare valore, detto valore nullo (null), che non appartiene a nessun dominio
- Per garantire l'integrità dei dati si possono specificare diversi tipi di vincoli, che definiscono quali sono le istanze ammissibili.
Qualche notazione
Solitamente si usano le lettere maiuscole per denotare le relazioni, mentre, si usano le lettere minuscole per specificare le istanze delle relazioni. Quindi se R o S sono i nomi delle relazioni dello schema, allora r o s sono le istanze di R e S. Per indicare lo schema di una relazione si utilizza questa forma: R(X), dove con X intende un insieme di attributi. Quindi se in realtà lo schema è R(A,B,C) dove A,B,C sono gli attributi della relazione R, allora X sarebbe l'insieme degli attributi A,B,C: X = {A,B,C} = ABC o, per convenzione, si può scrivere XY = XY, e se Y = {D} (Y uguale all’attributo D) allora: XY = A,B,X,D. Se si vuole indicare nello schema di una relazione anche il dominio degli attributi, lo si fa mettendolo dopo il nome dell'attributo con i due punti, nel seguente modo: R(A:D1, B:D2, C:D3) dove D è il dominio di A, … Avendo una relazione R(X) possiamo indicare una tupla che appartiene alla sua istanza.
Ad esempio, si considerino le tuple t1 e t2 R. Se una relazione ha attributi A, B, C, per andare ad estrarre il valore dell’attributo A, ad esempio, dalla tupla t1, ho due modi di specificarlo:
- Usando la notazione puntata (stile RECORD) – t1.A
- Usando la notazione stile ARRAY – t1[A]
Questa notazione, però, non si usa soltanto per i singoli attributi ma anche per un insieme di attributi. Ad esempio: Y = AC t2.Y o t2[Y], in questo modo vado a denotare la sottotupla che contiene soltanto i valori degli attributi A e C estratti dalla tupla t2. Si possono formalizzare quindi alcune definizioni tra cui:
Definizione di chiave
Data una relazione R con schema R(X) e istanza r, k sottoinsieme di X è chiave se e solo se:
- Unicità: per ogni t1, t2 in r: t1[K] = t2[K], allora t1 = t2
- Minimalità: non esiste nessun sottoinsieme k’ di k per cui vale l’unicità
Algebra relazionale e linguaggi di interrogazione
L’algebra relazionale è un modo di esprimere in maniera compatta l'informazione che noi vogliamo estrarre dal database. Questo è un linguaggio di interrogazione. I linguaggi di interrogazione appartengono a due grandi famiglie:
- Linguaggi formali, usati per chi implementa le basi di dati
- Linguaggi programmativi, vengono usati nella pratica aziendale
Appartengono ai linguaggi formali:
- Algebra relazionale, insieme di operazioni che lavorano su relazioni e producono queste espressioni come risultato una relazione
- Calcolo relazionale (linguaggio dichiarativo basato sulla logica dei predicati del primo ordine)
- Programmazione logica
Tra i linguaggi programmativi si distinguono:
- SQL: structured query language
- QBE: query by example
L’algebra relazionale è costituita da un insieme di operatori che si applicano a una o più relazioni e che producono una relazione. È un linguaggio procedurale di tipo algebrico in cui gli operandi sono relazioni ed è la base per capire come le interrogazioni vengono effettivamente elaborate da un DBMS. È definita da Codd (1970) assieme al modello relazionale. È molto utile per imparare a formulare query perché si imparano uno alla volta le componenti che poi devono essere combinate per scrivere le interrogazioni complesse.
L'algebra relazionale è un insieme minimo di 5 operatori che danno l'intero potere espressivo del linguaggio a cui si affiancano degli operatori derivati. Si distinguono due tipi di operazioni:
- Le operazioni unarie sono quelle costituite da un solo argomento/relazione e si specifica come se fosse una funzione f(x) e sono gli operatori di:
- Selezione
- Proiezione
- Le operazioni binarie che hanno due relazioni/argomenti e sono gli operatori di:
- Unione
- Differenza
- Join
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Appunti teoria Sistemi informativi
-
Appunti Sistemi informativi
-
Appunti di Sistemi informativi
-
Appunti Sistemi informativi