Metodi per la gestione e l utilizzo efficiente dei dati

Documenti analoghi
Gestione ed analisi di base dati nell epidemiologia. delle malattie infettive

Fasi di un Compilatore

Structured Query Language

DataBase NoSQL. Prof. Marco Pedroni Unversità degli Studi di Ferrara

Progettazione di Basi di Dati

SISTEMI INFORMATIVI E DATABASE

Introduzione ai DataBase. Alice Pavarani

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS

Foglio elettronico e Banche dati e per la Pubblica Amministrazione

INTRODUZIONE AI DBMS

Scopo Laboratorio di Informatica

Elementi di gestione di dati con MS Access 2000

INTRODUZIONE AI DBMS. Inoltre i fogli elettronici. Mentre sono poco adatti per operazioni di. Prof. Alberto Postiglione

INTRODUZIONE ALLE BASI DI DATI

Microsoft Access. Nozioni di base. Contatti: Dott.ssa Silvia Bonfanti

PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE

I DATI E LA LORO INTEGRAZIONE 63 4/001.0

INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno GESTIONE DEI DATI

Tecnologie informatiche multimediali

Elaborazione. Base di dati (stoccaggio)

Scopo Informatica. Sistema informativo. Sistema informatico. Gestione dell informazione per le lauree triennali

Basi di Dati. Progettazione di una Base di Dati. Progettazione di una Base di Dati

Scopo. Informatica. Sistema informativo. Sistema informatico

PROGRAMMAZIONE DISCIPLINARE LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE INFORMATICA CLASSE TERZA

SISTEMI INFORMATIVI DIREZIONALI

Linguaggi e Ambienti di Programmazione

Strutture dati e loro organizzazione. Gabriella Trucco

Informatica. per laurea triennale di area non informatica. 1 Le basi di dati

Basi di dati (database)

Caratteristiche dei linguaggi per Database

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1

IWEBSTUDIO I MIGLIORI VIDEOCORSI MICROSOFT OFFICE IN ITALIA

SISTEMI INFORMATIVI DIREZIONALI BUSINESS INTELLIGENCE

Informatica e Bioinformatica: Basi di Dati

Corso di Informatica. Access. Struttura tabella. Tabelle - esempi 11/01/2008

ANNO SCOLASTICO 2018/2019 DIPARTIMENTO DI MATEMATICA E INFORMATICA INDIRIZZO ALBERGHIERO CURRICOLO DI TECNOLOGIE DELL INFORMAZIONE E COMUNICAZIONI

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.2 Strumenti di Access. Utilizzo elementare del computer Concetti fondamentali di basi di dati

naturali che si trovano ad una distanza minore di Vogliami gestire i dati relativi ai parchi naturali e siamo interessati a sapere quali sono i parchi

primo anno: Tecnologie Informatiche

Sistemi di Elaborazione delle Informazioni

MS Access: Tutorial Tabelle, Relazioni

Le Basi di Dati per i Beni culturali

Informatica di Base 1 Linea 1

DataBase Management System - DBMS

Dipartimento di Scienze Umane Corso di studi in Marketing & digital communication. Project work. Data Mining e IT. Database

Relazioni e tabelle. Introduzione alle Basi di Dati Relazionali. Relazioni uno a uno. Esempio

Corso di Informatica

MS Access Un DBMS relazionale per Windows?

CORSO ACCESS PARTE IV

I Fondamenti del Linguaggio

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project

CONTESTO ED OBIETTIVI MODULI E FUNZIONALITÀ

Prof. Pagani corrado SISTEMI INFORMATIVI E DATABASE

Argomenti XML JSON. Linguaggi per la definizione e lo scambio di dati strutturati, semi-strutturati, non strutturati. XML Data Model JSON

LE BASI DI DATI. Prima parte Premesse introduttive I MODELLI DEI DATI

SISTEMI INFORMATIVI DIREZIONALI

ciclo di vita della soluzione (informatica) di un problema

Gestione delle informazioni. Tot. h 10. Base di Dati. Tot. h 56. Grafica in C# - Laboratorio- Tot. h 40. Dipartimento Informatica Materia Informatica

Lezione 1. Introduzione ai sistemi di basi di dati

Sistemi di Elaborazione dell Informazione. Cosa sono i dati spaziali? Acquisizione dei Dati Spaziali. Modelli per Dati Spaziali. Livelli di Astrazione

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica.

INFORMATICA. Prof. MARCO CASTIGLIONE ITS Tito Acerbo - PESCARA

Introduzione al Foglio Elettronico

ciclo di vita della soluzione (informatica) d un problema

