Appunti per Scuola e Università
humanisticheUmanistiche
Appunti e tesine di tutte le materie per gli studenti delle scuole medie riguardanti le materie umanistiche: dall'italiano alla storia riguardanti le materie umanistiche: dall'italiano alla storia 
sceintificheScientifiche
Appunti, analisi, compresione per le scuole medie suddivisi per materie scientifiche, per ognuna troverai appunti, dispense, esercitazioni, tesi e riassunti in download.
tecnicheTecniche
Gli appunti, le tesine e riassunti di tecnica amministrativa, ingegneria tecnico, costruzione. Tutti gli appunti di AppuntiMania.com gratis!
Appunti
informatica
CComputerDatabaseInternetJava
Linux unixReti


AppuntiMania.com » Informatica » Appunti di database » DB Spaziali

DB Spaziali




Visite: 2119Gradito:apreciate stela [ Medio appunti ]
Leggi anche appunti:

I Database Relazionali


I Database Relazionali allora cosa sono questi famigerati Database relazionali?

Documento delle Specifiche relativo alla progettazione di una base di dati per la gestione dei dipartimenti del Polo Didattico delle Scienze (v. 1.0)


Documento delle Specifiche relativo alla progettazione di una base di dati per la

I Semafori , ovvero la gestione della multiutenza


I Semafori , ovvero la gestione della multiutenza Chiariamo subito una cosa: già
immagine di categoria

Scarica gratis DB Spaziali

DB Spaziali


I dati territoriali (geometrici) sono oramai importanti per molte organizzazioni..

I sistemi GIS - Geographic(al) Information System- si occupa dell'elaborazione e della manipolazione dei dati (spesso georeferenziati) gestiti volendo da un database spaziale.

Esso è, quindi, un sistema informatico in grado di produrre, gestire e analizzare dati spaziali associando a ciascun elemento geografico una o più descrizioni alfanumeriche.


Il GIS differisce dal DBMS, in quanto si occupa essenzialmente dell'elaborazione e manipolazione dei dati georeferenziati, anche se questi possono essere memorizzati in un DBMS con estensione spaziale o in singoli file


Il crescente utilizzo delle basi di dati spaziali nella gestione di dati territoriali sta nel fatto che la distribuzione di dati GIS in forma di file secondo standard di fatto non è più possibile in quanto :

  • la quantità di dati ed il numero di sistemi eterogenei è cresciuto molto;
  • il numero ed il tipo di utenti è cresciuto molto;
  • si deve disporre di meccanismi di controllo del flusso delle informazioni;

L'utilizzo di server database con estensione spaziale risponde a queste esigenze permettendo flessibilità, affidabilità e controllo sui flussi informativi


I data base spaziale nascono proprio con l'obiettivo di fornire un supporto adeguato per la manipolazione di questo tipo di dati.

In effetti questi sono delle base di dati ottimizzate per archiviare e interrogare dati correlati ad oggetti nello spazio, tra cui, punti, linee e poligoni (dati geometrici e topologici).

Gli oggetti spaziali sono dati che descrivono la geometria, in termini di forma e posizione;

Un Database Spaziale manipola oggetti spaziali allo stesso modo degli altri oggetti.


I data base Spaziali quindi sono "estensioni spaziali" di un RDBMS che posseggono funzionalità aggiuntive per processare tipi di dati spaziali.

L'Open Geospatial Consortium (Consorzio geospaziale aperto) ha creato le specifiche Simple Features che stabiliscono degli standard per l'aggiunta di funzionalità spaziali ai database.


I campi di applicazione sono innumerevoli: indirizzi geo-codificabili, memorizzazione posizioni, cartografia, indagini Statistico / demografiche, epidemiologia, Informazione Meteorologica, urbanistica.

Un estensione Spaziale del DBMS PostgreSQL è PostGIS.

In PostGIS abbiamo un nuovo tipo di dato: GEOMETRY. Esso si appoggia alle caratteristiche di PostGIS che è un Extended Relational DBMS (DBMS che risultano unire caratteristiche estratte dai ODBMS e RDBMS).

