Basi di dati e GIS. Paolo Zatelli. Dipartimento di Ingegneria Civile, Ambientale e Meccanica Università di Trento

Documenti analoghi
QGIS - query, geoprocessing e link

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

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

Elena Baralis 2007 Politecnico di Torino 1

Informatica e Bioinformatica: Basi di Dati

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/

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

Introduzione. Dati di una stessa localizzazione permette di ridurre ridondanza e duplicazioni. I costi ne sono diminuiti.

Caratteristiche dei linguaggi per Database

I DATI E LA LORO INTEGRAZIONE 63 4/001.0

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

ARCHITETTURA DI UN DBMS

DATABASE PER IL WEB. Programmazione Web 1

Modulo 10: Basi di dati e loro gestione

BASI DI DATI E UTENTI DI BASI DI DATI

PostGIS. L'estensione geografica a PostgreSQL

DBMS. Alice Pavarani

Domande utili alla preparazione dell orale di Informatica all Esame di Stato

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

Le basi di dati. Le basi di dati. dalla teoria all'utilizzo di tutti i giorni. Alessandro Tanasi

SISTEMI INFORMATIVI E DATABASE

Introduzione alle Basi di Dati

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Ripasso Concetti Pratica in Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 3

Basi di Dati. Concetti e Principi Generali. Maria Mirto

LABORATORIO di INFORMATICA

SISTEMI INFORMATIVI GEOGRAFICI IN GEO- LOGIA

Laboratorio di Basi di Dati

Basi di dati. Elena Baralis Politecnico di Torino

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

Strutture fisiche e strutture di accesso ai dati

2011 Politecnico di Torino 1

Informatica per le Scienze Umane. Introduzione al corso: programma

STA II ANNO: AA Ecologia e Fondamenti dei. Sistemi. Ecologici Introduzione ai. Sistemi. Informativi Geografici. Lezione del

Informatica per le Scienze Umane. Introduzione al corso: programma dettagliato

Modellizzazione di dati geografici

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

Database spaziali FOSS e interoperabilità

Pag Politecnico di Torino 1

MODULO 2. Query normali e parametriche Query di:

Basi di Dati. Corso di Informatica. Memorizzazione dei Dati. Accesso ai Dati. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

MS Access Un DBMS relazionale per Windows?

Informatica per l Ambiente e il Territorio

Corso di Informatica. Software di produttività personale e database. Ing Pasquale Rota

BASI DI DATI. basi di dati - introduzione ai sistemi informativi 1

Basi di Dati Concetti Introduttivi

Fabio Proietti (c) 2013 Licenza:

MS Access: Tutorial Tabelle, Relazioni

GEOGRAPHICAL INFORMATION SYSTEM PER L ANALISI AMBIENTALE. Nicola Gilio. Dott. Nicola Gilio

Librerie digitali. Uso di XML per memorizzare i metadati. Descrizione generale. XML per memorizzare i metadati. Motivi dell uso di XML

GIS e Geo WEB: piattaforme e architetture. Docente: Cristoforo Abbattista abbattista@planetek.it

Le basi di dati. Definizione 1. Lezione 2. Bisogna garantire. Definizione 2 DBMS. Differenza

Sistemi di Elaborazione delle Informazioni (C.I. 15) Basi di dati Introduzione teorica

IL PATRIMONIO DI DATI E LE BASI DI DATI

DataBase Management System - DBMS

Manuale SQL. Manuale SQL - 1 -

SISTEMI INFORMATIVI AZIENDALI. introduzione ai sistemi informativi 1

LINGUAGGI E UTENTI DI UN DBMS

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

SQL - Structured Query Language

SISTEMI OPERATIVI, RETI, INTERNET

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

Strutture dati e loro organizzazione. Gabriella Trucco

Foglio elettronico e Banche dati e per la Pubblica Amministrazione

Access. P a r t e t e r z a

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL: fondamenti. Il linguaggio SQL

Sistemi informativi territoriali

DBMS. Affidabilità. Privatezza dei dati. Efficienza. Efficacia. Un DBMS deve garantire:

Le basi di dati. Lez. 3: Il Modello Relazionale

Database Lezione 2. Sommario. - Progettazione di un database - Join - Valore NULL - Operatori aggregati

