I sistemi per la gestione di basi di dati geografiche

Documenti analoghi
Pag Politecnico di Torino 1

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

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

Sommario. Introduzione... 13

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA LOGICO - Ristrutturazione dello schema concettuale

I database. Introduzione alla teoria delle basi di dati

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

BASI DI DATI. Titolo Prof. Cognome Nome Indirizzo Numero Telefono

1 Tassellamento vettoriale procedura di semplificazione e formato documenti JSON

Gerarchia di Generalizzazione. Esempio. Rappresentazione grafica. Cap. 4 - Modello E/R avanzato: Gerarchie di Generalizzazione/ specializzazione

Modulo 10: Basi di dati e loro gestione

Elena Baralis 2007 Politecnico di Torino 1

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

Sistemi Informativi Territoriali

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

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

Il GeoUML Validator a supporto delle operazioni di validazione dei dati

Basi di Dati e Sistemi Informativi. Raffinamento dello schema e Normalizzazione nei database relazionali

Gestione NARRATIVA del 900

Progettazione di basi di dati

Sistemi informativi territoriali

Il modello Entità/Relazioni (ER)

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Progettazione logica. Dati di ingresso e uscita

RELAZIONI E BASI DI DATI

Basi di dati I 8 luglio 2016 Esame Compito A Tempo a disposizione: un ora e trenta minuti.

LABORATORIO di INFORMATICA

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

DOCENTE PROF. ALBERTO BELUSSI. Anno accademico 2010/11

Corso di Informatica

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, Progettazione logica. Dati di ingresso e uscita

Guida alla lettura di uno Schema GeoUML

Database. Cos è un database? Intro Tipi di entità Mapping ER/EER à Relazionale

Basi di dati D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2012/13

Basi di dati I 27 gennaio 2016 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi.

Le basi di dati. Lez. 2: Progettazione di un DB. Laboratorio di informatica gestionale

ARCHITETTURA DI UN DBMS

Strategie top-down. Primitive di trasformazione top-down. Primitive di trasformazione top-down

Il Modello Concettuale Enità-Relazione (ER)

SPECIFICHE TECNICHE PER LA MAPPATURA DELLE RETI DEI SOTTOSERVIZI Regole topologiche. Jody Marca

Ciclo di vita di un sistema informativo

Informatica per le Scienze Umane. Introduzione al corso: programma

CAPITOLO V. DATABASE: Il modello relazionale

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

Sistemi Informativi Territoriali. Area di rispetto

REGIONE EMILIA-ROMAGNA DATABASE TOPOGRAFICO REGIONALE MODELLO LOGICO. Responsabilità: Collaboratori: Consulenti: 18 dicembre 2008

Esercitazione seconda prova Esame di Stato Prova di Informatica Gestionale ITC Programmatori e Mercurio. Note introduttive

REGIONE BASILICATA UFFICIO S. I. R. S.

Modello logico dei dati utilizzato nell ambito delle basi di dati, introdotto da Codd nel 1970.

SISTEMI INFORMATIVI E DATABASE

INSPIRE COME OPPORTUNITÀ:

Progettazione logica relazionale (1/2) Progettazione logica. Progettazione logica relazionale (2/2) Introduzione. Progettazione logica

Schema Del DB Operazionale TELEFONATE

Basi di Dati CREAZIONE E POPOLAMENTO DI UNA BASE DI DATI

Corso di elettrotecnica Materiale didattico: i grafi

Requisiti della base di dati. Schema concettuale

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

INDICE. Introduzione. 3 Capitolo 1 Cenni di geodesia

Basi di dati Basi di dati per bioinformatica

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

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

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

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

Il PROCESSO UNIFICATO

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

Sistemi Informativi Territoriali

ESAME di INFORMATICA e ARCHIVIAZIONE

Basi di dati I 19 settembre 2016 Tempo a disposizione: un ora e 45 minuti.

Trigger. Basi di dati attive. Trigger: regole che specificano azioni attivate automaticamente dal DBMS al verificarsi di determinati eventi

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella i dati di un sistema di gestione di campionati di basket.

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

CORSO ACCESS 2000 PARTE VI

! Un arco multiplo corrisponde ad un associazione molti-a-molti: il padre (libro) non determina funzionalmente il figlio (autore)

SISTEMA INFORMATIVO E SISTEMA INFORMATICO. Sistema informativo e sistema informatico

Esame di Basi di Dati, SOLUZIONE APPELLO 09/06/2009

Traduzione ER - relazionale

Ricevimento: dopo la lezione (in aula) o su appuntamento (Sede Scientifica Pal. 1 Primo Piano)

Regione Autonoma della Sardegna

INTRODUZIONE ALLE BASI DATI RELAZIONALI

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

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

Database (Base di dati)

Claudio Mazzi. Le buone pratiche per la strutturazione dei dati

