Module Géomatique et Systèmes d Informations Géographiques



Documents pareils
Les bases de données

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

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

Bases de données relationnelles

SQL Historique

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

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

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

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

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Les Géodatabases en 9.2

Langage SQL : créer et interroger une base

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Les BASES de DONNEES dans WampServer

Information utiles. webpage : Google+ : digiusto/

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

Le Langage SQL version Oracle

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

Glossaire. base de données géographiques Voir géodatabase (GDB).

Le langage SQL Rappels

Olivier Mondet

A QUOI SERVENT LES BASES DE DONNÉES?

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

Le Langage De Description De Données(LDD)

Mise en place des serveurs spatiaux au sein des systèmes d information

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

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

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Création et Gestion des tables

CREATION WEB DYNAMIQUE

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

Structure fonctionnelle d un SGBD

OpenPaaS Le réseau social d'entreprise

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Bases de données - Modèle relationnel

Les bases de données Page 1 / 8

16H Cours / 18H TD / 20H TP

Démonstrateur libre Application des données Open Street Map à l analyse géographique de réseaux de voirie et Transports Collectifs

Historisation des données

I4 : Bases de Données

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

A QUOI SERVENT LES BASES DE DONNÉES?

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

TP Bases de données réparties

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

Cours Base de données relationnelles. M. Boughanem, IUP STRI

TP3 : Creation de tables 1 seance

FileMaker 13. Guide de référence SQL

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

Cours iguess. inotes v10.1

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

Introduction aux SGBDR

1 Introduction et installation

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

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

Cours SQL. Base du langage SQL et des bases de données

Développer une stratégie SIG Entreprise efficace avec ESRI et ArcGIS

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

PHP 4 PARTIE : BASE DE DONNEES

Dossier I Découverte de Base d Open Office

Bases de données élémentaires Maude Manouvrier

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Qu est-ce que ArcGIS?

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Administration des bases de données. Jean-Yves Antoine

Bases de données et sites WEB Licence d informatique LI345

Laurent Jégou 07/12/2012 M2 Sigma

1. Base de données SQLite

CHAPITRE 1 ARCHITECTURE

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR

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

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

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

Partie 0 : Gestion des tablespace et des utilisateurs... 3

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

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Bases de données et sites WEB

BIRT (Business Intelligence and Reporting Tools)

Un SIG collaboratif pour la recherche historique Partie. Partie 1 : Naissance et conception d un système d information géo-historique collaboratif.

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Vincent Augusto

Objectifs du TP : Initiation à Access

Bases de données Cours 1 : Généralités sur les bases de données

Pour les débutants. langage de définition des données

Introduction to PostGIS

Documentation Administrateur

Cours: Administration d'une Base de Données

TP Contraintes - Triggers

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Mysql. Les requêtes préparées Prepared statements

Pratique et administration des systèmes

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

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

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Transcription:

Module Géomatique et Systèmes d Informations Géographiques Pierre Hallot & Roland Billen Unité de Géomatique ULg Cours 1 TP1 TP1 Cours 4 Cours 2 TP2 Cours 3 Cours 2 Cours 3 Cours 2 Cours 4 Cours 1

Modèle de données hybride ou dual Très similaire aux solutions proposées par les logiciels de cartographie Gestion séparée des attributs et des géométries L identifiant géographique devient la clé entre géométries et attributs La géométrie est toujours gérée par un système de gestion de fichiers La principale différence vient de la gestion des attributs Les attributs sont gérés par un SGBD (desktop : Access, Dbase ) Une table principale (relation) où la clé primaire = ID géographique Possibilité de joindre d autres tables grâce à l instruction SQL de jointure Les transactions et les requêtes sur les attributs sont réalisées à travers une interface SQL : Si le résultat de la clause SQL contient un ID géographique : Les géométries correspondantes sont affichées sous la forme d une carte Géom ID Géo = Clé Primaire Attrib