Unità D3. Sicurezza nelle basi di dati. Sicurezza e concorrenza nelle basi di dati. Controllo accesso. Protezione e integrità dati

I sistemi per la gestione di basi di dati geografiche

Laboratorio di Basi di Dati

Archivi e database. Dato e gli archivi

Concetti di base. Modulo B.2

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2

FILE E INDICI Architettura DBMS

Informatica di Base - 6 c.f.u.

Basi di dati. Giuseppe De Giacomo. Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma

Obiettivi. Unità D1. Archivi: i concetti fondamentali. Persistenza archivi e file. Necessità di dati persistenti. Un esempio di record

INFORMATICA. Prof. MARCO CASTIGLIONE ITS Tito Acerbo - PESCARA

Cap. 1-I 1 I sistemi informatici

BASI DATI: algebra relazionale

Introduzione a Matlab

Geografia libera con PostgreSQL: PostGIS come base di una infrastruttura di dati geografici

Liceo Scientifico V. Volterra Fabriano. Informatica Basi di dati Anno C Scienze Applicate Prof. Amedeo De Amicis

Aspetto comune: organizzazione di grandi quantità di dati permanenti da rendere accessibili in modo interattivo o da programmi.

NoSQL. Definizione. Nella seconda metà degli anni 2000 Google, Amazon, Facebook studiavano nuove modalità di memorizzazione persistente dei dati

ArcGIS - ArcView ArcCatalog

INFORMATICA PER LE SCIENZE UMANE a.a. 2016/2017

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007

SQL Server Introduzione all uso di SQL Server Dutto Riccardo. Dutto Riccardo - SQL Server 2008.

Basi di dati. Basi di dati = database

Sistemi avanzati di gestione dei Sistemi Informativi

Componenti di un DBMS

QGIS e Geoservizi. Paolo Zatelli. Dipartimento di Ingegneria Civile, Ambientale e Meccanica Università di Trento

Tesi di Laurea Triennale in Ingegneria Informatica REALIZZAZIONE DI UN APPLICATIVO PER LA GESTIONE DI FOGLI DI LAVORO INTEGRATO IN OUTLOOK 2010

Principi di Progettazione del Software a.a Il linguaggio SQL. Prof. Luca Mainetti Università del Salento

Elena Baralis 2007 Politecnico di Torino 1

Transcript:

Database e GIS Basi di dati e GIS Paolo Zatelli Dipartimento di Ingegneria Civile, Ambientale e Meccanica Università di Trento Paolo Zatelli Università di Trento 1 / 41

Database e GIS Outline 1 Basi di dati: cosa sono 2 Uso in ambito GIS 3 DataBase e tabelle (record, field, ecc.) 4 Indicizzazione 5 SQL 6 DBMS 7 Tipi di database 8 Estensioni spaziali 9 Scelta DBMS: interno/esterno Paolo Zatelli Università di Trento 2 / 41

Database e GIS Basi di dati: cosa sono Basi di dati Per base di dati o database si intende un insieme di informazioni organizzate in funzione delle necessità di acquisizione, gestione ed utilizzo. Per estensione spesso si usa il termine database anche per indicare un sistema di gestione di basi di dati o l insieme di base di dati e sistema di gestione. Il sistema di gestione di una base di dati si indica con DataBase Management System (DBMS). Paolo Zatelli Università di Trento 3 / 41

Database e GIS Uso in ambito GIS Database e GIS In ambito GIS i database sono tipicamente utilizzati per la gestione degli attributi collegati direttamente (es. nomi di vie) o indirettamente (es. codici fiscali di proprietari di particelle in un catasto) alle primitive geometriche. La maggior parte dei GIS associa database solo a primitive vettoriali, alcuni sono in grado di utlizzarli anche con mappe raster. I software GIS forniscono un servizio di gestione di database interno, spesso con capacità limitate, ma sono solitamente in grado di collegarsi a DBMS esterni. Paolo Zatelli Università di Trento 4 / 41

Database e GIS Uso in ambito GIS Categorie La connessione tra attributi e primitive geometriche è realizzata assegnando loro identificativi numerici interi detti categorie o feature ID. Le categorie possono essere uniche (es. una categoria per ogni punto) oppure uguali per diverse primitive (es. punti con le stesse caratteristiche hanno stessa categoria). Alcuni GIS sono in grado di gestire più categorie, e quindi connessioni al database, per le stesse primitive geometriche. Paolo Zatelli Università di Trento 5 / 41

