PostGRESQL. Un S.G.B.D.R. Libre Un univers normalisé. Installation Configuration. Comparatif. Outils. Mise en place Création des tables



Documents pareils
Réplication E-maj Foreign Data Wrapper PostGIS PostgreSQL-f

Laurent Jégou 07/12/2012 M2 Sigma

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Langage SQL : créer et interroger une base

Laurent Jégou novembre 2014 M2 Sigma U351_33 WebMapping. Séance 2 Les systèmes de gestion de bases de données spatiales : L'exemple de PostGIS

Bases de Données relationnelles et leurs systèmes de Gestion

CREATION WEB DYNAMIQUE

TP3 : Creation de tables 1 seance

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Le langage SQL (première partie) c Olivier Caron

Création et Gestion des tables

Bases de données relationnelles

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Auto-évaluation Oracle: cours de base

Olivier Mondet

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

Le Langage De Description De Données(LDD)

I4 : Bases de Données

GL BE FLYER. Chef de projet de l équipe : SCIONICO Pierre

Encryptions, compression et partitionnement des données

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Optimisations des SGBDR. Étude de cas : MySQL

Installation d'un serveur FTP géré par une base de données MySQL

TP Contraintes - Triggers

Cours: Administration d'une Base de Données

Installation personnalisée d'oracle 10g

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Stockage du fichier dans une table mysql:

Responsabilités du client

Date : NOM Prénom : TP n /5 DE WINDOWS SERVEUR

PHP 5. La base de données MySql. A. Belaïd 1

SQL Historique

PostGIS, un module de PostgreSQL pour les données spatiales

Les Géodatabases en 9.2

Architecture de la plateforme SBC

Application web de gestion de comptes en banques

Ora2Pg Performances. (C) 2013 Gilles Darold

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Mise en oeuvre d'une base de données mono-utilisateur avec SQLite

Les Utilisateurs dans SharePoint

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

Sommaire. Etablir une connexion avec une base de données distante sur PostGreSQL

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Les BASES de DONNEES dans WampServer

Master Exploration Informatique des données DataWareHouse

Gestion de base de données

Raja Bases de données distribuées A Lire - Tutoriel

Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server

Historisation des données

I. MySQL : Serveur et SGBD

Compétences Business Objects

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

Le langage SQL Rappels

Pratique et administration des systèmes

Tests de performance du matériel

Introduction au Système de Gestion de Base de Données et aux Base de Données

Bases de SQL. Hacks 1-6 CHAPITRE UN

Test de HSQLDB et Comparatif avec Sqlite

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Présentation du module Base de données spatio-temporelles

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Cours Bases de données 2ème année IUT

A QUOI SERVENT LES BASES DE DONNÉES?

1/ Présentation de SQL Server :

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

//////////////////////////////////////////////////////////////////// Administration bases de données

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012

Les bases de données

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Le Langage SQL version Oracle

Devoir Data WareHouse

BASES DE DONNEES TP POSTGRESQL

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

Administration des bases de données relationnelles Part I

Maarch V1.4

Modélisation et Gestion des bases de données avec mysql workbench

TRUECRYPT SUR CLEF USB ( Par Sébastien Maisse 09/12/2007 )

Intégrité des données

MODE OPERATOIRE OPENOFFICE BASE

Tutorial créer une machine virtuell.doc Page 1/9

PostgreSQL, le cœur d un système critique

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Du 10 Fév. au 14 Mars 2014

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Bases de Données Avancées

STATISTICA Version 12 : Instructions d'installation

SQL Server Administration d'une base de données transactionnelle avec SQL Server Management Studio (édition enrichie de vidéos)

Tutorial sur SQL Server 2000

Moteur de réplication de fichiers BackupAssist

ArcGIS 10.1 for Server

SQL Express face à la concurrence

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Installation des moteurs SQL Pour Micro-SESAME

Hébergement WeboCube. Un système performant et sécurisé. Hébergement géré par une équipe de techniciens