Il tipo GEOMETRY è usato per mantenere la geometria di un singolo oggetto geografico (Eventualmente al sistema di riferimento associato). Può essere: uniforme, multiforme (possedere varie geometrie) e varie dimensioni (2, 2 e ½, 3, 3 e ½).

PostGis permette la creazione/eliminazione di colonne geometriche e l'attribuzione dei dati ad un determinato sistema di riferimento.

Le funzioni messe a disposizione sono:


  • Funzioni di relazioni fra geometrie Variano dal calcolo della distanza fra due geometrie, alla verifica della eventuale sovrapposizione, intersezione, inclusione, ecc. tra forme geometriche distinte.
  • Funzioni di calcolo sulle geometrie: Permettono di calcolare area, perimetro, centroide, ecc., di una data geometria.
  • Funzione di 'informazioni' sulle geometrie: è possibile conoscere il tipo di geometria presente in un dato campo, l'id del sistema di riferimento utilizzato, il numero di punti contenuti, ecc;
  • Funzioni di modifica delle geometrie: permettono di manipolare le geometrie effettuando ad esempio operazioni di semplificazione (tramite l'algoritmo Douglas- Peuker), di traslazione ecc.
  • Indicizzazione.


Tra le varie estensioni disponibili PostGIS risulta essere il geodatabase che fornisce il sistema di gestione dati, sui quali è basato un GIS, più conveniete sotto l'aspetto economico (licenza GPL) e per funzionalità fornite. Inoltre è semplice da utilizzare e veloce.


I dati geometrici sono specificati in modo letterale secondo lo standard WKT (Il Well-known text (WKT) è un linguaggio creato per rappresentare: oggetti di geometria vettoriale su una mappa, un Sistema di Coordinate di Riferimento (una proiezione), una trasformazione tra sistemi di coordinate. Un equivalente binario, il Well-Known Binary (WKB) è generalmente usato per salvare le stesse informazioni in un database.)

Gli oggetti geometrici che possono essere rappresentati da WKT sono:

Point: POINT(0,0);

Punto con sistema di riferimento: SRID=32632;POINT(0,1)

Polilinea(Linestring): LINESTRING (0 0 0, 1 1 0, ..)

Polygon: POLYGON ((P1, P2, P1),(P3,P4,P3))

Multipoint

Multilinestring

Multipolygon

Geometry-Collection




Facciamo un esempio di utilizzo di PostGIS..

Vogliamo gestire un insieme di edifici


1) CREATE TABLE edificio (

id INTEGER PRIMARY KEY,

descr VARCHAR(20));


2) SELECT

AddGeometryColumn('edificio','shape',4623,'POLYGON',2);


AddGeometryColumn è una funzione per l' aggiunta dall'estenzione spaziale. Essa permette di aggiungere la colonna geometrica, i metadati e alcuni vincoli aggiuntivi in un sol colpo.

La funzione ha i seguenti parametri:

Tabella su cui operare

Nome della colonna geometrica

Sistema di riferimento

Tipo geometrico

Numero dimensioni


3) INSERT INTO edificio

VALUES (1,'Ospedale','SRID=4623;POLYGON((6 42, 8 42, 8 43, 6 43, 6 42))'::GEOMETRY);


La dicitura  "::GEOMETRY" serve a informare il sistema che il valore è una geometria.

I primi due valore sono la chiave primaria e la descrizione, il terzo è la geometria (un poligono rettangolare) del giusto sistema di riferimento


INSERT INTO edificio

VALUES (2,'Industria','SRID=4623;POLYGON((10 43, 13 43, 13 46, 10 46, 10 43),(11 44, 12 44,

,12 45, 11 45, 11 44))'::GEOMETRY);


5) SELECT id,descr, ST_Area(shape)

FROM edificio;

L'area viene misurata in gradi quadrati. "ST_Area" è una semplice funzione di analisi (eseguita sulla colonna shape)


6) Proviamo invece a proiettare queste coordinate nel fuso 32:

SELECT id,descr,

ST_Area( St_Transform(shape,32632) )/10000

FROM edificio;

In questo caso il risultato è in ettari


