Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

#1 Thu 21 October 2010 10:57

renard
Participant actif
Date d'inscription: 16 Mar 2010
Messages: 96

historique de modifications de la BDD

Bonjour,

Je souhaite migrer prochainement la BDD de notre SIG (actuellement sur Géoconcept uniquement) vers un SGBDR, pour gérer notamment l'historique de modifications, et créer une interface pour faciliter la gestion de la base par des utilisateurs novices.

Je pense me tourner vers une base Access ou Postgre. Ces SGBDR reponderont-ils à mes attentes.

Par avance merci,

Hors ligne

 

#2 Thu 21 October 2010 11:07

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9864
Site web

Re: historique de modifications de la BDD

Bonjour,

Concernant PostGIS tu peux faire des triggers qui vont gérer l'historique des modifications. L'idée est la suivante :

1. ta table contient un champ timestamp (nommé update_date), un champ update_by si tu veux savoir quoi, éventuellement un champ update_fields et un champ actif (booléen)
2. tu écris des triggers qui vont reécrire tes requêtes UPDATE. Celui-ci va dans un premier temps désactiver la vielle ligne (actif = false) puis reécrire la requête UPDATE en requête INSERT
3. Même chose pour les requêtes DELETE qui vont seulement faire un update sur le champ actif = false.

Autre solution : avoir une deuxième table archive qui va être mise à jour avant chaque mise à jour/suppression des lignes pour copier les lignes modifiées/supprimées.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Thu 21 October 2010 12:08

renard
Participant actif
Date d'inscription: 16 Mar 2010
Messages: 96

Re: historique de modifications de la BDD

Ok, merci de la réponse. Pour créer une interface Postgresql/postgis voila ce que j'ai trouvé sur wikipédia