Database e GIS Uso in ambito GIS Categorie - sorgenti attorno a Mesiano Mappa delle sorgenti attorno a Mesiano e categorie. Paolo Zatelli Università di Trento 6 / 41

Database e GIS DataBase e tabelle (record, field, ecc.) Tabelle Le informazioni in un database sono memorizzate in tabelle, spesso collegate fra loro. Le tabelle dovrebbero raccogliere informazioni omogenee che sono lette e scritte assieme. E possibile progettare un database per ottimizzare la distribuzione dei dati in tabelle. Paolo Zatelli Università di Trento 7 / 41

Database e GIS DataBase e tabelle (record, field, ecc.) Parti di una tabella Una tabella di database è organizzata per righe e colonne. Le righe sono dette record o tuple ed in ambito GIS corrispondono ad una o più primitive geometriche. Le colonne sono dette campi o fields e sono tipizzate (int, float, double, char, ecc.). I dati in una colonna devono essere delle stesso tipo 1 e rappresentano gli attributi delle primitive. Un record è quindi composto da un insieme fissato di campi per ogni tabella. 1 sono comunque interpretati come fossero dello stesso tipo. Paolo Zatelli Università di Trento 8 / 41

Database e GIS DataBase e tabelle (record, field, ecc.) Parti di una tabella - esempio Colonna = Campo Field Riga = Record CODSOR NOME_UFF PORTATA azimuth180 ENT_VS 9959 pegoretti 4 111 1 10854 maestranzi - tomasi 4 317 0 9578 ponte alto uscita 50.58 318 0 9577 pante' 2 0 125 1 9575 oltrecastello 2.25 34 1 482 ponte alto origine 0 210 1 Tabella della mappa delle sorgenti vicino a Mesiano. Paolo Zatelli Università di Trento 9 / 41

Database e GIS DataBase e tabelle (record, field, ecc.) Campi chiave In un DBMS è solitamente possibile imporre condizioni e vincoli sui campi, ad es. il campo non può essere vuoto, il valore deve essere in un certo intervallo, ecc. Un campo chiave è un campo che può essere utilizzato per identificare in modo univoco un record. Un campo chiave: deve contenere un valore univoco e non nullo (NULL) può consistere in uno o più campi combinati consente il collegamento (join) di tabelle tra loro è fondamentale per il collegamento con le primitive geometriche nei GIS Ogni tabella può avere una o più chiavi. Paolo Zatelli Università di Trento 10 / 41

Database e GIS DataBase e tabelle (record, field, ecc.) Campi chiave - esempio Possibile campo chiave Possibile campo chiave* CODSOR NOME_UFF PORTATA azimuth180 ENT_VS 9959 pegoretti 4 111 1 10854 maestranzi - tomasi 4 317 0 9578 ponte alto uscita 50.58 318 0 9577 pante' 2 0 125 1 9575 oltrecastello 2.25 34 1 482 ponte alto origine 0 210 1 Possibili campi chiave. (* solo se non esistono sorgenti con lo stesso nome) Paolo Zatelli Università di Trento 11 / 41

Database e GIS DataBase e tabelle (record, field, ecc.) Campi chiave - collegamento tra tabelle CODSOR NOME_UFF PORTATA azimuth180 ENT_VS 9959 pegoretti 4 111 1 10854 maestranzi - tomasi 4 317 0 9578 ponte alto uscita 50.58 318 0 9577 pante' 2 0 125 1 9575 oltrecastello 2.25 34 1 482 ponte alto origine 0 210 1 CODSOR ph durezza Residuo fisso 180 Data prelievo 9959 7.8 22.1 296.96 04-02-2014 10854 7.6 21.8 298.71 30-01-2014 9578 7.9 22.4 295.86 01-02-2014 9577 7.7 22.3 296.75 03-02-2014 9575 7.8 21.7 294.97 02-02-2014 482 7.6 22.1 296.31 31-01-2014 Collegamento (join) fra tabelle con campi chiave 2. 2 i valori della seconda tabella sono fittizzi Paolo Zatelli Università di Trento 12 / 41