Transcription:

PostGRESQL Un S.G.B.D.R. Libre Un univers normalisé Installation Configuration PostgreSQL s'efforce de repondre aux normes ISO et Comparatif aux normes de l'ogc pour sa Outils cartouche spatiale Mise en place Création des tables

Installation - l'installation se fait par un assistant - la configuration sur 2 fichiers textes - et l'administration avec pgadmin3 et plsql Installation assistée Configuration par fichier Passons a l'installation

Création d'un compte dédié La première partie est la création d'un compte dédié pour postgresql, un compte de type utilisateur. On peut donc lui donner des droits au niveau meme de windows, donc tres interessant pour la gestion de domaine et la sécurité.

On trouve ensuite une fenetre avec les differents modules que l'on peut installer. Comme PostgreSQL est libre, beaucoup de module se developpent, cette liste se complète avec les versions. Choix des compléments

Et voici le module le plus abouti, PostGIS, destiné au géomaticien, cette «cartouche spatiale» comme on l'appelle permet de stocker dans attributs particuliés. On y reviendra plus loin pour le plaisir des Sigistes. Activation de la capsule spatiale

Fichiers de Configuration C:\Program Files\PostgreSQL\8.1\data\postgresql.conf Ce premier fichier contient principalement les configurations du serveur postgresql. Ci-dessous les lignes les plus importantes, les adresses d'ecoutes, le port et le maximum de connexion.

Fichiers de Configuration C:\Program Files\PostgreSQL\8.1\data\postgresql.conf C:\Program Files\PostgreSQL\8.1\data\pg_hba.conf Le second fichier est particulièrement destiné aux acces a la base de données, sur ces lignes on peut déterminer qui a droit a quel base et a partir d'ou. Interessant pour la gestion des utilisateurs sur un reseau? non?

Comparatif Ce tableau est a prendre a la legere, il n'est pas basé sur des valeurs exactes. Tableau a titre de comparaison entre les SGBDR. Norme SQL:2003 ISO/IEC 9075 : 164 clauses PostgreSQL 150/164 MySQL Access SQL Sécurité Intégrité Fonction Portable Station Cout Sur cette ligne, on compare le respect de la norme SQL.PostgreSQL respecte 150 sur 164 clauses de la norme ISO 2003. C'est un exellent résultat, d'autant que postgresql va encore evoluer. PostgreSQL Oracle

Comparatif Ce tableau est a prendre a la legere, il n'est pas basé sur des valeurs exactes. Tableau a titre de comparaison entre les SGBDR. Norme SQL:2003 ISO/IEC 9075 : 164 clauses PostgreSQL 150/164 MySQL Access SQL Sécurité Intégrité Fonction Portable Station Cout Sur cette ligne, on compare la sécurité des SGBD. Comme on le voit postgresql est bien sécurisé, on peut gerer des roles, des utilisateurs et les droits, des droits sur les tables mais pas sur les colonnes. PostgreSQL Oracle

Comparatif Ce tableau est a prendre a la legere, il n'est pas basé sur des valeurs exactes. Tableau a titre de comparaison entre les SGBDR. Norme SQL:2003 ISO/IEC 9075 : 164 clauses PostgreSQL 150/164 MySQL Access SQL Sécurité Intégrité Fonction Portable Station Cout Sur cette ligne, on compare l'integrite de la base. On peut gerer les contraintes d'integrites sous postgresql. On ne peut pas encore faire de snapshot entre des bases ou alors je ne l'ai pas trouvé. Toutefois je pose le doute sur cette affirmation, il faut explorer le module DBLink. PostgreSQL Oracle

Comparatif Ce tableau est a prendre a la legere, il n'est pas basé sur des valeurs exactes. Tableau a titre de comparaison entre les SGBDR. Norme SQL:2003 ISO/IEC 9075 : 164 clauses PostgreSQL 150/164 MySQL Access SQL Sécurité Intégrité Fonction Portable Station Cout Ici, postgresql permet les triggers, les vues, les procedures. Bref le necessaire, pour des bases d'un bon niveau. PostgreSQL Oracle