Des interfaces existent aux niveaux pilote et graphique :

    * Java : pilotes JDBC/JDO,
    * PHP : phpPgAdmin (interface web d'administration), pgAdmin (application)
    * Python : Psycopgzsql/PyGRes (pilotes Python), PoPy/Zope-DA (pilotes Zope)
    * Microsoft Windows : des pilotes ADO, .NET, OLE et ODBC existent


Ainsi PostGis semble doublement intéressant. Avez-vous des retours d'expérience à faire partager sur le développement d'une interface aussi bien avec access que postgis?

Merci.

Dernière modification par renard (Thu 21 October 2010 12:18)

Hors ligne

 

#4 Thu 21 October 2010 12:53

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1228
Site web

Re: historique de modifications de la BDD

Bonjour,

de mon point de vue, la migration d'un SIG fichier vers un sgbd doit se faire dans un serveur de base de données spatiales.
PostgreSQL/PostGIS est tout indiqué : licence, cout, performances et dans votre cas un lien facilité avec geoconcept.

Les possibilités d'interfaces sont nombreuses (clients lourds, légers).

Avec Qgis par exemple : http://rootabagis.blogspot.com/2010/06/ … -qgis.html
En web avec les librairies et langages courants ou avec des outils de génération de formulaire (http://www.postgresql.org/about/news.1190)

Concernant l'historisation des modifications sur les données un exemple est donné dans le document ci dessous, dans la partie "PLPGSQL FUNCTION SAMPLES"

http://www.postgresonline.com/special_f … ormat=html

Code:

--Sample logging trigger taken from docs
 CREATE TABLE emp_audit( 
    operation         char(1)   NOT NULL,
    stamp             timestamp NOT NULL,
    userid            text      NOT NULL,
    empname           text      NOT NULL,
    salary integer
);
 CREATE OR REPLACE FUNCTION process_emp_audit() RETURNS TRIGGER AS $$
    BEGIN
        -- Create a row in emp_audit to reflect the operation performed on emp,
        -- make use of the special variable TG_OP to work out the operation.
        IF (TG_OP = 'DELETE') THEN
            INSERT INTO emp_audit SELECT 'D', now(), current_user, OLD.*;
            RETURN OLD;
        ELSIF (TG_OP = 'UPDATE') THEN
            INSERT INTO emp_audit SELECT 'U', now(), current_user, NEW.*;
            RETURN NEW;
        ELSIF (TG_OP = 'INSERT') THEN
            INSERT INTO emp_audit SELECT 'I', now(), current_user, NEW.*;
            RETURN NEW;
        END IF;
        RETURN NULL; -- result is ignored since this is an AFTER trigger
    END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER emp_audit
AFTER INSERT OR UPDATE OR DELETE ON emp
    FOR EACH ROW EXECUTE PROCEDURE process_emp_audit();

Bonne migration,

Dernière modification par Mathieu BOSSAERT (Thu 21 October 2010 12:55)


Mathieu BOSSAERT
Association GeoRezo

Hors ligne

 

#5 Thu 21 October 2010 12:55

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1538

Re: historique de modifications de la BDD

renard a écrit:

Ok, merci de la réponse. Pour créer une interface Postgresql/postgis voila ce que j'ai trouvé sur wikipédia

Des interfaces existent aux niveaux pilote et graphique :

    * Java : pilotes JDBC/JDO,
    * PHP : phpPgAdmin (interface web d'administration), pgAdmin (application)
    * Python : Psycopgzsql/PyGRes (pilotes Python), PoPy/Zope-DA (pilotes Zope)
    * Microsoft Windows : des pilotes ADO, .NET, OLE et ODBC existent


Ainsi PostGis semble doublement intéressant. Avez-vous des retours d'expérience à faire partager sur le développement d'une interface aussi bien avec access que postgis?

Merci.


Bonjour,

En gros, il est possible d'acceder a postgresql et postgis depuis a peu pres tous les langages de programmation.
S'il s'agit de realiser une interface graphique client lourd, le choix est vaste, mais un langage supporté par plusieurs plateforme est un plus.

Pour une interface web, des langages comme Java/JSP ou PHP font ca tres bien.
Pour l'acces a la base, notamment pour la partie spatiale, il est interessant de coupler un ORM (object relational mapper), qui permet de faire une séparation claire entre le modele (les objets manipulés) et la base (les tables relationnelles).
En Java, Hibernate fait ca tres bien, notamment avec la partie hibernate spatial, qui gere les objets geometriques.

En PHP, Doctrine sait aussi faire ca, et dispose d'une extension spatiale doctrine spatial (Yves: tu sais ou ce projet en est ? l'integration MapFish/Doctrine ?).

Si vous ne connaissez pas Java, ca serait peut etre un peu lourd d'apprendre a la fois le langage et les frameworks.
PHP est plus facile a apprendre et a mettre en oeuvre il me semble.

Que souhaitez-vous faire, qd vous dites "migrer la base de notre SIG" ?
S'agit-il egalement de migrer les données spatiales ou uniquement une partie attributaire ?

Nicolas

Hors ligne

 

#6 Thu 21 October 2010 14:43

renard
Participant actif
Date d'inscription: 16 Mar 2010
Messages: 96

Re: historique de modifications de la BDD

L'objectif est triple.
Nous migrons entièrement la BDD (spatiales+ attributaires)

-  gérer l'historique de modification
- créer une application webcarto [intranet/internet] (c'est pourquoi postgis m'intéresse tout particulièrement, toutefois access-géoconcept fonctionne bien en stockant la géométrie en texte aux normes GCES [format géoconcept]). La base access reste à l'ordre du jour si nous utilisons GCIS (module webcarto de géoconcept) mais il sera vraisemblablement trop onéreux (+/- 30 000€). 
- traiter/MàJ des données depuis Géoconcept mais aussi depuis une interface non cartographique (traitement sur la base de données où la cartographie est inutile).


La question matériel va également se poser. Nous disposons actuellement de deux licences géoconcept (pour plusieurs utilisateurs allant de novice à bonne maitrise). L'intranet pourrait corriger le problème puisque la plupart des utilisateurs ne feront que consulter les données ou de petites modifications. La question que je me pose concerne notamment les choix à faire en matière d'architecture réseau (rôle et puissance du serveur [dédié...],  je pense me faire conseiller par un informaticien mais je maîtrise peu cette aspect et ai toujours crainte des commerciaux...). nous avons 6 postes informatiques.

Dernière modification par renard (Thu 21 October 2010 14:57)

Hors ligne

 

#7 Thu 21 October 2010 15:21

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1538

Re: historique de modifications de la BDD

renard a écrit:

L'objectif est triple.
Nous migrons entièrement la BDD (spatiales+ attributaires)

-  gérer l'historique de modification
- créer une application webcarto [intranet/internet] (c'est pourquoi postgis m'intéresse tout particulièrement, toutefois access-géoconcept fonctionne bien en stockant la géométrie en texte aux normes GCES [format géoconcept]). La base access reste à l'ordre du jour si nous utilisons GCIS (module webcarto de géoconcept) mais il sera vraisemblablement trop onéreux (+/- 30 000€). 
- traiter/MàJ des données depuis Géoconcept mais aussi depuis une interface non cartographique (traitement sur la base de données où la cartographie est inutile).


La question matériel va également se poser. Nous disposons actuellement de deux licences géoconcept (pour plusieurs utilisateurs allant de novice à bonne maitrise). L'intranet pourrait corriger le problème puisque la plupart des utilisateurs ne feront que consulter les données ou de petites modifications. La question que je me pose concerne notamment les choix à faire en matière d'architecture réseau (rôle et puissance du serveur [dédié...],  je pense me faire conseiller par un informaticien mais je maîtrise peu cette aspect et ai toujours crainte des commerciaux...). nous avons 6 postes informatiques.


La bonne occasion, alors, de lacher Access, qui n'est pas une base de données relationnelle et qui contraint a rester sur des technos Microsoft et effectivement de passer a Postgresql/Postgis.

Dans ce contexte, une solution BD + ORM + developpement Web parait la plus sage, mais pas forcement la plus rapide a mettre en place.
La encore, je pense a Hibernate, qui permet de representer les objets d'une base Postgresql ET Postgis en Java, de les manipuler, etc. et ce en faisant abstraction de la base. (qu'on peut eventuellement changer sans changer l'application)
Hibernate dispose, de plus, d'un plugin nommé Envers, qui fait automatiquement l'historisation des tables qu'on lui demande (attention, suis pas sur que Hibernate Spatial permette de faire l'historisation des champs geometry de la base).

Utiliser un module carto a 30 000€, alors que Mapserver + OpenLayers sont gratuits et marchent (tres) bien (ou Geoserver dans un dev pur Java) peut ne pas etre indispensable.
Ces 30000€ pourraient servir a payer le developpement de l'appli Carto intranet/internet plutot.

Pour 6 postes client, un ordinateur "de base" peut largement suffire pour heberger postgresql + le moteur cartographique + le code.
Pour une utilisation internet de l'application, il faudra regarder le nombre de connexions attendues: une machine plus puissante serait alors nécessaire (ou un hebergement externe)

Nico

Hors ligne

 

#8 Thu 21 October 2010 15:35

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3180
Site web

Re: historique de modifications de la BDD

Bonjour,

Les intervenants précédents vous ayant clairement décrit les avantages de PostGis et du multi plateforme, je me pencherai sur le coté Windows.

Coté Access : Pas de cartouche spatiale native. Les bases de plus de 500 Mo sont ingérables. (temps de réponse). Quel est le format d'ACCESS ? Car le passage de 97-2000 à 2007 au niveau interface de programmation c'est pas simple.(DAO vers ADO.Net).
Deuxièmement Access n'est pas un SGBD "client/serveur".

Je vous conseille fortement de passer par PostGis (nb : sous windows via npgsql il est très facile de ce connecter à partir de .Net).

Pour ma part dans un même applicatif développé en .NET je me connecte indifféremment sur des bases access ou sur des bases PostGis suivant mes besoins. Mais la data spatiale est forcément dans une base PostGis.

En matière d'architecture réseau, pour 6 personnes, vous pouvez soit utiliser un serveur existant, soit un serveur dédié (c'est le mieux). Pour ma part j'ai installé postgis sur le serveur Active Directory en Win 2008 pour 8 personnes connectées, cela ce passe sans soucis. De plus PostGres est connu pour pouvoir être réglé très finement aux niveau des paramètres de communications.
En matière de techno un XEON avec 4 Go de RAM c'est le minimum après ... Je viens de commander une machine type double Xeon quadcore avec 8 Go de RAM et il y en a pas pour très cher (3000 € environ).