Les géométries peuvent être en format vecteur ou maillé SIG vectoriel Les géométries sont gérées par un système de gestion de fichiers (SGF) Soit format DAO et/ou ASCII Soit, plus généralement, un format binaire propriétaire pour améliorer les performances Position : coordonnées géodésiques ou rectangulaires Relations logiques : Composition admise Pas de relations géométriques ID Géo = SIG maillé Pixel # = L information spatiale est enregistrée dans Clé primaire des fichiers images Les requêtes spatiales sont réalisées par traitement d images Attrib Gestion des attributs par un SGBD Image Les requêtes attributaires sont réalisées par des instructions SQL Modèle du SIG-logiciel ArcView (ESRI) Se présente comme un SIG-logiciel léger (desktop GIS), modulaire et hybride Les nombreux modules sont dédiés à des domaines d application ou à des types de données géographiques particuliers : Street Analyst, Spatial Analyst, etc. Le format natif des données géographiques dans ArcView est le Shapefile Il est constitué de 3 fichiers de même préfixe (choisi par l utilisateur) mais de suffixes différents : 2 pour la géométrie et 1 pour les attributs Main file (suffixe shp) : Collection de coordonnées en 2 (x, y), 3 (x, y, z/m) ou 4-D (x, y, z, m) Présentation séquentielle des entités géographiques Un type seulement de géométrie / fichier (mais nombreux types disponibles) Index file (suffixe shx) : adresses du début de chaque entité géographique dans le fichier principal (pointeurs pour accès direct) dbase file (suffixe dbf) : table principale des valeurs d attributs Un tuple = une entité géographique N séquentiel = ID géographique Transactions et requêtes : interfaces SQL interactives

En-tête de fichier (100 octets) Index file (shx) Adresse (4 octets) Adresse (4 octets) Adresse (4 octets) Adresse (4 octets) Main file (shp) En-tête de fichier (100 octets) En-tête (4 octets) Contenu (longueur variable) En-tête (4 octets) Contenu (longueur variable) En-tête (4 octets) Contenu (longueur variable) En-tête (4 octets) Contenu (longueur variable) Données relatives à une entité spatiale Liste de coordonnées Formats des fichiers d entités spatiales d un Shapefile (ArcView) L interface-utilisateur est constituée d une vue dynamique («View») figurant sous forme cartographique les données spatiales et attributaires rassemblées par projets («Projects») Une vue définit les données géographiques («Themes») qui sont utilisées et la manière de les visualiser («Layouts»), mais elle ne contient pas les données elles-mêmes (vue externe au sens des bases de données) Un thème correspond à une source de données spatiales : ArcView Shapefile, Arc/Info Coverage, image, fichier DXF Gestion. de projets Vue active Table principale ( dbf ) du Shapefile courrant Interface de requête

Modèle géo-relationnel Limites du modèle hybride standard L enregistrement de la géométrie est limité aux positions (coordonnées) et aux relations de composition Réduction sensible des possibilités de requêtes spatiales La prise en compte de la topologie Les requêtes spatiales complexes doivent pouvoir exploiter les relations topologiques Création et enregistrement de la topologie avec les autres caractéristiques géométriques Maintien d une architecture hybride La géométrie (y compris topologie) est stockée dans un format binaire propriétaire et gérée par un SGF Les attributs et les principales relations topologiques sont stockées dans des tables accessibles à l utilisateur, gérées par un SGBD Modèle du SIG logiciel Arc Info (jusqu à la version 7) SIG d entreprise géo-relationnel utilisant les relations topologiques, construit selon une architecture hybride Arc : SGF responsable de la gestion de la géométrie Info : SGBD responsable des tables conservant les attributs et les principales relations topologiques Construction des géométries Primitives topologiques : arcs, points, nœuds isolés et polygones Créées et identifiées par le système Entités géographiques : créées et identifiées par l utilisateur, formées sur base des primitives topologiques : points, polylignes, polygones, réseaux Les attributs sont attachés aux entités géographiques «Coverages» : partie de l espace définie par l utilisateur rassemblant toutes les primitives géométriques relatives à un thème Toutes les informations relatives aux géométries sont stockées sous forme binaire (format propriétaire) et gérées par le logiciel (partie «Arc»)