7) SELECT ST_Extent(shape) FROM edificio;

- La funzione ST_Extent calcola l'estensione massima dell'unione degli elementi della tabella. È una funzionme di aggregazione

il risultato è BOX(6 42,13 46)


Elenchiamo alcune funzioni di analisi spaziale. A e B sono due geometrie

ST_Intersects(A, B) (interseca-truefalse) fig1

ST_Contains(A, B) (contiene-truefalse) fig2

ST_Within(B, A) (all'interno) fig2

ST_Dwithin(B,A,D)(distanza dall' interno) D è un valore numerico fig5

ST_Touches(A, B) (tocca) fig3

ST_Crosses(A, B) (incrocia) fig4




f.1 f.2 f.3 f.4 f.5

 




PostGIS non ha di per sé un visualizzatore grafico.

E' difficile però l'analisi senza visualizzare i dati. È possibile utilizzare il visualizzatore QGIS- Quantum GIS


Perché il funzionamento delle query spaziali sia veloce è fondamentale creare un indice sulla colonna "geometrica" (nell' esempio shape-forma).

Un indice su dati spaziali deve essere un ordinamento (indicizzazione) basato su una "vicinanza" spaziale.

L'indicizzazione permette l'utilizzo di un database spaziale di grandi dimensioni.

Il database organizza i dati in un albero di ricerca che può essere velocemente attraversato. Senza indicizzazione ogni ricerca richiederebbe una «scansione sequenziale» di ciascun record nel database.

Gli indici spaziali utilizzabili:

R-TREE suddivide i dati in rectangles, sub-rectangles, sub-sub-rectangles ecc.. è una struttura di indice dinamico per la ricerca spaziale;

GiST (Generalized Search Trees-Alberi di ricerca generalizzati): suddivide i dati in 'things to one side', 'things which overlap', 'things which are inside ('oggetti in una posizione', 'oggetti che si sovrappongono', ' oggetti che sono dentro'.).


Facciamo un esempio sull R-Tree:

Voglio trovare tutti gli edifici della tabella edificio che interseacano una certa area.

Se ho 1.000.000 di edifici voglio evitare di andare a controllarli tutti

La Soluzione sta nell'utilizzo dell'MBR (minimum bounding rectangles - minimo rettangoli di delimitazione ).

A ciascuna geometria è associato un MBR (ATTENZIONE! L'intersezione tra MBR non corrisponde all'intersezione tra le geometrie!)


-------- ----- ------ -------approfondimento da integrare----- ----- --------- ----- --------

Gli R-tree o R-alberi sono un tipo di albero (grafo) simile al B-Albero, ma sono usati per indicizzare spazi multidimensionali, ad esempio le coordinate spaziali (X, Y) per dati geografici. Una richiesta di esempio che usi un R-tree potrebbe essere 'Trova tutti i musei entro 2 km dalla mia posizione attuale'.

La struttura dati divide lo spazio in MBR (minimum bounding rectangles, infatti R-tree deriva proprio da Rectangle) innestati gerarchicamente e quando possibile sovrapposti.

Ogni nodo dell'R-tree ha un numero variabile di entry (fino ad un massimo predeterminato). Ogni entry che non sia un nodo foglia contiene due entità: una identifica il nodo figlio, l'altra l'MBR che contiene tutte le entry del nodo figlio.

L'algoritmo di inserimento e cancellazione di entry dagli MBR assicura che elementi 'vicini' siano posizionati nello stesso posto (nodo foglia): un nuovo elemento andrà nel nodo foglia che richiede il minor numero di estensioni delle dimensioni dell'MBR).

Gli algoritmi di ricerca usano gli MBR per decidere se cercare o meno nel nodo figlio del nodo corrente. In questo modo la maggior parte dei nodi non viene esplorata dagli algoritmi. Per questo motivo, come per i B-tree, ciò rende gli R-tree adatti ai database, dove i nodi possono essere copiati in memoria solo quando necessario.

Diversi algoritmi possono essere usati per dividere i nodi quando diventano troppo estesi, ovvero quando vengono aggiunti in un nodo un numero di elementi che supera il limite prestabiito.

Gli R-tree non garantiscono una performance ottima di caso peggiore, ma in generale si comportano molto bene con dati reali. Per questo nel 2004 è stato sviluppato un nuovo algoritmo (Priority R-tree), che cerca di essere efficiente ed allo stesso tempo ottimo rispetto al caso peggiore

Ricerca

L'input è un rettangolo MBR. La ricerca è simile a quella dei B-tree. Essa parte dal nodo radice e si estende ad ogni nodo figlio (contenente sia rettangoli MBR che puntatori ai nodi figli). Giunti al nodo foglia si hanno i veri e propri oggetti multidimensionali. Per ogni MBR incontrato si verifica se esso è sovrapposto con il rettangolo di ricerca (di input) o meno. Se esso è sovrapposto si cerca anche in quel nodo corrispondente, altrimenti no. La ricerca procede quindi in un modo ricorsivo, fermandosi quando tutti gli MBR sovrapposti sono stati esplorati. Un oggetto viene aggiunto all'insieme di ricerca (l'output dell'algoritmo) quando si trova in un MBR che si sovrappone all'MBR query.

Aggiunta di nodi [modifica]

Per inserire un oggetto l'albero è visitato ricorsivamente dal nodo radice. Un elemento è inserito in un MBR che necessita il minor numero di estensione delle dimensioni che l'aggiunta comporterebbe. A parità di numero di estensioni, viene scelto il nodo con MBR di area minima. Trovato il nodo foglia corretto, viene aggiunto l'oggetto vero e proprio. Se viene aggiunto un nodo ad un MBR che contiene già un numero-limite di elementi (di solito chiamato 'C', capacity), la regione (MBR) viene divisa in due regioni con un algoritmo di split. Tale algoritmo realizza le due nuove regioni tendendo a creare MBR con area minima (tra tutti quelli possibili).

Uso degli indici spaziali.

L' operatore "&&" calcola l'intersezione tra Bounding(limite) Boxes.


A ciascuna geometria è associato un MBR (ATTENZIONE! L'intersezione tra MBR non corrisponde all'intersezione tra le geometrie!)


Esempio SQL


Select id

from edificio

where ST_Intersect (shape, 'POLYGON((6 42, 8 42, 8 43, 6 43, 6 42))'::GEOMETRY)

AND id in (select id

from edicio

where shape && 'SRID=POLYGON((6 42, 8 42, 8 43, 6 43, 6 42))'::GEOMETRY

)


Seleziona l'id degli oggetti presenti in edificio che intersecano il poligono e che risultano avere id nella tabella costituita da tutti gli oggetti che intersecano (&&) il sistema di riferimento del poligono stesso (modificare)


Un esempio più complesso

Realizzazione di un Moving Object Database (MOD) per lo storing ed il retrieval (conservazione ed il recupero) delle informazioni collegate al movimento degli oggetti: le traiettorie.

Si ricorda che una traiettoria è un insieme di punti spaziotemporali:

< (x1; y1; t1); (x2; y2; t2); . ; (xN; yN; tN) >


Determina se un segmento, o parte di esso, si trova all'interno dell'area considerata.


Time interval queries

- Trovare le persone che hanno attraversato una certa area in un certo intervallo di tempo.

- Dobbiamo verificare l'intersezione tra un box 3D e tutti i segmenti di ciascuna traiettoria.






Gli indici non supportano il 3D

Se una traiettoria interseca il box, allora ciascuna proiezione della traiettoria intersecherà la corrispondente proiezione del box sui piani bidimensionali.

Questa è una condizione NECESSARIA ma NON SUFFICIENTE.


La proposta avanzata prevede

1) Proiezione della traiettoria e del box sui tre piani bidimensionali XY, XT, YT;

2) Ricerca delle traiettorie candidate al clipping grazie all'intersezione tra il Minimum Bounding Rectangle della traiettoria (MBR) e la corrispondente proiezione del box;