Toute la problématique de votre réseau sera d'être équilibré car si vous avez un super serveur et des switches bas de gamme ...

A+


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#9 Thu 21 October 2010 18:10

renard
Participant actif
Date d'inscription: 16 Mar 2010
Messages: 96

Re: historique de modifications de la BDD

Dans ce contexte, une solution BD + ORM + developpement Web parait la plus sage, mais pas forcement la plus rapide a mettre en place.
La encore, je pense a Hibernate, qui permet de representer les objets d'une base Postgresql ET Postgis en Java, de les manipuler, etc. et ce en faisant abstraction de la base. (qu'on peut eventuellement changer sans changer l'application)


Je connais pas le Java (mais j'ai du temps), cependant je me demande si ce n'est pas mettre en péril la pérennité du SI. C'est pourquoi je préferais une solution MAPSERVER/Openlayer trés utilisée et documentée (plus simple pour d'éventuels successeurs).

Toute la problématique de votre réseau sera d'être équilibré car si vous avez un super serveur et des switches bas de gamme ...


==> Qu'entends tu par switches bas de gamme?

Dernière modification par renard (Thu 21 October 2010 18:11)

Hors ligne

 

#10 Thu 21 October 2010 19:33

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3180
Site web

Re: historique de modifications de la BDD

Bonsoir,