Gestion des attributs À chaque type d entité géographique est associé une table créée par le logiciel, reprenant : L identifiant de l utilisateur (+ un identifiant interne) Des attributs géométriques créés automatiquement par le système (longueurs, superficies ) Des attributs topologiques lorsque l entité est du type «arc» Ces attributs sont gérés par le SGBD «Info» et accessibles à l utilisateur Coverage : VEG Table associée aux arcs du coverage VEG disponible dans «Info» Tous les attributs mentionnés sont générés par le système W O RH IS KV Y NO SE D FL PG R S AO C E Espace de travail : rassemblant tous les coverages relatifs à une application et le répertoire INFO associé Répertoire INFO reprenant toutes les tables d attributs de chaque coverage de l application Les tables sont des «vues» des fichiers binaires des coverages VEG_Polygone SOLS_Polygone Hydro_Arc Arc Polygone Arc Polygone Arc 1 Coverage rassemblant tous les fichiers relatifs à un thème en format binaire et propriétaire Uniquement accessible au logiciel Accessible à l utilisateur à travers le SGBD

Mode intégré : spatialisation de tables relationnelles Souhait des entreprises d un système unique et transparent Les entreprises «n aiment pas» le modèle hybride : SGF = format propriétaire = boîte noire = dépendance vis-à-vis d un fournisseur ; SGF : ne garantit pas toutes les fonctions attendues d un SI. Un SGBD est souvent déjà présent dans les grandes entreprises pour gérer les autres SI. Rassembler toute l information dans des tables gérées par un SGBD classique : Table spatiale = Identifiant + attributs + géométrie (+ topologie : récent) Conditions Dépassement du simple modèle relationnel : Champ binaire («BLOB») pour stocker la géométrie. Passage au modèle objet-relationnel : nouvelles structures de données (types abstraits), limitation des jointures, etc. Extension des capacités du langage de requête : SQL 3, SQL MM. Normalisation des entités géométriques : Propositions de standards de l OGC (Open Geospatial Consortium) et de l ISO. Rôle du logiciel SIG dans une architecture intégrée Insertion dans une architecture à (2 ou) 3 strates : SGBD + SIG + serveur de réseau. Définition du catalogue, du MCD et des métadonnées : En mode objet : proche des préoccupations de l utilisateur. Reprenant : les classes d objets, leurs relations, les traitements, la documentation sur ces éléments (métadonnées). Chargement de données : Récupération de l existant, contrôle de validité, etc. Applications géographiques spécialisées : Analyse spatiale, cartographie, etc. Serveur de données spatiales (SDS) et interface du SGBD : Spatialisation de tables si nécessaire. Rôle du SGBD Stockage, gestion de toutes les données. Extension spatiale pour la spatialisation de tables. Extension du langage SQL pour les requêtes spatiales simples (90% des applications ). Réseau Internet Server SIG / SDS Geo-SGBD Application client

Modèle du SGBD avec cartouche spatial PostGIS PostGIS est une implémentation du schéma spatial standardisé de l OGC (OGC Simple Features for SQL Specification) pour l enregistrement de données géographiques au sein du SGBD relationnel «PostgreSQL». Projet Open Source développé par Refractions Reseach (Canada). Il est développé comme un jeu de fonctions et de types de données permettant de spatialiser les tables du SGBD relationnel PostgreSQL. Les types de géométries reconnus correspondent aux Simple Features de l OGC, plus les collections hétérogènes, étendus aux dimensions 3D et 4D : Point, LineString, Polygon MultiPoint, MultiString, MultiPolygon GeometryCollection Geometry (collection hétérogène) Les fonctions spatiales comportent des fonctions topologiques, géométriques et d interrogation des caractéristiques spatiales des entités, ainsi que des fonctions d indexation spatiale. La définition et les changements de référentiels sont également standardisés. Exemples de polygones à 1 et 2 rings Exemples de multi-polygones Linestrings uniques (ht) et multiples (bas)