Cap. 1-I 1 I sistemi informatici

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

SQL terza parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2010/11

Caratteristiche di un linguaggio ad alto livello

IL DATABASE TOPOGRAFICO REGIONALE Scenari e strumenti di condivisione ed interoprabilità

Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2010/2011. Basi di dati

Database: Introduzione. Basi di Dati e Microsoft Access. Database: Esempio. Informazioni facilmente reperibili

La in verifica forma teoria normale della normalizzazione fornisce comunque uno strumento di già

Sistemi Informativi e Basi di Dati. Laurea Specialistica in Tecnologie di Analisi degli Impatti Ecotossicologici. Docente: Francesco Geri

Progettazione di Database

SQL: DDL, VI, Aggiornamenti e Viste

I DATI E LA LORO INTEGRAZIONE 63 4/001.0

Alberto Belussi, Mauro Negri e Giuseppe Pelagatti. Politecnico di Milano spatialdbgroup@polimi.it

LA NORMALIZZAZIONE. Prima parte

Esecuzione concorrente di transazioni

Protocolli e Architetture. Dr. Greco Polito Silvana

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

Comitato per le regole tecniche sui dati territoriali delle Pubbliche Amministrazioni Il Modello GeoUML

Transcript:

I sistemi per la gestione di basi di dati geografiche Regole di corrispondenza tra GeoUML e Simple Features Access Maggio 2007 Alberto Belussi

Progettazione logico/fisica di una base di dati geografica La progettazione logico/fisica di una base di dati geografica definisce le strutture di memorizzazione della componente spaziale e alfanumerica dell informazione in essa contenuta. La progettazione logico/fisica segue la progettazione concettuale. Essa richiede quindi che lo schema concettuale dei dati sia già stato redatto. Esso è infatti il punto di partenza della progettazione logico/fisica. L altro essenziale prerequisito è costituito dalla scelta di un sistema per gestione di basi di dati geografiche (GEO-DBMS). In particolare, deve essere noto il modello dei dati del sistema.

Criteri generali della progettazione logico/fisica Creare una struttura normalizzata per ridurre la ridondanza dei dati e quindi le anomalie che si possono verificare in fase di aggiornamento dei dati. Gestire i casi di geometria condivisa in modo esplicito nella struttura dei dati (strati topologici) quando possibile. Rappresentare il più possibile nella struttura fisica dei dati i vincoli di integrità spaziali significativi espressi nello schema concettuale. Creare una struttura che sia fruibile per l uso applicativo; questo criterio risulta ovviamente in contrasto con l esigenza di una struttura normalizzata introdotta dal primo criterio.

Mapping da GeoUML a Simple Feature Specification for SQL Per quanto riguarda la trasformazione delle classi normali senza attributi geometrici e delle associazioni tra classi valgono le regole già presentate per le basi di dati tradizionali. Poiché il modello logico/fisico è geo-relazionale, è sempre possibile rappresentare relazioni (tabelle) in tale modello e quindi sarà possibile rappresentare in esso anche le relazioni (tabelle) che costituiscono la traduzione di classi normali e associazioni di uno schema dei dati scritto in GeoUML.

Mapping da GeoUML a Simple Feature Specification for SQL Per quanto riguarda invece i costrutti del modello GeoUML che contengono riferimenti alla geometria, vengono di seguito discusse alcune proposte di traduzione nel modello logico/fisico. D: Come si rappresenta la geometria nel modello dei dati di un sistema geo-relazionale? R: Attraverso l introduzione nello schema logico di attributi geometrici nelle relazioni e di strati topologici. D: Quanti strati topologici devono essere creati in una base di dati territoriale? D: Quali attributi geometrici vanno messi sullo stesso strato? Non esiste un unica risposta a queste domande!

Osservazioni sull uso degli strati in uno schema logico/fisco I dati geometrici contenuti nello stesso strato sono memorizzati in un unica struttura topologica nel GEO- DBMS, ciò implica: la gestione esplicita della geometria condivisa fra i valori geometrici contenuti nello strato; la possibilità di implementare i vincoli geometrici nella struttura dati dello strato; una maggiore facilità di aggiornamento dei dati contenuti nello strato, in particolare dove esistono vincoli di integrità spaziale da rispettare; la necessità di considerare l intero strato per ogni accesso ai dati in esso contenuti. la possibilità di interrogare con maggiore efficienza i dati contenuti nello strato, in quanto le operazioni più potenti dei sistemi agiscono di solito intra-strato.

