Guide d'installation d'un exemple de vues matérialisées pour un service WEDS (Web Environmental Data Service)

Table des matières


Introduction

Ce document présente la méthode d'installation d'un exemple concret d'utilisation des vues matérialisées avec le SGBD PostgreSQL. Ces vues matérialisées utilisent le mécanisme de gestion des vues matérialisées mis au point par Jonathan Gardner en 2004. Vous trouverez plus de détail sur la méthode proposée par Jonathan Gardner en consultant son article http://tech.jonathangardner.net/wiki/PostgreSQL/Materialized_Views.

Cette méthode qui peut être utilisée avec n'importe qu'elle base de données PostgreSQL a été appliquée au SGDE / EDMS dans le cadre d'un projet visant à alimenter le portail de l'Observatoire global du St-Laurent (OGSL). Les données contenues dans les vues matérialisées produites sont rendues disponibles sur le site de l'OGSL via l'emploi d'un service de diffusion Web nommé WEDS pour Web Environmental Data Service (faire lien vers doc.).

Les données provenant de cette implantation des vues matérialisées sont disponibles en ligne sur le site de l'OGSL.

Nous fournissons, à titre d'exemple, un petit échantillon des données utilisées pour alimenter l'OGSL. Les données fournies proviennent d'une bouée d'observation océanographique et couvrent la période du 9 au 23 juin 2005.

Fonctionnement

Pour alimenter l'OGSL par le biais d'un service WEDS, nous avons dû mettre en place cinq vues matérialisées:
mv_tsproject
table contenant les informations relatives au projet de cueillette de données provenant de bouées océanographiques;
mv_tsmission
table contenant les informations relatives à la mission de cueillette de données pour l'année 2005
mv_tsstation
table contenant les informations relatives à la bouée de laquelle proviennent les données;
mv_tsparameterlist
table décrivant les différents paramètres enregistrés par la bouée et les unités utilisées;
mv_tsmeasurement
table contenant les données proprement dites.
Ces cinq vues matérialisées ont été créées à l'aide de cinq vues standard en utilisant la méthode de Jonathan Gardner. Ces cinq vues standard sont simplement des requêtes SQL qui sont utilisées pour insérer des données dans les tables des vues matérialisées. Par exemple, la vue v_tsproject sert à remplir la table de la vue matérialisée mv_tsproject. La vue v_tsproject est enregistrée dans le SGDE / EDMS à l'aide des énoncés SQL suivants:
CREATE  VIEW V_TSPROJECT 
AS 
SELECT
PP.ACR_PRJ AS PROJECT_ID,
PP.DESC_PRJ AS DESCRIPTION,
I.NOM_INT AS LEADER,
MIN(TLAT.LAT) AS LATITUDE_MIN,
MAX(TLAT.LAT) AS LATITUDE_MAX,
MIN(TLON.LON) AS LONGITUDE_MIN,
MAX(TLON.LON) AS LONGITUDE_MAX,
MIN(JD.PROFD_MIN_JD) AS DEPTH_MIN,
MAX(JD.PROFD_MAX_JD) AS DEPTH_MAX,
MIN(JD.DAT_MIN_JD) AS DATE_MIN,
MAX(JD.DAT_MAX_JD) AS DATE_MAX
FROM
PROJ_PROG PP,
PP_GEN_ME PPGME,
MISSION_EXP ME,
INTERVENANT I,
JEU_DONNEES JD,
(SELECT JD.SEQ_JD, JD.LAT_1_JD AS LAT FROM JEU_DONNEES JD 
WHERE 
JD.TYP_JD IN ('ODF-MCM', 'ODF-MADCP', 'ODF-MMOB', 'ODF-MTC', 'ODF-MTG', 'ODF-MTR')
UNION ALL
SELECT JD.SEQ_JD, JD.LAT_2_JD AS LAT FROM JEU_DONNEES JD 
WHERE 
JD.TYP_JD IN ('ODF-MCM', 'ODF-MADCP', 'ODF-MMOB', 'ODF-MTC', 'ODF-MTG', 'ODF-MTR')) TLAT,
(SELECT JD.SEQ_JD, JD.LNGT_1_JD AS LON FROM JEU_DONNEES JD 
WHERE 
JD.TYP_JD IN ('ODF-MCM', 'ODF-MADCP', 'ODF-MMOB', 'ODF-MTC', 'ODF-MTG', 'ODF-MTR')
UNION ALL
SELECT JD.SEQ_JD, JD.LNGT_2_JD AS LAT FROM JEU_DONNEES JD 
WHERE 
JD.TYP_JD IN ('ODF-MCM', 'ODF-MADCP', 'ODF-MMOB', 'ODF-MTC', 'ODF-MTG', 'ODF-MTR')) TLON
WHERE
PP.ACR_PRJ = PPGME.ACR_PRJ
AND
PPGME.ACR_MISS = ME.ACR_MISS
AND
ME.ACR_MISS = JD.ACR_MISS
AND
JD.TYP_JD IN ('ODF-MCM', 'ODF-MADCP', 'ODF-MMOB', 'ODF-MTC', 'ODF-MTG', 'ODF-MTR')
AND
PP.ACR_NOM_INT = I.ACR_NOM_INT
AND
TLAT.SEQ_JD = JD.SEQ_JD
AND
TLON.SEQ_JD = JD.SEQ_JD
GROUP BY
PP.ACR_PRJ, PP.DESC_PRJ, I.NOM_INT;