Sistemi di Elaborazione dell Informazione

Capital è un software gestionale di nostra completa produzione sviluppato con il linguaggio C++ a 32 bit, perfettamente integrato nell ambiente

Introduzione al Foglio Elettronico

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1

2011 Politecnico di Torino 1

DATABASE.

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Istituto Statale E.Torricelli Liceo Scientifico Tecnologico-Tecnico Industriale. Compiti Estivi Informatica

MERGE. 1 record geometrico. 1 record geometrico. 2 record geometrici. Il Merge serve per unire geometricamente due layers

DBMS (Data Base Management System)

Fondamenti di Informatica e Programmazione

I - INTRODUZIONE AI DATABASE TERRITORIALI. Capitolo 1 INTRODUZIONE AI DATABASE TERRITORIALI. 1.1 Definizioni di un database

Algebra con valori nulli

C3 IL DBMS MICROSOFT ACCESS

Ministero della Pubblica Istruzione Ufficio Scolastico Regionale per la Sicilia Direzione Generale

QL (Query Language) Alice Pavarani

UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia

ASPETTO SOFTWARE. Estensione del sistema operativo di un pc, ovvero un software di base che permette la comunicazione con gli utenti

Esperienze di Advanced Analytics nella statistica ufficiale: strumenti e progetti

Il modello relazionale

Tecnologie informatiche multimediali

Le basi di dati. Base di dati = dati + DBMS.

CORSO CGKUOF04: Microsoft Excel 2016 Avanzato. CEGEKA Education corsi di formazione professionale

PROGETTI DI SISTEMI INFORMATIVI DIREZIONALI

PROGRAMMAZIONE DIDATTICA MODULARE Anno Scolastico 2018/2019

MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia

Microsoft SQL Graph Database

Select From Where...

Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia. Università degli Studi di Salerno

PROGRAMMAZIONE DIDATTICA DI DIPARTIMENTO A.S. 2017/2018

Capitolo 9. Sistemi di basi di dati Pearson Addison-Wesley. All rights reserved

Transcript:

Metodi per la gestione e l utilizzo efficiente dei dati Dr. Gabriele Galatolo, g.galatolo@kode.srl I metodi di controllo - il controllo dei metodi Dalla Tecnica alla Norma: gli oli come sistema modello Torino, 9-11-2017

Agenda Breve storia dei database Scopo e attori di un database Modello dei dati Database relazionali Database per dati strutturati e concetti avanzati Oltre i database: Hadoop, Spark, Kafka

Breve storia dei database

Come vengono salvati i dati PDF portabilità, dati non utilizzabili da strumenti sw Fogli di calcolo (es: Excel) potenza, semplicità apparente, operazioni di ricerca difficili CSV semplicità, semplicità Archivi di stampe di PDF I dati li ho su un PDF, facciamo così: lo stampo, lo scannerizzo e ve lo mando per mail

Obiettivi di un database Archiviazione Database Ricerca Elaborazione

Attori in un database Operatore di macchina Operaio Magazziniere Sensori... Archiviazione Ricerca Elaborazione

Attori in un database Responsabile della produzione Addetto al controllo Tecnico di laboratorio... Archiviazione Ricerca Elaborazione

Attori in un database Analista dati Sistema di gestione degli ordini Applicazioni downstream Statistici... Archiviazione Elaborazione Ricerca

Il modello dei dati Rappresentazione formale di un fenomeno, composta dalla rappresentazione delle caratteristiche rilevanti delle entità di interesse e delle relazioni tra di esse insieme alle operazioni eseguibili sui dati e sulle relazioni identificate.

Il modello dei dati Esempio: raccolta delle informazioni e analisi della produzione di un oliveto con annesso frantoio.

Progettare il modello Entità Olivo Olive Olio Lotto Relazioni Oliva colte da Olivo Olio prodotto con Olive Lotto composto da Olio

Progettare il modello Relazioni Oliva colte da Olivo Operazioni Da quali Olivi vengono le Olive migliori? Olio prodotto con Olive Lotto composto da Olio Come crescono gli Olivi negli anni? Da quali Olive vengono gli Oli con le caratteristiche migliori? Da quali Olivi provengono gli Oli dei Lotti più venduti?

Implementare il modello Scegliere un DataBase Management System (DBMS) che implementi il modello dei dati in un formato elettronico. Relazionali Document oriented Graph oriented