renard a écrit:

==> Qu'entends tu par switches bas de gamme?


Un réseau pour 6 ou 8 postes peut-être une livebox (ou équivalent) et un HUB où architecture beaucoup plus évoluée.
Là encore les intervenants précédents pourront certainement vous donner une architecture libre, mais sur l'aspect technique vous pouvez aller ici chapitre 1-A pour vous faire une idée.
Sachant que l'ensemble peut-être réduit.
Des switches évolués comme indiqué dans ce CCTP possèdent une interface de programmation qui permet de régler le traffic de façon assez fine, par exemple rendre prioritaire les paquets circulant entre un PC et le serveur de BD par rapport à un traffic internet.

Je pense qu'un bon réseau LAN pour 6 personnes dans un cadre pro serait composé d'un routeur et d'un switch de qualité équivalente à celle indiqué dans le lien. Vous ajoutez un fire wall et une ligne SDSL, il ne vous reste plus qu'à connecter quelques serveurs et vous êtes paré pour un moment.
Si vous considérez uniquement l'aspect matériel (solution libre pour les serveurs) la solution peut évoluer entre 20 et 30 k€ suivant les options (fire wall particulièrement).


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#11 Fri 22 October 2010 10:22

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1538

Re: historique de modifications de la BDD

renard a écrit:

Dans ce contexte, une solution BD + ORM + developpement Web parait la plus sage, mais pas forcement la plus rapide a mettre en place.
La encore, je pense a Hibernate, qui permet de representer les objets d'une base Postgresql ET Postgis en Java, de les manipuler, etc. et ce en faisant abstraction de la base. (qu'on peut eventuellement changer sans changer l'application)


Je connais pas le Java (mais j'ai du temps), cependant je me demande si ce n'est pas mettre en péril la pérennité du SI. C'est pourquoi je préferais une solution MAPSERVER/Openlayer trés utilisée et documentée (plus simple pour d'éventuels successeurs).

Toute la problématique de votre réseau sera d'être équilibré car si vous avez un super serveur et des switches bas de gamme ...


==> Qu'entends tu par switches bas de gamme?


Bonjour,