Nom de la table spatialisée Autres attributs non spatiaux Nom de la colonne spatiale Coordonnées des géométries Table_Geometry_Column F_Table_ Catalog F_Table_ Schema F_Table_ Name Geometry_Column F_Geometry_ Column Coord_ Dimension SRID Varchar(256) Varchar(256) Varchar(256) Varchar(256) Integer Integer Varchar(30) Type Non utilisé Par défaut Nom de la table Nom de la Dimensions: par PostGIS dans PostGISspatialisée colonne spatiale2, 3 ou 4 N du SRID Type de géométrie Table_Ref_Sys SRID Auth_Name Auth_SRID SRText Proj4Text Integer Varchar(256) Integer Varchar(2048) Varchar(2048) Pour plus de détails, voir : Manuel PostGIS 1.4.0 http://www.postgis.fr/node/156 Organisme ayant défini le SR N du SR donné par l organisme Définition du SR en format WKT Possibilité de changement de coordonnées

SQL : SQL est un langage standardisé permettant d accéder aux données d une base de donnée ET de manipuler le schéma de celle-ci. Les fonctions SQL servent à interroger et à mettre à jour l information contenue dans un SGBD. SQL fonctionne avec beaucoup de programmes comme Access, DB2, Informix, SQL Server, Oracle, PostGres, Malheureusement : Il existe beaucoup de versions différente de SQL Pour respecter la norme, les mot clés majeurs doivent être identiques Chaque base de donnée à ses fonctions propres pour SQL en plus du standard. (Comme les fonctions spatiales de PostGis). Une base de donnée contient le plus souvent une ou plusieurs tables (relation). Chaque table est identifiée par son nom ( Clients, Commandes, ). Les tables contiennent des tuples (rows) qui représentent les données. Ci-dessous un exemple d une «Personnes» : LastName FirstName Address City Hansen Ola Timoteivn 10 Sandnes Svendson Tove Borgvn 23 Sandnes Pettersen Kari Storgt 20 Stavanger

Avec SQL, il est possible d interroger la BD et d obtenir un ensemble de résultat. Une requête se présente sous la forme suivante : SELECET LastName FROM Personnes Le résultat de cette requête est : LastName Hansen Svendson Pettersen SQL (Structured Query Language) est une syntaxe pour exécuter des requêtes. Mais le SQL inclut également un syntaxe qui permet la mise à jour, l insertion et la suppression de tuples (row). Ces commandes de requêtes et de mise à jour forment ce qui est appelé le langage de manipulation de données (Data Manipulation Language DML) : SELECT extrait des données d une table de BD UPDATE met à jour des données d une table de BD DELETE supprimer des données d une table de BD INSERT INTO insère de nouvelle données d une table de BD

Le langage de définition de donnée (Data definition Language DDL) est une autre partie du langage SQL. Celle-ci permet la création et la supression des tables de la base de donnée. Il permet également la définition d indexes (key), de spécifier des liens entre tables, et d imposer des contraintes sur des tables de la base de donnée. Les fonctions les plus importantes du DDL en SQL sont: CREATE TABLE crée une nouvelle table dans la BD ALTER TABLE alters (modifie) une table dans la BD DROP TABLE supprime une table dans la BD CREATE INDEX crée un indexe sur une table (search key) DROP INDEX - supprime un indexe La clause SELECT est utilisée pour sélectionner des données hors d une table. Le résultat est proposé sous forme de tableau appelé «result-set». Sélectionner uniquement les noms et les prénoms des personnes Syntaxe SELECT column_name(s) FROM table_name SELECT LastName, FirstName FROM Persons Persons LastName FirstName Address City Hansen Ola Timoteivn 10 Sandnes Svendson Tove Borgvn 23 Sandnes Pettersen Kari Storgt 20 Stavanger RESULT LastName Hansen Svendson Pettersen FirstName Ola Tove Kari

Pour sélectionner toutes les colonnes d une relation, on peut utiliser l opérateur *. SELECT * FROM Persons LastName FirstName Address City Hansen Ola Timoteivn 10 Sandnes Svendson Tove Borgvn 23 Sandnes Pettersen Kari Storgt 20 Stavanger Le point virgue est le moyen standard de séparer les requeêtes SQL dans un SGBD.Ceci permet d envoyer plusieurs requêtes successives au serveur de BD. Dans certains cas, il n est pas nécessaire d utiliser le point virgule notamment lorsque les requêtes sont effectuées à partir d un logiciel type MS Access ou pgadmin.

