Lezioni di Basi di Dati - 01 - Sistemi informativi e informatici.pdf
Document Details
Full Transcript
I.I.S. “Marzotto-Luzzatti” - Valdagno Dipartimento di Informatica Prof. Riccardo Crosato Lezioni di Basi di Dati Sistemi informativi e sistemi informatici Dati e informazione DATO =...
I.I.S. “Marzotto-Luzzatti” - Valdagno Dipartimento di Informatica Prof. Riccardo Crosato Lezioni di Basi di Dati Sistemi informativi e sistemi informatici Dati e informazione DATO = valore, sequenza di simboli (è la misura di un fenomeno che siamo interessati ad osservare) INFORMAZIONE = insieme di dati che elaborato, aumenta o modifica la conoscenza della realtà DATI CHIAVE DI INTERPRETAZIONE INFORMAZIONI SEPARARE I DATI DALLE POSSIBILI INTERPRETAZIONI STRUTTURA CORRETTA INTERPRETAZIONE DEI DATI Lezioni di Informatica classe V - Prof. Riccardo Crosato 2 Dati → intensione ed estensione Aspetto estensionale dei dati: valori specifici dei dati Aspetto intensionale dei dati: interpretazione, semantica dei dati (es. tipo di dato nei linguaggi di programmazione) Schema dei dati = descrizione della struttura e dei vincoli di integrità (unicità della chiave, restrizione sul dominio, integrità referenziale, …) → è invariante nel tempo Schema dei dati = METADATI cioè “dati per descrivere dati” D insieme di dati strutturato secondo uno schema S → – D è variabile nel tempo – D è una estensione di S → istanza di dati = estensione di uno schema – S è una intensione di D → schema dei dati = intensione di un’istanza di una base di dati Lezioni di Informatica classe V - Prof. Riccardo Crosato 3 Modelli dei dati MODELLO DEI DATI: strumento linguistico (insieme di concetti) in grado di attribuire una struttura ai dati Si classificano in tre tipologie (dal più astratto al meno astratto): 1) modelli concettuali (semantici) 2) modelli logici 3) modelli fisici Lezioni di Informatica classe V - Prof. Riccardo Crosato 4 Modelli dei dati modelli concettuali (semantici): usano schemi e linguaggio più vicino all’uomo, basati sulla descrizione dei concetti del mondo reale Esempi: modello ER (Entity - Relationship, Entità – Associazioni), UML “Unified Modeling Language”, ORM “Object Role Modeling” modelli logici: usano nozioni di livello intermedio (nozione di record) e si concentrano sulle strutture astratte per rappresentare i dati: – modello GERARCHICO → strutture ad albero – modello RETICOLARE → grafi – modello RELAZIONALE → tabelle (relazioni) – modello AD OGGETTI → evoluzione del modello relazionale ad oggetti modelli fisici: usano nozioni tipiche del livello dei file e delle memorie fisiche ossia diverse organizzazioni fisiche dei dati o metodi di accesso (sequenziale, sequenziale con indice, tabella hash, alberi) Lezioni di Informatica classe V - Prof. Riccardo Crosato 5 Sistema informativo e sistema informatico Necessità di informazione: a scopo operativo (informazioni di servizio) a scopo decisionale (informazioni di governo informazioni strategiche) N.B.: informazioni di servizio e Informazione di governo non necessariamente distinte Sistema informativo: insieme organizzato di procedure e di risorse umane e materiali utilizzate per la raccolta, l’archiviazione, l’elaborazione e la comunicazione di informazioni necessarie ad un’organizzazione per gestire sia le attività operative che quelle di governo Sistema informatico: sottoinsieme del sistema informativo dedicato alla gestione automatica delle informazioni Lezioni di Informatica classe V - Prof. Riccardo Crosato 6 Progettazione di un sistema informatico Insieme di attività raggruppabili in almeno tre macrofasi: 1) Raccolta delle richieste degli utenti 2) Progettazione concettuale 3) Progettazione logica e fisica (realizzazione) è ciclico perché: con l’uso del sistema gli utenti e i committenti avanzano richieste correttive o evolutive del software si possono creare nuove esigenze dell’organizzazione → il sistema deve adeguarsi di conseguenza per supportarla Lezioni di Informatica classe V - Prof. Riccardo Crosato 7 1. Raccolta delle richieste degli utenti In questa fase vengono raccolte le esigenze e le problematiche interagendo con i potenziali utenti al fine di stendere specifiche dei requisiti dettagliate. Prevede: Indagine preliminare relativa all’introduzione del sistema informatico nell’organizzazione - individuazione dei settori da informatizzare, valutazione degli impatti dell’informatizzazione sull’organizzazione del lavoro e sul SI esistente, valutazione delle risorse disponibili (budget economico) Analisi del sistema informativo esistente → effettuata da un’analista interagendo con gli utenti del sistema informativo - essenziale per un analista è avere ottime capacità di osservazione e comprensione della realtà Definizione dei requisiti del nuovo sistema → documentazione dettagliata contenente: – classificazione dei dati utilizzati (nome, tipo, uso, ecc.) – vincoli di integrità dei dati = condizioni per essere significativi e validi – descrizione delle procedure da automatizzare – volume iniziale e previsione di crescita dei dati nel tempo – grado di privatezza dei dati differenziato a seconda degli utenti e del tipo di utilizzazione Lezioni di Informatica classe V - Prof. Riccardo Crosato 8 2. Progettazione concettuale Consiste nell’utilizzare la documentazione prodotta nella fase di raccolta delle richieste per definire un modello astratto del sistema informatico (progetto concettuale), che verrà usato come linea guida di riferimento e di lavoro per i progettisti della successiva fase di realizzazione Il progetto concettuale è generalmente costituito da un insieme di documenti, schemi e diagrammi che descrivono in modo organico e coerente: la struttura dei dati in termini di insiemi e relazioni fra insiemi i vincoli di ammissibilità dei dati le procedure di elaborazione dei dati i vincoli sui tempi di risposta l’integrità e la riservatezza delle informazioni i costi in termini di risorse informatiche richieste per la realizzazione del progetto Lezioni di Informatica classe V - Prof. Riccardo Crosato 9 3. Progettazione logica e fisica Consiste nella realizzazione effettiva del sistema informatico nelle varie componenti: infrastrutturali: individuazione e acquisizione delle piattaforme hardware, software e di comunicazione applicative: acquisizione di prodotti software già disponibili sul mercato e sviluppo di software specifico Lezioni di Informatica classe V - Prof. Riccardo Crosato 10 Evoluzione nella gestione dei dati A Brief History of Databases - Computer History Museum (California) -https://www.youtube.com/watch?v=KG-mqHoXOXY Lezioni di Informatica classe V - Prof. Riccardo Crosato 11 File di dati Archivio di dati (o file): insieme di dati correlati identificato da un nome, memorizzato permanentemente su un supporto di memoria di massa di un elaboratore e avente vita indipendente dal/dai programma/i utilizzato/i per la sua creazione e/o modifica File system: componente fondamentale del sistema operativo per la gestione dei file – Organizza i file raggruppandoli in directory – Gestisce i diritti di accesso ai file – Rende disponibili i dati contenuti nei singoli file ai programmi che ne fanno richiesta In un file i dati sono normalmente raggruppati in unità logiche chiamate record (registrazioni). Ogni singolo elemento all’interno di questa struttura è chiamato field (campo) Lezioni di Informatica classe V - Prof. Riccardo Crosato 12 File → operazioni e organizzazione Operazioni sui file: Organizzazione dei file: – Creazione – Fisica → relativa al supporto fisico di – Apertura memorizzazione dei dati – Chiusura – Logica – Inserimento → relativa alle modalità di gestione dei dati del file – Modifica → come sono disposti i record – Cancellazione → metodo d’accesso; può essere: – Ricerca Sequenziale Accesso diretto (random) → ricerca binaria, hash Indicizzata (indexed) Lezioni di Informatica classe V - Prof. Riccardo Crosato 13 Metodi d’accesso accesso sequenziale: il numero di accessi al disco è proporzionale al numero di righe che bisogna attraversare Accesso diretto hash: si basa sulla tecnica di trasformazione hash ossia sull’idea di ricavare la posizione della riga contenente una chiave K da ricercare attraverso un calcolo sui bit che la compongono (applicando cioè una trasformazione hash alla chiave) Lezioni di Informatica classe V - Prof. Riccardo Crosato 14 Metodi d’accesso accesso con indice: si utilizza una struttura ausiliaria (l’indice) solitamente residente sullo stesso disco in cui si trovano i dati che compie una funzione simile a quella di un indice analitico gli indici possono essere implementati in diversi modi: – ISAM Indexed Sequential Access Method http://it.wikipedia.org/wiki/ISAM – con alberi bilanciati → B-tree, http://it.wikipedia.org/wiki/B-Albero - R-tree, http://it.wikipedia.org/wiki/R-tree, ecc… Lezioni di Informatica classe V - Prof. Riccardo Crosato 15 DB e DBMS Base di dati (DB, database): collezione di dati che risponde ai seguenti requisiti: 1) i dati sono strutturati secondo un preciso schema 2) i dati sono condivisi cioè utilizzati da diverse applicazioni e da utenti diversi in concorrenza tra loro 3) i dati sono integrati cioè la loro ridondanza è minima 4) i dati sono sicuri cioè esistono meccanismi che garantiscono la riservatezza 5) i dati sono ripristinabili in caso di inconsistenze dovute a guasti hardware o software Sistema di gestione di basi di dati (DBMS - Data Base Management System): sistema software efficiente ed efficace in grado di gestire basi di dati integrate, condivise e persistenti assicurando loro affidabilità e privatezza. Consente di: 1) definire lo schema logico di una base di dati 2) accedere e/o modificare i dati di una base di dati 3) definire sottoschemi (o schemi esterni, o viste) 4) definire parametri qualitativi e quantitativi delle strutture fisiche (schema interno o schema fisico) 5) definire utenti della base di dati e autorizzazioni per l’accesso e la modifica Lezioni di Informatica classe V - Prof. Riccardo Crosato 16 File vs DBMS Lezioni di Informatica classe V - Prof. Riccardo Crosato 17 File vs DBMS Approccio file system Approccio DBMS NO Integrazione. Ogni programma dispone Integrazione. Una base di dati è un insieme dei propri file che possono essere ridondanti. integrato di dati strutturati e permanenti La struttura dei dati e i vincoli sono immersi memorizzati senza ridondanze nel codice dei programmi (struct / record) Indipendenza logica. La struttura logica NO Indipendenza logica. Le modifiche alla della base di dati può essere ampliata senza struttura logica dei dati devono essere fatte in la necessità di modificare i programmi tutti i programmi che li gestiscono applicativi NO Indipendenza fisica. Modifiche Indipendenza fisica. L’implementazione all’implementazione fisica (cambio posizione fisica (organizzazione della memorizzazione, del file) si ripercuotono sul codice dei modalità di accesso, ecc.) dei dati può essere programmi cambiata senza modificare la struttura logica dei dati e i programmi applicativi NO Integrità. I programmi si devono far carico di controllare che i dati rispettino i Integrità. Il sistema di gestione delle basi di vincoli dati prevede meccanismi per controllare che i dati inseriti o modificati soddisfino ai vincoli di integrità specificati Lezioni di Informatica classe V - Prof. Riccardo Crosato 18 Alcuni tra i principali RDBMS Lezioni di Informatica classe V - Prof. Riccardo Crosato 19 Classi di utenza Utenti finali. Utenti non professionali che interagiscono con la base di dati esclusivamente mediante programmi applicativi (addetti a sportelli postali o bancari, magazzinieri, utenti web, ecc.) → non conoscono la struttura dei dati Utenti avanzati. Utenti che conoscono la struttura dei dati e usano linguaggi di interrogazione effettuando attività non predefinite Programmatori di applicazioni. Utenti professionali che realizzano applicazioni software che si interfacciano con una base di dati utilizzando il linguaggio di manipolazione dei dati oppure vari strumenti di supporto alla generazione di interfacce verso la base di dati (strumenti visuali e RAD, Rapid Application Development) Utenti amministratori (DBA, Data Base Administrator). Utenti professionali a cui è demandata la manutenzione della base di dati nel tempo; alcuni compiti: – acquisire le risorse hardware e software necessarie per il DBMS – definire e manutenere gli schemi logici e lo schema interno – definire sottoschemi (viste) – definire o modificare i diritti di accesso ai dati per gli utenti – predisporre le procedure di salvataggio e di ripristino dei dati (backup&restore) Lezioni di Informatica classe V - Prof. Riccardo Crosato 20 Linguaggi dei DBMS DDL (Data Definition Language): per la definizione dello schema dei dati (usato dal DBA) DML (Data Manipulation Language): per l’interrogazione, la modifica, la cancellazione e l’inserimento dei dati Il DML può essere: – ospitato: incapsulato in un linguaggio di programmazione – autonomo Il DML può essere: – di alto livello o non procedurale: esprime in modo conciso operazioni complesse sulla base di dati in modo dichiarativo cioè specificando quali dati reperire e non come reperirli (sono generalmente set-oriented cioè permettono di ottenere un insieme di record in un’unica istruzione) – di basso livello o procedurale: esprime le interrogazioni sulla base di dati mediante una serie di istruzioni che utilizzano i costrutti iterattivi e condizionali dei linguaggi di programmazione, elaborando un record alla volta ( record-oriented) SQL è un linguaggio non procedurale set-oriented che può essere utilizzato sia autonomamente (i DBMS mettono a disposizione un terminale interattivo) o incapsulato in linguaggi di programmazione Lezioni di Informatica classe V - Prof. Riccardo Crosato 22 Linguaggi dei DBMS Lezioni di Informatica classe V - Prof. Riccardo Crosato 23 Architettura a tre livelli di un DBMS Modo di operare di un DBMS Lezioni di Informatica classe V - Prof. Riccardo Crosato 24 Architetture dei DBMS Le architetture più recenti separano i DBMS in due parti: – una dedicata alla gestione “in linea” di dati che devono essere subito disponibili e aggiornati per le attività operative – una responsabile della gestione dei dati per il supporto alle decisioni Per il diverso scopo sono emerse due architetture: – Sistemi finalizzati alla gestione ottimizzata ed affidabile di transazioni per le fonti dati operazionali → si parla di sistemi OLTP (On-Line Transaction Processing, elaborazioni delle transazioni in linea). Questi sistemi vengono dimensionati per gestire moltissime transazioni al secondo, provenienti da client distribuiti nelle reti – Sistemi finalizzati all’analisi interattiva e veloce di grandi quantità di dati per il supporto alle decisioni → si parla di sistemi OLAP (On-Line Analytical Processing, elaborazione analitica in linea). Per fare questo, i dati vengono esportati dai sistemi OLTP, dove sono stati generati, e importati nei cosiddetti data warehouse (magazzini di dati). Lezioni di Informatica classe V - Prof. Riccardo Crosato 25 Architetture dei DBMS I data warehouse costituiscono il punto di partenza per le attività analitiche di business intelligence (BI): – serie di strumenti software per consolidare, analizzare e permettere l’accesso a grandi quantità di dati in modo che gli utenti possano prendere decisioni – la BI comprende strumenti di data mining per scoprire relazioni all’interno dei dati (associazioni, dipendenze, raggruppamenti, classificazioni, …) Lezioni di Informatica classe V - Prof. Riccardo Crosato 26 Cubo OLAP Una base di dati OLAP consiste in una struttura multidimensionale chiamata cubo (anche se si tratta molto spesso di un ipercubo) La nascita dei sistemi OLAP ha reso semplice la navigazione dei dati attraverso operazioni di: – drill down (= scavare a fondo) → scendere nel dettaglio (es. dal dato mensile si passa al dato giornaliero) e drill up – slicing (= affettare) → riduzione della dimensionalità – dicing (= tagliare a cubetti) → filtraggio dei dati Lezioni di Informatica classe V - Prof. Riccardo Crosato 27 Le parti del Sistema Informativo Aziendale Lezioni di Informatica classe V - Prof. Riccardo Crosato 28 Le parti del Sistema Informativo Aziendale Enterprise Resource Planning (ERP, pianificazione delle risorse d'impresa): applicazioni software gestionali integrate per tutti i processi di business rilevanti di un’impresa (contabilità, magazzino, fornitori, personale, vendite, …) Customer Relationship Management (CRM, gestione delle relazioni con i clienti): applicazioni software per la gestione delle relazioni con i clienti (attività di marketing, attività di pre e post vendita, …) Supply Chain Management (SCM, gestione della catena di distribuzione): software per la gestione dei processi di acquisizione delle risorse e materie prime e della loro trasformazione in azienda inclusi i processi finali di spedizione della merce ai clienti Lezioni di Informatica classe V - Prof. Riccardo Crosato 29 Big data I big data sono dati che superano i limiti degli strumenti di database tradizionali e rappresentano uno dei fattori evolutivi nel mondo dell‘analisi dei dati e della Business Intelligence Lezioni di Informatica classe V - Prof. Riccardo Crosato 30 Big data I big data sono caratterizzati da: 1) Volume: la quantità di dati generati 2) Varietà: i diversi tipi di dati che vengono generati 3) Velocità: la velocità con la quale vengono generati https://www.spindox.it/it/blog/big-data-miti-considerazioni/ https://medium.com/analytics-vidhya/big-data-3-vs-and-5-v-s-c1cae2a6d311 Lezioni di Informatica classe V - Prof. Riccardo Crosato 31 Le 3 V dei big data 1) Volume ✔ grandi quantità dell‘ordine di grandezza di petabyte (1000 tera) e oltre ✔ generati da strumenti del Web 2.0, da sensori, strumenti scientifici, transazioni bancarie, movimenti finanziari, … ✔ non gestibili (troppo costoso) con strumenti tradizionali (si usano file system distribuiti su più server → Google MapReduce, Apache Hadoop https://www.youtube.com/watch?v=aReuLtY0YMI ) 2) Varietà ✔ varietà di formati (documenti txt, csv, pdf, doc, …, dati social,...) ✔ varietà di struttura → dati semistrutturati. Per la loro gestione si usano database NoSQL (o schemaless database), → offrono meccanismi per organizzare i dati ma non impongono uno schema rigido. ✔ varietà di fonti (ad es. generati automaticamente da sensori, log, … o dagli utenti) 3) Velocità con la quale nuovi dati vengono generati (automazione industriale, IoT, …) → si usano sistemi per monitorare più fonti di dati analizzando i dati in modo incrementale con bassa latenza Lezioni di Informatica classe V - Prof. Riccardo Crosato 32 Big data stima della quantità di dati generati ogni minuto dai servizi Internet Lezioni di Informatica classe V - Prof. Riccardo Crosato 33 Big data e cloud computing Cloud computing: insieme di tecnologie e servizi offerti da aziende che con i loro data center favoriscono la fruizione e l'erogazione di applicazioni, potenza computazionale e spazio di archiviazione Lezioni di Informatica classe V - Prof. Riccardo Crosato 34 Teorema CAP Teorema CAP (teorema di Brewer - 1998 Università di Berkeley) è impossibile per un sistema informatico distribuito assicurare simultaneamente coerenza dei dati (Consistency), disponibilità continua (Availability) e tolleranza alle partizioni (Partition tolerance) Lezioni di Informatica classe V - Prof. Riccardo Crosato 35 Coerenza - Disponibilità - Tolleranza Coerenza (Consistency) significa che tutti i client vedono gli stessi dati contemporaneamente, indipendentemente dal nodo a cui si connettono. Perché questo accada, ogni qualvolta i dati vengono scritti su un nodo, devono essere istantaneamente inoltrati o replicati su tutti gli altri nodi nel sistema prima che la scrittura sia considerata "riuscita" Disponibilità (Availability) significa che qualsiasi client che effettua una richiesta di dati ottiene una risposta, anche se uno o più nodi sono inattivi. Per dirlo in altre parole, tutti i nodi di lavoro nel sistema distribuito restituiscono una risposta valida per qualsiasi richiesta, senza eccezioni. Tolleranza alle partizioni (Partition tolerance): Una partizione è una interruzione nelle comunicazioni all'interno di un sistema distribuito - una connessione interrotta o temporaneamente ritardata tra due nodi. La tolleranza alle partizioni significa che il cluster deve continuare a funzionare indipendentemente dal numero di interruzioni nelle comunicazioni tra i nodi nel sistema. cfr. https://www.ibm.com/it-it/cloud/learn/cap-theorem Lezioni di Informatica classe V - Prof. Riccardo Crosato 36 Teorema CAP Il teorema CAP riguarda quindi l‘affidabilità dei sistemi distribuiti: un sistema è in grado di assicurare contemporaneamente solo due delle tre caratteristiche CP: coerenza e tolleranza di partizione, adottato in MongoDB, Redis, Memcache, HBase, … AP: disponibilità e tolleranza di partizione utilizzato in CouchDB, Riak, DynamoDB, Voldemort, … CA: coerenza e disponibilità, caratteristiche dei RDBMS Lezioni di Informatica classe V - Prof. Riccardo Crosato 37 NoSQL NoSQL (Not only SQL) è un movimento che promuove sistemi software dove la persistenza dei dati è in generale caratterizzata dal fatto di non utilizzare il modello relazionale, di solito usato dalle basi di dati tradizionali (termine usato per la prima volta nel 1998 da Carlo Strozzi per un sistema open source che non usava SQL) Caratteristiche dei database NoSQL sono: – memorizzano i dati in formati diversi (archivi di documenti, grafi, archivi valore-chiave, tabelle, …) – non utilizzano join – rappresentano i dati senza uno schema fisso (schemaless) – lavorano su sistemi distribuiti con elevate prestazioni e facilmente scalabili Lezioni di Informatica classe V - Prof. Riccardo Crosato 38