Database e GIS DataBase e tabelle (record, field, ecc.) Campi chiave - collegamento tabella - mappa CODSOR NOME_UFF PORTATA azimuth180 ENT_VS 9959 pegoretti 4 111 1 10854 maestranzi - tomasi 4 317 0 9578 ponte alto uscita 50.58 318 0 9577 pante' 2 0 125 1 9575 oltrecastello 2.25 34 1 482 ponte alto origine 0 210 1 Collegamento fra tabella e mappa con campo chiave. Paolo Zatelli Università di Trento 13 / 41

Database e GIS Indicizzazione Indici su tabelle Le operazioni su tabelle, in particolare la ricerca e la selezione, possono essere molto più veloci se i dati sono ordinati. Intuitivamente è come effettuare manualmente una ricerca per leggere o scrivere su un elenco in ordine alfabetico anzichè casuale. Si potrebbero ordinare i record secondo un campo, ma in generale è poco efficiente e limitato ad un solo campo per tabella. Si aggiungono campi fittizzi, detti indici, che indicano l ordine dei record riferiti a specifici campi. I campi si dicono indicizzati. Una tabella può avere nessuno, uno o molti campi indicizzati. Paolo Zatelli Università di Trento 14 / 41

Database e GIS SQL Structured Query Language L interrogazione e la selezione su tabelle sono fatte usando lo Structured Query Language (SQL). L SQL è uno standard ISO dal 1987, ma la maggior parte dei gestori di database implementano anche caratteristiche non standard. Lo stesso linguaggio può essere usato per: inserire dati modificare dati creare e cancellare tabelle creare e cancellare record creare e cancellare campi Paolo Zatelli Università di Trento 15 / 41

Database e GIS SQL SQL - selezione Una operazione su un database è in generale indicata con query, termine che indica più specificamente una interrogazione. In SQL una query ha la forma: Select-From-Where SELECT indica i campi che si vogliono estrarre (* per tutti) FROM la tabella/e su cui si effettua l interrogazione WHERE le condizioni usate per la selezioni Esempio: SELECT NOME_UFF,PORTATA FROM sorgenti WHERE PORTATA>3 Molti programmi di gestione di DB e GIS forniscono interfaccia per la creazione assistita di query. Paolo Zatelli Università di Trento 16 / 41

Database e GIS SQL SQL - esempio di query SELECT NOME_UFF,PORTATA FROM sorgenti WHERE PORTATA>3 CODSOR NOME_UFF PORTATA azimuth180 ENT_VS 9959 pegoretti 4 111 1 10854 maestranzi - tomasi 4 317 0 9578 ponte alto uscita 50.58 318 0 9577 pante' 2 0 125 1 9575 oltrecastello 2.25 34 1 482 ponte alto origine 0 210 1 Risultato della query sulla tabella sorgenti. Paolo Zatelli Università di Trento 17 / 41

Database e GIS SQL SQL - creazione di un campo ALTER TABLE sorgenti ADD COLUMN port_mc double UPDATE sorgenti SET port_mc=portata/1000 CODSOR NOME_UFF PORTATA azimuth180 ENT_VS port_mc 9959 pegoretti 4 111 1 0.004 10854 maestranzi - tomasi 4 317 0 0.004 9578 ponte alto uscita 50.58 318 0 0.05058 9577 pante' 2 0 125 1 0 9575 oltrecastello 2.25 34 1 0.00225 482 ponte alto origine 0 210 1 0 Aggiunta e riempimento della colonna port_mc. Paolo Zatelli Università di Trento 18 / 41

Database e GIS DBMS Data Base Management System Un DBMS (Data Base Management System) è un sistema software per la gestione di database. Controlla l acquisizione, l organizzazione, l interrogazione, la sicurezza e l integrità di un database. Risponde a richieste di client (es. GIS) ed esegue le relative operazioni, in particolare il trasferimento di dati. In particolare permettono di: creare DB strutture di tabelle, vincoli d integrità,... gestire dati inserire dati, effettuare query, definire trigger,... gestire accessi concorrenti, back up, roll back,... Paolo Zatelli Università di Trento 19 / 41