Le mot clé DISTINCT est utilisé pour retourner uniquement les valeurs distinctes d une requête. La clause SELECT retourne toute les tuples. Si l ont veut uniquement les tuples distincts, il faut ajouter le mot clé DISTINCT Syntaxe SELECT DISTINCT column_name(s) FROM table_name SELECT Company FROM Orders Orders Company OrderNumber Sega 3412 W3Schools 2312 Trio 4678 W3Schools 6798 Company Sega W3Schools Trio W3Schools SELECT DISTINCT Company FROM Orders Company Sega W3Schools Trio

La clause WHERE est utilisée pour spécifier un critère de sélection. Pour conditionner la sélection de certaines données, une clause WHERE est ajoutée à la clause SELECT. Syntaxe SELECT column FROM table WHERE column operator value La clause WHERE peut être utilisée avec les opérateurs suivants : Operator Description = Equal <> ou!= Not equal > Greater than < Less than >= Greater than or equal <= Less than or equal BETWEEN Between an inclusive range LIKE Search for a pattern

Pour sélectionner uniquement les personnes qui vivent dans la ville de Sandnes : SELECT * FROM Persons WHERE City='Sandnes' LastName FirstName Address City Year Hansen Ola Timoteivn 10 Sandnes 1951 Svendson Tove Borgvn 23 Sandnes 1978 Svendson Stale Kaivn 18 Sandnes 1980 Pettersen Kari Storgt 20 Stavanger 1960 LastName FirstName Address City Year Hansen Ola Timoteivn 10 Sandnes 1951 Svendson Tove Borgvn 23 Sandnes 1978 Svendson Stale Kaivn 18 Sandnes 1980 Notez que nous utilisons des guillemets simples autours les valeurs conditionnelles. SQL utilise des guillemets simples autours des valeurs textuelles (bien que les doubles sont souvent acceptés). Les valeurs numériques ne doivent pas être insérée entre guillemets. Pour des valeurs textuelles : Correct: SELECT * FROM Persons WHERE FirstName='Tove' Incorrect: SELECT * FROM Persons WHERE FirstName=Tove

La condition LIKE est utilisée pour spécifier un motif à rechercher dans une colonne. Syntaxe SELECT column FROM table WHERE column LIKE pattern Un "%" peut être utilisé pour définir des données manquantes dans le motif à rechercher avant ou après le pattern. La requête suivante va retourner les noms de personnes commençant par un O : SELECT * FROM Persons WHERE FirstName LIKE 'O%' La requête suivante va retourner les prénoms se terminant par la lettre 'a': SELECT * FROM Persons WHERE FirstName LIKE '%a' Idem pour les prénoms contenant un la : SELECT * FROM Persons WHERE FirstName LIKE '%la%'

La clause INSERT INTO est utilisée pour insérer des données dans une relation : Syntaxe INSERT INTO table_name VALUES (value1, value2,...) Il est possible de spécifier les colonnes dans lesquelles on souhaite insérer des données : INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,...) Requête SQL : INSERT INTO Persons VALUES ('Hetland', 'Camilla', 'Hagabakka 24', 'Sandnes') LastName FirstName Address City Pettersen Kari Storgt 20 Stavanger LastName FirstName Address City Pettersen Kari Storgt 20 Stavanger Hetland Camilla Hagabakka 24 Sandnes

LastName FirstName Address City Pettersen Kari Storgt 20 Stavanger Hetland Camilla Hagabakka 24 Sandnes Requête SQL: INSERT INTO Persons (LastName, Address) VALUES ('Rasmussen', 'Storgt 67') LastName FirstName Address City Pettersen Kari Storgt 20 Stavanger Hetland Camilla Hagabakka 24 Sandnes Rasmussen Storgt 67 La clause UPDATE est utilisée pour mettre à jour des données dans une table. Syntaxe UPDATE table_name SET column_name = new_value WHERE column_name = some_value Exemple d ajout d un prénom à la personne appelée "Rasmussen": UPDATE Person SET FirstName = 'Nina' WHERE LastName = 'Rasmussen LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger Rasmussen Storgt 67 LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger Rasmussen Nina Storgt 67

LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger Rasmussen Storgt 67 Nous souhaitons mettre à jour l adresse ET la ville pour une personne spécifique (Rasmussen) : UPDATE Person SET Address = 'Stien 12', City = 'Stavanger' WHERE LastName = 'Rasmussen' LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger Rasmussen Nina Stien 12 Stavanger LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger Rasmussen Nina Stien 12 Stavanger La clause DELETE est utilisée pour supprimer un tuple. Syntaxe DELETE FROM table_name WHERE column_name = some_value "Nina Rasmussen" va être supprimée: DELETE FROM Person WHERE LastName = 'Rasmussen' LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger

Il est possible de supprimer tous les enregistrements d une relation en une fois sans pour autant supprimer la structure de la table (Vider la table). Cela signifie que la structure, les attributs, les contraintes et les indexes resteront inchangés. DELETE FROM table_name Or DELETE * FROM table_name Jointure interne SELECT... FROM <table gauche> [INNER]JOIN <table droite> ON <condition de jointure> Jointure externe SELECT... FROM <table gauche> LEFT RIGHT FULL OUTER JOIN <table droite> ON condition de jointure id_client nom adresse carburant 1 Toto Rue machin GAZOIL 2 Tutu Rue bidule GAZOIL 3 Tata Rue truc GAZ 4 Titi Rue bazar GAZ id_fournisseur nom telephone carburant 1 Marcel 043665751 GAZOIL 2 Henry 043663639 GAZ

id_client nom carburant 1 Toto GAZ 2 Tutu GAZOIL 3 Tata PELLETS 4 Titi BOIS 5 Tete BOIS 6 Tyty GAZ id_fournisseur nom telephone type 1 Marcel 0 GAZOIL 2 Henry 1 GAZ 3 Jules 2 PELLETS 4 Hubert 3 BOIS SELECT * FROM client INNER JOIN fournisseur ON (client.carburant = fournisseur.type) id_client nom carburant id_fournisseur nom_1 telephone type 1 Toto GAZ 2 Henry 1 GAZ 2 Tutu GAZOIL 1 Marcel 0 GAZOIL 3 Tata PELLETS 3 Jules 2 PELLETS 4 Titi BOIS 4 Hubert 3 BOIS 5 Tete BOIS 4 Hubert 3 BOIS 6 Tyty GAZ 2 Henry 1 GAZ id_client nom carburant 1 Toto GAZ 2 Tutu GAZOIL 3 Tata PELLETS 4 Titi BOIS 5 Tete BOIS 6 Tyty GAZ id_fournisseur nom telephone type 5 Napoléon 3 GAZ 1 Marcel 0 GAZOIL 2 Henry 1 GAZ 3 Jules 2 PELLETS 4 Hubert 3 BOIS SELECT * FROM client JOIN fournisseur ON (client.carburant = fournisseur.type) id_client nom carburant id_fournisseur nom_1 telephone type 1 Toto GAZ 5 Napoléon 3 GAZ 1 Toto GAZ 2 Henry 1 GAZ 2 Tutu GAZOIL 1 Marcel 0 GAZOIL 3 Tata PELLETS 3 Jules 2 PELLETS 4 Titi BOIS 4 Hubert 3 BOIS 5 Tete BOIS 4 Hubert 3 BOIS 6 Tyty GAZ 5 Napoléon 3 GAZ 6 Tyty GAZ 2 Henry 1 GAZ