Suddivisione in strati degli attributi geometrici di uno schema GeoUML Tenendo presente le osservazioni riportate in precedenza si possono considerare i tre seguenti criteri: generare uno strato topologico nello schema logico (strato logico) per ogni strato topologico dichiarato a nello schema concettuale (strato concettuale). porre sullo stesso strato logico tutti gli attributi geometrici legati direttamente o indirettamente a livello concettuale (attraverso vincoli strutturali) allo strato concettuale corrispondente. generare uno strato topologico nello schema logico (strato logico aggiuntivo) per rappresentare gli attributi geometrici delle classi legate da vincoli strutturali su attributi geometrici (inclusi tratti e sottoaree). porre sullo stesso strato logico aggiuntivo tutti gli attributi geometrici legati direttamente o indirettamente a livello concettuale attraverso vincoli strutturali che hanno dato vita allo strato logico aggiuntivo porre preferibilmente sullo stesso strato i valori degli attributi geometrici che vengono utilizzati insieme nelle elaborazioni realizzate con maggior frequenza dalle applicazioni.

Le regole di corrispondenza tra GeoUML e il modello SFS Classe C 1 contenente gli attributi alfanumerici: A 1,..., A n Mapping degli attributi alfanumerici normali Per la classe C 1 viene creata una tabella C 1 che contiene tanti attributi quanti sono gli attributi alfanumerici della classe C 1. La tabella C 1 ha un attributo aggiuntivo detto FID (feature ID) di tipo integer e con nome idc 1. Tale attributo diventa chiave primaria della tabella C 1. C 1 (idc 1, A 1,..., A n ) I tipi degli attributi vengono scelti in base alla seguente corrispondenza: String: VARCHAR(x) Integer: INTEGER Real: REAL o DOUBLE

Le regole di corrispondenza tra GeoUML e il modello SFS Classe C 1 contenente gli attributi alfanumerici: A 1,..., A n dove A i,1,, A i,k sono chiave primaria Mapping delle chiavi primarie Alla tabella che rappresenta la C 1 viene aggiunto il seguente vincolo: C 1 (idc 1, A 1,..., A n ) vincolo C 1 _PK (A i,1,, A i,k ) se la chiave include ruoli allora anche la chiave esportata che rappresenta il legame con l altra classe va indicata nel vincolo.

Le regole di corrispondenza tra GeoUML e il modello SFS Mapping degli attributi enumerati Per ogni attributo enumerato A enum con valori (v 1,, v n ), aggiungere alla tabella che rappresenta la classe C che contiene A enum il seguente vincolo: vincolo C_A enum (A enum IN (v 1,, v n )) (sintassi vincolo <nome> (<nome attributo> IN (<elenco valori>)) ) Per ogni attributo enumerato A enum con dominio enumerato D contenente i valori (v 1,, v n ), si genera un dominio indicando il tipo e il vincolo: dominio D_C_A enum tipo varchar(x) vincolo (value IN (v 1,, v n )) (sintassi dominio <nome> tipo <tiposql> vincolo (value IN (<elenco valori>)) ) e si assegna il dominio D_C_A enum come tipo dell attributo A enum nella tabella C.

Le regole di corrispondenza tra GeoUML e il modello SFS Mapping degli attributi enumerati gerarchici Per ogni attributo enumerato gerarchico A enumg della classe C con dominio specificato ad esempio nel seguente modo: ( v 1 A 1 :(v 1,1 B 1 :(v 1,1,1, v 1,1,2 ),v 1,2, v 1,3 ),v 2 A 2,1 :(v 2,1, v 2,2 ) A 2,2 :(v 2,3, v 2,4 ), v 3, v 4 ) aggiungere una tabella con la seguente struttura: C_A enumg (ida enumg, value, A 1, B 1, A 2,1, A 2,2 ) con i vincoli seguenti: vincolo C_value (value IN (v 1, v 2, v 3, v 4 )) vincolo C_ A 1 ((value= v 1 AND A 1 IN (v 1,1, v 1,2, v 1,3 )) OR (value<> v 1 AND A 1 is NULL)) (sintassi vincolo <nome> (<espressione clausola WHERE di SQL>) ) e aggiungere alla tabella C l attributo ida enumg chiave esportata della tabella precedente.

Le regole di corrispondenza tra GeoUML e il modello SFS Classe C 1 contenente un attributo geometrico G 1. Mapping degli attributi geometrici Si aggiunge un attributo geometrico G 1 alla relazione C 1 con dominio geometrico scelto secondo la corrispondenza mostrata nel lucido successivo

Corrispondenza tra tipi geometrici GeoUML e tipi geometrici SFS Tipo GeoUML GU_Point* GU_CPCurve* GU_CPRing* GU_CPSurface2D GU_CXPoint* GU_CXCurve* GU_CNCurve* GU_CXRing* GU_CXSurface2D Tipo SFS Point LineString LineString + vincolo Polygon Multipoint + vincolo Multilinestring + vincolo Multilinestring + vincolo Multilinestring + vincolo Multipolygon Tipo GeoUML GU_Complex* GU_Aggregate* GU_MPoint* GU_MCurve* GU_MRing* GU_MSurface2D Tipo SFS GeometryCollection + vincolo GeometryCollection Multipoint GeometryCollection + vincolo GeometryCollection + vincolo GeometryCollection + vincolo N.B.: si noti che tutti i tipi 3D degenerano allo spazio 2D.