Database e GIS DBMS Requisiti di un DBMS Un DBMS moderno deve essere in grado di garantire: ridondanza dei dati ogni informazione dovrebbe essere presente una volta sola, per evitare incoerenze, soprattutto in caso di aggiornamento uniformità dei dati informazioni omogenee devono essere inserite in modo coerente (es. via o Via o V. ) indipendenza dalla piattaforma il database deve essere indipendente dal sistema utilizzato per accederci sicurezza delle transazioni le operazioni sul database non devono mai lasciare il database in uno stato non coerente multiutenza più utenti (client) devono poter accedere al database contemporaneamente Paolo Zatelli Università di Trento 20 / 41

Database e GIS DBMS Protocollo ACID I DBMS assicurano la possibilità di multiutenza attraverso il protocollo ACID: Atomicity, Consistency, Isolation e Durability. Atomicità ogni operazione (transazione) sul database è indivisibile nella sua esecuzione, la modifica è completamente effettuata o non lo è affatto Consistenza all inizio ed al termine di una transazione il database è in uno stato consistente, non sono mai violati eventuali vincoli di integrità Isolamento ogni transazione deve essere eseguita in modo isolato e indipendente dalle altre, l eventuale fallimento di una transazione non deve interferire con le altre transazioni Durabilità o persistenza, le modifiche al database causate da una transazione non devono in nessun caso essere perse; per assicurare questa condizione si usano log che registrano le operazioni fatte Paolo Zatelli Università di Trento 21 / 41

Database e GIS DBMS DBMS Esistono diversi approcci alla gestione di un database: file based ogni tabella è memorizzata in un file separato (CSV, DBF, ecc.) embedded le tabelle e le informazioni accessorie sono salvate in un unico file a cui una applicazione accede tramite una libreria dedicata (SQLite) cliend-server il database è archiviato in modo trasparente all utente, che vi accede attraverso un server Paolo Zatelli Università di Trento 22 / 41

Database e GIS DBMS File based In questo tipo d database ogni tabella è memorizzata in un file separato. Eventuali informazioni ausiliarie (vincoli, indici, ecc.) sono memorizzate in file separati, di solito specifici per il programma in uso. I vantaggi di questo approccio sono dati da semplicità (per qualunque operazione su una tabella si lavora direttamente su un solo file) e standardizzazione (data la struttura semplice, quasi tutti i programmi sono in grado di leggere e scrivere questi formati); si usano perciò come formato di interscambio. Gli svantaggi sono legati al limitato numero di tipi di dati, alla scarsa efficienza dal punto di vista informatico ed alla limitazione di memorizzazione di singole tabelle. I formati più usati sono CSV e DBF. Paolo Zatelli Università di Trento 23 / 41

Database e GIS DBMS CSV Nel formato CSV (Comma Separated Values) i dati sono salvati in formato ASCII, i record sono individuati da righe separate, i campi da un carattere separatore di campi, di solito la virgola. CODSOR,NOME_UFF,PORTATA,azimuth180,ENT_VS,port_mc 9959,pegoretti,4,111,1,0.004 10854,maestranzi - tomasi,4,317,0,0.004 9578,ponte alto uscita,50.58,318,0,0.05058 9577,pante 2,0,125,1,0 9575,oltrecastello,2.25,34,1,0.00225 482,ponte alto origine,0,210,1,0 Tabella delle sorgenti in formato CSV. Paolo Zatelli Università di Trento 24 / 41

Database e GIS DBMS DBF Il formato DBF (dbase database file) è un formato binario introdotto nel 1983 che memorizza una singola tabella. Può contenere i tipi di campi: C (Character), D (Date), F (Floating point), L (Logical), M (Memo) e N (Numeric). Di fatto si usano Character e Numeric. Ha alcuni importanti limiti: massimo di 10 caratteri per i nomi dei campi 3 la maggior parte dei programmi tratta i nomi dei campi come case insensitive massimo di 256 campi massima dimensione di un campo Character o Numeric di 20 3 un numero maggiore di caratteri può portare a campi con lo stesso nome Paolo Zatelli Università di Trento 25 / 41

Database e GIS DBMS DBF e GIS In ambito GIS sono usati nel formato di interscambio per mappe vettoriali ESRI Shape per memorizzare gli attributi. Alcuni programmi GIS ignorano i limiti del formato DBF e spesso si generano incompatibilità. È possibile modificare il DBF di un shape separatamente con programmi non GIS (es. fogli elettronici) senza però cambiare l ordine dei record, che corrisponde all ordine delle primitive geometriche sulla mappa. Paolo Zatelli Università di Trento 26 / 41