Une fois la vues créée dans le SGDE / EDMS, il s'uffit d'invoquer la fonction create_matview comme suit:

select create_matview('MV_TSPROJECT','V_TSPROJECT');


pour produire la vue matérialisée mv_tsproject. La table résultant de cette requête aura le contenu suivant:

bd_env=> select * from mv_tsproject;
-[ RECORD 1 ]-+---------------------------------------------------------------------------------------------------------------------------
project_id    | BOUEES_ISMER
description   | Programme de bouées océananographiques dans le golfe du Saint-Laurent en collaboration avec l'Institut Maurice-Lamontagne.
leader        | sgde
latitude_min  | 49.2420
latitude_max  | 49.2443
longitude_min | -66.1932
longitude_max | -66.1915
depth_min     | 0.5000
depth_max     | 0.5000
date_min      | 2005-06-09 00:18:19
date_max      | 2005-06-23 19:48:30


La même méthode s'applique aux quatre autres vues matérialisées de cet échantillon.

Tout le code servant à créer les vues matérialisées de cet exemple sera installé automatiquement par le programme d'installation installateur_vm_ts.py.

Installation des pré-requis

Pout mettre en oeuvre l'exemple de vues matérialisées présenté ici, il faut au préalable avoir installé un serveur PostgreSQL et avoir à sa disposition une base de données SGDE / EDMS dans laquelle ont été installé les outils de gestion des vues matérialisées. Vous trouverez les information concernant l'installation d'un SGDE / EDMS en consultant le Guide d'installation du SGDE / EDMS. Quant à l'installation des outils de gestion des vues matérialisées, elle se réalise facilement en suivant les instructions du Guide d'installation des vues matérialisées sous PostgreSQL.

Utilisation de installateur_vm_ts.py