Database relazionale Traduce le entità e le relazioni tra entità del modello dei dati in tabelle, aka relazioni (per non perdere un po di ambiguità). Nome della relazione Campo 1 : Tipo Campo 2 : Tipo... Campo m : Tipo record 1 valore_r 1 _c 1 valore_r 1 _c 2... valore_r 1 _c m............ record n valore_r n _c 1 valore_r n _c 2... valore_r n _c m

Il modello nel DB relazionale Esempio, l entità Olivo Olivo xy: string desc: string I: string lat=30.11, long=12.49 la=30.12, lo=12.60 lat=30.14, long=12.55 Fusto = 40 cm Chioma = 7 Fusto = 2016/35 cm, 2017/38 cm 1 albero da dx 3 albero da sx albero centrale

Il modello nel DB relazionale Esempio, l entità Olivo Olivo xy: string desc: string I: string lat=30.11, long=12.49 la=30.12, lo=12.60 lat=30.14, long=12.55 Fusto = 40 cm Chioma = 7 Fusto = 2016/35 cm, 2017/38 cm 1 albero da dx 3 albero da sx albero centrale errore nella descrizione dei campi nomi dei campi poco descrittivi manca identificatore standard del record

Il modello nel DB relazionale Esempio, l entità Olivo Olivo latitude : real longitude : real descrizione : string albero : string 30.11 12.49 Fusto = 40 cm tree01 30.12 12.60 Chioma = 7 tree02 30.14 12.55 Fusto = 2016/35 cm, 2017/38 cm tree03

Il modello nel DB relazionale Esempio, l entità Olivo latitude : real longitude : real Olivo descrizione : string 30.11 12.49 Fusto = 40 cm tree01 albero : string 30.12 12.60 Chioma = 7 tree02 valori troppo verbosi insieme di informazioni eterogenee storico zippato nel campo 30.14 12.55 Fusto = 2016/35 cm, 2017/38 cm tree03

Il modello nel DB relazionale latitude : real Olivo longitude : real 30.11 12.49 tree01 albero : string 30.12 12.60 tree02 30.14 12.55 tree03 morfo_id : string MorfologiaOlivo albero : string anno : string chioma : real fusto : real morfo01 tree01 40 morfo02 tree02 7 morfo03 tree03 2016 35 morfo04 tree03 2017 38

Il modello nel DB relazionale latitude : real Olivo longitude : real 30.11 12.49 tree01 albero : string 30.12 12.60 tree02 30.14 12.55 tree03 morfo_id : string MorfologiaOlivo albero : string anno : string chioma : real fusto : real morfo01 tree01 40 morfo02 tree02 7 morfo03 tree03 2016 35 morfo04 tree03 2017 38

Indici Velocizzano le operazioni di ricerca in presenza di grandi quantità di record. MorfologiaOlivo IndiceMorfologiaOlivo morfo_id albero anno chioma fusto anno record morfo01 tree01 2015 40 morfo02 tree02 2017 7 morfo03 tree03 2016 35 2015 morfo01 2016 morfo03 2017 morfo02, morfo04 morfo04 tree03 2017 38

Indici Velocizzano le operazioni di ricerca in presenza di grandi quantità di record. MorfologiaOlivo IndiceMorfologiaOlivo morfo_id albero anno chioma fusto anno record morfo01 tree01 2015 40 morfo02 tree02 2017 7 morfo03 tree03 2016 35 2015 morfo01 2016 morfo03, morfo05 2017 morfo02, morfo04 morfo04 tree03 2017 38 morfo05 tree03 2016 38

Indici Strutture dati utili ma da utilizzare con cautela. velocità di accesso Impatto degli indici dimensioni degli indici aggiornamento dopo ogni inserimento devono essere scelti in base al tipo di dato che viene indicizzato NUMERO DI INDICI

Indici Strutture dati utili ma da utilizzare con cautela. velocità di accesso Modello dei dati Impatto degli indici dimensioni degli indici aggiornamento dopo ogni inserimento devono essere scelti in base al tipo di dato che viene indicizzato NUMERO DI INDICI

Tipi di dati strutturati Le versioni recenti dei DBMS mettono a disposizione tipi di dati più strutturati rispetto ai tipi primitivi (stringhe, interi, reali), supportando anche funzioni native e/o indici specifici. Geometrie: punti, poligoni, linee Ricerche Full Text: vettori di lessemi usati nelle ricerche di documenti che restituiscono il best match con la query Documenti JSON

Tipi di dati strutturati Esempio, archiviazione di dati geografici AreeDiControllo id :string valore :int area :polygon area01 23 ((10.3589, 43.5314),, (10.3589, 43.5314)) area02 12 ((10.3599, 43.5305),, (10.3599, 43.5305)) area03 11 ((10.3606, 43.5315),, (10.3606, 43.5315)) area04 14 ((10.3596, 43.5303),, (10.3596, 43.5303))