Comparatif Ce tableau est a prendre a la legere, il n'est pas basé sur des valeurs exactes. Tableau a titre de comparaison entre les SGBDR. Norme SQL:2003 ISO/IEC 9075 : 164 clauses PostgreSQL 150/164 MySQL Access SQL Sécurité Intégrité Fonction Portable Station Cout On en vient a la portabilité, PostgreSQL existe sous linux et windows, un bon point. PostgreSQL Oracle

Comparatif Ce tableau est a prendre a la legere, il n'est pas basé sur des valeurs exactes. Tableau a titre de comparaison entre les SGBDR. Norme SQL:2003 ISO/IEC 9075 : 164 clauses PostgreSQL 150/164 MySQL Access SQL Sécurité Intégrité Fonction Portable Station Cout Ici, c'est le matérial necessaire que l'on compare. PostgreSQL est tres leger malgre toutes ses fonctionnalités, un pc 800Mhz, 256Mo de memoire. En comparaison Oracle ne tournera pas correctement sur un pc a moins de 2Ghz et 1Go de memoire, et c'est bien le minimum. PostgreSQL Oracle

Comparatif Ce tableau est a prendre a la legere, il n'est pas basé sur des valeurs exactes. Tableau a titre de comparaison entre les SGBDR. Norme SQL:2003 ISO/IEC 9075 : 164 clauses PostgreSQL 150/164 MySQL SQL Sécurité Intégrité Fonction Portable Station Cout PostgreSQL est gratuit! Access PostgreSQL Oracle

Outil PGADMIN 3 PGAdmin3 est une interface d'administration, il permet aussi d'acceder aux fichiers de configuration et de gerer les bases, les roles,...etc... Interface d'administration

Outil - PLSQL Ligne de commande : PLSQL = SQLplus de Oracle Batch - Script de maintenance Cet outil s'apparente au SQLPlus de Oracle, interface en ligne de commande. Destiné principalement aux scripts de maintenances.

Mise en place Pour créer une base de données il faut d'abord definir son propriétaire. Un Propriétaire

Mise en place Il faut ensuite definir l'espace disque ou sera stocké la base de données. Un Emplacement Un Propriétaire

Mise en place Et on termine en créant notre base. J'utilise ici le template_postgis afin d'avoir toutes les fonctions de la cartouche spatiale. Cet option a changé avec la version 8.2. Des Bases Un Emplacement Un Propriétaire

CREATION DE TABLE On dispose de plusieurs manieres pour créer nos tables. En sql ou avec l'assistant. CREATE TABLE etudiant (etu_id int NOT NULL, etu_nom varchar(50), etu_prenom varchar(50)); CREATE TABLE division (div_id int NOT NULL, div_nom varchar(50)); CREATE TABLE batiment (bat_id int NOT NULL, bat_nom varchar(50));

Petit exemple de creation en SQL CREATION DE TABLE CREATE TABLE etudiant (etu_id int NOT NULL, etu_nom varchar(50), etu_prenom varchar(50)); CREATE TABLE division (div_id int NOT NULL, div_nom varchar(50)); CREATE TABLE batiment (bat_id int NOT NULL, bat_nom varchar(50)); ALTER TABLE etudiant ADD CONSTRAINT PK_etudiant PRIMARY KEY (etu_id); ALTER TABLE division ADD CONSTRAINT PK_division PRIMARY KEY (div_id); ALTER TABLE batiment ADD CONSTRAINT PK_batiment PRIMARY KEY (bat_id); CREATE SEQUENCE etu_id_seq INCREMENT 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1;...