installateur_vm_ts.py est un programme interactif en mode texte qui permet d'installer un exemple concret de vues matérialisées dans une base de données SGDE / EDMS. Il peut être utilisé directement sur la machine qui héberge le serveur PostgreSQL ou sur un poste de travail distant, pourvu que celui-ci ait les droits de connexion appropriés. La connexion à la base de données est établie par le rôle de connexion associé au SGDE / EDMS (par exemple: sgde) et non par l'utilisateur postgres. Il est donc essentiel que ce rôle de connexion dispose des droits appropriés (voir la section Configuration de connexion du serveur et des permissions des clients du Guide d'installation SGDE / EDMS). De plus, installateur_vm_ts.py fait appel à l'interpréteur python et au client psql. Il faut donc porter une attention particulière à la section traitant de l'initialisation des chemins du Guide d'installation du SGDE / EDMS.

installateur_vm_ts.py utilise un ensemble de fichiers gabarits qui sert à produire un script SQL complet de création des vues matérialisées utilisant les données de bouée fournies. Le script SQL final se nomme script_creation_vm_ts.sql et est sauvegardé dans le répertoire à partir duquel est lancé l'installateur.

Le travail effectué par script_creation_vm_ts.sql se résume à trois grandes étapes:
  1. insérer toutes les données nécessaires dans les tables du SGDE / EDMS qui seront utilisées par les requêtes des vues standard. Ces données se trouvent dans le fichier nommé gabarit_weds_ts_exemple_data.sql;
  2. créer les vues standard qui serviront par la suite à créer les tables des vues matérialisées;
  3. faire les appels appropriés à la fonction create_matview() pour créer les tables des vues matérialisées et y insérer les données.


En plus du script de création des vues matérialisées script_creation_vm_ts.sql, l'installateur crée deux scripts SQL additionnels soit exemple_query_ts.sql qui est un script SQL permettant d'interroger les vues matérialisées et example_refresh_matviews.sql qui permet de faire une mise à jour du contenu des vues matérialisées.

Dans la documentation d'installation qui suit, la variable <chemin_install> représente le chemin absolu ou relatif du répertoire contenant le script d'installation installateur_vm_ts.py.

Sous Linux on ouvre un terminal et on tape les commandes suivantes:
 
    $> <chemin_install>/installateur_vm_ts.py
     
 


Sous Windows on ouvre une fenêtre Invite de commandes (ou Exécuter->cmd) et on y entre:


    $>chcp 1252     # Passer à l'encodage Windows-1252
    $> <chemin_install>\installateur_vm_ts.py




L'installateur demandera alors de préciser les différents paramètres de connexion à votre SGDE / EDMS:
Nom (ou adresse IP) du serveur de base de données:
Nom ou adresse IP de la machine sur laquelle a été installé le serveur PostgreSQL. Si l'installateur est exécuté sur la même machine que le serveur de bases de données, on utilise localhost comme nom de machine. Il n'y a pas de valeur par défaut.
Nom du rôle utilisateur pour votre SGDE [sgde]:
Utilisateur de PostgreSQL ayant le droit de se connecter et d'administrer le SGDE / EDMS. Cet utilisateur a été créé lors de l'installation du SGDE / EDMS. Valeur par défaut: sgde.
Nom de la base de données pour votre SGDE [sgde]:
Nom qui a été attribué à la base de données. Valeur par défaut: sgde.
Nom du schéma pour les données [sgde]:
Nom qui a été attribué au schéma à l'intérieur duquel ont été créées les tables et procédures principales du SGDE / EDMS. Valeur par défaut: sgde.



Lorsque tous les paramètres nécessaires ont été fournis, installateur_vm_ts.py produit un script SQL (script_creation_vm_ts.sql) dans le répertoire courant puis fait un appel au programme psql qui se connecte au serveur PostgreSQL en utilisant ce script comme fichier de directives. Au moment de la connexion psql demandera le mot de passe du rôle de connexion au SGDE / EDMS pour se connecter directement à la base de données afin d'y insérer l'échantillon de données et créer les vues et vues matérialisées nécessaires à la diffusion des données de bouées vers un service WEDS. Finalement, l'installateur créera les deux fichiers SQL mentionnés ci-dessus: exemple_query_ts.sql et example_refresh_matviews.sql.


Exemple

Dans cet exemple, nous allons installer les vues matérialisées des données de bouée dans un SGDE / EDMS qui a été créé en utilisant les paramètres suivants:

Le serveur de base de données tourne sur la machine locale (localhost).

   $>./installateur_vm_ts.py
   Nom (ou adresse IP) du serveur de base de donnees: localhost
   Nom du role utilisateur pour votre SGDE [sgde]: admin_env
   Nom de la base de donnees pour votre SGDE [sgde]: bd_env
   Nom du schema pour les donnees [sgde]: bd_env
   
   Voulez-vous modifier ces parametres? [n | o] n
   Mot de passe pour l'utilisateur admin_env : *******




Lors du chargement de l'échantillon de données et de la création des vues et vues matérialisées, de nombreux messages émanant du serveur seront affichés à l'écran et le chargement sera passablement long car on insère plus de 11 300 données dans la table donnees_continues du SGDE / EDMS pour finalement produire une table de vue matérialisée mv_tsmeasurement qui, elle aussi, contient plus de 11300 lignes.
INSERT 0 1
INSERT 0 1
INSERT 0 1
INSERT 0 1
INSERT 0 1
INSERT 0 1
INSERT 0 1
   .
   .
   .
psql:script_creation_vm_ts.sql:11505: ERREUR:  Materialized view bd_env.MV_TSPROJECT does not exist.
psql:script_creation_vm_ts.sql:11507: ERREUR:  la vue « v_tsproject » n'existe pas
CREATE VIEW
 create_matview 
----------------
 
(1 ligne)

psql:script_creation_vm_ts.sql:11563: NOTICE:  ALTER TABLE / ADD PRIMARY KEY créera un index implicite « mv_tsproject_pkey » pour la table « mv_tsproject »
ALTER TABLE
GRANT
psql:script_creation_vm_ts.sql:11598: ERREUR:  Materialized view bd_env.MV_TSSTATION does not exist.
psql:script_creation_vm_ts.sql:11600: ERREUR:  la vue « v_tsstation » n'existe pas
CREATE VIEW
 create_matview 
----------------
 
(1 ligne)

psql:script_creation_vm_ts.sql:11656: NOTICE:  ALTER TABLE / ADD PRIMARY KEY créera un index implicite « mv_tsstation_pkey » pour la table « mv_tsstation »
ALTER TABLE
CREATE INDEX
GRANT
psql:script_creation_vm_ts.sql:11691: ERREUR:  Materialized view bd_env.MV_TSMISSION does not exist.
psql:script_creation_vm_ts.sql:11692: ERREUR:  la vue « v_tsmission » n'existe pas
CREATE VIEW
 create_matview 
----------------
 
(1 ligne)

psql:script_creation_vm_ts.sql:11748: NOTICE:  ALTER TABLE / ADD PRIMARY KEY créera un index implicite « mv_tsmission_pkey » pour la table « mv_tsmission »

ALTER TABLE
GRANT
psql:script_creation_vm_ts.sql:11780: ERREUR:  Materialized view bd_env.MV_TSPARAMETERLIST does not exist.
psql:script_creation_vm_ts.sql:11782: ERREUR:  la vue « v_tsparameterlist » n'existe pas
CREATE VIEW
 create_matview 
----------------
 
(1 ligne)

psql:script_creation_vm_ts.sql:11809: NOTICE:  ALTER TABLE / ADD PRIMARY KEY créera un index implicite « mv_tsparameterist_pkey » pour la table « mv_tsparameterlist »
ALTER TABLE
CREATE INDEX
GRANT
psql:script_creation_vm_ts.sql:11843: ERREUR:  Materialized view bd_env.MV_TSMEASUREMENT does not exist.
psql:script_creation_vm_ts.sql:11845: ERREUR:  la vue « v_tsmeasurement » n'existe pas
CREATE VIEW
 create_matview 
----------------
 
(1 ligne)

CREATE INDEX
CREATE INDEX
CREATE INDEX
GRANT


Ces messages, y compris les messages d'erreurs sont normaux et peuvent être ignorés.

Pour vérifier que l'installation s'est bien déroulée, on peut se connecter à la base de données à l'aide du client psql et faire quelques requêtes pour afficher les propriétés des nouveaux objets créés:


   $>psql -U admin_env -d bd_env -h localhost
   Mot de passe pour l'utilisateur admin_env : ******** 
   psql (8.4.3)
   Saisissez « help » pour l'aide.
   bd_env=> select * from matviews;
             mv_name          |          v_name          |         last_refresh          
   ---------------------------+--------------------------+-------------------------------
    bd_env.MV_TSPROJECT       | bd_env.V_TSPROJECT       | 2010-07-06 16:42:58.770107-04
    bd_env.MV_TSSTATION       | bd_env.V_TSSTATION       | 2010-07-06 16:42:59.022285-04
    bd_env.MV_TSMISSION       | bd_env.V_TSMISSION       | 2010-07-06 16:42:59.280503-04
    bd_env.MV_TSPARAMETERLIST | bd_env.V_TSPARAMETERLIST | 2010-07-06 16:43:17.5948-04
    bd_env.MV_TSMEASUREMENT   | bd_env.V_TSMEASUREMENT   | 2010-07-06 16:43:17.869788-04
   (5 lignes)

    bd_env=> select count(*) from donnees_continues;
     count 
    -------
     11384
   (1 ligne)

   bd_env=> select count(*) from mv_tsmeasurement;
    count 
   -------
    11384
  (1 ligne)

   bd_env=>\q 
   $>
   



On peut aussi utiliser le client graphique pgAdmin III pour effectuer ces requêtes.

Utilisation de example_query_ts.sql

Tel que mentionné plus tôt, installateur_vm_ts.py produit un script SQL permettant d'interroger les tables des vues matérialisées. On peut aussi utiliser ce script pour s'assurer que l'installation a bien fonctionné. Le script example_query_ts.sql extrait l'information décrivant le projet, la mission et la station se rapportant aux données de l'échantillon puis, affiche les données elles-mêmes pour la journée du 9 juin 2005.

On peut utiliser example_query_ts.sql de la façon suivante. Notez qu'ici, on bascule en mode affichage étendu (commande \x):
$>psql -U admin_env -d bd_env -h localhost
Mot de passe pour l'utilisateur admin_env : ******** 
psql (8.4.3)
Saisissez « help » pour l'aide.
bd_env=> \x
Affichage étendu activé.
env_bd=>
bd_env=> \i example_query_ts.sql
 
-[ RECORD 1 ]-		     +---------------------------------------------------------------------------------------------------------------------------
project_id    | BOUEES_ISMER
description   | Programme de bouées océananographiques dans le golfe du Saint-Laurent en collaboration avec l'Institut Maurice-Lamontagne.
leader        | admin_env
date_min      | 2005-06-09 00:18:19
date_max      | 2005-06-23 19:48:30
latitude_min  | 49.2420
latitude_max  | 49.2443
longitude_min | -66.1932
longitude_max | -66.1915
depth_min     | 0.5000
depth_max     | 0.5000

-[ RECORD 1 ]-+------------------------
mission_id    | BOUEE2005
project_id    | BOUEES_ISMER
description   | Bouées Océanographiques
leader        | admin_env
date_min      | 2005-06-09 00:18:19
date_max      | 2005-06-23 19:48:30
latitude_min  | 49.2420
latitude_max  | 49.2443
longitude_min | -66.1932
longitude_max | -66.1915
depth_min     | 0.5000
depth_max     | 0.5000

-[ RECORD 1 ]----+------------------------------------------------
station_id       | 72271
mission_id       | BOUEE2005
date_min         | 2005-06-09 00:18:19
date_max         | 2005-06-23 19:48:30
latitude         | 49.2431500000000000
longitude        | -66.1923500000000000
depth_min        | 0.5000
depth_max        | 0.5000
archive_filename | MMOB_BOUEE2005_COURANTDEGASPE_ISMER1_METOCE.ODF
archive_filetype | ODF-MMOB

-[ RECORD 1 ]--+---------------------
station_id     | 72271
parameter_id   | 342795
depth          | 0.5000
datetime       | 2005-06-09 00:18:19
scan_number    | 1
parameter_code | DENS
measured_value | 1019.5300
qc_flag        | 0
latitude       | 49.2431500000000000
longitude      | -66.1923500000000000
-[ RECORD 2 ]--+---------------------
station_id     | 72271
parameter_id   | 342795
depth          | 0.5000
datetime       | 2005-06-09 00:33:19
scan_number    | 2
parameter_code | DENS
measured_value | 1019.5400
qc_flag        | 0
latitude       | 49.2431500000000000
longitude      | -66.1923500000000000
-[ RECORD 3 ]--+---------------------
      
      .
   	.
   	.

-[ RECORD 285 ]+---------------------
station_id     | 72271
parameter_id   | 342802
depth          | 0.5000
datetime       | 2005-06-09 23:48:20
scan_number    | 95
parameter_code | TE90
measured_value | 10.2000
qc_flag        | 0
latitude       | 49.2431500000000000
longitude      | -66.1923500000000000

-[ RECORD 1 ]--+-----------------------------------------------------------------------------------
station_id     | 72271
parameter_code | WDIR
description    | Direction du vent. Unité: degrés.
latitude_min   | 49.2431500000000000
latitude_max   | 49.2431500000000000
longitude_min  | -66.1923500000000000
longitude_max  | -66.1923500000000000
depth_min      | -3.1000
depth_max      | -3.1000
date_min       | 2005-06-09 00:18:19
date_max       | 2005-06-23 19:48:30
-[ RECORD 2 ]--+-----------------------------------------------------------------------------------
station_id     | 72271
parameter_code | DENS
description    | Densité de l'eau de mer.  Unités: 'kg/m**3'
latitude_min   | 49.2431500000000000
latitude_max   | 49.2431500000000000
longitude_min  | -66.1923500000000000
longitude_max  | -66.1923500000000000
depth_min      | 0.5000
depth_max      | 0.5000
date_min       | 2005-06-09 00:18:19
date_max       | 2005-06-23 19:48:30
      
      .
   	.
   	.

-[ RECORD 8 ]--+-----------------------------------------------------------------------------------
station_id     | 72271
parameter_code | PSAL
description    | Salinité pratique de l'eau de mer.  Unités: ' '
latitude_min   | 49.2431500000000000
latitude_max   | 49.2431500000000000
longitude_min  | -66.1923500000000000
longitude_max  | -66.1923500000000000
depth_min      | 0.5000
depth_max      | 0.5000
date_min       | 2005-06-09 00:18:19
date_max       | 2005-06-23 19:48:30

bd_env=>\q 



Utilisation de example_refresh_matviews.sql

Dans l'implantation des vues matérialisées présentée ici, lorsque des données sont ajoutées ou supprimées des tables servant à alimenter une vue matérialisée, le contenu des tables de cette vue matérialisée n'est pas automatiquement mis à jour. La mise à jour des vues matérialisées peut être réalisée de plusieurs façons. Le projet SGDE / EDMS fournit, à titre d'exemple, un script mettant en oeuvre l'approche dite de l'«instantané» (snapshot) telle que décrite dans la documentation des vues mtérialisées de Jonathan Gardner. Ce script, example_refresh_matviews.sql qui est créé par installateur_vm_ts.py fait les appels appropriés à la fonction refresh_matview():

select refresh_matview('bd_env.MV_TSMEASUREMENT');      
select refresh_matview('bd_env.MV_TSMISSION');          
select refresh_matview('bd_env.MV_TSPARAMETERLIST');    
select refresh_matview('bd_env.MV_TSPROJECT');          
select refresh_matview('bd_env.MV_TSSTATION');        



On peut l'utiliser de la façon suivante:
$>psql -U admin_env -d bd_env -h localhost
Mot de passe pour l'utilisateur admin_env : ******** 
psql (8.4.3)
Saisissez « help » pour l'aide.
bd_env=> select * from matviews;
             mv_name          |          v_name          |         last_refresh          
   ---------------------------+--------------------------+-------------------------------
    bd_env.MV_TSPROJECT       | bd_env.V_TSPROJECT       | 2010-07-06 16:42:58.770107-04
    bd_env.MV_TSSTATION       | bd_env.V_TSSTATION       | 2010-07-06 16:42:59.022285-04
    bd_env.MV_TSMISSION       | bd_env.V_TSMISSION       | 2010-07-06 16:42:59.280503-04
    bd_env.MV_TSPARAMETERLIST | bd_env.V_TSPARAMETERLIST | 2010-07-06 16:43:17.5948-04
    bd_env.MV_TSMEASUREMENT   | bd_env.V_TSMEASUREMENT   | 2010-07-06 16:43:17.869788-04
   (5 lignes)
   
bd_env=>\i example_refresh_matviews.sql
  refresh_matview 
-----------------
 
(1 ligne)

 refresh_matview 
-----------------
 
(1 ligne)

 refresh_matview 
-----------------
 
(1 ligne)

 refresh_matview 
-----------------
 
(1 ligne)

 refresh_matview 
-----------------
 
(1 ligne)
 
bd_env=> select * from matviews;
          mv_name          |          v_name          |         last_refresh          
---------------------------+--------------------------+-------------------------------
 bd_env.MV_TSMEASUREMENT   | bd_env.V_TSMEASUREMENT   | 2010-07-08 13:42:00.5831-04
 bd_env.MV_TSMISSION       | bd_env.V_TSMISSION       | 2010-07-08 13:42:00.976282-04
 bd_env.MV_TSPARAMETERLIST | bd_env.V_TSPARAMETERLIST | 2010-07-08 13:42:00.9844-04
 bd_env.MV_TSPROJECT       | bd_env.V_TSPROJECT       | 2010-07-08 13:42:00.992699-04
 bd_env.MV_TSSTATION       | bd_env.V_TSSTATION       | 2010-07-08 13:42:01.009417-04
(5 lignes)

 bd_env=>\q

Diffusion des données via une service WEDS

A compléter

Informations complémentaires



Vous trouverez ici le manuel de Documentation de PostgreSQL 8.4 (en anglais).

Guide d'installation du SGDE / EDMS.

Guide d'installation des vues matérialisées sous PostgreSQL

Un article traitant de la gestion des vues matérialisées avec PostgreSQL, par Jonathan Gardner.