Database e GIS DBMS SQLite SQLite è un DBMS realizzato da una libreria usata dalle applicazioni per gestire una base di dati. Il database è salvato in un unico file che contiene sia le tabelle che tutte le informazioni accessorie. È molto più efficiente e flessibile del DBF e molto più semplice dei DBMS con architettura client-server. Si preferisce quando non si usano dati e query complesse e non c è uso concorrente. Paolo Zatelli Università di Trento 27 / 41

Database e GIS DBMS DBMS client-server Sono costituiti da un server che effettua le operazioni richieste da client. I vantaggi di questo approccio sono: scalabilità uso concorrente prestazioni elevate Gli svantaggi sono: uso di risorse computazionali uso di client specifici necessità di configurazione e gestione Paolo Zatelli Università di Trento 28 / 41

Database e GIS DBMS Esempi di DBMS client-server I DBMS più diffusi sono: IBM DB2 Microsoft SQLServer MySQL Oracle PostgreSQL SmallWorld SyBase ASE Paolo Zatelli Università di Trento 29 / 41

Database e GIS DBMS ODBC I diversi DBMS utilizzano protocolli specifici per la connessione con i client, che devono avere i relativi driver per connettersi. L Open DataBase Connection (ODBC) fornisce uno standard per la connessione a DBMS anche senza driver specifici. Rispetto ai protocolli specifici l ODBC ha limitazioni sia relative alle prestazioni sia rispetto alle operazioni effettuabili. Paolo Zatelli Università di Trento 30 / 41

Database e GIS Tipi di database Database relazionali I Database Relazionali (RDB) sono basati sul paradigma oggetto-relazione. Le tabelle sono dette relazioni perchè legano gli oggetti rappresentati dalle righe (record) ai loro attributi rappresentati dalle colonne (campi). Usano l SQL come linguaggio per l interrogazione e la gestione del database. Sono usati per gli attributi in ambito GIS per la loro efficienza e soprattutto per la flessibilità nella strutturazione dei dati e nella loro interrogazione. Paolo Zatelli Università di Trento 31 / 41

Database e GIS Tipi di database NoSQL Nella gestione di enormi moli di dati con struttura semplice l uso di database relazionale può dare prestazioni non sufficienti. Sono stati sviluppati modelli di database e relativi sistemi di gestione che rinunciano alla flessibilità dei DB relazionali per guadagnare efficienza, soprattutto quando si usano piccole transazioni in scrittura e grandi in lettura. La struttura dei dati è fissa e conosciuta a priori. I database NoSQL gestiscono i dati non in tabelle, ma usando grafi o array associativi con configurazione molto ridondante. Esempi di DBMS NoSQL: BigTable di Google, Cassandra di Apache, Dynamo di Amazon, MongoDb, Project Voldemort di LinkedIn. Paolo Zatelli Università di Trento 32 / 41

Database e GIS Estensioni spaziali DBMS ed estensioni spaziali Le estensioni spaziali di database e DBMS nascono dall idea di gestire in un database oltre agli attributi la geometria e la topologia di un insieme di dati spaziali. Il livello base è il cosiddetto geocoding in cui 2 o 3 colonne di una tabella sono interpretate come coordinate. Si possono rappresentare solo punti e sistema di riferimento, proiezione ed unità di misura devono essere specificati a parte. Le estensioni spaziali dei database aggiungono i tipi di dati per rappresentare le primitive geometriche e topologiche, i sistemi di riferimento e proiezione e le funzioni per elaborarli. Paolo Zatelli Università di Trento 33 / 41