Esempio di traduzione Comune (COM) codice: string nome: string estensione: GU_CXSurface2D FID Comune ( idcomune, codice, nome, estensione: Multipolygon)

Le regole di corrispondenza tra GeoUML e il modello SFS Associazione A tra una Classe C 1 e Classe C 2. Mapping delle associazioni Se l associazione è uno a molti o uno a uno si esporta il feature id della classe coinvolta con cardinalità molti nella tabella della classe coinvolta con cardinalità uno usando il nome del ruolo come nome dell attributo. C 1 (idc 1, A 1,..., A n, ruoloc 2 ) C 2 (idc 2, B 1,..., B m ) Se l associazione è molti a molti si genera una tabella esplicita per rappresentare l associazione: C 1 (idc 1, A 1,..., A n, idc 2 ) C 2 (idc 2, B 1,..., B m ) A(ruoloC 1, ruoloc 2, D 1,, D k ) dove D 1,, D k sono gli eventuali attributi dell associazione.

Le regole di corrispondenza tra GeoUML e il modello SFS Classe tratto (sottoarea) T 1 contenente gli attributi alfanumerici: B 1,..., B n Mapping delle classi tratto (sottoarea) Per la classe tratto (sottoarea) T viene creata una relazione (tabella) T che contiene tanti attributi quanti sono gli attributi alfanumerici della classe T e un attributo geometrico detto geometria di tipo Multilinestring (Multipolygon). La relazione (tabella) T 1 ha un attributo aggiuntivo detto SID (segment or subregion ID) di tipo integer e con nome sidt. Tale attributo insieme al feature id della classe padre del tratto C i (detto id C i ) diventa chiave primaria della tabella T. T(sidT, idc i, B 1,..., B n, geometria: Multilinestring)

Esempio di traduzione Strada (STR) codice: string nome: string percorso: GU_CXCurve2D <<tratti>> <<Tratto>> Tratto stradale (TRS) sede: (galleria, propria, trincea) larghezza: (<2, tra 2 e 6, >6) geometria: GU_CXCurve2D Strada ( idstr, codice, nome, percorso: Multilinestring) TrattoStradale (sidtrs, idstr, sede, larghezza, geometria: Multilinestring) vincolo TRS_sede (sede IN ( galleria, propria, trincea )) vincolo TRS_larghezza (larghezza IN ( <2, tra 2 e 6, >6 ))

Le regole di corrispondenza tra GeoUML e il modello SFS Mapping degli strati topologici Per ogni strato topologico presente nello schema GeoUML si genera dove possibile uno strato topologico a nello schema logico, facendo confluire sullo strato tutti gli attributi geometrici direttamente o indirettamente vincolati allo strato.

Le regole di corrispondenza tra GeoUML e il modello SFS Generazione degli strati topologici Nel caso in cui sia possibile generare strati topologici a livello logico, allora dato uno schema GeoUML è possibile applicare il seguente procedimento per la generazione degli strati: generare il grafo dei vincoli strutturali (grafo strutturale): ogni attributo geometrico, classe tratto/sottoarea o strato è uno nodo e ogni vincolo strutturale è un arco non orientato) generare i sottografi connessi del grafo strutturale per ogni sottografo connesso generare uno strato topologico a livello logico e associare allo strato tutti gli attributi geometrici presenti nel sottografo, comprese le geometrie dei tratti e delle sottoaree ed esclusa la geometria dello strato topologico concettuale se è l unico strato del sottografo.

Esempio CP_EDI geometria p CS_EDI ingombro_suolo CS_EDI max_estensione p c S_EDIFC geometria qda EDIFC max_estensione a c LIMITE_UV geometria qda UN_VOL sup_base CP_NEDI geometria p AR_URG estensione qda qda qda qda TY_FONDOPED geometria ZONA_VEI geometria TY_FONDOVEI geometria S_ACVEI geometria

Mapping degli strati (ESEMPIO) Strato CP_EDI CS_EDI.ingombro_suolo CP_EDI CS_EDI.max_estensione CP_EDI S_EDIF.geometria CP_EDI EDIFC.max_estensione CP_EDI UN_VOL.sup_base CP_EDI LIMITE_UV.geometria CP_EDI Strato CP_NEDI AR_URG.ingombro_suolo CP_NEDI TY_FONDOPED.geometria CP_NEDI TY_FONDOVEI.geometria CP_NEDI ZONA_VEI.geometria CP_NEDI S_ACVEI.geometria CP_NEDI