3) algoritmo di Clipping 3D Cohen-Sutherland tra le traiettorie rimanenti e il box.


-Proiezione


-intersezione



-clipping (gangio, taglio,fermaglio) 3d



-------- ----- ------ -----Altro gis-------- ----- ------ ----- ----- ---------------

Un GIS è invece un sistema informativo computerizzato che permette l'acquisizione, la registrazione, l'analisi, la visualizzazione e la restituzione di informazioniderivanti da dati geografici (geo-riferiti). Secondo la definizione di Burrough (1986) 'il GIS è composto da una serie di strumenti software per acquisire, memorizzare, estrarre, trasformare e visualizzare dati spaziali dal mondo reale'. Trattasi quindi di un sistema informatico in grado di produrre, gestire e analizzare dati spaziali associando a ciascun elemento geografico una o più descrizioni alfanumeriche.


Il GIS differisce dal DBMS (o Database Management System), in quanto si occupa essenzialmente dell'elaborazione e manipolazione dei dati georeferenziati, anche se questi possono essere memorizzati in un DBMS o in singoli file.


Per la rappresentazione dei dati in un sistema informatico occorre formalizzare un modello rappresentativo flessibile che si adatti ai fenomeni reali. Nel GIS abbiamo tre tipologie di informazioni:

Geometriche: relative alla rappresentazione cartografica degli oggetti rappresentati; quali la forma (punto, linea, poligono), la dimensione e la posizione geografica;