Database e GIS Estensioni spaziali Tipi di dati spaziali La base per i tipi di dati spaziali in un database `data allo standard ISO 19125 Simple feature access. Le primitive vettoriali sono rappresentate nel formato Well Known Text (WKT) o Well Known Binary (WKB), il primo leggibile da un operatore, il secondo illeggibile ma più efficiente dal punto di vista informatico. Formato Codifica WKT POINT(0 0) WKB 0101000020E61 Tabella: Codifica WKT e WKB di un punto. Le coordinate possono essere 2D, 3D o 4D (la quarta coordinata è su un riferimento curvilineo). Paolo Zatelli Università di Trento 34 / 41

Database e GIS Estensioni spaziali Tipi di dati spaziali I tipi di dati che compongono la cosiddetta geometry sono: POINT(0 0) LINESTRING(0 0,1 1,1 2) POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1)) MULTIPOINT(0 0,1 2) MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4)) MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1-1,-1-2,-2-2,-2-1,-1-1))) GEOMETRYCOLLECTION(POINT(2 3),LINESTRING((2 3,3 4))) TIN (Triangulated Irregular Network) POLYHEDRALSURFACE Esistono anche le primitive specificate dallo standard ISO 13249-3:2006 per descrivere curve, ma sono poco usate bei GIS. Paolo Zatelli Università di Trento 35 / 41

Database e GIS Estensioni spaziali Well Known Text wkt_geom CODSOR NOME_UFF PORTATA azimuth180 ENT_ VS Point (666220.08999999996740371 5104156.21000000182539225) 9959 pegoretti 4 111 1 Point (666002.09000000054948032 5104172.21000000182539225) Point (666213.0899999993853271 5104258.2099999999627471) 10854 maestranzi - tomasi 9578 ponte alto uscita 4 317 0 50.58 318 0 Point (666261.78999999957159162 5103822.77999999932944775) Point (667095.00000000023283064 5103840.13999999966472387) 9577 pante' 2 0 125 1 9575 oltrecastello 2.25 34 1 Point (666291.09000000054948032 5104535.20000000018626451) 482 ponte alto origine 0 210 1 Tabella delle sorgenti con geometria in WKT. Paolo Zatelli Università di Trento 36 / 41

Database e GIS Estensioni spaziali Datum Le informazioni riguardo a sistemi di riferimento, proiezioni e loro trasformazioni secondo lo standard OGC Geographic information - Well known text representation of coordinate reference systems. Ad es. PARAM_MT["Mercator_2SP", PARAMETER["semi_major",6370997.0], PARAMETER["semi_minor",6370997.0], PARAMETER["central_meridian",180.0], PARAMETER["false_easting",-500000.0], PARAMETER["false_northing",-1000000.0], PARAMETER["standard parallel 1",60.0]] Paolo Zatelli Università di Trento 37 / 41

Database e GIS Estensioni spaziali Indicizzazione spaziale Per avere buone performance è fondamentale l utilizzo di indicizzazione spaziale. A seconda dei diversi DBMS sono disponibili diversi tipi di indicizzazione spaziale (Grid, R-tree, Quadtree, GIST, Z-order, ecc.), differiscono per efficienza e complessità. L uso di indici può ridurre i tempi di selezione ed elaborazione di dati spaziali anche di diversi ordini di grandezza. Paolo Zatelli Università di Trento 38 / 41

Database e GIS Estensioni spaziali DBMS ed estensioni spaziali DBMS Estensione spaziale IBM DB2 Spatial Extender Microsoft SQLServer Microsoft SQLServer MySQL MySQL (MySpatial) Oracle Oracle Spatial PostgreSQL PostGIS SmallWorld SmallWorld VMDS Sqlite SpatialLite SyBase ASE Boeing s SQS Tabella: DBMS più diffusi e loro estensioni spaziali. DBMS NoSQL con estensione spaziale: Neo4j e AllegroGraph. Paolo Zatelli Università di Trento 39 / 41

Database e GIS Scelta DBMS: interno/esterno Scelta del DBMS La maggior parte dei GIS consentono l uso di un DBMS integrato o uno esterno. Il DBMS interno ha il vantaggi di non richiedere installazioni aggiuntive e configurazioni, lo svantaggio di essere implementato per un uso da parte del solo GIS, con capacità spesso limitate. Un DBMS esterno richiede la sua installazione e configurazione, ma è solitamente molto più flessibile. Un DBMS esterno consente: l uso concorrente da parte di più utenti dello stesso database l accesso al database da parte di applicazioni diverse (GIS, Mapserver, SOS, ecc.) la gestione e l elaborazione efficiente di grandi moli di dati Paolo Zatelli Università di Trento 40 / 41

Database e GIS Appendice Licenza Questa presentazione è c 2016 Paolo Zatelli, disponibile come Paolo Zatelli Università di Trento 41 / 41