Relazionale VS Multimodello MorfologiaOlivo id olivo anno chioma fusto new Problematiche del DB relazionale: morfo01 tree01 - - 40 valore? morfo02 tree02 2017 7 - valore? morfo03 tree03 - - 35 valore? morfo04 tree03 2017 - - valore? morfo05 tree03 - - 38 valore? morfo06 tree04 - - - valore? morfo07 tree05-7 - valore? morfo08 tree06 - - - valore? poco scalabile nei cambi colonna (es, valori nelle righe esistenti?) spreco di spazio in tabelle sparse necessità di gestire join tra tabelle

Database multimodello Gli oggetti che sono appartenenti ad una entità vengono rappresentati come documenti semi-strutturati, mentre le relazioni tra entità sono modellate tramite un grafo. { } key 1 : v 1, key 2 : v 2,... key n : v n, ogg 1 : Entità 1 rel 2 : Relazione 2 { } rel 1 : Relazione 1 key 1 : v 1, key 2 : v 2,... key m : v m, ogg 2 : Entità 1 { } key 1 : v 1, key 2 : v 2,... key k : v k, ogg 3 : Entità 2

{ } Il modello nel DB multimodello Esempio, l entità Olivo id: tree01, posizione: { longitude: 12.49, latitude: 30.11 } { } struttura 1 : hastruttura chioma: 35, anno: 2016 morfo 2 : MorfologiaOlivo struttura 2 : hastruttura { } id: tree02, posizione: { longitude: 12.55, latitude: 30.14 } tree 2 : Olivo tree 1 : Olivo { } fusto: 40 morfo 1 : MorfologiaOlivo

Il modello nel DB multimodello { } Esempio, l entità Olivo id: tree01, posizione: { longitude: 12.49, latitude: 30.11 } tree 1 : Olivo { } { } struttura 1 : hastruttura chioma: 35, anno: 2016 morfo 2 : MorfologiaOlivo fusto: 40, anno: 2017 morfo 1 : MorfologiaOlivo struttura 2 : hastruttura struttura 3 : hastruttura { } chioma: 38, anno: 2017 morfo 3 : MorfologiaOlivo { } id: tree02, posizione: { longitude: 12.55, latitude: 30.14 }, piantato: 2008 tree 2 : Olivo

Ricerche nei DB multimodello Lotto :venduto Città Operazioni Da quali Olivi provengono gli Oli dei Lotti più venduti? :vicinaa Olivo :haolivedi

Ricerche nei DB multimodello Lotto :venduto Città :vicinaa Operazioni Da quali Olivi provengono gli Oli dei Lotti più venduti? Con DB relazionale avremmo: eseguito il prodotto cartesiano di almeno tre tabelle, calcolato una somma sul risultato precedente e infine cercato in tutte le righe risultanti l olivo corrispondente Olivo :haolivedi

Ricerche nei DB multimodello Lotto :venduto Città :vicinaa Operazioni Da quali Olivi provengono gli Oli dei Lotti più venduti? Con DB multimodello: 1. identifica il lotto più venduto sommando le vendite per città Olivo :haolivedi

Ricerche nei DB multimodello Lotto :venduto Città :vicinaa Operazioni Da quali Olivi provengono gli Oli dei Lotti più venduti? Con DB multimodello: 1. identifica il lotto più venduto sommando le vendite per città 2. identifica gli olivi da cui provengono le olive del lotto Olivo :haolivedi

Oltre i DB: Hadoop, Spark, Kafka La disponibilità di grandi quantità di dati spinge la necessità sempre più crescente di analisi quanto più real-time possibile. I database non hanno la capacità di gestire ed elaborare un flusso continuo di dati Difficoltà nel gestire continue variazioni nei dati in input Sono necessari strumenti che usino i database come sorgenti o come archivi per l analisi dati online

Oltre i DB: Hadoop, Spark, Kafka Stream Online processing Data Lake Data sources (db, sensori,...) Offline processing

Oltre i DB: Hadoop, Spark, Kafka Stream Online processing Data Lake Data sources (db, sensori,...) Offline processing

Take-away messages Sapere chi utilizza il database è fondamentale nella costruzione del sistema Avere un giusto modello dei dati guida automaticamente le corrette scelte implementative del database E importante scegliere con attenzione lo strumento che meglio realizzi il modello dei dati del fenomeno in esame Affidarsi a chi sa progettare il DB (davvero!)

www.kode.srl