Studio di migrazione del data base dell'assestamento forestale italiano da un'architettura MS Access­ESRI ARCVIEW ad un'architettura Php PostgreSQL­POSTGIS e GRASS. Marco Ciolli, Fabrizio Ferretti, Chiara Sboarina, Alfonso Vitti, Paolo Zatelli, Fabio Zottele Il database forestale Un database contenente i dati forestali è stato realizzato dall'ISAFA (Istituto Sperimentale per l'Assestamento Forestale e l'Alpicoltura) nell'ambito del progetto “Riselvitalia” finanziato dal Ministero. Questo database è destinato a diventare il database ufficiale per la gestione dei dati forestali della maggioranza delle regioni italiane. Raccoglie e gestisce una grande quantità di dati alfanumerici e cartografici. Il database forestale Il database forestale è denominato “Progetto_bosco” ed è gestito tramite Microsoft Access con: 152 tabelle 24 query 105 mask 19 report 38 macro Il database forestale: schema delle relazioni Una struttura complessa per un database assai corposo e destinato a crescere Il database forestale: gli utenti Attualmente gli utenti del database sono tecnici forestali ma l'idea per il futuro è di ampliare la base degli utenti. Ogni utente deve avere una licenza MS Access, l'intero database sul suo PC ed almeno alcune conoscenze di base del software. Per i dati cartografici è necessaria l'installazione di ESRI ArcView. E' terminato in questo periodo il porting verso ArcSDE e ARCGIS. Tutto questo è costoso per via del costo delle licenze e del training del personale. Accesso al database Nella configurazione corrente la procedura è: ● download dell'ultima versione disponibile del database sul PC locale ● effettuazione delle modifiche via MS Access forms ● upload dell'intero database al repository Questo ovviamente pone una serie di grossi problemi per la consistenza e l'update del database. Il nuovo approccio I problemi di consistenza del database possono essere risolti usando un approccio client server con un DBMS centrale. Il bisogno di software specifici sul client può essere eliminato se si può accedere al database via web. Questo è vero sia per i dati tabellari che per quaelli cartografici. La cosa che cambia è la necessità di una connessione Internet per ciascun utente. Il nuovo approccio Questa nuova configurazione necessita di tre componenti: Client web • Web­DBMS interface • DBMS • Ciascun componente può essere configurato ed installato usando FOSS software. Il nuovo approccio Sono state testate due diverse configurazioni di sistema. Entrambe usano FOSS per il Web­DBMS interface ma il DBMS è differente: PostgreSQL o MS Access. DBMS PostgreSQL MS Access Pros sistema potente, PostGIS il personale lo conosce già Cons training del personale limitazioni di gestione dei dati Lo scopo del lavoro Gli scopi di questo lavoro sono: Migrare da Microsoft Access database a uno FOSS come PostgreSQL (8.1.0) Permettere agli utenti di accedere e modificare il database dal web usando sia server proprietario che FOSS Migrazione da MS Access a PostgreSQL Sono stati sperimentati molti tools per effettuare una traduzione automatica del database ma solo uno è risultato realmente funzionale. I software testati sono: html2tabbed.sh e html2pgsql.sh Access2PostgreSQL funziona ma troppe modifiche manuali. funziona ma non con questo database. Access2000Converter099.zip PostgreSQL per windows. Pgdatapump.zip non funziona. Navicat PostgreSQL PostgreSQL per windows o un altro PC. Access2PostgreSQL Pro (free per 10 avvii) Migrazione da MS Access a PostgreSQL Con Access2PostgreSQL Pro è stato fatto un dump file del database per PostgreSQL. Prima di importare in PostgreSQL alcune righe di questo file vanno eliminate e alcuni caratteri corretti. Per la corretta interpretazione dei caratteri latin (accentati) bisogna settare i caratteri all'encoding di PostgreSQL a 6 che corrisponde a UTF8. Il dump file è stato importato in PostgreSQL ma non tutte le tavole sono state automaticamente popolate, e dunque il database è stato completato manualmente Migrazione da MS Access a PostgreSQL La procedura manuale per completare il database PostgreSQL include i seguenti passi: le tavole non popolate sono state ricreate manualmente in PostgreSQL, facendo attenzione ai formati di colonna ed alle proprietà; le nuove tavole sono state riempite esportando le tabelle da Access nel formato xls e, dopo alcuni cambiamenti, importando i dati in PostgreSQL con il COPY command; PostgreSQL usa . (point) per i numeri decimali mentre MS Access usa , (comma) quindi è stato necessario sostituirli; il formato data deve essere modificato in YYYYMMDD; i valori boleani devono essere tradotti dall'italiano all'inglese. Migrazione da MS Access a PostgreSQL Le tabelle del database importato in PostgreSQL possono essere consultate ed editate da PhpPgAdmin (4.0 con PHP 4.4.1). Questo strumento permette la connessione al database ma l'interfaccia è molto differente dall'originale. La soluzione è creare un interfaccia grafica che simuli quella originale in MS Access. Questo può essere fatto con i linguaggi HTML e PHP col vantaggio che l'interfaccia è realizzata in pagine html, quindi accessibili localmente od in remoto. Le due versioni del database L'interfaccia grafica del database: proprietà del sistema S.O. Windows XP S.O. Linux Kubuntu Apache 2.0.55 Apache/2.0.54 (Ubuntu) PHP/4.4.1 php 4.4.2 php 4.4.1 Microsoft Access 2003 PostgreSQL 8.1.0 L'interfaccia grafica del database L'interfaccia grafica del database è stata creata il più simile possibile all'originale. La pagina principale è scritta in html e permette l'accesso a altre 13 pages tutte scritte in php. Main page Originale Main page Nuova L'interfaccia grafica del database Le funzioni php esistenti sono state usate per connettersi al database e consultare ed editare i dati. IL codice php è differente per i due DBMS ma la struttura è la stessa così da rendere semplice adattare il codice da uno all'altro. Un attenzione particolare deve essere posta al nome delle colonne poiché PostgreSQL, differentemente da MS Access, è case sensitive. L'interfaccia grafica del database Questa interfaccia permette ad un utente di accedere al database con qualsiasi web browser. Alcuni esempi dell'interfaccia originale e della nuova. Maschera originale Maschera nuova L'interfaccia grafica del database Interfaccia originale per la proprietà forestale Nuova interfaccia per la proprietà forestale Dati Geografici – Webgis Software: Data: Apache 2.0 database in PostgreSQL o MS Access PHP 4.4.1 shape files MapServer version 4.8.0­ beta2 Chameleon­2.4­20060427 Dati Geografici – Webgis Il webgis al momento è un work in progress poiché i dati geografici connessi al database non sono ancora tutti disponibili. Un campione di esempio dei dati geografici è stato collegato al database e usato per configurare il webgis. I dati delle particelle forestali, l'idrologia, le strade principali e secondarie e la carta tecnica in formato shape o tif sono state usate per sviluppare il webgis. Sono disponibili gli strumenti usuali per selezionare le mappe, fare zoom, pan e interrogare i dati. Dati Geografici – Webgis Geographical data – Webgis The webgis allows the direct query of the underlined database through the graphical interface. For the future it is planned to transform geographical data to PostGis­PostgreSQL format so all the data will be in the same database. Conclusioni Una soluzione FOSS è fattibile ed è stato sviluppato un prototipo La traduzione dei dati da MS Access a PostgreSQL è possibile semi­automaticamente, tuttavia è necessario un significativo intervento manuale E' stato possibile migliorare l'accessibilità del data base sviluppando un webgis per visualizzare le mappe Conclusioni E' possibile usare questo approccio per offrire soluzioni diverse per accedere al database forestale e lasciare la scelta della soluzione più adeguata al Ministero L'approccio client server permette: ­ per il client la possibilità di utilizzare un web browser generico ­ per il server di garantire la consistenza del database ed il controllo degli accessi Sviluppi presenti e futuri L'ISAFA ha terminato la conversione dei dati dal formato MS Access e shape file nel formato ARCSDE – ARCGIS (almeno per le tabelle) ed ora: Lo sforzo è concentrato verso la sempre migliore integrazione dell'interfaccia con le possibili fonti di dati, per renderla il più possibile indipendente. Questo dovrebbe permettere di avere più possibilità di scelta per l'interfaccia ed il database definitivi. Si punta poi a confrontare le architetture ARCSDE – ARCGIS e quella FOSS