Voyons maintenant la cartouche spatiale la plus complete,la plus performante a mon gout. Au point d'etre la base de données de l'ign! CARTOUCHE POSTGIS Qu'est ce au juste? PostGIS est a la limite de devenir un logiciel SIG a lui seul. Il possede le stockage de tous les formats vectoriels, les projections, les fonctions, les calculs...etc... il ne manque plus que l'interface. des formats spécifiques des opérations sur les géométries des calculs et des informations des projections des outils En pratique

FORMATs SIG On retrouve les formats vectoriels de SIG en 2D ou 3D sous la forme d'un champ dans une table. POINT LINESTRING POLYGON MULTIPOINT MULTISTRING MULTIPOLYGON GEOMETRYCOLLECTION

OPERATIONS Distance(geometry, geometry) Equals(geometry, geometry) Disjoint(geometry, geometry) Intersects(geometry, geometry) Touches(geometry, geometry) Crosses(geometry, geometry) Within(geometry A, geometry B) Overlaps(geometry, geometry) Contains(geometry A, geometry B) Relate(geometry, geometry, intersectionpatternmatrix) Relate(geometry, geometry) On retrouve les principales opérations sur les formes geometriques, utilisable en SQL.

CALCULS et informations On trouve aussi une quantite de calculs, d'informations sur les geometries. Toujours en SQL. Centroid(geometry) Area(geometry) Length(geometry) PointOnSurface(geometry) Boundary(geometry) Buffer(geometry, double, [integer]) ConvexHull(geometry) Intersection(geometry, geometry) SymDifference(geometry A, geometry B) Difference(geometry A, geometry B) GeomUnion(geometry, geometry) GeomUnion(geometry set) MemGeomUnion(geometry set)... AsText(geometry) SRID(geometry) Dimension(geometry) Envelope(geometry) IsEmpty(geometry) IsClosed(geometry) IsRing(geometry) GeometryN(geometry,int) NumPoints(geometry) PointN(geometry,integer) ExteriorRing(geometry) InteriorRingN(geometry,integer) EndPoint(geometry)...

PROJECTIONS TABLE : spatial_ref_sys SELECT srtext FROM spatial_ref_sys WHERE srtext LIKE '%France%' ED50 / France EuroLambert NTF (Paris) / Lambert Nord France NTF (Paris) / Lambert Centre France NTF (Paris) / Lambert Sud France NTF (Paris) / France I NTF (Paris) / France II NTF (Paris) / France III NTF (Paris) / France IV NTF (Paris) / Nord France NTF (Paris) / Centre France NTF (Paris) / Sud France PostGIS ne gere pas seulement les formes geometriques, il permet aussi de gerer les projections ET les reprojections. Une table contient toutes les projections «spatial_ref_sys», voici les projections sur la france.

PROJECTIONS TABLE : spatial_ref_sys SELECT srtext FROM spatial_ref_sys WHERE srtext LIKE '%France%' ED50 / France EuroLambert NTF (Paris) / Lambert Nord France NTF (Paris) / Lambert Centre France NTF (Paris) / Lambert Sud France NTF (Paris) / France I NTF (Paris) / France II NTF (Paris) / France III NTF (Paris) / France IV NTF (Paris) / Nord France NTF (Paris) / Centre France NTF (Paris) / Sud France Il y a 3162 projections dans cette table, on peut aussi y ajouter nos propres projections. 3162

Outils PostgreSQL Shape PostGIS vient avec 2 outils. Le premier va nous permettre de transformer nos fichiers vectoriels shape en table dans notre base de données. Et a l'inverse d'exporter nos tables en fichier shape.

Outils Le second outil est plutot une optimization, executer un vacuum permet d'optimizer nos tables spatiales. Les requetes sur les geometries seront plus rapides. PostgreSQL VACUUM Shape

En pratique SELECT AddGeometryColumn ( 'etudiant', 'spatial', 27582, 'POINT', 2 ) ; Voici une requete pour inserer un champ geometrique dans une table. Ici, un champ 'spatial' dans la table etudiant, de type point en 2 dimension avec une projection d'id 27582 «France Zone2».