Developper en Java et utiliser Mapserver et OL ne sont pas, loin de la, incompatibles !
Nous faisons des projets avec ces architectures depuis plusieurs années (avec d'autre frameworks clients, qd OL n'existait pas.
Il existe de nombreuses solutions pour piloter Mapserver depuis java: JavaMapscript, ecriture de mapfile, surcharge d'URL, etc.
Le SI n'en sera que plus perenne, il me semble smile
(voici un exemple d'une appli pur java qui utilise (extensivement) mapserver, OL, ext, geoext: www.geojava.org).

Java servirait ici de liant entre la partie client et la partie serveur.

Sinon, Geoserver (le "pendant" pur Java de mapserver) est tout aussi perenne, documenté, et est garant de l'implementation des normes OGC (WMS, WFS, etc.)

Nico

Hors ligne

 

#12 Fri 22 October 2010 10:22

renard
Participant actif
Date d'inscription: 16 Mar 2010
Messages: 96

Re: historique de modifications de la BDD

J'essaie d'estimer un peu le coût du matériel. Par contre comme je l'ai déjà je n'y connais rien en réseau. Dites-moi si je me trompe.

Solution possible.

- un serveur avec pour une bdd par si grande que ca (orthophoto d'un département) (3000€)
- la licence windows (pour un administré il faut une licence windows server non?) je n'arrive pas à trouver un prix.
- un routeur + firewall (+/- 700€)
le Hub nous l'avons déjà.
La connexion passe par une livebox (connecté directement au routeur?).

Ca vous semble complet? Je pense que nos besoins sont bien inférieurs en terme de stockage au CCTP que tu as proposé.

Dernière modification par renard (Fri 22 October 2010 10:23)

Hors ligne

 

#13 Fri 22 October 2010 10:42

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3180
Site web

Re: historique de modifications de la BDD

Bonjour,

un routeur + firewall (+/- 700€)


Heu je pense que c'est faible, pour ma part il s'agit d'un pare feu physique pas uniquement logiciel c'est donc un peu plus cher.

Je pense qu'il est avantageux de remplacer le HUB par un switch.

Pour le CCTP il s'agissait uniquement du chapitre 1-A, le reste est bien entendu tout autre chose.


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#14 Tue 26 October 2010 10:37

renard
Participant actif
Date d'inscription: 16 Mar 2010
Messages: 96

Re: historique de modifications de la BDD

Je souhaite toujours dans le cadre du même projet faire le site web avec drupal et une BDD mysql et le portail cartographique avec une base postgis/ mapserver. Je suis contraint d'avoir deux bases de données car drupal ne semble pas très stable avec postgresql. Cependant est-ce que apache permet d'être connecté à la fois à mysql et mapserver (connecté à postgis)?

merci,

Dernière modification par renard (Tue 26 October 2010 11:19)

Hors ligne

 

#15 Tue 26 October 2010 11:18

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1538

Re: historique de modifications de la BDD

renard a écrit:

Je souhaite toujours dans le cadre du même projet faire le site web avec drupal et une BDD mysql et le portail cartographique avec une base postgis/ mapserver. Je suis contraint d'avoir deux bases de données car drupal ne semble pas très stable avec postgresql. Cependant est-ce que apache permet d'être connecté à la fois à mysql et mapserver?

merci,


Bonjour,
Hmm, deux bases de données, une pour le cms, une pour la geo, ca parait bien lourd:

Quels sont les pb ou instabilites de drupal avec PG ? ca peut ne pas concerner votre problematique.
Quel type de fonction spatiales est recherchée ? s'il s'agit uniquement de l'affichage, MySQL peut stocker des donnees spatiales, les indexer et les afficher avec Mapserver.

Apache n'est pas vraiment concerné par les connexions aux bases. Les outils serveur de developpement des applications le sont, eux: PHP (Drupal) permettent de se connecter a autant de bases differentes que l'on veut, mapserver aussi.

Il faudrait, je pense, tout faire pour eviter deux BD pour un meme projet.

Nicolas

Hors ligne

 

#16 Tue 26 October 2010 12:00

renard
Participant actif
Date d'inscription: 16 Mar 2010
Messages: 96

Re: historique de modifications de la BDD

J'ai lu plusieurs mauvais retours d'expériences sur une connexion postgre-drupal et j'ai pu lire ceci

Drupal is an excellent PHP content management system. It supports both MySQL and PostgreSQL as the back end database for content management. Unfortunately, PostgreSQL comes up short in the documentation department: it is not even mentioned in the Drupal INSTALL.txt file. So here we do our small part for the cause and provide some instructions to get Drupal up and running with PostgreSQL.


(source http://pgedit.com/install_drupal )

J'avais songé à basculer entièrement la base de donnée en mysql. Cependant, avec le rachat de sun par Oracle, j'ai lu pas mal de choses pessimistes quant au devenir de mysql.  A contrario l'avenir de postgresql/postgis semble plus radieux, c'est pourquoi je privilégiais ce support, d'autant plus que nos besoins en cartographie sont amenés à se développer. On utilisera aussi postgis pour Geoconcept.

Je ferais tout de même des essais drupal - postgresql/postgis, histoire de juger par moi-même, car en effet tu confirmes ce que je n 'osais pas me dire, avoir deux bases de données n'est pas le choix le plus judicieux.

Dernière modification par renard (Tue 26 October 2010 12:01)

Hors ligne

 

#17 Fri 29 October 2010 19:30

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: historique de modifications de la BDD

Je me trompe sans doute mais dans votre citation de la doc drupal, il n'est pas fait mention d'instabilité mais d'absence de documentation. À vous de voir, mais deux bd avec les problèmes de link (Quid du dblink sur mysql ?), peut-être plus aventureux.


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#18 Wed 03 November 2010 14:15

renard
Participant actif
Date d'inscription: 16 Mar 2010
Messages: 96

Re: historique de modifications de la BDD

Petit suivi qui n'a pas grand chose à voir avec la géomatique. Lors de l'installation de postgresql, il y a possibilité d'installer apachephp + drupal (+postgis) avec stackbuilder 3. Il est ainsi aisé d'utiliser drupal avec postgresql.

Hors ligne

 

Pied de page des forums

Powered by FluxBB