Tecnologie digitali - programmi sistemi informativi
Sistemi informatici e informativi
I sistemi informatici inizialmente erano visti come costo ed erano dipendenti dalle decisioni aziendali. Nel tempo sono diventati indipendenti grazie alla tecnologia, considerata una leva di cambiamento. Un sistema informatico è l'insieme delle infrastrutture tecnologiche ed è contenuto nel sistema informativo e nel sistema automatizzato, che include tutte le attività che possono essere svolte senza l’operatore. È contenuto nel sistema informativo.
Un sistema informativo è definito come un insieme di mezzi, della conoscenza organizzativa e delle competenze tecniche per gestire l'informazione e i dati. Si suddivide in:
- Operazionali: Svolgono operazioni quotidiane di normale amministrazione, trattano transazioni (Transaction Processing System - TPS) e progettano la base di dati. Per la gestione di un sistema operazionale ci si affida solitamente a DBMS relazionali. Una base di dati relazionale si basa sulla tecnologia OLTP e organizza i dati all’interno dei DBMS.
- Decisionali: Supportano le decisioni e le operazioni strategiche dell'azienda, con sistemi come MIS e DSS (Management Information System e Decision Support Systems), rispondendo all'esigenza di sfruttare il patrimonio dei dati per identificare le informazioni utili al processo decisionale.
- Data warehouse: Raccoglie in un unico sistema i dati di interesse per l'azienda.
- Data warehousing: Insieme di attività che realizzano la definizione precedente.
Risorse e organizzazione
Un'organizzazione è l'insieme di persone o processi che collaborano per raggiungere un obiettivo. Le risorse sono tutto ciò con cui un'organizzazione opera, sia materiale che immateriale, e si suddividono in:
- Esterne: L’azienda le usa ma non le gestisce (ambiente, mercato e clienti).
- Interne: L'azienda le usa e le gestisce (scambio, struttura e gestione).
L'importanza della risorsa informazione è sottolineata dalla sua centralità all'interno dell'organizzazione in quanto è intangibile, non deperibile e autorigenerante, ovvero un'informazione genera altre informazioni.
Piramide della conoscenza
La piramide della conoscenza evidenzia come i livelli superiori sono costituiti a partire dai livelli inferiori. Più si sale nella piramide, più il dato diventa aggregato, ovvero assume più valore.
- Dato: Rappresenta la base di tutto, è qualcosa di vero per definizione ed è sempre accompagnato da un tipo (dominio).
- Informazione: È l'interpretazione del dato.
- Conoscenza: È l'analisi dell'informazione con informazioni precedenti (dati storici) e guida eventuali decisioni che possono influire sulla situazione attuale.
- Saggezza: Rappresenta l’esenzione della conoscenza e può essere definita come l'esperienza applicata alla conoscenza.
Piramide di Anthony e catena di Porter
Il processo è l'insieme di attività che l'organizzazione nel suo complesso svolge per gestire il ciclo di vita di una risorsa e può essere classificato secondo:
- Piramide di Anthony: Si suddivide in tre livelli, legati alla struttura dell'organizzazione. Più si sale nella piramide, meno periodico è il processo, c'è più bisogno di dati esterni, i dati sono meno granulari e strutturati, e l'apporto umano diventa indispensabile.
- Livello operativo: Si considerano le attività di tipo operativo (specifiche e di routine), vengono definiti gli obiettivi a lungo termine e vengono utilizzati i dati di granularità fine (piramide della conoscenza – dato).
- Livello di programmazione e controllo: Si considerano le attività tattiche, come la programmazione delle risorse disponibili, e vengono utilizzate le informazioni (piramide della conoscenza – informazione).
- Livello di pianificazione strategica: Si collocano le attività legate alla scelta degli obiettivi aziendali e alla definizione delle politiche aziendali, e viene utilizzata la rappresentazione aggregata dell'informazione (piramide della conoscenza - conoscenza e saggezza).
- Catena di Porter: Considera esclusivamente i processi di livello operazionale, di business e le funzionalità a essi collegate, che sono suddivise in attività primarie, ovvero orientate agli obiettivi principali dell'organizzazione, e attività secondarie, che assicurano il corretto funzionamento dei processi primari.
Pianificazione strategica e studio di fattibilità
L'obbiettivo della pianificazione strategica è predisporre una proposta di progetto che il committente possa approvare. L’attività di pianificazione comprende due attività principali:
- Pianificazione strategica: Si identificano gli obiettivi che richiedono interventi di natura informatica.
- Studio di fattibilità: Una volta appurato il bisogno di un intervento di natura informatica, si identificano le alternative progettuali. Esso precisa le caratteristiche di un potenziale intervento al sistema informativo e si concentra sulla definizione di progetti informatici. La progettazione delle soluzioni si compone di tre fasi:
- Identificazione delle soluzioni
- Analisi di "make or buy": Prende in considerazione il fatto che sul mercato per alcuni interventi esistono dei prodotti software già pronti, ovvero i COTS.
- Analisi della possibilità di esternalizzare (outsourcing).
Framework di Zachman
John Zachman definì fondamentale l'uso di una architettura per descrivere il sistema informativo aziendale in quanto la tecnologia iniziava a consentire la distribuzione di applicazioni e dati su macchine diverse: a suo parere, la decentralizzazione senza una struttura ben precisa avrebbe generato il caos. Propose così il framework per definire l'Enterprise Architecture: una tassonomia per organizzare documenti, specifiche e modelli architetturali. In questo caso, il blueprint è definito da una matrice che organizza in modo sistematico i modelli utilizzati per rappresentare singole componenti dell'Enterprise Architecture.
Il framework di Zachman è organizzato in:
- Colonne: Definiscono gli aspetti da analizzare, in particolare
- Dati: Si considerano i dati di cui l'organizzazione ha bisogno per operare.
- Funzioni: Si analizzano le funzionalità eseguite dall'azienda per mandare avanti il proprio core business.
- Rete: È relativa alla distribuzione geografica dell'organizzazione.
- Persone: La gente coinvolta nell'esecuzione delle diverse funzionalità aziendali.
- Tempo: Relativo agli eventi significativi per il business.
- Motivazione: Si considerano gli obiettivi dell'azienda.
- Righe: Mettono in luce i diversi punti di vista che possono interessare diversi stakeholder. In particolare, Zachman individua:
- Scopo: Interessa chi deve fare pianificazione e fornisce una rappresentazione ad alto livello che descrive il sistema in termini di dimensioni, forma, relazioni e obiettivi di base.
- Modello dell'azienda (concettuale): Interessa il proprietario del sistema ed è una prospettiva orientata alla progettazione del business.
- Modello del sistema (logico): Pensato per il progettista, fornisce una specifica dettagliata attraverso la definizione del modello del sistema.
- Modello tecnologico (fisico): Pensato per chi deve realizzare il sistema e deve tradurre il progetto logico in un progetto fisico.
- Rappresentazione dettagliata: Raccoglie le specifiche da dare ai programmatori per la realizzazione effettiva del sistema.
- Funzionalità organizzativa: Effettiva implementazione del sistema che è parte dell'organizzazione.
Modello relazionale
Una base di dati è un insieme di dati organizzati in maniera strutturata. Caratteristiche delle basi di dati:
- Grandi: Possono avere grandi dimensioni e dunque il sistema deve limitare la dimensione di dati che possono essere gestiti.
- Condivise: Applicazioni e utenti diversi devono poter accedere a dati comuni.
- Persistenti: Hanno un tempo di vita che non è limitato a quello delle singole esecuzioni dei programmi che le utilizzano.
DBMS
Il Data Base Management System (DBMS) è un software che fa parte del sistema informativo e gestisce tutto il ciclo di vita della risorsa informazione.
- Affidabili: Il sistema conserva intatto il contenuto della base di dati in caso di malfunzionamenti hardware o software.
- Garantiscono privatezza: Ciascun utente viene abilitato a svolgere solo determinate azioni sui dati attraverso meccanismi di autorizzazione.
- Efficienti: Le operazioni vengono svolte utilizzando un insieme di risorse che è accettabile per gli utenti.
- Efficaci: La base di dati rende produttive le attività dei suoi utenti.
Il modello relazionale è un modello dei dati, ovvero è un insieme di concetti utilizzati per organizzare i dati di interesse e descriverne la struttura. Nei database i dati sono organizzati per facilitarne l'inserimento e la ricerca.
- Modello relazionale: È basato sul concetto matematico di relazione.
- Modello gerarchico: Basato sull'uso di strutture ad albero (scomodo per recuperare informazioni).
- Modello reticolare: Basato sull'uso dei grafi.
- Modello a oggetti: Estende le basi di dati il paradigma di programmazione ad oggetti.
La relazione è un sottoinsieme del prodotto cartesiano tra due o più domini (attributi), possono essere rappresentate graficamente sotto forma di tabelle e può essere utilizzata per organizzare dati rilevanti.
- Grado: Corrisponde al numero delle componenti del prodotto cartesiano (numero attributi).
- Cardinalità: Corrisponde al numero di elementi, o tuple, della relazione.
- Tupla: È una funzione che associa ciascun attributo un valore del dominio.
Per rappresentare la non disponibilità di valore, nelle rappresentazioni tabellari si utilizza il valore NULL.
Esempi di relazioni in un modello logico-relazionale
- Squadra(nome, stadio, allenatore, anno fondazione): Nome - Torino, Stadio - Torino, Allenatore - Longo, Anno fondazione - 1906.
- Partita(squadra casa, gol casa, squadra ospite, gol ospite): Squadra Casa - Torino, Gol Casa - 3, Squadra Ospite - Milan, Gol Ospite - 4.
- Studente(nome, cognome, media, data nascita): Nome - Mario, Cognome - Rossi, Media - 25, Data nascita - 14/08/96.
Le strutture del modello relazionale ci permettono di organizzare le informazioni di interesse per le nostre applicazioni. Non è vero che qualsiasi insieme di tuple sullo schema rappresenti informazioni corrette per l'applicazione. È stato così introdotto il concetto di vincolo di integrità:
- Vincolo intra-relazionale: Se il suo soddisfacimento è definito rispetto a singole relazioni.
- Vincolo di tupla: Considerano valori di una singola tupla ed esprimono condizioni sui valori di ciascuna tupla, indipendentemente dalle altre.
- Vincolo di dominio: Considerano valori di elementi di una singola tupla.
Esempio: Partita(squadra casa, gol casa, squadra ospite, gol ospite)
Il valore "milano" non ha senso perché nessuna squadra ha quel nome. Il valore "juventus" non ha senso perché la squadra non può giocare contro se stessa.
Vincolo inter-relazionale: Se coinvolge più relazioni. Vincolo di integrità referenziale [foreign key]: fra un insieme di attributi di una relazione e un'altra relazione è soddisfatto se i valori di ciascuna tupla dell'istanza compaiono come valori della chiave primaria dell'istanza.
Nell’immagine non posso aggiungere la referenza studente a corso perché esso non è riferito al singolo studente e, allo stesso modo, non posso aggiungere corso a studente con la referenza corso perché ogni studente frequenta più di un corso. Dunque devo creare una terza relazione frequenta che ha come chiavi matricola e codice (non ci sono duplicazioni). Si può anche usare la notazione puntata: frequenta.matricola -> studente.matricola / corso.docente -> docente.matricola frequenta.codice -> corso.codice / docente.nome <> docente.cognome.
Se cambia istanza di un dominio target del vincolo di integrità referenziale?
- Dangling reference: Tiengo l'attributo che viola il vincolo.
- On delete cascade: Cancello a cascata tutte le tuple degli elementi che fanno riferimento alla tupla che ho cancellato.
- On update cascade: Aggiorno una tupla e a cascata si aggiornano tutte le tuple degli elementi che fanno riferimento a essa.
Una chiave non può ammettere valori nulli (chiave primaria), è un insieme di attributi utilizzati per identificare univocamente le tuple di una relazione ed è chiave se è una super chiave minimale, ovvero non esiste un'altra super chiave di essa che sia contenuta in come sottoinsieme proprio.
- Super-chiave: È un insieme di domini che identificano univocamente tutte le tuple, è un insieme di attributi di una relazione se non contiene due tuple distinte e tale che: t1 ≠ t2 ⇒ K[t1] ≠ K[t2].
DBMS e proprietà delle transazioni
In un DBMS si assume che un insieme di operazioni non si interrompa mai e, se qualcosa va storto, posso tornare allo stato di prima dell'inizio della transazione, che corrisponde a un insieme di operazioni in un database con una serie di proprietà che devono coesistere ed essere svolte contemporaneamente:
- Atomicity: Tutte le operazioni devono essere eseguite, oppure nessuna.
- Consistency: Alla fine della transazione i vincoli devono essere rispettati.
- Isolation: Le transazioni devono essere eseguite in modo indipendente da altre.
- Durability: Il risultato delle transazioni è permanente.
Algebra relazionale
L'algebra relazionale è basata sul modello logico relazionale ed è un insieme di operatori su relazioni per creare variazioni di relazioni e unire relazioni.
Operatori unari
- Ridenominazione: Cambia il nome di un attributo e genera una relazione senza nome: ρ a1→a2 R.
- Con la stessa istanza intenzionale di R1.
- Con un diverso schema estensionale di R1, dove i domini sono rinominati.
- Selezione: Filtra le tuple di una relazione e genera una relazione senza nome: σ condizione R1
- Con lo stesso schema estensionale di R1.
- Con una diversa istanza intensionale, dove ogni tupla rispetta la condizione.
- Proiezione: Filtra i domini di una relazione e genera una relazione senza nome: π lista domini R1
- Con la stessa istanza intenzionale di R1.
- Con un diverso schema estensionale, con i domini elencati.
Operatori binari
- Unione: Unisce due relazioni con lo stesso schema e genera una relazione senza nome: R1 ∪ R2
- Con lo stesso schema estensionale di R1 e R2.
- Con l’unione delle istanze intensionale di R1 e R2.
- Intersezione: Opera l'intersezione di due relazioni con lo stesso schema e genera una relazione senza nome: R1 ∩ R2
- Con lo stesso schema estensionale di R1 e R2.
- Con l’intersezione delle istanze intensionale di R1 e R2.
- Sottrazione: Opera la sottrazione insiemistica tra due relazioni con lo stesso schema e genera una relazione senza nome: R1 - R2
- Con lo stesso schema estensionale di R1 e R2.
- Con la differenza delle istanze intensionale di R1 e R2.
- Join naturale: Connette due relazioni e genera una relazione senza nome: R1 ⨝ R2
- Con lo stesso schema estensionale di R1 unito a quello di R2.
- Con il sottoinsieme del prodotto cartesiano delle istanze di R1 e R2, con solo le tuple dove a domini con nome uguale corrisponde lo stesso valore.
- Theta join: Connette due relazioni e genera una relazione senza nome: R1 ⨝ condizione R2
- Con lo stesso schema estensionale di R1 unito a quello di R2.
- Con il sottoinsieme del prodotto cartesiano delle istanze di R1 e R2, con solo le tuple che rispettano la condizione.
Progettazione concettuale
La progettazione concettuale ha lo scopo di rappresentare le specifiche informali della realtà di interesse in termini di una descrizione formale e completa, ma indipendente dai criteri di rappresentazione utilizzate nei sistemi di gestione di database (non dipende dal modello dei dati e dal DBMS).
Entity/Relationship (E/R)
L’Entity/Relationship (E/R) è un linguaggio di modellizzazione per la specifica di diagrammi che rappresentano modelli concettuali di database. I costrutti principali di questo linguaggio sono:
- Entità: Rappresenta classi di oggetti che hanno proprietà comuni ed esistenza autonoma ai fini dell'applicazione di interesse. Essa ha un nome che la identifica univocamente e viene rappresentata graficamente mediante un rettangolo. L'occorrenza di un'entità non è un valore ma l'oggetto stesso.
- Relazione/Associazione: Rappresenta il collegamento tra due o più entità.
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.
-
Tecnologie digitali 2 - programma
-
Esercitazione Tecnologie Digitali 1
-
Appunti Tecnologie Digitali 1
-
Tecnologie Web