id_client nom carburant 1 Toto GAZ 2 Tutu GAZOIL 3 Tata PELLETS 4 Titi BOIS 5 Tete BOIS 6 Tyty id_fournisseur nom telephone type 1 Marcel 0 GAZOIL 2 Henry 1 GAZ 3 Jules 2 PELLETS 4 Hubert 3 BOIS SELECT * FROM client INNER JOIN fournisseur ON (client.carburant = fournisseur.type) id_client nom carburant id_fournisseur nom_1 telephone type 1 Toto GAZ 2 Henry 1 GAZ 2 Tutu GAZOIL 1 Marcel 0 GAZOIL 3 Tata PELLETS 3 Jules 2 PELLETS 4 Titi BOIS 4 Hubert 3 BOIS 5 Tete BOIS 4 Hubert 3 BOIS id_client nom carburant 1 Toto GAZ 2 Tutu GAZOIL 3 Tata PELLETS 4 Titi BOIS 5 Tete BOIS 6 Tyty id_fournisseur nom telephone type 1 Marcel 0 GAZOIL 2 Henry 1 GAZ 3 Jules 2 PELLETS 4 Hubert 3 BOIS SELECT * FROM client LEFT JOIN fournisseur ON (client.carburant = fournisseur.type) id_client nom carburant id_fournisseur nom_1 telephone type 1 Toto GAZ 2 Henry 1 GAZ 2 Tutu GAZOIL 1 Marcel 0 GAZOIL 3 Tata PELLETS 3 Jules 2 PELLETS 4 Titi BOIS 4 Hubert 3 BOIS 5 Tete BOIS 4 Hubert 3 BOIS 6 Tyty

Fonctions spatiales qui étendent le langage SQL Fonctions propre à PostGis qui ne font pas partie du standard SQL Fonctions utilisées pour effectuer des requêtes sur la composante géométrique des relations Area2d() GeometryType() Distance() WithIn() SELECT FROM WHERE GROUP BY ORDER BY Spécification des colonnes du résultat Spécification des tables sur lesquelles porte l'ordre Filtre portant sur les données (conditions à remplir pour que les lignes soient présentes dans le résultat) Définition d'un groupe (sous ensemble) Tri des données du résultat

Server : 139.165.44.22 BD : TD_SQL User : postgres Password : postgres Port : 5432

Comment sont stockées les données géométriques avec PostGIS? SELECT AsText(the_geom), Srid(the_geom),the_geom FROM personnes ; Quelles sont les aires et les périmètres des bâtiments? SELECT data as batiment, area2d(the_geom) as Aire, perimeter(the_geom) as Perimetre FROM buildings SELECT data as batiment, cast(area2d(the_geom) as decimal(15,2)) m carre as Aire, cast(perimeter(the_geom) as decimal(15,2)) m as Perimetre FROM buildings Qui est dans le bâtiment Résidence des Mousquetaires? select personnes.data as personnes_dans_batiment_2 from personnes,buildings where within(personnes.the_geom,buildings.the_geom) and buildings.data = Résidence des Mousquetaires ; Quelles distances séparent les bâtiments? select h.data as batiment_1,t.data as batiment_2, Distance(t.the_geom,h.the_geom) as distance_entre_batiment from buildings t, buildings h where h.data!=t.data;

Combien de points composent chaque objet de la table great_roads? SELECT data,astext(the_geom),numpoints(the_geom) FROM great_roads Dans la table great_roads, quels sont les premier et dernier point de la Rue Paul Valéry? SELECT data,astext(the_geom),astext(startpoint(the_geom)),astext(en dpoint(the_geom)) FROM great_roads where data like %Valéry% Quels sont les coordonnées des centres des bâtiments (buildings)? SELECT data AS "Bâtiment",AsText(Centroid(the_geom)) AS "Centre",Distance(the_geom,Centroid (the_geom)) from buildings; Quels sont les points d intersection entre les petites routes (small_roads) et les grandes routes (great_roads)? SELECT s.data,g.data,astext(intersection(s.the_geom,g.the_geom)) FROM small_roads s, great_roads g WHERE Intersects(s.the_geom,g.the_geom)

Quelle distance (relative au tracé de la rue Paul Valéry) dois-je couvrir si je pars de l entrée de la Rue Paul Valéry (table great_roads) jusqu à son point de rencontre (intersection) avec la rue Voltaire (table small_roads)? SELECT Line_Locate_Point(the_geom,GeomFromText( SRID=- 1;POINT(60 25) ))*length2d(the_geom) FROM great_roads WHERE data = Rue Paul Valéry ; Quelles sont les personnes proches de la rivière dans un rayon de 5 mètres? select p.data from personnes p,rivers where contains(buffer(rivers.the_geom,5),p.the_geom); Préparation du travail à réaliser