Topologiche: riferite alle relazioni reciproche tra gli oggetti (connessione, adiacenza, inclusione ecc.);

Informative: riguardanti i dati (numerici, testuali ecc.) associati ad ogni oggetto.

Il GIS prevede la gestione di queste informazioni in un database relazionale.

L'aspetto che caratterizza il GIS è quello geometrico: esso memorizza la posizione del dato impiegando un sistema di proiezione reale che definisce la posizione geografica dell'oggetto. Il GIS gestisce contemporaneamente i dati provenienti da diversi sistemi di proiezione e riferimento (es. UTM o Gauss Boaga)

A differenza della cartografia su carta, la scala in un GIS è un parametro di qualità del dato e non di visualizzazione. Il valore della scala esprime le cifre significative che devono essere considerate valide delle coordinate di georeferimento.



L'informazione territoriale può essere codificata in un sistema informativo geografico attraverso due tipologie principali di dato: il dato vettoriale e il dato raster.

I dati vettoriali sono costituiti da elementi semplici quali punti, linee e poligoni, codificati e memorizzati sulla base delle loro coordinate. Un punto viene individuato in un sistema informativo geografico attraverso le sue coordinate reali (x1, y1); una linea o un poligono attraverso la posizione dei suoi nodi (x1, y1; x2, y2; ). A ciascun elemento è associato un record del database informativo che contiene tutti gli attributi dell'oggetto rappresentato.

Il dato raster permette di rappresentare il mondo reale attraverso una matrice di celle, generalmente di forma quadrata o rettangolare, dette pixel. A ciascun pixel sono associate le informazione relative a ciò che esso rappresenta sul territorio. La dimensione del pixel (detta anche pixel size), generalmente espressa nell'unità di misura della carta (metri, chilometri etc.), è strettamente relazionata alla precisione del dato.

I dati vettoriali e i dati raster si adattano ad usi diversi. La cartografia vettoriale è particolarmente adatta alla rappresentazione di dati che variano in modo discreto (ad esempio l'ubicazione dei cassonetti dei rifiuti di una città o la rappresentazione delle strade o una carta dell'uso del suolo), la cartografia raster è più adatta alla rappresentazione di dati con variabilità continua (ad esempio un modello digitale di elevazione o una carta di acclività del versante).



Scarica gratis DB Spaziali
Appunti su:



Scarica 100% gratis e , tesine, riassunti



Registrati ora

Password dimenticata?
  • Appunti superiori
  • In questa sezione troverai sunti esame, dispense, appunti universitari, esercitazioni e tesi, suddivisi per le principali facoltà.
  • Università
  • Appunti, dispense, esercitazioni, riassunti direttamente dalla tua aula Universitaria
  • all'Informatica
  • Introduzione all'Informatica, Information and Comunication Tecnology, componenti del computer, software, hardware ...