En pratique SELECT AddGeometryColumn ( 'etudiant', 'spatial', 27582, 'POINT', 2 ) ; INSERT INTO etudiant( etu_id, etu_nom, etu_prenom, spatial ) VALUES ( nextval('etu_id_seq'), 'sorel', 'johann', GeomFromText( 'POINT(2 5)',27582 ) ); Ici, l'insertion d'un enregistrement dans la table etudiant.

En pratique SELECT AddGeometryColumn ( 'etudiant', 'spatial', 27582, 'POINT', 2 ) ; INSERT INTO etudiant( etu_id, etu_nom, etu_prenom, spatial ) VALUES ( nextval('etu_id_seq'), 'sorel', 'johann', GeomFromText( 'POINT(2 5)',27582 ) ); SELECT nom, prenom, AsText(spatial) AS geom FROM etudiant ; On recupere nos formes geometriques au format texte «AsText(spatial)». On peut aussi les recuperer au format binaire, norme de l'ogc. Notons que plusieurs librairies sont presentes (notamment java) pour traiter ces champs particuliers.

En pratique SELECT AddGeometryColumn ( 'etudiant', 'spatial', 27582, 'POINT', 2 ) ; INSERT INTO etudiant( etu_id, etu_nom, etu_prenom, spatial ) VALUES ( nextval('etu_id_seq'), 'sorel', 'johann', GeomFromText( 'POINT(2 5)',27582 ) ); SELECT nom, prenom, AsText(spatial) AS geom FROM etudiant ; SELECT * FROM etudiant WHERE intersects ( spatial, Expand(GeomFromText('POINT(1000 1000)',-1),100) ) ; Une requete classique selectionnant les points en intersection avec un buffer de 100 autour du point de coordonnées 1000,1000.

En pratique SELECT AddGeometryColumn ( 'etudiant', 'spatial', 27582, 'POINT', 2 ) ; INSERT INTO etudiant( etu_id, etu_nom, etu_prenom, spatial ) VALUES ( nextval('etu_id_seq'), 'sorel', 'johann', GeomFromText( 'POINT(2 5)',27582 ) ); SELECT nom, prenom, AsText(spatial) AS geom Une opération de reprojection vers la projection FROM etudiant ; 4269. Un bonheur de simplicité. SELECT * FROM etudiant WHERE intersects ( spatial, Expand(GeomFromText('POINT(1000 1000)',-1),100) ) ; SELECT Transform( spatial, 4269 ) FROM etudiant;

En pratique SELECT AddGeometryColumn ( 'etudiant', 'spatial', 27582, 'POINT', 2 ) ; INSERT INTO etudiant( etu_id, etu_nom, etu_prenom, spatial ) VALUES ( nextval('etu_id_seq'), 'sorel', 'johann', GeomFromText( 'POINT(2 5)',27582 ) ); SELECT nom, prenom, AsText(spatial) AS geom FROM etudiant ; Et pour finir, voici comment transformer un fichier shape en table geometrique. SELECT * FROM etudiant WHERE intersects ( spatial, Expand(GeomFromText('POINT(1000 1000)',-1),100) ) ; SELECT Transform( spatial, 4269 ) FROM etudiant; shp2pgsql HYDRO_TRONCON_HYDROGRAPHIQUE hydro > hydro.sql -c -s 27582 psql -d GEO_ETUDIANT -f hydro.sql

Il existe quelques logiciels utilisants PostGIS. On trouve Udig, GvSIG, GRASS...etc... (ou AlterSIG, mon projet actuel) mais pour des raisons de monopole les plus grandes societes (je ne cite pas) tardent a introduire postgis dans leurs logiciels car ils possedent leurs solutions propriétaires basées sur Access ou Oracle. Toutefois ca ne saurait trop tarder, de plus en plus d'utilisateurs se tournent vers postgis (exemple : IGN). Merci pour votre attention. A vous d'aller plus loin dans postgresql. Johann Sorel, Janvier 2007