Représentation et interrogation de données spatio-temporelles : Cas d'étude sur PostgreSQL/PostGIS



Documents pareils
Chapitre 1 : Introduction aux bases de données

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

Les Géodatabases en 9.2

La place de la Géomatique Décisionnelle dans le processus de décision

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

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

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

Bases de données avancées Introduction

Simplification de la présentation

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

PostgreSQL. Formations. SQL avancé Calendrier... 18

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

ArcGIS. for Server. Sénégal. Comprendre notre monde

Information utiles. webpage : Google+ : digiusto/

Qu est-ce que ArcGIS?

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

LE PRESTIGE DU NOM LA FORCE DE L ENSEIGNE!

Les bases de données Page 1 / 8

Bases de Données. Plan

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

Conception de circuits numériques et architecture des ordinateurs

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

ORACLE TUNING PACK 11G

Notice d information option Sécurité (3, 6 ou 9 ) pour les offres avec abonnement

Réflexion sur la mise en place d'un système mobile d'aide à la navigation destiné aux services d'urgence basée sur une solution libre.

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

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

Utilisation du SIG dans une entreprise industrielle pour l analyse et la prise de décision

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

Bases de Données Relationnelles. Le Modèle Relationnel

ArcGIS. for Server. Comprendre notre monde

Fiche méthodologique Rédiger un cahier des charges

LE PROBLEME DU PLUS COURT CHEMIN

Ebauche Rapport finale

Télécom Nancy Année

Systèmes d information et bases de données (niveau 1)

Une proposition d extension de GML pour un modèle générique d intégration de données spatio-temporelles hétérogènes

Bases de données relationnelles : Introduction

Ecole Polytechnique de Louvain INGI Fichiers et bases de données

Conditions Générales. 24 h/24 et 7 jours/7 NOV AUT CGE (09.07) 1 rue Geneviève de Gaulle Anthonioz CS Rennes Cedex 2

Le "tout fichier" Le besoin de centraliser les traitements des fichiers. Maitriser les bases de données. Historique

Université de Bangui. Modélisons en UML

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

Mémo d'utilisation de BD Dico1.6

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

ERP5. Gestion des Services Techniques des Collectivités Locales

Conduite et Gestion de Projet - Cahier des charges

Utiliser Access ou Excel pour gérer vos données

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

Année Universitaire 2009/2010 Session 2 de Printemps

Chapitre I : le langage UML et le processus unifié

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

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

Esri Maps for IBM Cognos

CHAPITRE 1. Introduction aux bases de données

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

A. Définition et formalisme

Enterprise Intégration

Les bases de données

La Geo-Business Intelligence selon GALIGEO avec 26/10/2005 1

SafeNet La protection

LA QUALITE DU LOGICIEL

Dans cette définition, il y a trois notions clés: documents, requête, pertinence.

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

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

INTRODUCTION AUX BASES de DONNEES

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

PostgreSQL. Formations. Calendrier... 14

Prise en main du BusinessObjects XI R2 Service Pack 2/ Productivity Pack

TP3 : Creation de tables 1 seance

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

La problématique de la Préservation des Bases de Données. Olivier ROUCHON CINES Groupe PIN Jeudi 7 Octobre

Évolution de schémas dans les entrepôts de données mise à jour de hiérarchies de dimension pour la personnalisation des analyses

Deuxième partie. Approche globale d'implémentation d'un projet PLM

Introduction aux bases de données

Guide d'achat sur l'intégration du Big Data

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

1. Introduction Création d'une requête...2

Conception des bases de données : Modèle Entité-Association

Comprendre ITIL 2011

COMPOSANT JOOMA_TIPI Une extension Joomla pour le paiement en ligne des factures de services publics locaux. Page n 1/24

En synthèse. HVR pour garantir les échanges sensibles de l'entreprise

Compte-rendu de projet de Système de gestion de base de données

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

Licences Windows Server 2012 R2 dans le cadre de la virtualisation

Windows serveur 2008 installer hyperv

Bases de données. Chapitre 1. Introduction

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

ANNEXE 1. Si vous souhaitez ajouter un descriptif plus détaillé de l offre à votre annonce, merci de le joindre accompagné de ce formulaire.

IBM Cloudant Data Layer Local Edition

OpenERP, un progiciel de gestion intégré pour entreprise, distribué sous licence libre (GPL), qui répond de manière efficace à la complexité et aux

Spécifications de l'offre Surveillance d'infrastructure à distance

INTRODUCTION GENERALE...1 LA CONNEXION ODBC :...1. CONNEXION AU TRAVERS D EXCEL(tm)...6. LOGICIEL QUANTUM GIS (Qgis)... 10

LES LOGICIELS OPEN SOURCE DANS LA GEOMATIQUE

Stages ISOFT : UNE SOCIETE INNOVANTE. Contact : Mme Lapedra, stage@isoft.fr

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Transcription:

UNIVERSITÉ LIBRE DE BRUXELLES Faculté s Scices Détemt d'informati Représtation interrogation spatio-temporel : Cas d'étu sur PostgreSQL/PostGIS Mémoire présté vue l'obttion du gra Master Scices Informatis Bouhya Suman Année académi 2008-2009

i Remerciemts dremt, Je tis sa tout disponibilité d'abord à remercier ses nombreux Monsieur conseils Zimányi, prodigués directeur tout au long ce mémoire, l'année. pour son ca- quoi Je ce tis mémoire suite n'aurait à remercier pu être Monsieur réalisé. Pekis pour m'avoir fourni sources d'hermes sans pour Je remercie ces judicieuses égamt remars Monsieur Devilrs recommdations. pour temps qu'il a consacré à corriger ce mémoire, aconsacréarépondreàmesquions,pourtoutesonaiausujsecondo. Merci égamt à Monsieur Düntg, membre du proj SECONDO, pour tous temps qu'il tout Enn, souti à titre qu'el plus m'a personnel, apporté je durant tis à ces remercier nombreuses ma mère années. pour Merci. ses couragemts pour

Tab s matières Remerciemts i Tab s gures v 1 Introduction 1 1.1 1.2 Contexte. Problémati....... 1 1.3 1.4 Objectifsdumémoire Organisationdumémoire.................................. 3 2 2.1 2.2 Insusancesdumodèretionnel Donnéesspatia.. 4 2.2.1 Introduction......... 2.2.2 OpGeospatialConsortium... 7 2.2.3 2.2.4 Modélisationsconceptsspatiaux Extsiondumodè.. 8 2.2.5 Extsiondungaged'interrogation 11 9 2.2.6 2.2.7 Représtationsobjsspatiaux Outils.... 12 2.3 Donnéemporel 13 12 2.3.1 2.3.2 Introduction GiondutempsSGBDstandards................. 14 13 2.3.3 2.3.4 Domainemporel Dimsiontemporel........ 17 17 2.3.5 2.3.6 Extsiondumodè Extsiondungaged'interrogation......... 19 19 2.4 Donnéesspatio-temporel 2.4.1 Introduction.................. 20 2.4.2 Cssicationsspatio-temporel.... 21 20 2.4.3 2.4.4 Modélisationinterrogationpositioncourante Modélisationinterrogationl'historispositions............. 26 22 3.1 3.2 Introduction. SystèmypessousHermes.......... 34 33 3.2.1 3.2.2 Introduction Lypesbase.... 35 34 3.2.3 3.2.4 Lypemporels Lypesspatiaux..... 35 3.2.5 Lypesspatio-temporels.................. 36 35 3.3 Représtationphysiquypesspatio-temporel.......... 38 ii 2 État l'art 4 3 Hermes 33

iii 3.3.1 3.3.2 Introduction Pointmobi........... 38 3.3.3 Cercmobi/Rectangmobi.. 39 39 3.3.4 3.3.5 Polylignemobi/Polygonemobi Colctionmobi 40 3.3.6 Objmobi............ 41 3.4 Opérationssurobjstypemobi 43 42 3.4.1 3.4.2 Introduction Maintanceconsistancebase............................ 44 43 3.4.3 3.4.4 Prédicatsmodélisantretionstopologisdistances. Projection interaction sur domaine spatial sur domaine. temporel...... 45 45 3.4.5 3.4.6 Opérationsnuméris. Opérations portant sur. distances......... directions...... s.. objs.... mobi..... 48 48 3.4.7 3.4.8 Retionsd'semb Tauxchangemt............................... 49 50 4.1 4.2 Introduction. Architectured'Hermes..... 52 51 4.2.1 4.2.2 Introduction ScriptTAU_TLL.sql..... 52 52 4.2.3 4.2.4 ScriptHERMES.sql ScriptUTILITIES.sql................... 53 4.3 Langaged'interfaceavecSGBD:PL/SQLversusPL/PgSQL 54 53 4.3.1 4.3.2 Introduction Structured'bloc....... 55 54 4.3.3 4.3.4 Variabconstantes. Typesstandards.. 56 4.3.5 Structurescontrô. 56 4.3.6 Tabaux........ 56 4.3.7 Fonctionsprocédures 57 57 4.3.8 4.3.9 Erreursmessages Typesutilisateurnotiond'obj............... 59 59 4.4 Cartouchespatia:OracSpatialversusPostGIS 4.3.10 Interactionavecngagehôte...... 63 60 4.4.1 4.4.2 Introduction ObjspatialsousOracSpatial:SDO_GEOMETRY........................ 63 63 4.4.3 4.4.4 ObjspatialsousPostGIS:GEOMETRY Fonctions..... 66 4.4.5 Types................................. 68 67 5.1 5.2 Introduction. Etucas:tracroutiervilBerlin..................... 71 70 5.2.1 5.2.2 Introduction Tperformancespourbasesspatio-temporel.............................. 71 71 5.2.3 5.2.4 Scénario Typesrepréstations............ 77 73 5.3 Application 5.2.5 Générationdujeu..... 79 5.3.1 Introduction....................... 80 80 5.4 Evaluationsperformances 5.3.2 Implémtationsréquêtesdutperformances 81 5.4.1 Introduction................................... 89 89 TABLE DES MATIÈRES 4 Migration d'hermes d'orac vers PostgreSQL 51 5 Cas d'étu évaluation s performances d'hermes 70

TABLE DES MATIÈRES iv 5.4.2 5.4.3 Préstationsrésultats Object-BasedApproachversusTrip-BasedApproach............... 90 89 5.4.4 Hermes(sousPostgreSQL)versusSECONDO................. 90 6 Conclusions développemts futurs 6.1 6.2 Conclusions Développemtsfuturs........................................ 94 93 Bibliographie 95 A Acronymes 97 B Dénitions formel types B.1 B.2 Dénitionformeltypesdonnéemporel Dénitionformeltypesspatio-temporel................. 99 98 C Implémtation du t performances sous PostgreSQL C.1 C.2 Créationstabtemporaires Importationdujeu..... 102 C.3 Créationstabutiliséesl........................ 104 103

Tab s gures 2.1 2.2 Niveauxd'abstractionsl'architectured'SGBD. Représtationviamodèretionnel:exemp....... 5 2.3 2.4 Abstractionsfondamtabase:point,lignerégion. Abstractionsfondamtabase:titionréseau... 8 2.5 2.6 Diagrammecssesstypesgéométrisselonl'OGC. Objsspatiauxsimp:diértstypesd'objsCurve... 10 9 2.7 2.8 Objsspatiauxsimp:exempd'objstypePolygon. Conceptionlinéairedutemps.......... 11 2.9 Périosvaliditéssairesstitres. 15 14 2.10 2.11 Dénitionsintervaltempsvalis. Dimsionstemporel.................................. 16 2.12 Représtation d' point mobi(a), d'e région mobi(b) d' réel mobi(c). 27 19 2.13 Représtationtranchesd'réelmobi(a)d'pointmobi(b)...... 31 3.1 3.2 SystèmypessousHermes. Diagramme csses s types géométris........ proposés..... sous... Orac.... Spatial...... 35 34 3.3 3.4 Décompositiondudéveloppemttemporeld'pointmobi. Représtationd'umsegmt................ 36 3.5 Diagrammecssesstypesspatio-temporelsd'Hermes. 37 37 3.6 3.7 Exempbnichées. Représtationd'cercmobid'rectangmobi................... 40 38 3.8 3.9 Structured'epolylignemobi. Structured'polygonemobi..................... 40 3.10 Exemplroutemporel détectabl'opérateur check_me.......... 41 3.11 Projection d' point mobi sur domaine temporel(opérateur f_temp_emt). 44 3.12 Opérateur f_ctroid. 47 46 3.14 3.13 Opérateurs Opérateur f_traversed. f_distance. f_direction........ 47 3.15 Opérateur f_intersection.................................. 49 49 4.1 4.2 Améliorations Traitemtd'blocPL/SQL. s performances d'... SGBD.... Orac.... avec... l'utilisation....... du.. PL/SQL..... 54 4.3 SDO_GEOMETRY:exemppolygonontrivial(a)rectang(b). 66 55 4.4 HiérarchiypesgéométrisproposéssousPostGIS............... 67 5.1 5.2 PartitionnemtduréseauroutierBerlin.. Exempdistributionsn udsdomici (a)sn udstravail............... (b)....... 74 73 v

Chapitre 1 Introduction 1.1 Contexte Dès De qu'il nos y jours, a e nécessité bases stocker constitut l'information c ur gran même quantité, tout système on d'informations. bases. nécessairemt traditionnel A l'origine, tel bases l'intité d' était clit, esstielmt l'adresse d' stinées fournisseur, à stocker quantité s informations disponib, rémération d' employé, c. Mais au l s années, l'usage s bases produits néess'fortemtétdu,notammtraisonl'apitionnouveauxtypesd'applications. don- on assiste Parmi ces à e rnières, véritab on explosion peut citer ce applications type d'application. mobi. El Depuis sont omnipréstes peu plus d'e sur décnie, ché s technologies: téléphonie mobi(gsm, smartphone,...), système géolocalisation(gps, mar- Galio,...), Nbooks, Tabl réseau PC,...), sans l(intern, c. Aujourd'hui, Wi-Fi, WiMax, mobilité Bluooth,...), s utilisateurs ordinateur vue personnel(pda, tant pour treprises pour consommateurs. Ainsi, grâce aux facteur clé, Location Based Services lstationserviceplusproche,ousuivreeottaxissavoirqu (LBS 1 )exemp,ittoutàfaitpossib,imtavecl'aisontéléphone,savoir taxi égamt:toujourspluslégerspluspluspuissants,avectoujourspluscapacités plus proche d' clit. Parallèmt à ces avancées technologis, apeils évolut stockage via réseau plus tel qu'intern débits, ce exemp. perm d'échanger rapimt grans quantités tème A d'informations coté s applications Géographis mobi, ou on SIG). peut égamt Ces rnières citer ont égamt applications fortemt géomatis évolué (Sys- rnières années. Initiamt cantonées au domaine cartographie, l'utilisation ces géographiss'répandueauseind'publicplusplusrge.onpeutexempvoir ssigsdomainrèsvariéstels: L'aiànavigation(ex:voiture); Le L'aménagemt géomarking(localisations du territoire; commercia optima, impntation points vtes); L'analyse La logisti; gion réseaux transports(routier, ferroviaire, gazier, éctricité); La Etc. protection l'vironnemt; 1An d'air cteur, résumé s principaux acronymes utilisés ce mémoire repris annexe. 1

CHAPITRE 1. INTRODUCTION 2 L'apition ces nouvel applications a eu pour e fortemt diversier nature s informations à stocker, même occasion, a compxié gion manipution ces informations. 1.2 Problémati composantes La principa spatia diculté /ou gdrée temporel. En applications e, dénition, citées ci-ssus obj mobi prise compte sedépcemps,àinstantdonné,srouveàdroitprécis.maiscommt obj gérersonévolutionmps/oul'espace?etcommtreprésterobjcompxe représter ce type d'obj e base? Commt représter commt tel généramt qu'e vil via ou e modè rivière retionnel. exemp? Nous Actuelmt, verrons modélisation suite ce modè s insusant s'eectue pour domaine(spatial ces types d'applications. /ou temporel), De nombreux ils ont permis travaux ont dénir été réalisés nouveaux ces rnières modè années permtant répondre( tie) à ce problème. réel Maismodélisationcesn'paseulproblème.Ene,applicationstemps- volumineux exemp(gps,, plus, el LBS) sont manipunt soumises généramt à s contraintes s ux temporel(ex: fournir peuvt être itinéraire assez avant ces ux : certain commt déi). représter Ce nous conduit stocker tout naturelmt façon à pouvoir à nous interroger analyser sur gion manipur façon ecace? Commt exploiter ecacemt ces ux? composante Les principaux spatia, acteurs ils ont du marché chac se fourni sont pchés support(modu sur ces problématis. ou cartouche) En spatial ce disponib concerne commerciamt l'analyse reprant spatia: semb fonctionnalités permtant stockage, gion Orac:OracLocatorOracSpatial(puisversion8) DB2:DB2SpatialExtrDB2GeoticExtr Sybase: PostgreSQL: Spatial PostGIS Query Server MySQL:MySQLSpatial Enceconcernecomposantemporel,iln'existemalheureusemtpasàcejourmodu telsceuxci-ssus.ene,upporttemporel(extsion,upportspatio-temporel) fait mt, cruelmt plut défaut s SGBD propost systèmes s attributs gion temporels bases (SGBD). Bi évim- date suite qu'ils sont insusants. Plusieurs travaux ont été réalisés ou ces time, rnières mais années nous verrons sant s extsions temporel, dont certaines sont rapportées [2], mais auce n'a propo- naissance à e réel extsion temporel. donné 1.3 Objectifs du mémoire temporel L'objectif pour ce mémoire SGBD, PostgreSQL. premier Concrètemt, temps, il fournir s'agira e migrer première e extsion extsion spatio- nom d'hermes [21, 22]), initiamt développée pour SGBD Orac, vers PostgreSQL. Dans (du basera second sur temps, semb e étu requêtes s performances proposé cte t extsion performances sera réalisée. (égamt Cte analyse appelé se point référce ou bchmark performances d' SGBD spatio-temporel. an angis) [4, L'semb 23], apu ces juin ts 2008, s'appuiera perm sur d'évaluer issudutracroutiervilberlinautourdulscénarioaétéconçu.ainsi, jeu

CHAPITRE 1. INTRODUCTION 3 ce second objectif doub : d'e t, il visera à avoir e vision l'utilisabilité d'hermes s fonctionnalités qu'il propose cas concr, d'autre t, il permtra d'avoir e vision sur performances d'hermes sous PostgreSQL. 1.4 Organisation du mémoire, Ce mémoire nous commcera verrons ls sont dénir problèmes certain nombre initiaux liés concepts à l'introduction liés au mon s bases pxes SGBD, notammt spatio-temporel. En e, dicultés com- à gion spatio-temporel sont trip. El sont non seumt liées à l'aspect liées spatial (spatio-temporel). s, Pour mais cte égamt raison, à nous l'aspect dénirons temporel, à second combinaison temps ces diérts ces ux aspects aspects s rons égamt nous l exposerons ont été solutions principaux apportées problèmes pour liés tter à chac résoudre. ces rniers. Nous ver- Le diérts troisième élémts chapitre s'intéressera compost. à l'extsion Après avoir Hermes brièvemt [21, 22] présté nous son verrons histori, détails verrons diérts types qu'il supporte. Nous verrons égamt commt ces types nous sontrepréstésphysimt,nousverronssexempd'opérationssurcypes. Orac Lequatrièmechapitres'attarrasurprincipaétapesmigrationd'HermessSGBD rons commt vers SGBD diértes PostgreSQL. ties Pour ce, compost nous verrons ont été l'architecture migrées. d'hermes, nous ver- proposées Le cinème Hermes chapitre à concernera l'évaluation mise ses performances. prati, Nous cas verrons concr, quoi s consiste fonctionnalités performances [4] sur l cte thèse se base, nous verrons sur l jeu t l scénario il se base pour formur ces requêtes. Nous verrons égamt l sont étapes sur nécessaires à l'exécution ces requêtes(sur jeu quion) sous PostgreSQL. obtus Enn, au ce chapitre mémoire précént, se terminera mais égamt e conclusion panorama reprdra non-exhaustif non seumt s travaux futurs résultats pourrait être visagés sur suj.

Chapitre 2 État l'art Danscechapitre,nousallonsprésterétatl'artsurrepréstationl'interrogation aux SGBD, spatio-temporel. nous verrons Dans insusances premier du temps, modè après retionnel avoir rappelé ( certaines à ce jour notions modè propres plus courammt utilisé) modélisation spatio-temporel. Ces insusances ont temps, montré commt nécessité composantes d'améliorer spatia représtation / temporel s, ont été prises nous verrons, compte. Enn, second verrons diculté posée prise considération d'informations spatia nous nousverronslssonttravauxcourssuruj. temporel, 2.1 Insusances du modè retionnel manipution Un système d'e gion base. base Cte rnière (SGBD) généramt e suite utilisée logiciels permtant plusieurs applications, ). An chace d'accroître n'ayant besoin performances d'e d' tie SGBD, s l'utilisation (principe simultanée ctralisation d'e base s esstiel. Cepdant, cte simultanéité peut conduire à s inconsistances (incohérces). même compte Par bancaire. exemp, On supposons pourrait avoir ux applications situation suivante: rirt simultanémt l'argt d' COMPTE=10.000 Rrait 1 = Calcul:COMP T E -2000 =8000 Rrait 2 = 3000 Miseàjour COMP T E COMP T E-3000 =7000 COMP T E=8000 Miseàjour COMP T E COMP T E=7000 simp Louveausot7000 raison uxième alorsqu'ilvraitêtre5000 rrait a débuté avant premier.d'oùvitproblème?de Dèslors,uxièmerraitsebasaitsurevaur ne mte à jour sol. COMP T E e s tâches d' SGBD d'assurer transce du tage n'étaitplusvab.ainsi, cesrnières.pource,sgbdvafournirevuespropreàchaapplication, s cohérce tages).and'assurercohérces,sgbdsebaserasurnotion comme si cte rnière était seu à travailr avec base (transce du transaction. ou plusieurs Lorsqu'e requêtes) s sur applications base, fera traitemt ce traitemt ( sera traitemt capsulé étant à l'intérieur constitué d'e transaction. Un traitemt sera considéré comme cohért imt si toutes requêtes d'e constitut se seront eectuées correctemt(traitemt = ité d'exécution atomi). Dans ce tions cas, apportées base seront visib passera l'semb d' état s cohért applications à autre accédant état cohért, à base. modica- Par 4

CHAPITRE 2. ÉTAT DE L'ART 5 contre, l'étatinitial(auc si au moins e s changemt). requêtes n'a Ainsi, pas été réalisée transactions correctemt, sont isolées es base rapport rera autres. aux L'architecture niveau d' SGBD constituée plusieurs niveaux d'abstractions: physi mt géré système : il s'agit d'exploitation du stockage s doit, sur exemp, (s) dis(s); veilr à il sécurité principa- conntialité s (droits d'accès), gérer concurrce d'accès aux tout à tant assurant d'optimiser s accès certaines performants requêtes), via contrôr l'utilisation transferts d'inx (élémt tre mémoire redondance principa perm- mémoire secondaire, c.; niveau logi si) l'organisation (conceptuel) s : il perm d'orir représter aux utilisateurs (indépdammt e vision du simpliée stockage phy- ; ces niveaux externes propres à cha application : il s'agit accédant s diértes à base visions. (vues externes) s sont Fig. 2.1 Niveaux d'abstractions l'architecture d' SGBD. dance Cte physi découpe s diérts perm niveaux modier perm d'assurer l'organisation l'indépdance physi s s. sans L'indép- l'organisation logi, alors l'indépdance logi s perm modier l'organisationlogissansmodiervuesexternes.c'rôdusgbdfaireli changer tre diérts niveaux. u Actuelmt, 1970, ce modè modè ore aux utilisateurs plus e courammt vision s utilisé sous modè forme retionnel. tabuire (ux Ap- dimsions). dénissant La fait gure : 2.2 employé illustre a e e retion. intité Cte (nom, rnière prénom), représte travail semb l'treprise d'attributs certain temps (anciné), perçoit msuelmt saire (saire brut), dépdant puis sa fonction. nom prénom anciné fonction saire brut Bounger Jacs 18 Directeur 3894 Dubois Sarah 11 Comptab 2709 Dupont Anne 2 Secrétaire 2086 Lopez Juan 7 Développeur 2531.............. Fig. 2.2 Représtation via modè retionnel: exemp. La manipution l'interrogation ces sont généramt eectuées via ngage SQL(Structured Query Language).InitiamtdéveloppéIBMannées1970 1,SQLa 1C' société Orac Corporation (à l'épo, Retional Software, Inc) présta première version commercia SQL 1979.

CHAPITRE 2. ÉTAT DE L'ART 6 étéadoptécommerecommandationansi (ISO/CEI 9075) 1987. 2 1986,puiscommormeinternational'ISO 3. simp A l'origine, interagissant SGBD avec était s applications conçus pour assez gérer simplistes. s bases Pour cte raison, stockant types s néesopérateursproposésmodèretionnelsontassezlimités(tier,ottant,texte, don- c.). ne prait De même, compte pour manipution s types s l'interrogation opérateurs simp. s, ngage SQL(à l'origine) ces Maisavecl'apitionnouvepplications(mobi,multimédia,3D,c.),ifalluétdre géographie, types c.). ces opérateurs an pouvoir gérer n'importe l type (image, vidéo, Une première ses insusance opérateurs. du Ainsi, modè il retionnel dici (voire vit impossib) donc l'insusance représter ses types traiter ecacemt s formes géométris(ex: frontières d'e région) ou s images exemp. but Une secon ne prdre insusance compte du modè informations retionnel vit liées du à l'état fait, qu'à courant l'origine, d' système il a été conçu d'informations(l'étatcernierétantdénirnièremiseàjour).al'épo,ceétaitconsidéré comme Or pour étant certaines normal applications, puis bases connaissance du ne passé se souciait (/ou du pas futur) l'historicité s informations s. s'avérer esstiel. Par exemp, mon s nances, prédiction du cours d'e action peut cte primordia. action. On Or pourrait cte prédiction égamt n' citer pas comme possib exemp sans connaissance prédictions météorologis, s cours passés ou core l'évolution démographi d'e popution. mouvemt(ex: Une troisième insusance véhicu du modè circu retionnel sur e route). liée Puis à diculté localisation représter l'obj obj lue continu, ce implira s mises à jour très fréntes, ce n' pas visageab évo- prati. obj Enn, vil on peut égamt constitué citer plusieurs diculté objs quartier, modéliser chac s objs ces compxes. rniers étant Par constitué exemp, plusieurs représter objs obj rue, vil eux-mêmes via modè sont retionnel. constitués d'objs Pour ce, bâtimt, on éctera c. l'obj Il serait sous possib d'emultitutab(quartier,rue,bâtimt,local,c.).maiscéctemtseraittrèscoûteux forme reconstituerl'obj,maisilnécessiteraitégamtsopérationsbeaucouppluscompxescas : non seumt il nécessiterait s opérations jointure 4 très compxes si l'on souhaitait d'accèsoumisesàjour. /ou Ainsi, temporel, modè non retionnel seumt n'a pas termes été conçu, à représtation l'origine, pour s supporter s mais égamt spatia termes d'opérateurs d'accès mises à jour. Il a donc fallu étdre ce modè ainsi ngage SQL. Heureusemt, s chercheurs se sont pchés sur cte problémati. 2http://www.ansi.org/ 3http://www.iso.org/iso/home.htm 4Produit cartési plusieurs tab.

CHAPITRE 2. ÉTAT DE L'ART 7 2.2 Données spatia 2.2.1 Introduction convit Avant d'abord voir plus donner détail e commt dénition précise ce spatia type ont. été prises Selon considération, il l'op Geospatial Consortium (OGC) 5, e donnée spatia (ou donnée géospatia, ou core information géographi)déniecommeétanttoute information représtant localisation géographi caractéristis d'e tité (obj, phénomène) naturel ou construite l'homme, ainsi ses frontières terrres. Une donnée spatia représte e abstraction s tités du mon réel, tel routes, bâtimts, véhicu, cs, forêts spatia donc e base supportant stockage pays.[5]. traitemt Une base spatia. De niveau manière plus concrète, e donnée spatia caractérisée trois niveaux: sémanti nom d'e rue, d' euve, : il s'agit co l'semb postal d'e s localité, attributs sa caractérisant supercie, c.); donnée (ex : niveau topologi local se trouve : il bâtimt s'agit s retions se trouve liant lui-même e donnée spatia e localité, à e autre ou croisemt (ex : niveau tre ux rues, c.); géométri localisation donnée. : il s'agit l'semb s informations décrivant morphologie Lesprincipauxtravauxautoursbasesspatiaontpourobjectifsd'étdremodè ssgbdretionnelsngaged'interrogationsqlbutdénir: s s structures algorithmes performants représtant manipunt ecacemt ces structures s formes ; géométris; s technis d'inxation adaptées. Initiamtcantonnéeaudomainecartographieréservéeauxspécialistesdudomaine,l'utilisation s domaines spatia très variés s' tels fortemt géologie, étdue puis. génie Aujourd'hui, civil, l'urbanisme, on rrouve l'architecture, ces géolocalisation, c., chac ces domaines ayant s préoccupations diértes. Par exemp, obj spatial cadre (obj rue géolocalisation, dont attributs e rue rseigneront sera représtée sur sans son type trop (chaussée, détails rue, avue) i sa longueur exemp), alors cadre travaux publics (ex : tri voiries), e obj rue voirie, sera représtée obj canalisation, manière obj plus signalisation, détaillée plusieurs c.). objs spatiaux (obj trottoir, Commtassurercompatibilitétrediértesapplicationsmanipuntsspatia? Compte tu cte diversité préoccupations, commt représter e donnée spatia? Commt l'op Geospatial faciliter Consortium(OGC) échanges tre ces dont applications? l'objectif Cte répondre problémati à ces interrogations. a donné naissance à 2.2.2 Op Geospatial Consortium Fondé 1994, l'op Geospatial Consortium (ancinemt OpGIS organisation internationa regroupant grans treprises (Goog, Hitachi, Consortium) Microsoft, Mitsubishi, e Topographic Orac, Engineering Tha, ESRI, Cter, c.), c.) s organismes s iversités (European (MIT, Space Harvard, Agcy, EPFL, NASA, KUL, US c.), Army dont but développer promouvoir s standards ouverts domaine s services géospatiaux règ alnt s représtation services basés sur s localisation. spatia Ce (types consortium, fournit opérations) certain nombre jusqu'aux 5http://www.opgeospatial.org

CHAPITRE 2. ÉTAT DE L'ART 8 moys commication tre diértes applications. En 1997, l'ogc a publié documt intitulé OpGIS Impmtation Specication for Geographic Information - Simp feature access tionsconceptspermtantd'ajouterupportspatiasgbdretionnels. [15, 16] l il propose plusieurs spécica- Ces suropérateurspermtantcréation,tockagegion(accès,miseàjour,c.)ces spécications dénisst s recommandations sur représtation spatia. 2.2.3 Modélisation s concepts spatiaux se base Selon principamt spécications sur proposées ux types l'ogc primitives géographis: [15, 16], modélisation d'tités spatia Les Les primitives primitives représtant représtant s s objs colctions simp(ou d'objs. singuliers); Un obj simp représté trois abstractions : point, e ligne ou e région. Un point forme. perm Par exemp, représter point peut obj représter prant e imt vil ou hôpital compte sur sa localisation e carte, ou non core sa véhicu sur écran GPS. Une ligne représter dépcemt(véhicu, individu) (ou ou e courbe) connexion l'élémt l'espace. base Par permtant exemp, e ligne rivière peut sur représter e carte. Une mouvemts ligne peut être d' oritée véhicu ou non. Une e vil, ou core e route ou e région obj ux dimsions(e surface). Par exemp, e région peut représter perm représter pays ou e forêt. La gure 2.3 illustre ces abstractions base[11]. Fig. 2.3 Abstractions fondamta base: point, ligne région. Une colction d'objs Une représtée ux abstractions : e tition ou réseau. tition peut représter permrepréstersembrégionsdisjointes.parexemp,etition quartiers d'e vil ou core provinces d' pays 6. Un réseau représter graphe constitué d' semb points ( n uds du graphe) reliés perm euxsemblignes(arêtesdugraphe).parexemp,réseaupeutrepréster tre réseau routier ou gazier. La gure 2.4 illustre ces abstractions base[11]. 6Une tition nichée perm représter e tition à plusieurs niveaux (quartiers région pays, c.).

CHAPITRE 2. ÉTAT DE L'ART 9 Fig. 2.4 Abstractions fondamta base: tition réseau. 2.2.4 Extsion du modè nouveaux L'incorporation types s abstractions vidront citées étdre ci-ssus types s standards SGBD se (tier, fait ottant, l'intermédiaire caractère, c.). Ces nouveaux types sont appelés types spatia (Spatial Data Types représté angisousdt).ainsi,point,eligne,erégion,etitionouréseausera d'e région, c.) SDT. Ce opérations rnier capsu y sont e associées. structure Ces (représtation opérations peuvt concerner, d' point, exemp, construction nouveaux SDT, vérication l'adjacce/l'inclusion/l'intersection d' ux point régions, e calcul colction d'objs, supercie c. d'e région, distance tre ux points, recherche L'Op Geospatial Consortium préstation ces spatia. a spécié Il a déni certain pour ce nombre e hiérarchie recommandations d'objs géométris pour re- ces rniers. décrit La retions gure 2.5 tre illustre diérts cte hiérarchie[16]. types spatia, ainsi opérations sur Fig. 2.5 Diagramme csses s types géométris selon l'ogc.

CHAPITRE 2. ÉTAT DE L'ART 10 La csse mère cte hiérarchie csse Geomry regroupe tous attributs toutes propriétés commes (csse à tout abstraite obj spatial. non instanciab) obj spatial obj Geomry. Cha obj associé à système référce Ainsi, spatia tout (Spatial Referce IDtication Comme il a été mtionné ci-ssus(voir angis) section 2.2.3), décrit l'origine obj spatial s coor peut être soit simp, l'espace. e colction d'objs. soit Obj spatial simp Un obj spatial simp peut principamt être trois types : Point, Curve L'OGC a égamt déni d'autres sous-types héritt s trois principaux types simp. Surface. obj Un Curve forme l'interpotion représte e tre sénce points. Point, Un obj il peut être diérts types, fonction LineString obj (polyligne) exemp Curve utilisant e interpotion linéaire tre Point, cha paire Point étant segmt Line. Ainsi, obj adjacts Line obj LineString Point(point dét point d'arrivée). Un obj avec exactemt ux LinearRing obj LineString ( point dét coïnci avec point d'arrivé) dont segmts (Line) ne se croist fermé qu'e seu fois(au point d'origine). La gure 2.6 illustre ces objs spatiaux simp[16]. Fig. 2.6 Objs spatiaux simp: diérts types d'objs Curve. Unobj Surface représteobjàuxdimsions.toutcommepourobj Curve, objsurface peutêtrediértstypes.unobj Polygon obj Surface extérieur zéro ou plusieurs bords intérieurs. Pour représter e surface à trois ayantbord il faut assembr s surfaces à ux dimsions. Ainsi, obj dimsions, PolyhedralSurface e colction plusieurs représte Polygon exemp d'objs Surface[16]. ont s bords comms. La gure 2.7 illustre diérts

CHAPITRE 2. ÉTAT DE L'ART 11 Fig. 2.7 Objs spatiaux simp: exemp d'objs type Polygon. Colction d'objs spatiaux simp GeomryColction.Unecolctionpeutcontirsembd'objs Lacssemèrel'sembobjsrepréstantscolctionsd'objsspatiauxcsse d'objs Surface(MultiSurface), Curve (MultiCurve), d'objs Point (MultiPoint), d'objs Polygon ou d'objs (MultiPolygon), LineString (MultiLineString). méthos A chace (certaines ces seront csses vues géométris, plus tard). Nous l'ogc ne associe verrons pas certain ces méthos nombre d'attributs détail cadre ce mémoire. Le cteur intéressé pourra se référer aux documts[15, 16]. tant UnefoiscesSDTdénis,ilspeuvtêtreincorporésmodèd'SGBD types d'attributs. 2.2.5 Extsion du ngage d'interrogation ces Puis support doit être spatial adapté impli consénce. nouveaux types, ngage d'interrogation a apporté Depuis sa certain normalisation nombre d'élémts 1986, SQL nouveaux. a subit plusieurs Deux révisions révisions. majeures Chace ont respectivemt ces révisions donné naissance à SQL2 1992(ISO/CEI 9075:1992) SQL3 1999(ISO/CEI 9075:1999). support C'avectandardSQL/MM(ISO/IEC13249SQL/MM),aétéincluSQL3, multi-ties. spatial Ce a signie été réelmt qu'il concerne pris non considération. seumt Apu spatia, 1999, il s'agit mais d' égamt standard textuel, multimédia 7, images, réalisation fouil (data mining angis). dations En ce pour représter, concerne stocker spatia manipur [26], (recherche, ce standard mise dénit à jour) s semb spatia recomman- utilisant SQL. Pour ce, ce standard s'inspire très gran tie du modè hiérarchi proposé l'ogc(voir gure 2.5). rournera Ainsi, il sera tie dorénavant l'autoroute possib E42 d'utiliser croise SDT l'autoroute avec E411. ngage SQL. L'exemp ci-ssous 7A l'origine, SQL/MM (pour MultiMédia) ne vait concerner multimédias.

CHAPITRE 2. ÉTAT DE L'ART 12 SELECT intersection(r1.route, r2.route) FROM route1 AS r1, route2 AS r2 WHERE r1.name = E42 AND r2.name = E411 2.2.6 Représtation s objs spatiaux L'OGC a déni ux formats pour représtation s spatia. Format Well-Know Text (ou WKT) Ils'agitd'formattextuelfacimtcompréhsib. La représtation d' point ux dimsions coor(1,1) s'eectue comme suit: POINT(1, 1) Format Well-Know Binary (ou WKB) Il s'agit d' format binaire. La représtation du point coordonnée(1,1) s'eectue comme suit: 0101000000000000000000F03F000000000000F03F Les 32 rniers bits corresponnt aux coor x co indiquant type géométrie (Point, LineString, Polygon, y. Les autres c.). bits Nous corresponnt n'trerons à pas détailsduformatwkbcarcesortducadrecemémoire;cteurintéressépourra seréférerà[15]. 2.2.7 Outils milieu La recherche s années 1980. domaine Ce n' s architectures qu'avec naissance supportant spatia a débuté l'op Geospatial Consortium 1994) avec l'apition standards sur spatia grands acteurs du marché ( se ainsi sont qu' pchés 1999, sur Orac développemt fut précurseur d'extsions domaine spatia proposant disponib e première commerce. extsion C' gionspatiadisponibaupublic.d'autresextsionsvirtjourannées gure2.5). suivirt. La base toutes ces extsions modè géométri proposé l'ogc(voir SGBD propriétaires Orac : Orac Spatial Orac Locator sa première extsion spatia, version 8i son C' SGBD. 1999 Cte extsion société reprd Orac toute proposa série fonctionnalités permtant stockage, manipution gion spatia. e Il nécessite existe ux e licce variantes payante cte alors extsion, qu'orac fonction Locator, licce plus d'utilisation. limité (perm Orac stockage Spatial son l'interrogation extsion, Orac s respecte spatia, toutes mais spécications pas création), l'ogc ne [15, nécessite 16]. El auce ajoute licce. égamt Pour certaines domaine s spécicités bases sont spatia. propres à ses SGBD. Actuelmt, Orac ar IBM : DB2 Spatial Extr son DB2 Spatial Extr. Cte rnière IBM respecte( propose égamt gran tie) e extsion spécications spatia grâce l'ogc à [15, 16]. Tout comme pour Orac Spatial, DB2 Spatial Extr nécessite e licce payante.

CHAPITRE 2. ÉTAT DE L'ART 13 SGBD libres PostgreSQL : eextsionspatiadompostgis.lapremièreversionapue2001version Tout comme Orac IBM, PostgreSQL a égamt mis au point 8.1 Orac, son PostGIS SGBD. respecte L'utilisation toutes PostGIS spécications s'eectue l'ogc via e [15, licce 16]. Actuelmt, GPL 8. Tout comme PostgreSQL pour ar domaine s bases spatia Op Source. MySQL : MySQL Spatial version 4.1 son SGBD. Son extsion MySQLaintroduitgionspatia2003 cefaiteextsionassezlimitée.parexemp,mysqlspatialnepermpasd'avoirs ne respecte qu'e tie s spécications l'ogc, objs plus ux dimsions. Tout comme PostGIS, MySQL nécessite e licce GPL. Middware : gamme produits maniputionspatia.parexemp,sociétéesri A côté s SGBD, il existe égamt s logiciels permtant produits pour stockage, visualisation, manipution gion 9 proposouteegamme ce type. Arc Spatial Database Extsion tre applications (utilisant s : Il s'agit spatia) d' middware(ou bases intergiciel). Son s'intègre faciliter tâche l'utilisateur lui fournissant e interface i l but soit base sous-jacte. ArcGIS:Ils'agitd'esuitelogiciels: s ArcRear: requêtes simp Logiciel sur gratuit ces. permtant visualiser s spatia réaliser ArcView spatia.ils'agit(lsorte)versionpayante(pluscomplète)d'arcrear. : Logiciel payant permtant visualiser, gérer d'analyser s ArcEditor ArcInfo: Logiciel : Logiciel payant permtant regroupant d'éditer fonctionnalités s cartes géographis(payant). tor, ajoutant d'autres fonctionnalités. s logiciels ArcView ArcEdi- 2.3 Données temporel 2.3.1 Introduction pxe. Notion Cte si diculté familière rési pour chac son caractère nous, interdisciplinaire(physi, temps n' meure pas moins histoire, élémt philosophie), com- nombre fonction problèmes, du domaine tant d'utilisation, au niveau ce conceptualisation concept aura e qu'au dénition niveau diérte. représtation. Ce pose bon forcémt Cte notion explicite. temps Pourrait-on omnipréste imaginer système gion d'informations, dont même si el n' serait pas complètemt cas, l serait statis alors l'utilité n'évoluerait stocker pas e base temps?? Quand Pourquoi bi même ne ce pas serait simpmt granimportancesgbdnousverronssuitesagionn'passiévinte stocker s chiers textes exemp. Pour cte raison, facteur temps d'e ce. 8GNU Geral Public Licce e licce logiciels libres perm à tout utilisateur d'accér, d'utilisr, modier redistribuer co source du logiciel à condition ce rnier ses modications soit publiées sous même licce. 9http://www.esri.com/

CHAPITRE 2. ÉTAT DE L'ART 14 Dans Grèce Anti, temps était représté à l'ai du Chronos 10. Cte représtation se basait sur e conception linéaire du temps. Fig. 2.8 Conception linéaire du temps. nombre Cte approche caractéristis: généramt cel adoptée. Cte vision du temps induit certain Instant:Ils'agitd'momtprécisoùse(s')produitévénemt; Durée: Antériorité, Il s'agit l'interval temps séant ux instants; simultanéité postériorité: Un événemt A mêmemomt/aprèsévénemt B. peut se produire avant/ au Dèslors,toutedicultérecherchesurbasesdonnéemporelrésiprise tion considération ces. ces caractéristis modè ngage d'interroga- 2.3.2 Gion du temps SGBD standards courant A l'origine, du système premiers d'informations SGBD ne était prait considéré. pas Ce compte n' qu'avec l'historicité l'apition s. SQL2 Seul qu' l'état premier principaux pas types vers temporels: support temporel s a été réalisé. En e, SQL2 a introduit ux date SGBD standards gérait l'historicité time. s. C' Cepdant, l'intermédiaire il s'avère ces ux ces attributs ux attributs sont insusants raison compxité gion temporel s. du temps, Unecesdicultésnotionvalidités.Puisévolutaucours [25] l'université l'état d'e Libre donnée Bruxel n' vab (ou toute pdant autre iversité). e certaine Cte pério. rnière Prons dispose l'exemp tab d'e EMPLOYE imt reprant professeurs. s Ces informations rniers ont au suj eu l'occasion, ses employés. au cours Supposons ur carrière l'on respective, considère d'occuper divers postes(assistant, chercheur, professeur). Considérons alors retion suivante. EMPLOYE (Nom: text, Prénom: text, Saire: float, Titre: text, Début: date, Fin: date) Schématimt, on pourrait représter l'évolution s saires s postes l'employé JeanDupont (exemp)gure2.9: 10Dieu personniant temps Grèce Anti.

CHAPITRE 2. ÉTAT DE L'ART 15 Fig.2.9Périosvaliditéssairesstitres. Pour représter cte pério validité, SGBD standards utilist ux dates(début Fin). Supposons l'on souhaite connaître saire actuel Jean Dupont. On pourrait alors exécuter requête suivante: SELECT Saire FROM EMPLOYE WHERE Nom = Dupont AND Prénom = Jean AND Début <= CURRENT_DATE AND CURRENT_DATE <= Fin temporels(mis Uneremarl'onpeutfaireausujrequêteci-ssusl'insusancypes compxie granmt à t date) sa gion. impli Par exemp, tout interval si l'on souhaite doit être acher explicitemt l'histori représté, s saires ce s cha employés, saire il perçu. faudra Dans calcur, gure pour 2.9 chac exemp, ces rniers, du 30.06.2006 l'interval au 01.02.2008, temps maxima l'employé exercé diérts postes, mais il a toujours conservé même saire. Il faudra donc regroupé ces a trois interval temps. On aurait alors comme résultat: Nom Prénom Saire Début Fin Dupont Dupont Jean Jean 40.000 50.000 01.09.05 30.06.06 30.06.06 Dupont Jean 55.000 01.02.08 01.02.08 01.10.08 l'histori Compliquons s titres pit s peu saires plus l'exemp, correspondant supposons cha maintant employé. Nous l'on souhaite essayerons acher d'obtir tab suivant: donc Nom Prénom Titre Saire Début Fin Dupont Dupont Jean Jean Assistant Assistant 40.000 50.000 01.09.05 30.06.06 30.06.06 Dupont Jean Chercheur 50.000 01.11.06 01.11.06 Dupont Jean Professeur 50.000 01.09.07 01.09.07 Dupont Jean Professeur 55.000 01.02.08 01.02.08 01.10.08 n' La pas diculté évint. rési Les requêtes toujours suivantes calcul permtront s bons interval. réaliser: Cepdant, ce calcul, SQL,

CHAPITRE 2. ÉTAT DE L'ART 16 CREATE VIEW Temp(Saire, Début, Fin) AS SELECT Saire, Début, Fin FROM EMPLOYE WHERE Nom = Dupont AND Prénom = Jean SELECT DISTINCT F.Saire, F.Début, L.Fin FROM Temp AS F, Temp AS L WHERE F.Début < L.Fin AND F.Saire = L.Saire AND NOT EXISTS ( SELECT * FROM Temp AS T WHERE T.Saire = F.Saire AND F.Début < T.Début AND T.Début < L.Fin AND NOT EXISTS ( SELECT * FROM Temp AS T1 WHERE T1.Saire = F.Saire AND T1.Début < T.Début AND T.Début <= T1.Fin) ) AND NOT EXISTS ( SELECT * FROM Temp AS T2 WHERE T2.Saire = F.Saire AND ( (T2.Début < F.Début AND F.Début <= T2.Fin) OR (T2.Début < L.Fin AND L.Fin < T2.Fin) )) rési Ciremt, prise on voit compte s formution bons interval. s requêtes Seuls se compxie interval tièremt fortemt. Cte inclus diculté être pris considération. Pour ce, cte requête va rechercher ux tup pourront doivt respectivemt début (F.Début) n (L.Fin) s interval (tup) fusionnés. Le premier dénir NOT EXIST s'assure qu'il n'y a pas trou tre F.Début L.Fin. Ainsi, tout T.Début, tre F.Début L.Fin, sera étdu (vers L.Fin) autre tup. Le second NOT EXIST l'interval (déni s'assure F.Début illustre ce raisonnemt. L.Fin) ne peut pas être étdu tup T2. La gure 2.10 Fig. 2.10 Dénition s interval temps valis. domaine An d'apporter s bases s solutions temporel. à ces problèmes, Leur principal nombreux objectif travaux l'intégration ont été réalisés concepts temporels modè ngage d'interrogation(sql).

CHAPITRE 2. ÉTAT DE L'ART 17 2.3.3 Domaine temporel attributs Le point temporels. précént Il a nous donc a fallu montré aner l'on représtation ne pouvait pas réduire ce concept. notion temps à ux peut Comme être perçu il a été mtionné diértes ci-ssus, manières, selon modélisation dénition du temps qu'on lui n' donne. pas chose Mais aisée. d'e Le manière temps généra,mpsperçucommeespaceàedimsions'étdantdupasséaufutur(voir gure2.8).cepdant,faut-ilconsidérercommeétantabsolu(ex:17/09/200914h45)oucomme étant e retif(ex: n) ou comme étant ux inni? semaines)? Et faut-il Faut-il considérer considérer comme comme étant étant discr(s'il borné(avec e isomorphe origine auxnombresnaturels),nse(s'itisomorpheauxnombresrationnels),oucommeétantcontinu (s'il isomorphe aux nombres réels). temporels Quel nécessaires soit à perception sa modélisation l'on a l'ontologie du temps, suivante: on peut résumer diérts concepts Instant:Représtechronon(instantbiprécis)surlignedutemps; Pério: Représte interval(semb d'instants) temps fermé; Interval : Représte interval temps ouvert. Périos 11 :Représtesembdisjointpérios. On permttreprésterinstantsurlignedutemps: peut égamt rajouter types introduits norme SQL2. Ces rniers Date:Représteedatebiprécise(année-mois-jour); Time:Représteeheurebiprécise(heure-minute-secon); Timamp : Représte e secon(ou microsecon) bi précise d' jour donné. 2.3.4 Dimsion temporel réel. Les Lorsqu'e stockées modication survit e base mon se réel, réfèrt base toujours à fait doit être modiée mon pstempsséemodicationmonréelsarépercussionbase consénce. Mais cte modication ne s'eectue pas manière instantanée. Il y a toujours. nées, Ce ps permtt temps introduit dissocier ux temps dimsions, d'registremt esstiel d' événemt gion du temporel temps s prise don- considération c événemt base. Le temps validité (valid time c'-à-direàl'intervalmpsdurantlfaitvalimonréel.lemps angis) fait référce au temps mon réel validité (passé,préstoufutur). d' événemt représte momt où c événemt survu mon réel Le temps transactionnel (transaction time durant l fait vrai base. angis) Le temps fait référce transactionnel à l'interval d' événemt temps représte l'on co momt e base où c événemt s se informations répercute retives base à s. événemts Par survus exemp, au si XIX temps ème transactionnel sièc, temps ces validité événemts ces correspondra événemts au sera jour situé où l'on tre a 1800 codé 1899 informations. alors 11Dans littérature, on rrouve souvt sous terme temporal emt.

CHAPITRE 2. ÉTAT DE L'ART 18 étanttemporel Cesuxdimsionssontorthogona.Ainsi,emêmedonnéepourraêtreconsidéréecomme réel), ou temporel 12 aussdutempsvalidité(s'ilneprncomptempsdumon machine), ou core au bitemporel(s'il ss du temps prd transactionnel compte (s'il ne ux prd dimsions). compte temps considéré. Danscecontexte,onpeutdistinguerdiértstypesbases,fonctiondutemps Bases instantanées(snapshot database instantanée toute base reétant imt l'état angis) courant Onappelbase type base ne prd pas compte l'historicité s. du mon C'était réel. cas Ainsi, ce majorité s SGBD standards avant l'introduction d'attributs temporels. La gure 2.11a montre e retion instantanée constituée trois tup(lignes) trois attributs(colonnes). Bases à temps vali (valid time databases à temps vali toute base considérant temps angis) sa dimsion On appel temps base validité. voir diértes La gure 2.11b versions montre chac e retion ces tup, temps c'-à-dire vali constituée diérts quatre interval tup. On temps peut durantlscupsontvalis(vrais)monréel.laversionactueld'tup celavantpnsurgure.lupn'ontpasnécessairemtmêmombreversions (tout reète dépd fait s du mon changemts réel a provance été vali du mon passé, réel). Par a subi exemp, changemt, quatrième mais tup n' plus vali temps prést. Bases transactionnel (transaction time databases appel base à temps transactionel toute base considérant angis) temps On sa Ce dimsion type retion temps transactionnel. e succession La gure retion 2.11c montre instantanée. e retion Au dét, temps retion transactionnel. Une première transaction (résultant d' changemt mon réel) ajoute trois tup vi. transaction retion. supprime Ensuite, uxième e secon tup transaction ajoute ajoute nouveau quatrième tup. Ici, tup. l'état Enn, courant e s troisème retioninstantanéeplusàdroitesurgure. tup Bases bitemporel (bitemporal databases bitemporel toute base considérant temps angis) ses ux On appel dimsions. base La gure saction 2.11d ajoute montre trois tup e retion à retion. bitemporel. Ces trois Au tup dét, représtt retion l'état vi. courant Une première retion, tran- tup( sont donc trois valis autres tup temps rant prést. toujours Puis, valis). e secon Ensuite, transaction e troisième va ajouter transaction quatrième ter cinème tup, va supprimer l'état courant d' tup existant tout conservant va ajou- versions antérieures. Ce serait cas si, exemp, ce tup reète fait (du mon réel) ses dont transaction pério va mtre validité à jour déjà début terminée pério alors qu'on validité psait du troisième contraire. tup. Enn, Ce e rnière cassi,exemp,cupreètefaitdontvaliditéacommcéplustardcel'on serait psait. La gure 2.11 illustre diértes dimsions temporel[11, 31]. 12Donnée temporel terme généri ne spéciant pas type support temporel.

CHAPITRE 2. ÉTAT DE L'ART 19 Fig. 2.11 Dimsions temporel. 2.3.5 Extsion du modè porée La quion modè esstiel maintant d' SGBD. savoir L'approche commt généramt notion adoptée temps peut être bases incor- temporel considérer cha tup comme fait. An savoir si ce rnier eectués: vali ou pas, on l'associe à s élémts du domaine temporel. Plusieurs choix doivt être Quelmodèallons-nousétdre?Retionnelouorité-obj? Quel domaine temporel allons-nous prdre compte? Discr, nse ou continu? 13. Qugranuritéd'fait? Quel val? type timamp doit être utilisé? Un chronon, interval, semb d'inter- Quel dimsion temporel allons-nous prdre compte? Au rniers l s se années, diérciant plusieurs modè choix eectués. Mais ont été malheureusemt, proposés auc littérature ces [15, modè 31], n'a ces étéprédominant,aucn'aétéacceptél'sembacteursdumarché.ainsi,contrairemt auxbasesspatia,iln'existepasbasesdonnéemporeldisponibaiveau commercial. 2.3.6 Extsion du ngage d'interrogation e Tout extsion comme du pour ngage support d'interrogation spatia,. Le support standard SQL2 avait temporel fait premier impli introduisant support temporel. Ce rnier a très rapimt montré ses limites. Pour cte pas raison,dès1992,schercheurssesontpchéssurquiond'eextsiontemporelsql. sur C' modè ainsi, qu' 1994, bitemporel apu BCDM TSQL2 [12]. 14. Il En s'agit intégrant d'e extsion concepts temporels SQL2 se base modè ngage d'interrogation ces, TSQL2 facilite granmt tâche, notammt ce concerne gion s interval(voir exemp section 2.3.2). 13Orité-obj : cha tup ne représte pas e retion mais obj. 14Temporal SQL ( non Transact-SQL propre aux systèmes Microsoft Sybase).

CHAPITRE 2. ÉTAT DE L'ART 20 Par suite, fonctionnalités proposées TSQL2 ont été introduites SQL3 sous nom SQL/Temporal. Ce rnier constitue e extsion TSQL2. 2.4 Données spatio-temporel 2.4.1 Introduction porel. Jusqu'à Nous prést, allons voir nous maintant avons vu s pouvait combint être ces ux nature aspects spatia : ou tem- spatio-temporel. géométris Comme nous décrivant l'avons sa vu morphologie précémmt, sa e position. donnée Dès spatia lors, e donnée caractérisée spatio-temporel s attributs être dénie comme étant e donnée spatia dont forme /ou position varie(nt) au cours peut du temps. ux Cte axes dénition principaux. a orité Le premier recherches concerne l'étu s domaine objs dont s morphologie spatio-temporel varie au cours du couverte temps. Il s'agit, incdie. exemp, Cepdant, l'évolution cte première d' désert, approche d' paysage occupe actuelmt ou core e surface tion mineure littérature récte. En e, l'esstiel s artic sur spatiotemporel posiramt) se forme consacre dont à l'étu position d'objs évolue mobi, c'-à-dire temps. L'étu s objs s objs dont mobi on ignore se (géné- égamt ux oritations. divise La première s'intéresse au suivi (tracking proche perm, exemp, suivre e otte angis) taxis, s ou d'avions objs s'approchant temps réel. d' Ce type aéroport, d'ap- ou d'approche core serait véhicu militaires exemp: sur champ batail. Les requêtes visageab ce type Trouverstationsservicesplusprochesd'obj Trouverxilibreplusproched'clitsrouvantaupoint o; p; Trouvertousavionspénétrerontrégion R15prochainesminutes. L'idée nécessiteconnaissancepositioncourante(miseàjourtempsréel),évtuelmt position prévisib futur proche. l'on cherche à satisfaire s besoins nouveaux s temps raisonnab, ce cours La d' secon interval approche temps s'intéresse arbitraire. à l'analyse L'idée s dépcemts qu'au fur à successifs mesure d' l'obj obj se mobi dépce, au ces représter positions successives l'histori seront ces mémorisées. dépcemts Sur base l'intermédiaire ces positions, trajectoires. il sera suite Les requêtes possib visageab Donner dépcemts ce type d'approche successifs serait l'obj exemp: o Donnertousobjspasstrégion tre R(requêtespatia); 13h 14h(requête temporel); Donner tous objs sont passés région R temporel). tre 13h 14h (requête spatio- Puis m non seumt dépcemts d'interroger d' obj prést, sont registrés mais égamt au fur passé. à mesure, Grâce ce à type connaissance requête per- ce passé ( du prést), il sera égamt possib d'interroger trajectoires futures, sur base d'hypothèses.

CHAPITRE 2. ÉTAT DE L'ART 21 veloppemt Ainsi, toute modè diculté ngages recherche d'interrogation sur permtant spatio-temporel non seumt rési support dé- n'importe l type d'tité mouvemt, mais égamt l'interrogation, plus ecace plus simp possib, ces tités. 2.4.2 Cssication s spatio-temporel ration, Avant il convit voir plus d'abord détail commt cssier an se rdre spatio-temporel compte l'étdue ont été prises compxité considé- cype. On En e, rrouve applications s domaines manipunt tels s géolocalisation, spatio-temporel l'archéologie, peuvt l'histoire, être très variées. rologie, géologie, géographie, mécine, c. De plus, certains domaines peuvt avoir météo- exigces urs sont propres, ce compxie core davantage modélisation s s spatio-temporel. considération Une cssication pour modéliser a été réalisée s [11]. spatio-temporel: On y distingue dix catégories qu'il faut prdre 1. Evénémt l'espace temps - (point, point) s'étant produit à momt donné à certain droit (ex : 15 découverte :ils'agitd'événemt catastrophe aérine, trembmt terre, c.); archéologi, 2. Empcemt vali durant e certaine pério temps - (point, interval) il s'agit tout obj (vil, bâtimt, route) a été construit à certain droit à : e certaine épo n'existe plus actuelmt; 3. Ensemb d'événemts l'espace temps - sénce (point, point) événemt : il mais s'agit tout d'e généralisation semb(ex: catastrophes (1) car on aérines ne considère survues pas imt 2008); seul 4. Empcemt constant durant certaine pério - sénce (point, interval): exemp, siège social d'e treprise peut se situer au même droit durant certaintemps,puisdéménagerautredroitmeurercernier,puisà nouveau déménager, ainsi suite; 5. Entité mobi (dont forme n' pas esstiel) - (point, point) tité se dépce (ex : e personne, e voiture, camion marchandises :ils'agitd'e e vil); circunt 6. Evénémt l'espace temps dont forme esstiel - (région, primordia point):ils'agitd'eextsion(1)soùgéométriel'événemt l'importance); (ex : incdie forêt gran vergure où supercie couverte a 7. Empcemt vali durant e certaine pério temps dont forme esstiel - (région, interval) géométrie l'obj esstiel (ex : : il e s'agit tie d'e d'e extsion route a été (2), fermée durant ss où certain temps raison d' accint); 8. Ensemb d'événemts l'espace temps dont forme esstiel - sénce (région, point) extsion (3) ss où géométries : il s'agit ces d'e événemts généralisation sont importantes (6) d'e incdies forêt grans vergures survues 2008); (ex : 9. Empcemt constant durant e certaine pério dont forme esstiel - sénce (région, interval) géométrie l'obj indispsab(ex: :ils'agitd'eextsion(4)soù l'étdue d' pays, d' bâtimt); 15Représté point l'espace point temps.

CHAPITRE 2. ÉTAT DE L'ART 22 10. Entité mobi (dont forme esstiel) - (région, point) se dépce connaissance forme esstiel (ex : : il s'agit phénomènes d'e tité désertication( zone couverte désert évolue au cours du temps), dépcemts troupes militaires zones conits, dépcemts d' ouragan, c.). Ces été conçues catégories pour seront modélisation très uti car el permtront spatio-temporel. d'évaluer Par portée exemp, s on approches pourra dire ont tel approche ne perm pas modéliser tel ou tel type d'application. 2.4.3 Modélisation interrogation position courante Introduction objs Comme à nous gion l'avons s positions vu précémmt, courantes successives cte approche ces réduit rniers. problème Pour connaître ces mobilité positions s courantes, ancernierpuissefairemisesàjourreses.pourcteraison,suivitempsréel objs mobi doivt transmtt ur position au serveur base peuvt ces objs être très indispsab variés. Il peut an s'agir maintir exemp à jour d' ur utilisateur position courante. se dépçant Ces avec objs son mobi ou son PDA, ou core d' véhicu (taxi, camion, train, bateau, véhicu militaire) doté GSM capteur ou d' GPS, associé à émteur(pour transmtre position), se dépçant d' vironnemt(vil, océan, c.). Onpeutciterexemp: Il existe plusieurs technis permtant connaître position courante d' obj mobi. LeGPSassociéàémteur:chaépemttransmsapositionauserveurlocalisation; Les cellu réseaux du réseau; celluires : où position connue grâce aux antnes situées cha PositionnemtsurIntern:puis1996,l'IETF géolocalisation transportées 16 aproposéd'ajoutersinformations l'adresse IP d' utilisateur, il possib localiser mises approximativemt à jour DNS[3], ainsi, (pays grâce vil à Les réseaux ls il sseurs. se situe); Toute conserver diculté position cte courante approche d' tel rési obj; e modélisation première approche d' obj ( a été se utilisée dépce. An s applicationsindustrieltell'automatic Vehic Location mobi à point (p, t) généré périodimt [29]. Ce 17 point )aétéd'associerchatité trouveàposition p(peutêtresousformed'coupcoor(x, indi y)oud'numéro tel tité se obj)suitockésgbdstandard,grâceaungagesql,ilserapossib cellucadred'réseaucelluireexemp)àl'instant t.chaccespoints( rituer certain nombre informations d'inconvénits. sur positions s objs. Malheureusemt, cte approche traîne Problématis A instant donné, il n'y a auc problème car il sut d'associer l'obj à e localisation (ex : coordonnée (x, y)). Mais puis c obj se dépce, ce impli s mises à jour sa 16http://www.if.org/ 17Technologies permtant suivre temps réel cours véhicu.

CHAPITRE 2. ÉTAT DE L'ART 23 position courante. Ces rnières mtt évince premier àjourpositioncouranted'objmouvemt,uxcasguresontpossib: problème. An maintir 1. Soitpositionl'objfrémmtmiseàjour,ceconduitàeprécisionassez évée évé; sa localisation (erreur localisation minime), mais avec taux mise à jour 2. Soit bonne précision position sa l'obj localisation(erreur occasionnelmt localisation mise à évée), jour, ce mais avec conduit taux à e moins à jour faib. mise Le gère premier pas imt cas gure n' seul obj pas visageab mouvemt prati mais plusieurs. car généramt, Ce impli e application taux ne mise à jour trop évé pour qu'e application puisse fonctionner correctemt. localisation Le second cas peut être gure trop n' évé. égamt Par exemp, pas visageab GPS dont l'erreur prati car localisation ris d'erreur ctaine mètres, pourrait indir à automobiliste tourner à gauche alors qu'il se trouve d'e surpont,oucorecontinuertoutdroitalorsqu'itfaceàbâtimt.lesconsénces peuvt mètres trop être loin). core plus graves lorsqu'il s'agit d'apeils militaires (ex : bombarmt 200 Un uxième problème sur passé d' obj. Par exemp, a été si mis l'on souhaite évince connaître l'impossibilité tous agts d'eectuer police e requête trouvaitàmoinsdixminutesdulieuoùs'produitaccintà14h,onnepeutvisager se e futur tel s requête objs. avec cte approche. Il égamt impossib d'eectuer s requêtes sur Solution possib problèmesci-ssusaétéd'introduirotion Plutôt considérer imt position courante d' obj mobi, e solution aux vecteur décrire position d' obj mobi comme e fonction mouvemts.lebutcernier connaîtpositionl'objàl'instant du temps. L'idée si l'on t itpossibdéduirepositionsauxinstants 0,ainsisavitessesadirectionàcemêmeinstant, t n (n>0). rnières Bi évimmt, seront beaucoup ce vecteur moins fréntes mouvemt (tout nécessitera gardant égamt e bonne s approximation mises à jour, mais ces calisation d' obj) si on considérait imt position courante. lo- mouvemt Ainsi, l'objectif an d'être cte capab approche faire s requêtes maintir non dynamimt seumt sur sa position position courante, d' obj mais égamt compte sur l'historicité ses positions s positions futures. d' Malheureusemt, obj(ces positions cte successives approche ne ne perm sont pas pas mémorisées), prdre donctouterequêteretiveaupassén'paspermise.nousverronsplustardcommtprdre considération c histori. Il s'agit Nousallons du modè àpréstvoirmodè MOST. sebasesur ctotion vecteurmouvemts.

CHAPITRE 2. ÉTAT DE L'ART 24 MOST (Moving Objects Spatio-Temporal) objmouvemt.ebasepourcesurnotionvecteurmouvemt. Apu1997[28],modèMOSTpermgérerpositioncourantefutured' d' Au obj niveau mobi. d' Dans SGBD, modè vecteur MOST, mouvemt ce vecteur n' prést qu'e sous abstraction forme s dépcemts d'attributs dynamis. jourexplicitemt(automatimt,àchaquickd'horlogeexemp) Un attribut dynami lorsqu'il susceptib changer vaur sans être mis à 18. Un attribut dynami X X.value : représte ( vaur type T) caractérisé trois sous-attributs: X (implicite ou explicite); ( type T) au momt rnière mise à jour X.updatime:représtemomtoùrnièremiseàjouraétéréalisée; X.fction:efonction f : int T (où f(0) = 0). Lavaurl'attribut X àl'instant tdéniecommesuit: value(x, t) = X.value + X.fction(t - X.updatime) ( t X.updatime) Grâceàcesattributsdynamis,onpourrait,exemp,représterobjsedépce commesuit(supposantl'objsedépcesurpnàuxdimsions): Obj: (id: integer, position: (x: real dynamic, y: real dynamic)) A cha nouvel localisation l'obj, champ position représtation ne serait pas ecace, voire insusante, pour certaines serait mis applications. à jour. Cepdant, Par exemp, cte si plus l'on poussée considère prdrait véhicu compte se dépce s amètres sur e route, tels on pourrait vitesse imaginer du véhicu, e représtation direction. On pourrait dès lors avoir e représtation comme cel-ci: ou core sa Véhicu: (immatricution: long, loc: (route: line dynamic, position: point dynamic, timeposition: time dynamic, direction: integer dynamic, vitesse: integer dynamic, incertitu: time dynamic)) où: route: obj spatial Line représtant route lcon; position : Point surroute(point l'instant timeposition; Line)représtantlocalisationl'objà direction:directionsuiviel'obj(ex:n,s,e,ne,c.); vitesse:vitesseàdépcel'obj; incertitu:mpsécoulépuisrnièremiseàjourpositionl'obj. Cha position, mise mais à égamt jour (implicite e modication ou explicite) implirait direction, non seumt vitesse e modication l'incertitu. Bi évimmt, certains amètres pourront conserver urs vaurs(ex: direction, vitesse). attributs L'interrogation dynamis. s Cepdant, positions futures toute requête d' obj sur mobi futur s'eectue ne produira qu' l'intermédiaire résultat probab ces car il y'aura toujours ris s attributs dynamis soit explicitemt mis à jour 18Tout attribut peut prdre vaur 0 sur l il possib d'applir e opération d'addition peut être dynami.

CHAPITRE 2. ÉTAT DE L'ART 25 ( rdre raison prévisions d' changemt requête vitesse erronées. ou Supposons direction exemp), l'on cherche ce à savoir serait susceptib combi temps véhicu V résultat indira, arrivera exemp, à stination. véhicu Au momt réaliser requête (à l'instant t), V imt sur informations connues à l'instant arrivera t). Et supposons dix minutes( maintant requête se véhicu basant doits'arrêterdurantcertainspstempsàl'instant t + n(n>0).en t + explicite sera réalisée( aura pour consénce mtre à jour tous attributs n,emiseàjour Dèslors,ilyaforteschancesvéhicu dynamis). V La raison qu'à l'instant t, consénces n'arriverapasàstinationdixminutes. mise à jour produite t + n pas connues. En optant pour cte approche, e mise à jour t l'utilisateur n'était nécessaire qu' cas changemt sa direction ou sa vitesse. ne sera FTL (Future Temporal Language) Parallèmt ngage perm au modè tirer MOST, ti s concepteurs attributs dynamis ce rnier ont préstés égamt ci-ssus proposé : [28] FTL. Il s'agit d'e extsion du ngage SQL, s prédicats logi temporel, ngage m l'interrogation du futur s. per- simiireàlogidupremierordrecaritconstitué: Cte interrogation réalisée l'intermédiaire formu FTL. Ce ngage assez constantes(numéris(ex: variab; 20) ou caractères(ex: `Belgi')); fonctions(ex:+,-,*,/); prédicats(ex:>, connecteurs logis;,<,,=,-); symboponctuations(ex:(,),[,]); quanticateurd'assignation( ) 19 ; opérateurs opérateurs temporels(ex: spatiaux(ex: insi). til, evtually); Lesuxopérateurstemporelsbased'eformuFTLsont til nexttime.soit f prédicats: g,ux f til g vériésionagàcétatoufutur, f vériéattdant; nexttime f vériési f vériéauprochainétat. D'autresopérateurstemporelsont suiteétéconstruitssur base til nexttime. citer exemp: Onpeut Evtually f =vrai til f ; Always f = Evtually f; Evtually_within_i f = f seravériél'intervalmps i; Evtuall_after_i f = f seravériéaprèsl'intervalmps i ; Always_for_u f = f vériémanièrecontinuepour uprochainesitéstemps. A côté ces opérateurs temporels, il existe égamt s opérateurs spatiaux tels insi (Insi(obj, zone) = vrai si obj s opérateurs arithmétis cssis), zone). il En possib combinant spécier ces ux s types formu d'opérateurs FTL dont ( l'objectifséctionnerimtbasesatisferontcesformu. plus Ainsi, on pourra, exemp, formur requête suivante: trouver toutes paires d'objs o 1, o 2 teldistancetre o 1 o 2 nedépassepasuxkilomètresjusqu'àcequ'ilspénètrt 19Le ngage FTL ne dispose pas quanticateur existtiel ( ), ni quanticateur iversel ( ) contrairemt à logi du premier ordre.

CHAPITRE 2. ÉTAT DE L'ART 26 tousuxpolygone P,cesraduirangageFTL[28]: RETRIEVE o 1, o 2 FROM objects WHERE DIST(o 1,o 2 ) 2 Until (INSIDE(o 1, P)) AND (INSIDE(o 2, P)) au ssus Les auteurs d' SGBD ont conçu fournissant modè MOST fonctionnalités ngage base. FTL Une implémtation but d'être a implémtés connuesousnomdomino[30]. été réalisée, du Nous cadre n'irons ce mémoire. pas plus Le détail cteur au intéressé suj du pourra modè trouver MOST plus du ngage amp informations FTL car ce sort [11, 28, 30]. 2.4.4 Modélisation interrogation l'histori s positions Introduction mt Cte approche connaissance semb plus compxe position courante précénte d' obj puisqu'el mobi. Toute ne se contte trajectoire pas doit i- être En revanche, conservée ce impli mémorisées s structures étant beaucoup plus compxes plus complètes, s panorama plus volumineuses. visageab sera plus rge(meilure analyse s ). s requêtes : Pour cte types raison, spatio-temporels. l'objectif principal Par dénition, cte approche e donnée spatio-temporel dénition nouveaux e types géométrie serait se stockés dépce e base temps. L'idée spatia donc dénir prdrait nouveaux compte types l'évolution ces géométries temps. Ces nouveaux types permtrait non seumt prdre ce permtrait considération d'interroger l'état courant instant s passé précis. spatia An mais tirer égamt ti ces tout nouveaux son histori, nouvel opérations seront égamt créées. types, Approche basée sur s types abstraits Pour dénir ces nouveaux types, ux quions meurt esstiel: 1. Quels sont exactemt types opérations doivt être dénis? 2. Quniveaud'abstractionscriptioncypescesopérations? Types élémt En ce réponse concerne précémmt. types En e, l'idée doivt généra être dénis, cte nous approche avons déjà apporté considérer s évolutionmps.nousavonsvuquroisabstractionsbasepermtantrepréster spatia auxl on rajoute facteur temporel an prdre compte ur e donnée Le spatia était: point e personne, perm animal, représter e voiture, obj avion, mobi bateau, sans se préoccuper gin militaire, sa c.); forme (ex : La ligne permrepréstererouteouerivièreexemp;

CHAPITRE 2. ÉTAT DE L'ART 27 La c, régionpermreprésterobjdontformeesstiel(ex:pays, e forêt, iceberg, incdie, ouragan, e madie(ex: cancer), c.). Ceci trois dimsions(ux était vab dimsions espace à pour ux l'espace dimsions + e dimsion re toujours pour vab temps). espace à spatiadontforme/oupositionvarie(nt)aucoursdutemps.siseupositionl'obj Comme nous l'avons vu point précént, e donnée spatio-temporel e donnée signicative, on pourra représter cte donnée point sions(onraalors espace à trois dim- point mobiou point mouvemt,oucore moving point angis).parcontre,siformel'objégamtsignicative,onreprésteraalorscte donnéee régionespaceàtroisdimsions(onraalors région mobiou région mouvemt, ou core moving region donné naissances aux ux abstractions base permtant angis). modélisation Ces ux l'interrogation cas gure ont l'histori s positions d' obj mobi. spatia,cepeutserésumer: L'objectifcypesspatio-temporelsreprésterl'évolutionmpsd'etité mpoint 20 = time point mregion 21 = time region Demanièreplusgénéra,onpeutdénirconstructeurtype type αtype φ(α): φ[11]transformeedonnée φ(α)=time α Ainsi,vaurd'pointmobi(type el peut être représtée e courbe mpoint)décritepositioncommeefonctiondutemps régionmobi(type mregion)sembvolumesespaceàtroisdimsions.n'importelintersectioncsembavecpn t=t 0 produiraevaurtype region espace à trois dimsions. La vaur d'e décrivantrégionmobiàl'instant 22, t 0 23 tier mobi(type mint), réel mobi(type.and'avoirerminologieiforme,onrad'- respectivemtdésignertier,réelboolédontvaurévoluemps.un mreal), boolé mobi(type mbooan) pour réel alors mobi qu' pourra, boolé mobi exemp, représtera représter respect l'évolution ou non d'e temps certaine propriété vitesse d' (ex véhicu, < 70 km/h). Contrairemt à point mobi ou à e région mobi, réel, tier : vitesse boolé mobi sont s objs à ux dimsions (vaur temporel). La gure 2.12 illustre point mobi, e région mobi réel mobi[11]. Fig. 2.12 Représtation d' point mobi(a), d'e région mobi(b) d' réel mobi(c). 20 moving point. 21 moving région. 22Type region = tout type permtant modéliser l'abstraction région. 23Une intersection vi égamt vab car ce produira e région vi, e vaur vab.

CHAPITRE 2. ÉTAT DE L'ART 28 Opérations [11, En 14, ce 9]. Ces concerne opérations ont opérations principamt doivt été subdivisées être dénies, ux e réponse catégories. a été fournie La première catégorie concerne opérations sur s types exemp: non-temporels. Il s'agit φ(region) φ(region) booan φ(point) φ(region) booan φ(point) φ(point) φ(real) region real line real insi, intersects, touches, overps on_borr, in_borr distance perimer ngth min, max φ(α) α Insi, intersects, touches overps prise, intersecte, ou chevauche permtt e autre respectivemt région. d'indir si e région com- On_borr srouvesurbordd'erégion,alors perm d'indir si point in_interior Distance, indisipointsrouverégion. perimer ngth treuxpoints,périmètred'erégionlongueurd'eligne(ex:eroute).enn, rournt respectivemt, comme urs noms l'indint, distance min max qu'il existe donnt ordre respectivemt total sur type vaur α). minima Certaines maxima ces opérations d' obj sont mobi généris, ( supposant el peuvt être appliquées à plusieurs types. Dans ce cas-là, on nommera ces types donc, α. Min max sont s exemp d'opérations généris. Laseconcatégorieconcerne opérations sur s types : temporels.ils'agitexemp φ(α) time α at φ(α) time start, stop real duration φ(α) periods ftime φ(α) range(α) rangevalues φ(point) line trajectory φ(region) region traversed φ(α) instant booan prest φ(α) periods booan prest φ(α) φ(α) atmin, atmax (α booan) φ(α) wh At rourne vaur d' obj mobi lcon(point, région, c.) à instant donné. Start stop l donnt obj mobi respectivemt déni, alors minimum maximum d' interval temps durant - duration l obj mobi déni. donne durée s interval temps durant Deftime déni. rourne périos durant ls obj mobi Rangevalues réel rourne projection d' obj mobi. Par exemp, projection d' mobi(α type réel) rournera semb nombres réels. A noter rangevalues ne réalise s projections sur s e dimsion (α réel, chaîne caractères ou boolé). Pour e projection sur s type ux instant, dimsions, tier, on utilisera trajectory (si α type point) ou traversed (si α type region). Prest perm dire si obj mobi existe à instant donné ou e pério donnée. Atmin atmax minimumouàsonmaximum.enn, rourne l'obj mobi au(x) momt(s) où sa vaur était () respectivemt à son wh respecte e certaine propriété. Il perm ainsi permrournerobjmobiauxmomtsoùil l il respectait (ou respecte core) e certaine rreindre propriété. l'obj(mobi) Par exemp, aux périos il sera possib durant d'exprimer rituer région mobi r à ct kilomètres. Bi évimmt, il aux ne s'agit instants durant d'e ls liste non sa exhaustive supercie était s opérations supérieure possib. Le cteur intéressé trouvera e liste beaucoup plus complète [9].

CHAPITRE 2. ÉTAT DE L'ART 29 Unefoiscypesaurontétédénis,ilspourrontêtreincorporésmodè spatia d' SGBD extsions tant qu'attributs tel qu'orac Spatial (comme ou core ce PostGIS), a déjà été cas opérations avec listées ci-ssus pourront être utilisées pour formur s requêtes. Soit retion suivante: Vols(id:string, dét:string, stination:string, route:mpoint) On pourrait alors formur s requêtes tel : 1 )Quelssontvols,audétBruxel-National,dontlongueursupérieureà5000 km? (projection spatia) SELECT id FROM Vols WHERE dét = Bruxel-National AND ngth(trajectory(route)) > 5000 2 ) Quel sont stinations sont accessib puis Bruxel-National moins trois heures? (projection temporel) SELECT stination FROM Vols WHERE dét = Bruxel-National AND duration(route) < 3.0 3 ) Rrouver toutes paires d'avions, durant urs vols, se trouvt à moins d' kilomètre l' l'autre (jointure spatio-temporel) SELECT v1.id, v2.id FROM Vols v1, Vols v2 WHERE v1.id v2.id AND minvalue(distance(v1.route, v2.route)) < 1 notions En ce concerne niveau d'abstraction nécessaire pour dénir ces types ces opérations, modè abstrait modè y répondre. La principa diérce tre ces ux discr, modè introduites rési [7], fait ont été l' dénies considère pour e mobi représtation peut, exemp, nie alors être déni l'autre comme suppose e e fonction représtation continue innie. En espace e, à ux point msions ou comme e ligne discontinue espace à trois dimsions (voir gure 2.12a). di- Demême,erégionmobipeutêtredéniecommepolygonesimpoucommepolygone compxe types avec s juste bords intérieurs(polygone termes d'semb avec innis, trou(s)). alors Dans cas second on dénit cas on domaine décrit e s représtation nie ces types. Modè abstrait l'évolution Comme nous l'avons temps vu d'e précémmt, tité spatia. l'objectif Dans s ce types modè, spatio-temporels temps considéré représter étant inni, ce fait représtations innies sont autorisées. Par consént, tous comme sont fonction d' temps inni, urs vaurs sont consént s semb innis( types point du temps, il existe e vaur). Par exemp, point mobi sera vu comme e courbe tout continue espace à trois dimsions.

CHAPITRE 2. ÉTAT DE L'ART 30 rateur Ainsi,cemodèpeutprdrecomptesansdicultéstitésmobi.Parexemp,l'opé- mdistance e distance tre pourra ux aisémt points être mobi. déni puis, l soit l'instant, il existera toujours ux Prons opérations. l'exemp On pourrait, d' modè(très d' point simpliste) vue formel, constitué dénir comme cinq types suit[7]: limité à Types: point, time, real, mpoint, mreal Opérations : mpoint time point at mpoint mpoint mreal mdistance En ce concerne vaurs possib pour diérts types ( nous noterons A peuvt être spéciées comme suit: type ), el A point := R 2 A time := R A real := R A mpoint f: A time A point efonction} A mreal :={f f: A time A real efonction} Un nombreréel,soitindéni.enceconcerneuxtitésmobi,elsontfonctiondutemps. point soit élémt d' pn soit il indéni, alors type temporel soit Enceconcerneopérations,sémanticesrnièrespeutêtredéniecommesuit: f at (r, t):= r(t) f mdistance (r,s):= g: A temps A real tel g = { d(r(t), s(t)) si r(t) s(t) sinon où d( p 1, p 2 ) calcudistanceeuclidinetreuxpointspn. L'opérateur atpermrournervaur(point)dupointmobi r l'opérateur àl'instant t,alors mdistance permrournerdistanceséantpointsmobi r rournera réel mobi représtant l'évolution( temps) distance séant s.cernier r Si,àinstant tlcon,pointsmobi r snesontpasdénis,distanceséant, s. àcinstant,vaut nesesouciepassavoirsierepréstationnieexisteoupas..onvoitainsiqu'modèabstraitpeutassezfacimtêtredénicaron cker Mais manipur malheureusemt, s semb ce modè innis irréalisab SGBD? prati. Commt En peut-on e, commt stocker e peut-on structure sto- donnéailinnie?laréponsesimp,çan'paspossibpoursraisonsphysis (mémoire, on peut se capacité baser sur s stockage, représtations c.). Heureusemt, discrètes(semb ce problème nis) n' ces pas semb irrémédiab. innis. En C' e, principe a été adoptée modélisation discrète. Modè discr signie Contrairemt vaurs au modè possib abstrait, d' type modè discr représtt discr suppose généramt temps sous-semb borné. Ce vaurs possib du type abstrait correspondant. C' principamt cte supposition s compxier modélisation. va types, Pour s approximations majorité s types seront nécessaires., cte C' supposition cas s tités ne change mobi. ri. Pour Mais décrire pour certains d'tité, e approximation linéaire généramt utilisée. Nous l'avons déjà vu précémmt ce type

CHAPITRE 2. ÉTAT DE L'ART 31 (voir msions gure alors 2.12), qu'e point région mobi mobi décrit décrite termes termes polylignes polyhèdres. A noter espace cte à trois notion di- d'approximation liser s représtations était déjà discrètes préste formes cas continues. s En e, spatia. e donnée El était utilisée type pour réa- region généramt décrite terme polygones alors qu'e donnée type line décritetermepolylignes.inmêmepourformespluscompxes(cylindre,sphère). généramt Les pne. faces ces rniers seront dénies approximant cha surface courbée sur e surface Danscemodè,représtationstitésmobis'eectuesurbased'e tranches(sliced represtation décomposer développemt temporel angis)[22, d'e tité 11, 14]. plusieurs L'idée fragmts ce type appelés représtation tranches tels simp (linéaire, tie constante, du développemt c.). La située gure 2.13 e illustre tranche exemp puisse être décrite représtation e d' fonction mobi d' point mobi décomposés respectivemt huit quatre tranches[11]. réel Fig. 2.13 Représtation tranches d' réel mobi(a) d' point mobi(b). Larepréstationtranchesconstruitegrâceàconstructeurappelé amètré type décrivant e seu tranche( nous appelrons type mapping.cernier La vaur d' obj type ité mobi coup (i, v) où ité mobi). i temps représte interval v upoint, représtation d'e fonction simp c interval. Il existe s types ureal, uline ou core uregion. opérateur[7]: Prons l'exemp d' modè simpliste constitué quatre types d' seul Types: point, time, real, mpoint Opérateurs : mpoint time point at On suit: peut exprimer vaurs possib peuvt prdre diérts types comme A point := D point où D point = real real A time := D time où D time = real A real := real A mpoint :={<(p 1, t 1, b 1 c 1 ),...,(p m, t m, b m, c ( 1 i m: m )> m 0, p i D point, t i D time, b i booan, c i i,j {1,...,m}: booan), i<j = t i < t j )} Pour types point, time port à e modélisation continue. real, Par on contre, remar modélisation qu'il n'y a pas discrète changemt du type rap- mpoint beaucoup plus compxe car il représté e sénce quadrupls. Cha quadrupl contit e position p i temps t i. Il contit égamt ag b vrai si point mobi déni l'interval i à [t i, t i+1 ]. En e, il se peut qu' point

CHAPITRE 2. ÉTAT DE L'ART 32 mobi contitsecondag soit déni façon discontinue (voir gure 2.12a), d'où l'utilité ce ag. Enn, il c i àvraisipointreconstanttre[t i, t i+1 ](p i = p à faux si e interpotion linéaire a été utilisée tre i+1 ), p i p perm supporter cinq premières catégories spatio-temporel[7] i+1.cte représtation été préstées à section 2.4.2. ont Enceconcernel'opération suit: atpourpointmobi ràl'instant t,elpeutêtredéniecomme fat(r,t):= si m = 0 si m > 0 (t < t 1 t > t m ) p i si m 1 ( i {1,..., m} : t i = t) lin(p i, t i, p i+1, t i+1, t) si m 2 ( i {1,..., m 1} : (t i < t < t i+1 ) b i = vrai c i = faux) p i si m 2 ( i {1,..., m 1} : (t i < t < t i+1 ) b i = vrai c i = vrai) si m 2 ( i {1,..., m 1} : (t i < t < t i+1 ) b i = faux) où lin(p 1, t 1, p 2, t 2, t)permd'exécutereinterpotionlinéairetrepoints(p 1, t 1 ) (p 2, t 2 )espaceàtroisdimsionsrournepointàl'instant t. pxe Ciremt, on cas constate abstrait. Néanmoins, modélisation il a l'avantage d'tités mobi d'être applicab cas discr prati. plus comtemporel, A prést nous nous avons avons introduits montré commt dénis ces rnières était spatia, modélisab, temporel nous pouvons spatio- passer à préstation d'hermes constitue élémt ctral ce mémoire.

Chapitre 3 Hermes temporel Un s pour principaux SGBD objectifs PostgreSQL. ce mémoire Concrètemt, a été il fournir a fallu e migrer première e extsion, extsion initiamt spatio- proposée conçue [21, pour 22] SGBD 2006. Orac, vers PostgreSQL. Cte extsion, du nom d'hermes, a été temps, Dans nous ce chapitre, verrons nous principa allons voir idées détail sur l diértes repose ties Hermes. d'hermes. Ensuite, Dans nous verrons premier diérts types qu'hermes supporte. Ces rniers sont subdivisés quatre ties types base, types spatiaux, types temporels types spatio-temporels. Dans : troisième physimt temps, représtés. nous irons Enn, plus nous détail verrons nous verrons panorama commt non-exhaustif ces types s opérations sont permtt à Hermes d'analyser dépcemts successifs d' obj mobi. 3.1 Introduction gion L'émergce s applications localisation mobi robustes. a mis Dans évince cas e s faibse: LBS exemp, man l'analyse systèmes dépcemts utilisateurs insusante[21]. Pour cte raison, nombreux travaux ont été réalisés s adopte e s domaine ux approches modélisation nous s avons vues spatio-temporel(l'esstiel précémmt section 2.4). Suite ces artic travaux, premiers développemts systèmes supportant spatio-temporel à sont ces égamt d'e extsion apus. spatio-temporel En 2002, N. Pekis pour a développé SGBD Orac. l'ancêtre Cte d'hermes: extsion sourait STAU[18]. ces(insusance Il s'agissait apu Hermes. types, d'opérations, c.), pour cte raison, el a été améliorée. C' ainsi qu' proposé Extsion 2006[21, STAU 22]. [18], Les Hermes fonctionnalités 1 prototype ce framework framework permtt 2 spatio-temporel gérer s géométries a été dont fonctionnalités position permtant /ou forme l'analyse évolue(nt) spatio-temporel(ou temps. Pour ce, il objs regroupe mobi). semb L'objectif d'hermes traitant s objs faciliter mobi. modélisation, construction l'interrogation bases cte Hermes n, Hermes a été repose développé tie comme sur e extsion fonctionnalités s SGBD proposées Orac (Orac Orac: 10g à l'origine). A 1. Types base(tier, réel, chaîne caractères, boolé) opérations base; 1Du nom du dieu du commerce Grèce Anti. 2Ensemb d'outils permtant développemt d'applications. 33

CHAPITRE 3. HERMES 34 2. Types tial[17] cartouche(ou spatiaux opérations extsion) spatia urs sont s associées(fournies SGBD Orac). Orac Spa- Enplussfonctionnalitésci-ssus,Hermesreposeégamtsureautrecartouche. Cternièreoreupporttemporelnécessaireàmodélisationspatio-temporel. CtecartoucheapournomTAU_TLL 3 [18]. tion En ce l'histori concerne s positions modélisation nous s avons vue spatio-temporel, section 2.4.4, ce Hermes impli se base l'utilisation sur ges- ur types d' obj mobi spatio-temporel sous Hermes représtée nous verrons e plus fonction détail où cha suite. instant Ainsi, associé va- à e donnée spatia. qu'extsion Bi qu'hermes puremt soit temporel e extsion ou puremt spatio-temporel, spatia[22]. el peut être égamt utilisée tant 3.2 Système types sous Hermes 3.2.1 Introduction LesystèmypessousHermesdiviséquatreties: typesbase(bt); types types temporels(tt); types spatiaux(st); spatio-temporels(mt). Lagure3.1illustrecesystèmypes[22].Cernierpeutserésumercommesuit: Hermes = BT TT ST MT. Fig.3.1SystèmypessousHermes. 3 TA Universe Temporal Litteral Library (TA e ticu a e durée vie 10 15 secons).

CHAPITRE 3. HERMES 35 3.2.2 Les types base constitut Les types tie base ctra sont ceux du proposés système types SGBD puis Orac c' ( sur base plut ces types s SGBD). qu'ont été Ils conçus spatio-temporels. types temporels types spatiaux, eux-mêmes sont fonmts s types 3.2.3 Les types temporels d'hermes.tau_tllfournitfonctionnalitéspuremttemporeld'hermes.ctesous-tie Les types temporels d'hermes ont été introduits TAU-TLL [18] e sous-tie sebasesureextsionaétéproposée1996[13].cternièreétaitlimitéeàquatre types temporels(date, time, timamp tant types timepoint, interval). TAU_TLL a étdu ces rniers ajou- period temporal temps, TAU_TLL implémte candrier grégori. emt. Il considère En ce concerne temps linéaire(totamt conception du ordonné) d' temps retif borné. (ex Il considère : trois égamt mois) fait temps tie s absolu travaux (ex : futurs 15/12/2009 visagé 17:50). [22]. Le En support concerne domaine temporel, TAU_TLL considère modè discr. L'axe du temps ce titionné types temporels, nombre cteur ni intéressé segmts pourra discrs se appelés référer à granu. l'annexe B1. Pour e dénition formel s 3.2.4 Les types spatiaux regroupesemblypes,fonctions,procéduresd'opérateurspermtant Les types spatiaux d'hermes sont ceux proposés Orac Spatial [17]. Ce rnier, upportspatia,neconsidèrepasfacteurtemps.ainsictesous-tied'hermes fournit Orac Spatial fonctionnalités propose e puremt hiérarchie spatia. types En ce se base concerne sur cel types proposée l'ogc spatia, gure 2.5). La gure 3.2 illustre cte hiérarchie[22]. (voir Fig. 3.2 Diagramme csses s types géométris proposés sous Orac Spatial.

CHAPITRE 3. HERMES 36 AiveausSGBDOrac,toutegéométrieystockéecommeobj(spatial)type SDO_GEOMETRY ticurités d'orac ( e Spatial, seu ligne notammt e seu sur colonne). stockage Nous d'objs. revidrons plus tard sur 3.2.5 Les types spatio-temporels qu' Les obj types mobi pouvait spatio-temporels avoir au l du ont temps. été introduits La représtation an gérer ce l'histori type d'obj s s'eectue positions sur emprtée base d'e représtation obj mobi, peut tranches. être vue Cte comme rnière e se sénce base sur segmts fait qu'e trajectoire, à trois dimsions. Chac ces segmts représte e tie du développemt temporel espace l'obj mobi, chac peut être décrit l'intermédiaire d'e fonction simp(principe représtation tranches nous avons introduit section 2.4.4). La gure 3.3 illustre point mobi dont trajectoire constitué diérts types mouvemts[22]. Fig. 3.3 Décomposition du développemt temporel d' point mobi. Pourdénirstypesspatio-temporelpourobjsmobi,principeadopté Hermes représter tout obj mobi e colction d'objs type ité mobi (it moving type e tranche. Ainsi, angis).cernierpermdécrirecomportemtl'objmobi associée à e fonction tout modélisant obj type comportemt ité mobi sera l'obj caractérisé mobi e pério pério temps temps spéci. permtant Ce représter impli e pério dénition d' temps type d' ité type mobi permtant nécessite l'existce représter d' fonction. Sous Hermes, ces rniers sont présts respectivemt sous noms D_Period_Granu type Unit_Fction. 4 En combinant ux types précénts, on obtit obj type umpoint(it moving point se bast angis). sur ce type. Ce rnier Par exemp, fondamtal objs puis type autres objs type ités mobi umcirc (it moving circ angis) umrectang(it moving rectang premier composé d' tripl d'objs angis) type se bast directemt sur type umpoint. Le paired'objstype umpoint.tousuxpermttmodéliseregéométrie,respectivemt alors second composé d'e circuire rectanguire, dont position /ou forme évolue(nt) interval temps. onnepeutsecontterd'elistepoints.pourcteraison,lype Parcontre,pourreprésterpolygone(type umpolygon)ouepolyligne(typeumlinestring), umsegmt(it moving segmt arc)pouvantchangerforme/outail.lagure3.4illustreobjtype angis) a été introduit. Ce rnier perm représter segmt ligne(simp ou umsegmt 4Où Granu = Hour ou Min ou Sec, c. (il existe plusieurs types représtant e pério temps ité fonction granurité.)

CHAPITRE 3. HERMES 37 [22]. Dans l'interval [t 1, t 2 ], point mp 1 suit e trajectoire linéaire simp alors point mp 2 suitrajectoirecourbe. Fig. 3.4 Représtation d' umsegmt. ces C' rniers sur base représté ces types ité e mobi colction types types spatio-temporels ité mobi correspondant. sont dénis. Chac Hermes a déni types spatio-temporels suivants: mpoint, mcirc, mrectang, Ainsi, mlinestring temporels mpolygon. grâce Hermes aux types donne multi-types égamt possibilité représter s colctions types spatio- (multi moving type angis). ter Cepdant, s colctions types homogènes spatio-temporels (ex : semb préstés jusqu'ici permtt imt représ- umpoint type ou mpoint). Pour cte raison, mcolction (moving colction e hétérogène types spatio-temporels. angis) a La été gure déni. 3.5 Ce illustre rnier l'organisation perm représter spatio-temporels sous Hermes[22]. s types Fig. 3.5 Diagramme csses s types spatio-temporels d'hermes. Pour e dénition formel s types spatio-temporels, cteur interessé pourra se référer à l'annexe B2.

CHAPITRE 3. HERMES 38 3.3 Représtation physi s types spatiotemporel 3.3.1 Introduction,nécessairesàtraductionurssémantis,surl'implémtationsméthossur Larepréstationphysiquypespermd'avoirevisionsurstructures ces d'abord types. Pour voir comprdre philosophie l'implémtation adoptée s SGBD types Orac spatio-temporels pour stockage sous d'objs Hermes, compxes. il convit stocker IxisteuxmanièresstockerobjabousOrac.Lapremièreconsisteà n élémts(ou attributs) constituant obj tup(e ligne n Ces objs sont appelés objs lignes. Cte approche comme à plut s SGBD, colonnes). malheureusemt, el ne convit pas pour tous types d'objs. En e, ce mo représtation mais n' cas vab spatia si l'on connaît ( spatio-temporel), à l'avance nombre on d'élémts ne connaît pas constitut à l'avance l'obj. ce nombre. Or, Comme gure2.5).inmêmepourspatio-temporel(voirgure3.5).idoncfallu nous l'avons vu précémmt, e donnée spatia peut être diérts types (voir trouver e représtation s soit plus soup. Pour cte raison, notion tab nichée a été introduite. seu Apue cellu(appelée avec Orac tab Spatial, nichée cte ou notion tab imbriquée) perm stocker type e tité géométri e SDO_GEOMETRY ligne e colonne). Ce type d'obj appelé obj colonne. An stocker d'e élémts( tab(e nombresvariab)constitutl'tité,ctecellupointeraversab(ditockage) contidra ces élémts. La gure 3.6 illustre ce principe[17]. Fig. 3.6 Exemp tab nichées. seu Une colonne) autre alternative élémts aux d' tab obj nichées tabau stocker longueur (toujours e seu ligne e variab(varray And'implémtertypespatio-temporelcommeecolctiontypesitémobi,Hermes sous Orac). utilise notion tab nichée.

CHAPITRE 3. HERMES 39 3.3.2 Point mobi Ainsi, obj type mpoint Physimt, il s'agira d'e tab sera nichée représté pointera e vers colction e tab d'objs stockage type contant umpoint. objs type umpoint. Tout obj type umpoint caractérisé e donnée type D_Period_Granu nées(x, y)). Le type e donnée type Unit_Fction(e pour chace ses coordon- D_Period_Granu f]où stdébut représté ux vaurs délimitant l'interval([d, f Le type n,oùgranuritépeutêtreseconouminuteexemp). Unit_Fction variab fonction d' ag représté indiquant type tripl fonction. nombres Cte réels(a, fonction b, c) se représtant dénit comme suit: f(t):t R [t 1, t 2 ] R, où[t 1, t 2 ]périotemps Actuelmt, quatre types fonctions sont supportés sous Hermes: 1. Constante; 2. Polynomia du premier gré; 3. Polynomia du second gré; 4. Racine carrée d' polynôme du second gré. Anfaciliterupportnouvelfonctions(ex:spline,polynômegrésupérieuràux), modélisation du type Unit_Fction extsib. 3.3.3 Cerc mobi / Rectang mobi Lesobjstypes mcirc d'objs types sontrespectivemtrepréstésscolctions umcirc seront utilisées pour stocker ces umrectang. colctions. Tout comme pour type mpoint, s tab nichées Lesconcepteursd'Hermesontpréféréfaireedistinctionpoursraisonsexibilitésimplication Cesuxtypespeuvtêtremodéliséscommescasticuliersdutype mpolygon. imt sur développemt. base d' faib En nombre e, ces ux types types ité mobi. peuvt Par exemp, aisémt être obj modélisés type umcirc sera composé trois objs type umpoint sation d' cerc vali) alors qu' obj type ( trois points nécessaires à modéli- umrectang type sera composé ux objs umpoint modélisation (coin beaucoup inférieur plus gauche compxe coin puisqu'el supérieur droit). doit prdre Pour compte obj s type polygones umpolygon, triviaux(ex: polygone avec trou(s), voir gure 2.7). non La gure 3.7 illustre l'évolution position forme d'objs respectivemt type mcirc mrectang [22].

CHAPITRE 3. HERMES 40 Fig. 3.7 Représtation d' cerc mobi d' rectang mobi. Entre l'instant t 1 t 2, ux géométries ont changé forme. A l'instant t rescce se produit. Les ux objs type 3, e dégéné- mpoint segmt ligne tout comme trois objs type compost rectang mobi formt l'instant compost cerc mobi. A t verrons plus 4, tard mpointrespectifsdurectangmobiducercmobivintégaux.nous commt Hermes détecte ces dégénérescces. 3.3.4 Polyligne mobi / Polygone mobi Tout comme pour types spatio-temporels précénts, objs types mlinestring mpolygon sont respectivemt représtés s colctions (tab nichées) d'objs types umlinestring umpolygon. nepeutpasêtredécriteimttermesd'objstype Contrairemtauxcercmobiauxrectangmobi,epolylignemobi(mlineString) dérationpolylignesnontrivia(voirgure2.6),objtype mpoint.anprdreconsi- umlinestring e colction (tab nichées) d'objs type représté umsegmt d'interpotion tre point dét point d'arrivé polyligne. Ainsi, ag indiquant représtation type complète d' obj type mlinestring 3.8 illustre cte représtation[22]. se base sur s tab nichées à ux niveaux. La gure Fig. 3.8 Structure d'e polyligne mobi. La représtation d' obj type mpolygon très simiire à cel d' obj type mlinestring ( obj type umpolygon représté e colction d'objs type

CHAPITRE 3. HERMES 41 umsegmt).laseudiércerésiaiveaudutypeitémobi.ene,représtation d' obj type umpolygon seu diérce premier quasi composé inti d' ag à cel additionnel. d' obj Ce rnier type umlinestring, nécessaire pour à représtation objs type umsegmt(associés polygones avec trous à (voir obj gure type 2.7). umpolygon) En e, ce formt ag perm l'anneau d'indir extérieur si du polygone mobi ou anneau intérieur. La gure 3.9 illustre structure d' obj type mpolygon [22]. Fig. 3.9 Structure d' polygone mobi. Ce polygone mobi comprd ux trous. An décrire, obj type umpolygon décrira trou. Chac frontières ces trois extérieures, objs sera autre caractérisé décrira sa premier propre trou tab nichée. autre décrira second 3.3.5 Colction mobi du type La représtation mcolction. d'semb Il perm d'objs modéliser types s colctions spatio-temporels types s'eectue homogènes l'intermédiaire Pource,objtype hétérogènes. mcolction dénicinqpointeursverstypessuivants: 1. multi_mpoint (multi moving point angis); 2. multi_mlinestring (multi moving linestring angis); 3. multi_mcirc (multi moving circ angis); 4. multi_mrectang (multi moving rectang angis); 5. multi_mpolygon (multi moving polygon angis). Chac mpoint, s mlinestring, types ci-ssus mcirc, perm modéliser semb homogène respectivemt type mrectang permsimuresorted'héritagypes.siutilisateurn'abesoindutype mpolygon. Cte conception adoptée multi_mpoint, Hermes ilréférceraimtpointeuradéquatl'objtype non référcés). S'il souhaite avoir d'autres types, il référcera mcolction(issantautres souhaite. Il pourra ainsi représter s colctions types hétérogènes. pointeurs vers types qu'il

CHAPITRE 3. HERMES 42 Un autre avantage cte représtation dénition toutes méthos commes aux multi-types au niveau du type mcolction. 3.3.6 Obj mobi Le type mobject rô super type perm s types modéliser n'importe spatio-temporel l type spatio-temporel base vus précémmt. base. Il joue se basant sur même conception type mcolction, type En mobject pointeurs. Ce type généri déni comme suit[22]: déni huit CREATE TYPE Moving_Object AS OBJECT ( mobject REF Moving_Object, mpoint REF Moving_Point, mline REF Moving_LineString, mcirc REF Moving_Circ, mrectang REF Moving_Rectang, mpolygon REF Moving_Polygon, mcolction REF Moving_Colction, geomry REF MDSYS.SDO_GEOMETRY, gtype string, arg1 integer, arg2 integer, input Union_Input ); Contrairemt au type mcolction, type mobject utilisé utilisateur d'hermes. Il s'agit donc d' type n'a pas abstrait. été conçu Par pour contre, être il directemt utilisétantrésultatfonction(ex:fonctiondontlyperourgénéri). pourra être utilisée La première cas référce où e fonction pointeur d' obj récursif aurait sur amètre type mobject. même El type principamt (ex: opérations topologis tre ux polygones mobi). c obj référce Les quatre vers référces type spatial suivantes d'orac sont (SDO_GEOMETRY) s pointeurs vers nécessaire types spatio-temporels pour l'implémtation base. La méthos d' obj mobi ayant obj puremt spatial comme argumt (ex : retion topologi tre obj mobi obj LineString). L'attribut gtype mpoint, pointeur agindiquantlypemouvemt.parexemp,sil'objtype pour connaître type adéquat l'obj, sera on référcé utilisera l'attribut tous autres pointeurs seront non référcés. Et gtype pointeur. C attribut représté comme suit: perm d'éviter ter cha gtype = {MOBJECT, MPOINT, MLINE, MCIRCLE, MRECTANGLE, MPOLYGON, MCOLLECTION} En ce concerne l'attribut input, nous y ssus revidrons plus tard.

CHAPITRE 3. HERMES 43 3.4 Opérations sur objs type mobi 3.4.1 Introduction principes[22]: La conception s opérations sur types présts sous Hermes repose sur quatre 1. Conception d'opérations plus généris possib; 2. Assurer puremt temporels consistance spatio-temporels; tre opérations sur types puremt spatiaux, 3. Maintir consistance(cohérce) base ; 4. Modéliser phénomènes intéressants. An prolifération faciliter d'opérations, l'extsibilité (future) premier d'hermes principe meure nouvel fondamtal. fonctionnalités Il ainsi esstiel an d'éviter focaliser sur propriétés commes à plusieurs types. Il égamt indispsab d'avoir e se vision iée s colctions types. [22]. An La première répondre consiste au second à étudier principe, opérations concepteurs sur types d'hermes ont procédé puremt trois spatia étapes à séctionner cel dont l'association avec e sémanti temporel serait uti (ex : longueur d'objtype à l'étape précénte, LineString).Lauxièmeétapeconsisteàétdreopérations,séctionnées ainsi semb d'opérations vers variantes dont temporel s argumts (TAU_TLL) type s temporel types respectifs. (ex : longueur On obtit obj type d' mlinestring opérations obtues à l'étape à précénte instant donné). à rirer Enn, dimsion rnière étape temporel. consiste On à reprdre obtit ainsi s type opérations mlinestring, sont indépdammt indépdantes d'e d' dimsion instant ticulier, temporel modélisera (ex : longueur nombre d' réel obj évolue temps). semb Lorsqu' règ SGBD vériant étdu respect s contraintes nouvel fonctionnalités, d'intégrités an il s'assurer nécessaire d'avoir consistance - s charge. surveilnce Pour cte raison, (monitoring) troisième principe base repose. sur Ces semb méthos pourront méthos être explicitemt ont tel ou appelées tel opération). e requête utilisateur ou être invoquées automatimt(ex: à suite temporels Enn, an provant permtre domaines modélisation divers, du concepteurs plus rge d'hermes évtail possib ont cssié concepts ces opérations spatio- visageab sept catégories avec [22]. ces nouvel Chace requêtes. ces rnières perm décrire d'analyser possibilités 1. Opérations baseétatcohért; vérication: regroupe l'semb s opérations permtt garr 2. Prédicats mobi(ex: : regroupe retion topologi); l'semb s opérations concernant retions tre s objs 3. Projection interaction sur domaine spatial temporel s opérations limite projte types spatio-temporels sur domaine : regroupe spatial l'semb domaine temporel; sur 4. Opérations numéris obj mobi exemp; : regroupe s opérations tel calcul du périmètre d' 5. Opérations portant sur distances directions objs mobi sopérationsfacilitt,exemp,calculdistanceminimatreuxobjs :regroupe

CHAPITRE 3. HERMES 44 mobiàinstantdonné,oul'angformétreuxobjstype mpoint l'ang formé ur trajectoire respective(nous revidrons plus tard sur c ang); c'-à-dire 6. Opérations portant sur s semb d'objs semblistes(ex: intersection, ion, c.); : regroupe l'semb s opérations 7. Opérations sur taux changemt taux changemt s propriétés du mouvemt : regroupe d' l'semb obj mobi(ex: s opérations changemt décrivant vitesse). Etant rama non-exhaustif donnée quantité ces méthos. fonctionnalités proposées sous Hermes, nous ne verrons qu' pano- 3.4.2 Maintance consistance base état Hermes consistant[22]. fournit plusieurs El méthos impost s permtant contraintes s'assurer d'intégrités doivt base être respectées re l'utilisation spatio-temporel. lors 1. booan check_periods_equality () type ité mobi (constituant l'obj : mobi vérie si courant, périos c'-à-dire temps celui cha fait obj appel métho) sont éga. Ainsi, Hermes n'autorise pas l'existce d' obj type ité à mobi ité mobi dont pério(d_period_granu) compost; soit diérte cel s sous-objs type 2. booan check_disjoint () type ité mobi successifs : vérie ne se chevaucht si périos pas; (D_Period_Granu) ux objs 3. booan check_me () pério l'obj type 5 :vériesiepériod'objtypeitémobircontre illustreexemplroutemporel ité mobi suivant(pas trou temporel). La gure 3.10 (pério[t 2, t 3 ]nercontrepaspério[t 4, t [22]. 5 ]) Fig. 3.10 Exemp trou temporel détectab l'opérateur check_me. 4. booan check_geracies objmobi)n'apassubiedégénérescceàinstantdonné(d_timepoint_granu). :vériesigéométrie(associéeà Parexemp,rectangmobi,aulsonévolution,peutavoirformed'segmt ligne l'obj ou d' type point(voir ité mobi gure (s'il 3.7 pour existe) dont exemp). pério La métho contit commce l'instant passé rechercher mètre métho. Une fois trouvé, e interpotion l'obj type a- Unit_Fction (caractérisant points sont cohérts(auce l'obj ité mobi dégénérescce). trouvé) à c Dans instant cas d' réalisée cerc an mobi vérier exemp, si méthovérierasitroisobjstype umpoint ou colinéaires. dénisstnesontpaségaux 5Cte métho exécutée imt sur base d'e requête explicite l'utilisateur.

CHAPITRE 3. HERMES 45 5. Varchar2 validate_geomry (D_Timepoint_Granu, err_msg) trie d' obj mobi vali. El se base sur méthos précéntes. 6 : vérie Une si fois géomé- ces rnières ont été appliquées, cte métho fait appel à métho at_instant. Cte rnière précis. Ensuite, perm el va mapper vérier l'obj certaines mobi propriétés(dénies e géométrie (SDO_GEOMETRY) modè d'orac à Spatial) instant qu'e géométrie polyligne résultante(ex: dénie vérier au moins qu' ux polygone points (dét, déni arrivé), au moins quatre polygones points, d' obj type multi_mpolygon métho rournera TRUE, sinon el sont rournera disjoints, c.). message Si tous d'erreur ts d'orac sont concluants, rseignant surraisonsl'échec(sil'erreurliéeàgéométrie)oufalse autrescas. Dans colction. cas Les vérications colction d'objs s'arrêtt mobi, à première ces méthos erreur seront rcontrée. appliquées sur cha obj 3.4.3 Prédicats modélisant retions topologis distances retions Hermes fournit tre objs égamt mobi[22]. s méthos, Ces méthos sous formes sont regroupées prédicats, ux permtt semb appelés décrire within_distance tion tre obj courant rete, constitués respectivemt huit méthos obj type permtt mpoint, mlinestring, modéliser mcirc, re- mrectang, mpolygon, mcolction, mobject SDO_GEOMETRY ce ces opérations possè ux signatures (surcharge (obj puremt spatial). Cha- retion tre l'obj mobi courant obj mobi à 7 ) : instant première donné perm alors décrire secon e décrit cte retion prant compte son évolution temps. 1. booan f_within_distance (dist, Moving Type, tol, D_Timepoint_Granu) Moving_Booan f_within_distance (dist, Moving Type, tol) : tol à amètre précision indiquant si distance tre ux points inférieure tol d'orac (tolérance), Spatial). Hermes Ainsi, considérera première version ces ux cte points métho comme perm seul (concept déterminer provant objs mobi(l'obj courant celui passé amètre) sont à e certaine distance si ux l'autre à instant donné. La distance tre ux objs types autres l' mpoint (ex points : mlinestring) plus proche). calculée La secon comme version distance cte minima métho tre ne considère ces ux pas objs imt (coup instantdonnémaistoutelignedutemps.eldétermineainsisiuxobjsmobi sontàecertainedistancel'l'autroutaulongurévolutionrespective temps. Le mbooan certaine distance l' résultant l'autre; indira donc quand ces ux objs était(ou pas) à e 2. Varchar2 f_rete (mask, Moving Type, tol, D_Timepoint_Granu) Moving_String f_rete (mask, Moving Type, tol) première version cte métho détermine si ux objs mobi : topologi ticulière (éga, disjoint, c.) à instant donné. C' vérit amètre e retion mask permd'indirretionàter.laseconversionméthoprncompte l'évolution temps s ux objs mobi. 3.4.4 Projection interaction sur domaine spatial sur domaine temporel Hermesfournitégamtsembméthospermtantrreindre/ouprojer sur domaine spatial sur domaine temporel[22]. 6 Varchar2 = Type représtant e chaîne caractères longeur variab. 7Surcharge fonctions : ux fonctions ayant même nom mais dièrt au niveau urs amètres /ou urs vaurs rour.

CHAPITRE 3. HERMES 46 1. Unit_Moving_Point it_type (D_Timepoint_Granu) plusieurs objs type ité mobi (dépd l'obj aul : cte on métho appli rourne métho) ou dont pério contit l'instant passé amètre; 2. Union_Output at_instant (D_Timepoint_Granu) l'obj mobi courant e géométrie. La vaur rour : cte dépd métho perm nature mapper mobi sur l el appliquée. S'il s'agit d' obj représtant e géométrie mobi l'obj mobirepréstanttypesimp(ex: (ex:mpolygon),vaurrourseraobjtype mreal,mint),vaurrourseratypesimp SDO_GEOMETRY.S'ils'agitd'obj (ex: concaténation réel, tier). S'il s s'agit vaurs d'e rour colction l'application d'objs(mcolction), métho vaur rour sera at_instant s objs cte colction. En fait, il ne s'agit pas d'e réel concaténation mais à chac l'application d' opérateur ticulier permtra faire e sorte d'ion; plutôt 3. Moving_Object at_period surdomainemporel.lapériotempspasséeamètrecomée(séntielmt) (D_Period_Granu):cteméthorreintobjmobi l'obj mobi avec toutes aul périos métho caractérisant appliquée. Si objs amètre types ne ité chevauche mobi pas composant cours comaison (cel d' obj type ité mobi), l'obj ité mobi pério correspondant l'intersection omis. pério S'il passée chevauche, amètre; pério cours comaison vit alors 4. D_Temp_Emt_Granu f_temp_emt () rios temps, caractérist objs ité : cte mobi métho constituant perm l'obj projer mobi, sur pé- élémt domaine temporel. temporel La gure concaténer 3.11 illustre toutes résultat ces périos cte opération temps sur pour construire obj type mpoint[22]; Fig. 3.11 Projection d' point mobi sur domaine temporel(opérateur f_temp_emt). 5. Moving_Object at_temp_emt (D_Timepoint_Granu) métho :cteméthosimiireà at_period se base pas sur e seu vueprécémmt.laseudiércerésifaitcel-cine pério(d_period_granu) mais sur e colction périos; 6. SDO_GEOMETRY f_ctroid (tol, D_Timepoint_Granu) Moving_Object f_ctroid (tol) première version cte métho rourne : polygone mobi à instant donné(passé amètre). ctre (appelé El égamt ctre gravité) applicab d' cerc mobi au rectang mobi. La secon version rourne obj type au mobject représtant cas ticuliers l'évolution où ctre du ctre gravité se forme trouve hors temps. du La polygone gure 3.12 [22]. illustre Le premier ux correspond casoùpolygonetropconcave; au cas où ctre se trouve à l'intérieur d' trou. Le second correspond au

CHAPITRE 3. HERMES 47 Fig. 3.12 Opérateur f_ctroid. 7. SDO_GEOMETRY f_convexhull (tol, D_Timepoint_Granu) Moving_Object f_convexhull (tol) première version cte métho rourne l'veloppe : à instant donné. La secon version rourne obj convexe type d'e géométrie mobi mobject l'évolution cte veloppe convexe temps; représtant 8. SDO_GEOMETRY f_pointonsurface (tol, D_Timepoint_Granu) Moving_Object f_pointonsurface (tol) première version cte métho rourne point(lcon) : polygone mobi à instant donné. La secon version prd compte se trouve l'évolution polygone mobi temps; du 9. Union_Output f_initial () : cte métho rourne résultat l'opération at_instant au premier instant où l'obj mobi déni; 10. Union_Output f_final () résultat l'opération : simiire à métho précénte, cte métho rourne at_instant au rnier instant où l'obj mobi déni; 11. SDO_GEOMETRY f_trajectory () prtée point mobi. Une : projection cte métho du mouvemt perm du modéliser point mobi trajectoire sur pn em- s réalisée segmts mappant lignes (linéaires objs ou types arcs) ité mobi seront ( fusionnés compost an former point mobi) l'obj LineString sera rourné; 12. SDO_GEOMETRY f_traversed () prtée obj mobi. El : cte applicab métho à tous perm types modéliser spatio-temporels trajectoire autre em- mpoint.lagure3.13illustresonapplicationàrectangmobi(a)àcercmobi (b); Fig. 3.13 Opérateur f_traversed.

CHAPITRE 3. HERMES 48 13. SDO_GEOMETRY f_locations ():cteméthopermmodélisertrajectoireemprtée point mobi. La diérce avec métho f_trajectory rési fait cte métho ne rourne pas obj LineString mais semb points. 3.4.5 Opérations numéris vaur Hermes numéri fournit ( égamt fonction trois s caractéristis méthos (surchargées) l'obj mobi) permtt à instant soit donné, rourner soit e rourner obj mobi représtant l'évolution cte vaur numéri temps[22]. 1. number f_area (tol, D_Timepoint_Granu) Moving_Real f_area (tol) première version cte métho rourne : l'aire d' obj mobi à instant donné. La secon version rourne obj type mreal mps(ex:objdontformechangemps).cteméthoapplicab représtant l'évolution cte aire à n'importe l polygone(avec ou sans trou, cerc rectang); 2. number f_ngth (tol, D_Timepoint_Granu) Moving_Real f_ngth (tol) premièreversioncteméthorournepérimètred'cercmobi,d'rectang mobi Dans ou cas d' d' polygone polygone mobi, mobi ou ayant longueur ou d'e plusieurs polyligne trous, mobi cte à métho instant calcu donné. périmètre total comme somme du périmètre s frontières externes du polygone du périmètre type du ou s trous. Dans sa secon version, cte métho rourne obj mreal représtant l'évolution temps ce périmètre ou cte longueur; 3. Varchar2 f_num_of_componts () pls_integer f_num_of_componts (mtype Varchar2) première version cte métho rourne e chaîne structurée : nombre composants comporte e colction d'objs (mcolction). caractères La décrivant version cte métho a pour argumt e chaîne caractères décrivant obj secon bi, rourne nombre d'obj(s) ce même type compose(nt) colction. mo- 3.4.6 Opérations portant sur distances directions s objs mobi ux Hermes objs fournit mobi ux l'ang méthos formé permtt segmt respectivemt ligne reliant ux calcur points mobi[22]. distance tre 1. number f_distance (Moving Type, tol, D_Timepoint_Granu) Moving_Real f_distance (Moving Type, tol) première version cte métho perm calcur distance : bi à instant donné. La secon version rourne obj type tre ux objs mo- mreal l'évolution cte distance temps; représtant 2. number f_direction (Moving_Point, D_Timepoint_Granu) Moving_Real f_direction (Moving_Point) premièreversioncteméthopermcalcurl'angforméegmtligne : (à version instant rourne donné) obj reliant type premier point mobi (du segmt) second. La secon mreal La gure 3.15 illustre méthos représtant l'évolution c ang temps. f_distance f_direction d' point mobi (représtant e étoi) rapport à autre [22]. El (représtant montre direction supposanttrajectoirel'étoiuitdroite Terre), uv celterresuitl'axe xx, étoi distance e gaxie). tre point mobi polygone mobi(représtant respectivemt e

CHAPITRE 3. HERMES 49 3.4.7 Retions d'semb Fig. 3.14 Opérateurs f_distance f_direction. mobi[22]. Hermes fournit quatre méthos permtant décrire retions d'semb tre objs 1. SDO_GEOMETRY f_intersection (Moving Type, tol, D_Timepoint_Granu) Moving_Object f_intersection (Moving Type, tol) : : (AND) première ux version objs cte mobi métho à instant rourne donné. e géométrie La secon représtant version rourne l'intersection j type ob- mobject 3.14 illustre l'intersection représtant d'e polyligne l'évolution mobi cte avec intersection polygone mobi temps. trois La instants gure diérts [22]. A l'instant t 1, résultat sera obj type LineString. A l'instant t résultat sera obj type multi_linestring. A l'instant 2, t colction types 3, résultat sera e hétérogènes(linestring Point); Fig. 3.15 Opérateur f_intersection. Moving_Object f_ion (Moving Type, tol) première version cte métho rourne e géométrie : ux objs mobi à instant donné. La secon version représtant rourne obj l'ion (OU) type mobject représtant l'évolution cte ion temps; 2. SDO_GEOMETRY f_ion (Moving Type, tol, D_Timepoint_Granu)

CHAPITRE 3. HERMES 50 3. SDO_GEOMETRY f_differce (Moving Type, tol, D_Timepoint_Granu) SDO_GEOMETRY f_differce (Moving Type, tol) première version cte métho rourne e géométrie représtant : ux objs mobi à instant donné. La secon version rourne obj diérce type mobject représtant l'évolution cte diérce temps; Moving_Object f_xor (Moving Type, tol) première version cte métho rourne e géométrie : métri(xor) ux objs mobi à instant donné. La représtant secon version diérce rourne sy- obj type mobject représtant l'évolution cte diérce temps. 4. SDO_GEOMETRY f_xor (Moving Type, tol, D_Timepoint_Granu) 3.4.8 Taux changemt Hermes Une importante fournit trois propriété opérations toute permtt vaur évolue décrire ce taux temps (applicab taux imt changemt. points mobi)[22]. aux 1. number f_speed (D_Timepoint_Granu) Moving_Real f_speed (D_Timepoint_Granu) première version cte métho perm calcur : instant donné. La secon version rourne obj type vitesse d' point mobi à mreal cte vitesse temps; représtant l'évolution 2. number f_turn (D_Timepoint_Granu) Moving_Real f_turn (D_Timepoint_Granu) premièreversioncteméthopermreprésteruxchangemtl'ang formé version rourne l'axe s obj abscisses type vecteur mouvemt à instant donné. La secon mreal temps; représtant l'évolution ce taux changemt 3. SDO_GEOMETRY f_velocity (D_Timepoint_Granu) Moving_Point f_velocity (D_Timepoint_Granu) premièreversioncteméthopermcalcurvélocité instant donné. La secon version rourne point mobi représtant 8 d'pointmobià vélocité temps. l'évolution cte 8Quantité vectoriel rseigant sur taux changemt s positions d' obj mobi.

Chapitre 4 Migration d'hermes d'orac vers PostgreSQL d'orac Nous vers allons PostgreSQL voir ce chapitre principa étapes ont permis migrer Hermes SGBD PostgreSQL. Mais 1 concrètemt, ainsi fournir quoi e consiste première cte extsion migration? spatio-temporel Que signie migrer pour système? premier temps. Comme Le but doit-on ce s'y chapitre prdre? n'étant C' pas ce à quoi s'intéresser nous allons à l'semb tter s répondre fonctionnalités proposées ontnécessitéemigration.pource,nouspasseronsrevuecesélémtsnousverrons Orac, nous nous limiterons second temps à cel compost Hermes s exemp concrs. 4.1 Introduction La migration d'e application a d' système s 1 vers système s fait traduire l'application 2 peut se résumer a d' ngage l 1 vers ngage l consiste à faire sorte l'application 2. En d'autres termes, ce a puisse fonctionner sans combre sur système s La traduction l'tièré l'application 2. a élémts s ngages n' pas forcémt nécessaire. En e, si certains l 1 l ces rniers ne sera pas nécessaire. 2 sont comms sont utilisés l'application a, e traduction r, La principa rési diculté fait qu'gdre certains concepts tel processus, présts plus ngage traduction à propremt l peuvt ne pas exister ngage 1 ( utilisés a) l permtt simur ces concepts. Ainsi, 2. Dans tel ce processus cas, il faudra nécessite trouver plusieurs s alternatives phases. Dans cas d'hermes, il s' principamt réalisé trois étapes. SGBD La première Orac consiste SGBD à s'intéresser PostgreSQL au ngage permtant d'interfacer avec respectivemt (l 1 l fonctionnalités base sont disponib (types 2 ). C' l'intermédiaire fonctions standards). ce ngage Ces fonctionnalités repose cartouches représtt spatia tie temporel, ctra d'hermes el-même puisqu'el étant constitut base d'hermes. base Généramt, sur l il sont s'agit généramt d' ngage commes étd à fonctionnalités majorité s SGBD. proposées Cepdant, SQL. il Ces n' fonctionnalités pas à exclure base noms ces types ces fonctions soit diérts, donc e traduction sera nécessaire. Au niveau d'orac (s 1 ), ce ngage se nomme PL/SQL pour Procedural Language/ Structured Query Language [17, 8] (l 1 ). Sous PostgreSQL (s 2 ), ce ngage se nomme PL/PgSQL pour Pro- 1Orac 10g PostgreSQL 8.3.7 cadre ce mémoire. 51

CHAPITRE 4. MIGRATION D'HERMES D'ORACLE VERS POSTGRESQL 52 cedural Language/ PostgreSQL Structured Query Language [19, 6] (l tard sur ticurités ces ux ngages. Cepdant, nous pouvons 2 ). Nous d'ores revidrons déjà dire plus PL/PgSQL très proche du PL/SQL. Nous verrons suite qu'e gran tie du co source l'étu d'hermes ces ux sous ngages forme scripts l'analyse PL/SQL. ur Ainsi, syntaxe cte première respective étape (variab, peut se fonctions, résumer structures contrô, c.) C++.Dèslors,seconétapeduprocessusmigrationconsisteàs'intéresseràl'interaction Certains s scripts PL/SQL d'hermes font appel à s fonctionnalités externes développées trgaged'interface(l i )ngagehôte. spatia. Enn, Sous rnière Hermes, étape el du provint processus d'orac migration Spatial. consiste Sous à PostgreSQL, s'intéresser aux ces fonctionnalités fonctionnalités sont fournies SGBD se PostGIS. bast généramt Nous l'avons sur dit précémmt, spécications fonctionnalités l'ogc (voir spatia gure 2.5). proposées Spatial(voirgure3.2)PostGISnedérogtpasàceprincipe.Ilfaudradonctraduirypes Orac fonctionsd'oracspatialversursévantssouspostgis.adéfauttraduire,ilfaudra évtuelmt trouver s alternatives. 4.2 Architecture d'hermes 4.2.1 Introduction Nous Dans allons chapitre à prést précént, l'exposer sous nous avons autre présté ang. Nous Hermes allons d' plus point précisémt vue assez nous théori. à ses sources. Nous l'avons vu précémmt, Hermes a été conçu tant qu'extsion intéresser temporelpoursgbdorac.ilregroupeainsitoutsembd'outilspermtantgion spatio- consiste l'extsion spatio-temporel d' SGBD? Commt l'intermédiaire procè-t-on d' SGBD pour Orac. étdre Mais SGBD? concrètemt, C' ce à quoi nous allons tter répondre. quoi temt, Etdre tout SGBD SGBD dispose consiste à tab développer systèmes(aussi nouvel appelés fonctionnalités dictionnaire pour ce rnier. ou Concrèlogues systèmes) l il registre toutes sortes d'informations retives aux types cata-, aux fonctions, aux tab utilisateurs, aux attributs ces tab, aux méthos d'accès, aux raisst contraintes comme s d'intégrités, tab aux droits ordinaires. utilisateurs, Par c. consént, Au niveau il utilisateur, possib ces tab modier appa- tab ( disposant s privilèges res). Et puis fonctionnalités d' SGBD se bast ces sur tionnalités ces tab, s'eectue SGBD l'intermédiaire peut être étdu. du ngage Sous Orac, PL/SQL, développemt ce rnier pouvant ces faire nouvel appel à fonc- fonctionnalités développées ngage hôte (C, C++, Java, Perl, c.). Hermes étd s SGBD Orac l'intermédiaire trois scripts PL/SQL. 4.2.2 Script TAU_TLL.sql puremt Ce premier temporel script correspond qu'hermes à supporte. cartouche(du Il comporte même nom)[18] peu plus fournit 19.000 lignes fonctionnalités sont réties vingt-ux packages regroupant peu moins d' millier fonctions cos procédures. Les noms ces packages sont repris tabau suivant.

CHAPITRE 4. MIGRATION D'HERMES D'ORACLE VERS POSTGRESQL 53 Period Temporal Emt Timepoint D_Period_Y D_Te_Y D_Timepoint_Y D_Period_M D_Te_M D_Timepoint_M D_Period_D D_Te_D D_Timepoint_D D_Period_H D_Te_H D_Timepoint_H D_Period_Min D_Te_Min D_Timepoint_Min D_Period_Sec D_Te_Sec D_Timepoint_Sec Date Time Timamp Interval D_Date D_Time D_Timamp D_Interval vait Nous être avons résumés vu précémmt e ontologie sept concepts élémts(voir nécessaires section à 2.3.3). modélisation Ces rniers du temps ont donné pou- naissances gure3.1).and'orirecertainesoupseaiveaumodélisation,certainscesconcepts aux sept principaux concepts temporels supportés cartouche TAU_TLL(voir - sont associés à e granurité (Year, Month, Day, Hour, Minute pourrareprésterinstant(surlignedutemps)esecon,eminute,oucore ou Second). Par exemp, on e temporelsupportéscartouchetau_tll(hermes)sont année, tout dépdant précision l'on souhaite. Par consént, aombrevingt-ux. types Pour packages, cte chac raison, l'semb ces rniers s concernant fonctionnalités type temporel ont ticulier. été réties Par exemp, vingt-ux tionnalités concernant concept Period sont regroupées six packages (car six granurités fonc- possib).inmêmepourconceptstemporalemt autres concepts temporels, fonctionnalités urs sont associées Timepoint.Pourquatre ckages respectifs sont réties quatre pa- TAU_TLL En plus sont du script égamt TAU_TLL.sql, réties e fonctionnalités bibliothè temporel lis dynamis fournies cartouche (Dynamic Link Library du co angis).lebutd'elbibliothè,sousformed'chier (C++, Java ou autres) à disposition. Dans cas cartouche TAU_TLL, 2,mtre bibliothè (.dll) constitue c ur puisqu'el fournit totalité du co source cte ( lignes C++) s fonctionnalités préstes script TAU_TLL.sql. Ainsi, co 30.000 fonction PL/SQL ne fait charger co fonction correspondante bibliothè. d'e Ce fonction chargemt PL/SQL, s'eectue cte rnière manière va dynami. explicitemt Ce manr signie qu'au chargemt momt l'exécution bibliothè d'e an égamt récupérer dénis co l'intermédiaire source fonction cte bibliothè. correspondante. Certains types sont 4.2.3 Script HERMES.sql surtypesdéniscriptprécént,surfonctionstypesproposésorac Ce second script fournit fonctionnalités spatio-temporel. Il se base ainsi sur fonctions Spatial. section 3.4, Il regroupe ainsi peu types moins d'e ctaine spatio-temporels fonctions, dont nous certaines avons introduits ont été préstées au chapitre précént(voir section 3.2.5 3.3). 4.2.4 Script UTILITIES.sql fonctions Cernierscriptesorteboîteàoutils.Ilregroupe(seulpackage)evingtaine préstées section seront 3.4(ex: utilisées distance, script HERMES.sql. Certaines ces fonctions ont été direction ou core check_colinear). 2.dll (vironnemt Windows),.so,.a,.dylib (vironnemt Unix)

CHAPITRE 4. MIGRATION D'HERMES D'ORACLE VERS POSTGRESQL 54 4.3 Langage d'interface avec SGBD : PL/SQL versus PL/PgSQL Ce Une rnier gran perm tie s créer, fonctionnalités gérer proposées manipur s Hermes méthos a été développée s types PL/SQL. spatia, temporel spatio-temporel. An qu'hermes puisse être utilisé sous PostgreSQL, e PostgreSQL). traduction du PL/SQL vers du PL/PgSQL nécessaire(pl/sql n'étant pas supporté 4.3.1 Introduction coté PL/SQL[8] serveur. Introduit ngage 1988 procédural (PL/SQL propre 1.0) aux systèmes version Orac. 6 s Il SGBD s'agit Orac, donc d' ngage PL/SQL a pour principal objectif combr limitations du ngage SQL. A cte n, ngage été conçu tant qu'extsion du ngage SQL. Il ajoute ainsi semb fonctionnalités il a procédura utilisant s au structures ngage SQL. contrô. Ainsi, il sera Les possib, principa ticurités exemp, du faire ngage s requêtes PL/SQL SQL sont: tout 1. Support du ngage SQL; 2. Amélioration s performances; 3. Support programmation oritée-obj; 4. Portabilité 5. Sécurité. L'saspectsplusimportantsdungagePL/SQLqu'ilpeutintégrerducoSQLsans auce s diculté blocs cos sans PL/SQL(ngage nécessité traduction. orité Ainis, bloc). du Cte co notion SQL pourra bloc aisémt esstiel être inséré ngage PL/SQL. C' l'intermédiaire ces blocs traitemts performances d' PL/SQL), SGBD peuvt SGBD être ne peut améliorées. exécuter Dans qu'e cas seu d'e requête application à fois. cssi Une application (sans utilisation (clite) du nécessitant réalisation n requêtes fera appel au SGBD(serveur) n bloc,ilseradorénavantpossibregrouper fois. Grâce à cte notion n l'appeusgbdneseferaqu'eseufois(voil'tièrédubloc) requêtesseulbloctraitemts, réduire considérabmt trac tre clit serveur. En combinant 3.Ainsi,ceperm avecl'utilisationprocéduresstockées,itpossibdénirsfonctionsconstituéesblocs cte notion bloc d'instructions peuvtêtreexécutéesàdistancel'applicationclite SQL pré-compilés stockés au niveau du serveur. L'avantage ces fonctions 4.Lagure4.1illustrecesprincipes[17]. Fig. 4.1 Améliorations s performances d' SGBD Orac avec l'utilisation du PL/SQL. 3En supposant l'applications supporte PL/SQL. 4Dans ce cas, l'application clit ne doit pas forcémt supporter PL/SQL.

CHAPITRE 4. MIGRATION D'HERMES D'ORACLE VERS POSTGRESQL 55 Au niveau du serveur, traitemt d' bloc PL/SQL géré ux moteurs internes : l' pour gion s instructions procédura l'autre pour gion s instructions SQL. Ce procédé perm d'accélérer traitemt. La gure 4.2 illustre ce principe[17]. Fig. 4.2 Traitemt d' bloc PL/SQL. loppemt Le ngage d'applications PL/SQL supporte compxes. égamt Enn, adigme possibilité orité-obj stocker s an procédures permtre au niveau déve- serveur(dontgionàchargecernier)permd'accroîtresécurités du (ex: possibilité dénir s droits sur ces procédures). vel Depuis version son s apition SGBD Orac 1988, apaît ngage égamt PL/SQL e a nouvel fortemt version évolué. du En ngage. fait, à cha La rnière nou- versionàcejourpl/sql10.2(apuavecorac10grease2) 5. qu'extsion ToutcommePL/SQL,ngagePL/PgSQLngageprocéduraétéconçutant PL/SQL(orité du ngage bloc, possibilité SQL. Il d'utiliser propre s au structures système Postgres contrô, s très variab, simiire c.). au ngage Aprést,voyonsplusprèssyntaxecesuxngagesand'avoiremeilurevision migration d'hermes. 4.3.2 Structure d' bloc La constituée structure d' trois bloc ties: traitemts sous PL/SQL inti à cel sous PL/PgSQL. El DECLARE /* Décrations variab initialisations. */ BEGIN /* Instructions exécutab. */ EXCEPTION /* Gion s exceptions. */ END ; Les mots clés BEGIN END indint respectivemt début n s instructions exécutab.lemotclé DECLARE indidébuttiecontidradécrationsvariab 5Depuis Orac 8, numéro version du ngage PL/SQL suit numéro version du SGBD (PL/SQL 8.0, PL/SQL 8.1, PL/SQL 9.1, c.)

CHAPITRE 4. MIGRATION D'HERMES D'ORACLE VERS POSTGRESQL 56 constantes seront utilisées. Le bloc EXCEPTION ceptions aurait été ncées bloc BEGIN. Le perm ngage PL/SQL récupérer autorise traiter l'imbrication ex- présté blocs, sous ce Hermes. ngage PL/PgSQL n'autorise pas. Cepdant, ce cas gure ne s' pas 4.3.3 Variab constantes explicitemt PL/SQL, tout décrée comme PL/PgSQL tie oblige DECLARE. La toute décration variab utilisée d'e variab (sous instructions PL/SQL soit sous PL/PgSQL) respecte forme suivante: nom [CONSTANT] type [NOT NULL] [{ DEFAULT vaur} := expression] ; tive Bi (sauf évimmt, cas décration l'initialisation d'e d'e constante). variab Le au mot momt clé sa décration faculta- NOT NULL contrainte sur variab sera vériée à l'exécution. Une erreur sera perm générée d'applir cas non e respectcterèg.lemotclé DEFAULT défaut à variab. Il s'agit d'e alternative perm,commesonnoml'indi,donnerevaur à l'initialisation cssi. 4.3.4 Types standards sous Les PL/PgSQL. types Les ls standards diérces proposés notab sous PL/SQL résint sont quasi s noms intis types à ceux diérts. proposés ce concerne Hermes, traduction s types se résume au tabau suivant. En PL/SQL pls_integer float varchar2(n) varchar2 PL/PgSQL integer doub precision character varying(n), varchar(n) varchar, text numeric(p, s) number(p, s) real(si p=4 s=6) doub precision (si p=8 s=15) smallint (si p=2) number(p) integer(si p bigint(si p=8) = 4) ne se Cepdant,itàsoulignerqu'emigrationstypesPL/SQLversPL/PgSQL tous résume cas pas gure. au tabau Par exemp, ci-ssus. certains En e, types migration d'hermes sous PL/SQL n' pas n'existt représtative pas sous PL/PgSQL (ex : tab). D'autres ont s noms diérts (ex : raw, long raw, blob bytea; xmltype plusampinformations[17,8,19,6]. xml).cepdant,cesortducadrecemémoire.lecteurintéressépourratrouver 4.3.5 Structures contrô Aiveausstructurescontrô(IF, THEN, ELSE, ELSE a quasi pas diérces tre PL/SQL PL/PgSQL. La seu IF, diérce WHEN, FOR, notab LOOP, CASE),iln'y signar rési e bouc l'on peut FOR dont compteur va décroissant. PL/SQL FOR i IN REVERSE 1.. 10 LOOP PL/PgSQL FOR i IN REVERSE 10.. 1 LOOP

CHAPITRE 4. MIGRATION D'HERMES D'ORACLE VERS POSTGRESQL 57 4.3.6 Tabaux diairel'opérateur L'utilisation tabaux assez simiire. Par exemp, dénition s'eectue l'intermé- [] sur s tabaux type ouviamotclé VARRAY. Ce type ARRAY.Aiveaud'Hermes,scriptsPL/SQLsebasait longueur variab, accompagné d' semb, fonctions permtant lui sont supporter propres. s Cepdant, tabaux n'existe pas tel type sous PL/PgSQL. Il a donc fallu trouver s alternatives peuvt se il résumer tabau suivant. PL/SQL PL/PgSQL tab(i) tab[i] tab.first tab[1] tab.last tab[array_upper(tab, 1)] tab.prior(i) tab[i-1] tab.next(i) tab[i+1] tab.extend array_appd(tab, NULL) tab.extend(n) tab.count array_upper(tab, 1) Apper n fois métho précénte tab.extend(n, em) Apper n fois array_appd(tab, em) Enceconcerneméthos PRIOR[i] NEXT[i] mtsi ipremierrnierélémtdutabau.sic'cas,elrournenull.ainsi, dutype VARRAY,elttrespective- souspl/pgsql,ilfaudraégamtfairecsavantd'accérrespectivemtau(i 1)ème 8.4métho élémt.enceconcernemétho array_ngth.anouveau,cabaerepréstepastouscasgure COUNT,elpeutêtrraduitesousPostgreSQL (i+1)ème cas migration. 4.3.7 Fonctions procédures Dénition ls Au niveau légères diérces. dénition s fonctions, structure généra même. Cepdant, il existe PL/SQL PL/PgSQL CREATE [OR REPLACE] FUNCTION CREATE [OR REPLACE] FUNCTION nom ([am]) nom ([am]) RETURN type IS RETURNS type AS [DECLARE] DECLARE [/* Décrations initialisaitions.*/] /*Décrations initialisations. */ BEGIN BEGIN /* Instructions exécutab. */ /* Instructions exécutab. */ END ; END ; LANGUAGE plpgsql ; La principa diérce rési présce du mot clé LANGUAGE nier perm d'indir l ngage fonction a été développée doit sous obligatoiremt PL/PgSQL. Ce être r- logimt indiqué.nousrevidronsplustardsurcemotclé.enceconcernemotclé facultatif(ex: fonction sans variab). Cepdant, même présce DECLARE,it cemotcléfacultatifsouspl/sql,c'pascassouspl/pgsql. variab(s), fonctions.ene,ngagepl/sqlsebasesurmotclé Au niveau s dénitions procédures, diérce plus prononcée qu'au niveau s PROCEDURE Or, ce mot clé n'existe pas sous PL/PgSQL. Néanmoins, problème peut pourcréersprocédures. facimt se résoudre.

CHAPITRE 4. MIGRATION D'HERMES D'ORACLE VERS POSTGRESQL 58 Il sut vaur pour rour(void). ce rempcer toute procédure PL/SQL e fonction PL/PgSQL n'ayant pas PL/SQL PL/PgSQL CREATE [OR REPLACE] PROCEDURE CREATE [OR REPLACE] FUNCTION nom ([am]) nom ([am]) IS RETURNS void AS [DECLARE] DECLARE [/* Décrations initialisations.*/] /*Décrations initialisations. */ BEGIN BEGIN /* Instructions exécutab.*/ /* Instructions exécutab. */ END ; END ; LANGUAGE plpgsql ; Paramétrage argumt. Au niveau Ainsi, du amètrage cha amètre s fonctions, caractérisé ngage PL/SQL nom nomme explicitemt type. Au niveau cha ngage PL/PgSQL, seul type caractérise(pas nommage explicite). En e, cha amètre du suite. Cepdant, a nom plutôt défaut. d'utiliser Le premier ce nommage, amètre il sera possib nommé d'associer $1, second cha $2, amètre ainsi e variab(alias). à PL/SQL PL/PgSQL CREATE FUNCTION nom (p integer) CREATE FUNCTION nom (integer) RETURN integer IS RETURNS integer AS [DECLARE] DECLARE... p ALIAS FOR $1 ; BEGIN BEGIN...... On fonctions peut noter avait e imt ticurité s au types niveau du base amétrage (tier, chaînes s fonctions caractères, sous Hermes: c.) comme toutes argumts. était secon, Par exemp, recevait e réalité fonction six nombres recevait amètres(année, amètre instant mois, jour, dont heure, granurité secon). Ce n' corps fonction type minute, instant ces amètres. Sachant certaines fonctions était susceptib d'avoir jusqu'à était créé six sur instants base amètres, PostgreSQL il n'était ne supporte pas rare pas voir tant e fonction amètres avec pour e trtaine e fonction amètres. (limités à dix-huit), Etant donné fallu modier cte façon amétrer. Ainsi, au lieu qu'e fonction reçoive six argumts pour il a représterinstant,elrecevraàpceseulamètrypeinstant type D_Timepoint_Sec). (plusexactemt Regroupemt fonctions clé Sous PACKAGE).Ilsutpourceprocércommesuit: PL/SQL, regroupemt fonctions s'eectue l'intermédaire packages (mot CREATE OR REPLACE PACKAGE nom_package AS FUNCTION fct1 (amètres) FUNCTION fct2 (amètres) ;... END;

CHAPITRE 4. MIGRATION D'HERMES D'ORACLE VERS POSTGRESQL 59 nom L'accèsàfonction du package(nom_package.fct1). fct1exemp'eectuerafaisantprécérnomfonction autrotionpermtraitsimurpackage:schéma.cernierespacoms Cepdant, cte notion package n'existe pas sous PL/PgSQL. Néanmoins, il existe e lors,onpeuttraduirecoprécéntpl/pgsqlcosuivant: l il possib regrouper s fonctions, s types, s vues 6, c. Dès CREATE OR REPLACE SCHEMA nom_schema ; CREATE OR REPLACE FUNCTION nom_schema.fct1 (amètres) ; CREATE OR REPLACE FUNCTION nom_schema.fct2 (amètres) ;... Contrairemt à l'utilisation packages, dénition d' schéma ne peut pas directemt spécier fonctions à regrouper. La dénition s'eectue donc séémt. 4.3.8 Erreurs messages L'achage s messages d'erreur assez simiire. PL/SQL PL/PgSQL RAISE_APPLICATION_ERROR(num, msg ); RAISE EXCEPTION msg ; DBMS_OUTPUT.PUT_LINE ( msg ); RAISE NOTICE msg ; souspl/sql.néanmoins,cuméropourraaisémtêtreconcaténéavecmessaged'erreursous La seu diérce rési présce d' numéro message d'erreur(nombre négatif) PL/PgSQL.Anotersi msg message avec variab quion. contitvaurd'evariab,pl/sqlilfaudraconcaténer Par exemp, s'il faut acher résultat Sous d'e PL/PgSQL, variab tière, il faudra il spécier faudra indir type son cte type variab. (im qu'avec fonction %d printf C). PL/SQL PL/PgSQL RAISE_APPLICATION_ERROR( RAISE EXCEPTION -20000, Variab tmp = tmp -20000:Variab %d =, tmp ; ); 4.3.9 Types utilisateur notion d'obj rces. Au niveau Ces rnières s types résint dénies fait l'utilisateur, possibilités sont il existe plus nombreuses certain nombre sous PL/SQL. dié- Par exemp, création d' obj PL/SQL s'eectue l'intermédiaire du mot clé OBJECT composites(plusieurs n'existe pas PL/PgSQL. attributs) Néanmoins, sous PL/PgSQL. il possib rempcer ces objs s types PL/SQL PL/PgSQL CREATE [OR REPLACE] TYPE type CREATE [OR REPLACE] TYPE type AS OBJECT ( AS ( x integer, x integer, y integer y integer ) ; ); Cepdant, PL/SQL perm d'associer type OBJECT l'intermédiaire du mot clé MEMBER. Il donne ainsi possibilité à s créer fonctions véritab s procédures objs sous formes csses. Bi PostgreSQL soit SGBD retionnel-obj 7 (tout comme Orac 6Vue = tab virtuel dénie l'intermédiaire d'e requête. 7Se basant sur modè retionnel aul certaines notions ont été ajoutées (types utilisateurs, pointeurs, interaction avec ngage hôte, c.).

CHAPITRE 4. MIGRATION D'HERMES D'ORACLE VERS POSTGRESQL 60 puis tab(s) sa version (ex : tab 8), il n'ore pas cte possibilité. Il propose exemp notion d'héritage Captia comme e csse. Toutefois, il ne perm hérite pas d'associer tab Vil) e csse 8 où cha à s tab méthos pourra /ou être à vue types. De plus, cte notion d'héritage assez limitée puisqu'il ne se propage pas s cas d'insertion ou copie s (l'accès à attribut csse mère provora e erreur). il n'existe Ainsi, pas d'alternatives PostgreSQL permtant assez limité simur au niveau ce concept(regroupemt notion d'obj, type malheureusemt, Néanmoins, plutôt d'utiliser obj ( ss d'orac, c'-à-dire types + méthos). associés à s fonctions), on peut dénir types fonctions séémt. PL/SQL PL/PgSQL CREATE TYPE t AS OBJECT ( CREATE TYPE t AS ( x integer, x integer, y integer, y integer MEMBER FUNCTION fct ) ; ) ; CREATE TYPE BODY t IS CREATE FUNCTION fct (t, integer) MEMBER FUNCTION fct (p integer) RETURNS integer AS RETURN integer IS...... END ; END ; LANGUAGE plpgsql ; END; Soit v type t, i r type integer : Soit v type t, i r type integer : r = v.fct(i) r = fct (v, i) souspl/pgsqlqu'ilneserapaspermisregroupertypesfonctions Lesuxexempdutabauci-ssusfournirontmêmerésultat.Néanmoins,l'inconvénit urs sont associées. beaucoup Une autre plus diérce simp rési ci-ssus. création types tabaux. Néanmoins, solution PL/SQL PL/PgSQL CREATE [OR REPLACE] TYPE t CREATE [OR REPLACE] TYPE t AS VARRAY (n) OF autre_type ; AS ( autre_type [n] ) ; (casting).soit Enn, il existe égamt obj,edonnéype s diérces au niveau type1.saconversiontype conversion explicite tre type2sefera s types sous PL/SQL type2(obj) alors sous PL/PgSQL, ce se fera obj::type2. 4.3.10 Interaction avec ngage hôte teragiravecsngageshôtes(java,c,c++,perl).nousl'avonsvuprécémmt,fonctions And'érgirperspectivesvisageabavecSGBD,cernierdonnepossibilitéd'in- du C++. script TAU_TLL.sql Ces rnières sont d'hermes préstes se base tièremt e librairie, sur s ainsi fonctions cha fonction externes PL/SQL développées charger fonction C++ correspondante. Ce chargemt possib tant sous Orac sous va PostgreSQL. Néanmoins, syntaxe assez diérte. 8Une requête sur sous-tab pourra mtionner s attributs tab mère (sans explicitemt mtionner).

CHAPITRE 4. MIGRATION D'HERMES D'ORACLE VERS POSTGRESQL 61 PL/SQL PL/PgSQL CREATE [OR REPLACE] LIBRARY directoryn AS chemin_vers_lib ; FUNCTION fct (am) CREATE FUNCTION fct (am) RETURN type RETURNS type IS EXTERNAL AS chemin_vers_lib LANGUAGE ngage_hôte [, nom_fct lib ] [NAME nom_fct lib ] LANGUAGE ngage_hôte ; LIBRARY directoryn librairie On peut sous constater Orac nécessite c' création(via peu plus compxe mot clé sous LIBRARY) PL/SQL. du En répertoire e, l'utilisation contidra d'e d'e librairie fonction à charger. écrite Ce n' ngage qu'e hôte. fois ce Sous répertoire PostgreSQL, créé qu'il création sera possib ce répertoire récupérer n' co nécessaire( toute façon, ce n' pas possib). Seul chemin vers cte librairie ngagelaétédéveloppéesontnécessaires.enceconcernomfonction,il pas obligatoiresifonctionpl/pgsql(pl/sql)anomdiértcelngagehôte. pectée, Au niveau provora e librairie, erreur il lors existe du e chargemt. ticurité Pour sous rappel, PostgreSQL e librairie(dll), si el n' constituée pas res- d' semb librairie, généramt sources seront chier mises d'-tête à disposition. reprdra An signature ces fonctions ces soit fonctions disponib type rour, type(s) du/s amètre(s)). Sous Orac exemp, cha signature (nom, spéciée comme suit: sera type_rour fct ( type(s) amètres(s) ) ; PostgreSQL, Et lorsqu'on c' visualisera peu plus librairie, compliqué. on Il verra existe apaître ux types nom signatures fonction fonctions. fct. Mais La sous mière (appelée version-0) inti à cel ci-ssus, corps fonction du co pre- ordinaire tre types du ngage hôte. En du raison ngage hôte problèmes ceux sous portabilité PL/PgSQL, cte compatibilité, version notammt vemt rempcée secon version (appelée version-1). En e, prochaines versions progressi- PostgreSQL supporteront imt version-1. Pour cte raison, c' cte rnière a été suivie l'utilisation lors cte macros migration. An version-1. combr Les principa ces sont: version-0, PostgreSQL a introduit 1. PG_FUNCTION_INFO_V1 nom_fonction:indi(aiveausignature) nom_fonction suit version-1; 2. PG_FUNCTION_ARGS amètre; : indi (au niveau signature) qu'e fonction a au moins 3. PG_GETARG_type(i) :récupère amètre(type type)fonction; 4. ième PG_RETURN_type(var) : rourne variab var traduit type correspondant sous PL/PgSQL dont (ex type, : ngage hôte, oat oat8, real oat4, string text,c.[19]); 5. PG_GETARG_POINTER(i) :récupère amètrepointeur; 6. ième PG_RETURN_POINTER(var) : rourne pointeur var; 7. PG_RETURN_DATUM(var) : rourne variab var posite). Dans ce cas, l'utilisation l'api type compxe(ex: type com- S Rurning Fction rnier contit semb fonctions permtt gérer création, sera nécessaire l'initialisation car ce rour(verssgbd)d'typecompxeàtird'ngagehôte.lecteurintéressé pourra trouver plus amp informations au suj c API [19].

CHAPITRE 4. MIGRATION D'HERMES D'ORACLE VERS POSTGRESQL 62 En d' plus bloc s magi ticurités co version-1, librairie. PostgreSQL Ce bloc, impose (puis fait version e macro, 8.2) perm présce détecter si librairie ( doit être chargée) incompatib avec SGBD. Ce bloc vériera, An exemp, d'inclure ce bloc du co magi, n'a pas l'utilisation été compilé l'api pour e version majeure diérte du SGBD. Fction Call Interface rnier regroupe tout e série fonctionnalités permtt gérer création sera nécessaire. fonctions, Ce d'être notammt e librairie co s chargeab macros ci-ssus. respectivemt Voici sous exemp Orac fonction sous PostgreSQL. C serait susceptib #inclu <oci.h> Orac PostgreSQL #inclu postgres.h #inclu fmgr.h /* Bloc magi. */ PG_MODULE_MAGIC /* Signature (vaur rour amètre comms à tt signatures fonctions) */ EXPORT Datum add_one (PG_FUNCTION_ARGS) ; PG_FUNCTION_INFO_V1(add_one) ; int add_one (int p){ Datum add_one(pg_function_args) { try{ try{ rurn (p+1) ; int arg = PG_GETARG_INT32(0); } PG_RETURN_INT32(arg + 1); catch(exception e){ } OCIExtProcRaiseExcpWithMsg ( catch(exception e){ OCIExtProcContext, co, ereport(error,errcod(e), msg ); errmsg( msg )) ; } } } } rour SousPL/PgSQL,lype Datum. C' l'appel à Datumesortypeiversel.Toutefonctionapourtype macro PG_GETARG_type quat. A noter égamt toute fonction a pour amètre permtra rourner type adé- PG_FUNCTION_ARGS au amètre (assez simiire argv[] d'e fonction main C). mtaiveaugionsexceptions.ene,lorsqu'efonctionpl/sql(oupl/pgsql) Miseàtpréscesmacrosprécémmtintroduites,cesuxexempdièrtéga- charge ce e ngage fonction hôte. d' An ngage d'assurer hôte, l'échange el d'informations susceptib d'intercepter sur cte exception e exception tre survue ngage hôte, Orac se base sur l'api SGBD Orac Call Interface fonctionnalités permtant d'accér à SGBD Orac. Ce rnier propose regroupe métho semb OCIExt- ProcRaiseExcpWithMsg fonction PL/SQL sous Orac. perm Sous PostgreSQL, ncer e exception ncemt d'e pourra exception être récupérée réalisée e métho ereport dénie l'api Error Reporting ronspasdétailscesapicarcesortducadrecemémoire.ene,gions propre à PostgreSQL. Nous ne rtre- exceptions précémmt sous (section Hermes 4.3.8). peut se Le résumer cteur intéressé ces ux pourra fonctions, trouver plus plus amp ce a informations été indiqué [17, 19].

CHAPITRE 4. MIGRATION D'HERMES D'ORACLE VERS POSTGRESQL 63 4.4 Cartouche spatia : Orac Spatial versus PostGIS 4.4.1 Introduction pu être C' réalisée. sur base Mais s élémts ce repris concerne jusqu'à scripts prést HERMES.sql migration UTILITIES.sql, du script TAU_TLL.sql il man a core nousallonsvoiràprést.maisavantvoirprincipauxélémtsontétémigrésaiveau e chose: migration s types s fonctionnalités spatia. C' ce s au niveau spatia, représtation il convit d'explir ce type sous premier Orac temps sous l'approche Postgres. Ceci a été permtra adoptée mieux comprdre cte étape du processus migration. 4.4.2 Obj spatial sous Orac Spatial : SDO_GEOMETRY fournit Nous toutes l'avons vu fonctionnalités précémmt, nécessaires cartouche à gion spatia d'orac se spatia. nomme Orac An Spatial. représter El cype,ebasesurehiérarchiypes(voirgure3.2)assezsimiire à donnée cel proposée spatia était l'ogc stockée (voir comme gure 2.5). obj Nous type avons égamt vu (section 3.3.1) toute SDO_GEOMETRY ct,notiontabnichée étaitutilisée.aprést,voyonsplusdétaildénition e seu colonne. A cypedonnée. Sous Orac Spatial, type SDO_GEOMETRY cinq attributs[17]: représté obj caractérisé CREATE TYPE SDO_GEOMETRY AS OBJECT ( SDO_GTYPE NUMBER, SDO_SRID NUMBER, SDO_POINT SDO_POINT_TYPE, SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY, SDO_ORDINATES SDO_ORDINATE_ARRAY ); puis C obj tout obj représte spatial somm(csse obj SDO_GEOMETRY. mère) La hiérarchie distinction types tre préstée gure 3.2 Point ou Polygon s'eectuera imt sur base s attributs. Voyons à prést ls sont ces rniers. SDO_GTYPE Il C'sur représté basecattributqu'onpourraintier nombre quatre chires dont lype vaurs géométrierepréstel'obj. possib sont ci-ssous[17]. Vaur Type géométrie Description d000 d001 Géométrie inconnue Cte vaur sera ignorée POINT d002 Représte point LINESTRING d003 Représte e polyligne POLYGON d004 Représte polygone MULTIPOINT d005 Représte e colction points MULTILINESTRING d006 Représter e colction polylignes MULTIPOLYGON Représter e colction polygones d indira permd'indirdimsionll'objreprésté.parexempvaur3001 (x, y, z). point trois dimsions. Orac Spatial attdra ce cas-là trois coor

CHAPITRE 4. MIGRATION D'HERMES D'ORACLE VERS POSTGRESQL 64 SDO_SRID l'origine C attribut s coor indira système l'espace. référce spatial utilisé. Ce système permtra d'établir SDO_POINT Ce C' rnier l'intermédiaire limité à trois dimsions. c attribut Si qu'il c attribut possib utilisé, stocker alors coor ux rniers d' attributs point. sont Lypecattributdénicommesuit[17]: à NULL. Par contre, si ux rniers attributs sont non nuls, c attribut-ci sera ignoré. CREATE TYPE SDO_POINT_TYPE AS OBJECT ( X NUMBER, Y NUMBER, Z NUMBER ); SDO_ELEM_INFO C attribut perm rseigner sur l'interprétation s coor stockées champ SDO_ORDINATES.Lypecattributdénicommesuit[17]: CREATE TYPE SDO_ELEM_INFO_ARRAY AS VARRAY (1048576) OF NUMBER ; caractérisé Cha : élémt y stocké l' sous forme tripl(s). Chac ces rniers SDO_STARTING_OFFSET quion ( primitive) SDO_ORDINATES. Indirangcoordonnéedétl'élémt d' polygone ou d'e ligne. Une primitive désignera, exemp, point SDO_ETYPE Itrepréstéchire(0à5).Leschires35ontuxvariantespossib.Soit Indilypegéométrieprimitivockée SDO_ORDINATES. n=3ou5: 1. 100n: spécie qu'il s'agit l'anneau extérieur d' polygone trou(s); 2. 200n: spécie qu'il s'agit d' anneau intérieur d' polygone à trou(s); Les seultripl.leschires4,5,10052005sontconsidéréscommesélémtscomposés chires 1, 2, 1003 2003 sont considérés comme s élémts simp seront stockés seront stockés au moins ux tripls contigus. SDO_INTERPRETATION primitive stockée SDO_ORDINATES. Rseigne S'il s'agit sur linterprétation d' élémt composé, du type ce champ géométrie indira SDO_ETYPE. nombre sous-tripls Voici vaurs possib compost l'élémt. peuvt Ce prdre champ ces ux donc champs[17]. fortemt lié au champ

CHAPITRE 4. MIGRATION D'HERMES D'ORACLE VERS POSTGRESQL 65 SDO_ SDO_INTER- Signication ETYPE PRETATION 0 N'importe Utilisé OracSpatialseraignorécernier pour représter toute géométrie non supportée 1 n>1 1 Ensemb Point 1 Ligne dont somms sont reliés npoints 2 2 Ligne composée d'e sénce d'arcs s dénis segmts(lignes trois points droites) (1 2)003 1 Polygone avec simp rnier) dont sont somms( reliés s premier segmts coïncidant (1 2)003 (1 2)003 3 2 Polygone Rectang(déni composé d'e sénce ux points) fermée d'arcs (1 2)003 4 4 Cerc déni trois points localisés sur circonférce n > 1 ssegmtsd'autressarcs. Ligne compxe dont certains somms nindiranombre sont reliés sous-élémts(tripl) sous-élémt premier nécessaires. du sous-élémt Le rnier suivant. point d' (1 2)005 n > 1 Im compxes ci-ssus non sauf qu'il lignes s'agit compxe. polygones SDO_ORDINATES liéauchamp C attribut SDO_ELEM_INFO.Lypecattributdénicommesuit[17]: perm stocker coor décrivant obj spatial. Il étroitemt CREATE TYPE SDO_ORDINATE_ARRAY AS VARRAY (1048576) OF NUMBER ; spatiauxgure3.2.pronscasd'rectangoud'polygoneàtrou,ilspourrontêtre Grâce à cte représtation, Orac Spatial ore possibilité représter tous types représtés comme suit: Polygone avec trou Rectang SDO_GTYPE 2003 2003 SDO_SRID NULL NULL SDO_POINT NULL NULL SDO_ELEM_INFO (1, 1003, 1, 19, 2003, 1) (1, 1003, 3) SDO_ORDINATES (2,4, 2,11, 4,3, 2,4, 10,3, 7,5, 13,15, 7,10, 10,10, 13,9, 11,13, 10,5, 7,5) 5,13, (1, 1, 5, 7) En ce concerne rectang, l'attribut GTYPE dimsions. L'attribut indi qu'il s'agit d' polygone à ux SDO_ELEM_INFO rectang déni ux points, ces rniers contit étant qu' stockés seul tripl SDO_ORDINATES. indi qu'il s'agit En ce d' concerne polygone, l'attribut GTYPE sions. L'attribut indi égamt s'agit d' polygone à ux dim- SDO_ELEM_INFO avec trou (1003 : anneau extérieur, contit 2003 : ux anneau tripls intérieur). indi Les coor qu'il s'agit décrivant d' polygone neauintérieurcommctàl'indice1 l'an- SDO_ORDINATES l'anneau extérieur commct à l'indice 19 ( première coordonnée alorscoordécrivant élémts d'indices 19 20). Enn, l'attribut étant donc constituée s SDO_ORDINATES La gure 4.3 illustre ces ux scriptions[17]. contit toutes ces coor.

CHAPITRE 4. MIGRATION D'HERMES D'ORACLE VERS POSTGRESQL 66 Fig.4.3SDO_GEOMETRY:exemppolygonontrivial(a)rectang(b). courant Anotercasgure4.3a,coorl'anneauextérieursontlistées rieur sont courues polygone ss ss horlogi. anti-horlogi Cha alors anneau étant coor fermé, première l'anneau coordonnée inté- coïncira avec rnière l'anneau coorespondant. polygoneayanttroutrou A noter égamt qu'orac Spatial [17].Cecasgurepourraitêtrevisagé,exemp, ne perm pas représter, seul obj, pour basera représter sur ux polygones pays avec : e pour î représter l il pays, y a l'autre c. Dans pour ce représter cas, Orac l'î Spatial avec se c. 4.4.3 Obj spatial sous PostGIS : GEOMETRY tés La nécessaires cartouche à spatia gion PostgreSQL spatia. se nomme Ces PostGIS. fonctionnalités El fournit repost toutes esstielmt fonctionnali- ux API Op Source. La première, développée C++, se nomme sur Geomry Engine Op Source c.). Pour (GEOS)[10] ce, el se base fournit sur l'esstiel recommdations s fonctionnalités l'ogc. spatia(types La secon API, spatiaux, développée fonctions, C,somme PROJ.4[20]fournittoutupportnécessaireàprojectionspatia. librairie Au niveau (liblwgeom.dll s types fourni avec spatiaux GEOS). sous Dès lors, PostGIS, tout urs type dénitions donnée sous se trouvt PostGIS ne fera e récupérer spatiaux co sous adéquat PostGIS se bast librairie. sur Tout hiérarchie comme sous types Orac proposée Spatial, l'ogc types (voir gure Au somm 2.5). Cha cte élémt hiérarchie cte (csse hiérachie mère) se trouve prést sous csse forme Geomry. d'e csse La gure 4.4 librairie. cte hiérarchie type sous GEOS( donc sous PostGIS)[10]. illustre

CHAPITRE 4. MIGRATION D'HERMES D'ORACLE VERS POSTGRESQL 67 Fig. 4.4 Hiérarchie s types géométris proposés sous PostGIS. ST_GeomColction, AchacecescssescorrespondtypesousPostGIS.Ilsontpournoms: ST_MultiLineString, ST_MultiPoint, ST_MultiPolygon, ST_LineString, ST_Geomry, ST_Point, ST_CircurString, ST_Polygon. gresql, A prést on peut passer nous avons revue vu représtation élémts d'hermes s types ont spatiaux nécessité sous e Orac migration. sous Post- 4.4.4 Fonctions PostGIS Toutcommepourtypesspatia,fonctionnalitésspatiad'OracSpatial diérces,notammtaiveauduamètrage.lesprincipafonctionsspatiautiliséessous se bast égamt sur recommdations l'ogc. Néanmoins, il existe ls Hermes sont: Orac sdo_geom.rete (geom1, ANYINTERACT, geom2, 0.005); PostgreSQL ST_Rete (geom1, geom2, FF*FF**** ); OU ST_Disjoint(geom1, geom2); sdo_geom.rete (geom1, TOUCH, geom2, 0.005); sdo_geom.distance(geom1, geom2, 0.005) ; sdo_geom.ngth(geom, 0.005); ST_Rete (geom1, geom2, FT******* ); OU ST_Touches(geom1 geom2); ST_Distance(geom1, geom2); /* LineString ou MultiLineString. */ ST_Lgth(geom) /* Polygon ou MultiPolygon.*/ OU ST_Perimer(geom) sdo_geom.validate_geomry (result, 0.001); ST_IsValid(result) ; ramètre Une s facultatif principa torance. ticurités Ce rnier préste amètre sous Orac précision Spatial perm présce dire d' à tir pa- Plus l ce amètre distance Orac pit, doit plus considérer Orac sera ux précis. points Si ce ne amètre sont qu' n' seul pas (gran spécié, proximité). vaur défaut sera utilisée(sdo_tolerance). Sous PostGIS, ce amètre n'existe c' pas. Par. consént, ux points seront considérés comme égaux imt s'ils ont mêmes coor- perm Aiveaufonction d'indir type rete,econdamètresousorac(lroisièmesouspostgresql) (ex : TOUCH, ANYINTERACT, CONTAINS, retion à OVERLAPS, vérier. Orac c.). PostgreSQL propose semb propose égamt mots prédénis prédénis, mais ces rniers sont moins explicites urs évants sous Orac. Par s exemp, mots

CHAPITRE 4. MIGRATION D'HERMES D'ORACLE VERS POSTGRESQL 68 pour ter si ux objs se toucht, il faudra mtionner cte retion FT*******, pour ter s'ils sont disjoints, il faudra indir FF*FF****, c. De plus amp informations au suj ce amètre pourront être obtues [19, 6]. 4.4.5 Types Puisqu'OracSpatialPostGISsebastsurrecommandationsl'OGC,iln'yaurapas Aiveautypesspatia,ils'agitceuxproposésl'OGC(gure2.5). cas types où sous type Hermes. sera prést sous Orac pas sous PostgreSQL. Voici principa traductions Orac PostgreSQL SDO_GEOMETRY( ST_MakeLine( 2002, NULL, NULL, ST_Point(x 1, y 1 ), sdo_em_info_array (1, 2, 1), ST_Point(x 2, y 2 ) MDSYS.sdo_ordinate_array (x 1, y 1, x 2, y 2 ) ); ) ; OU ST_LineString (x 1, y 1, x 2, y 2 ); SDO_GEOMETRY( ST_MakePoint(x 3, y 3 ); 2002, NULL, OU ST_Point(x 3, y 3 ); sdo_point_type (x 3, y 3, NULL), NULL, NULL ) ; SDO_GEOMETRY( ST_MakePolygon( 2005, NULL, NULL, /* Anneau extérieur */ (1, 1003, 1, 19, 2003, 1), ST_LineString(x 1, y 1 x 2, y 2 x 3, y 3 (x 1, y 1 x 2, y 2 x 3, y 3 x 4, y 4 x 5, y 5 x 6, y 6 x 4, y 4 x 5, y 5 x 6, y 6 x 7, y 7 x 8, y 8 x 9, y 9 ), x 7, y 7 x 8, y 8 x 9, y 9 x 10, y 10 x 11, y 11 /* Anneau intérieur */ x 12, y 12 x 13, y 13 x 14, y 14 ), ST_LineString(x 10, y 10 x 11, y 11 x 12, y 12 mpoint_ords x 13, y 13 x 14, y 14 ) ); ); sutcecasrajouterpointssupplémtaires.enceconcernepolygones,l'exemp Enceconcernelype LineString,ilpeutbiévimmtcontirplusuxpoints.Il ci-ssus gure 4.3). n'était Sous Hermes, pas prést champs tant tel sous Hermes (il s'agit fait l'exemp vu à SDO_ELEM_INFO SDO_ORDINATES variab. Il a donc fallu décortir variab représtant champ était sous forme SDO_ELEM_INFO an plusieurs récupérer anneaux informations intérieurs, sur second ou amètre diérts anneaux. A noter qu' cas présce ST_MakePolygon LineString. tabau d'objs logiciel Bi (libre ou ngage payant) PL/SQL permtrait soit assez d'automatiser proche du PL/PgSQL, ce processus il n'existe traduction. pas à ce En jour e, mémoire, tel processus cha s'eectue fonction a manuelmt été traitée individuelmt doit être réalisé avant avec d'être minutie. tée. Dans Bi évimmt cadre ce ( chaînes heureusemt), pls_integer certains integer). élémts Mais pourront ce doit être être traduits réalisé avec lot (ex plus : rempcer grand soin. toutes Dans cas d'hermes, majeure tie ce processus traduction a concerné fonctionnalités temporel(script niveau du script( TAU_TLL.sql). quasi totalité), Ces mais rnières égamt ont au nécessité niveau non du co seumt librairie s modications associée car, au comme diérte nous tre l'avons PL/SQL vu précémmt(section PL/PgSQL. En ce 4.3.10), concerne l'interaction ux avec autres ngage scripts, hôte processus assez traduction a esstielmt concerné l'utilisation s fonctionnalités spatia, types

CHAPITRE 4. MIGRATION D'HERMES D'ORACLE VERS POSTGRESQL 69 utilisateur notion d'obj. ssusnesontrirepréstatifstouscasgurepossibcasmigrationd'e Avant refermer ce chapitre, il convit, à nouveau, rapper élémts repris ci- application composantesd'hermes(sousorac)ontnécessitéemigration.deplusampinformations d'orac vers PostgreSQL. Ces élémts permtt juste résumer principa pourrontêtrrouvéesausujd'oracpostgresql[6,8,17,19].

Chapitre 5 Cas d'étu évaluation s performances d'hermes cas Dans prati. ce chapitre, Pour nous ce, allons nous nous nous intéresser baserons à sur l'utilisabilité [4] propose s fonctionnalités e étu cas d'hermes traitant tracroutiervilberlin.cteétupréstéesousformed'jeuassocié du à ces requêtes semb obtues requêtes sous permtant système d'analyser du nom ce SECONDO trac. [4] fournit [23] égamt nous présterons résultats plus tard. comantàcelobtuessoussystèmeorantsfonctionnalitéssimiires(secondo). Ce nous permtra d'évaluer performances oertes Hermes, sous PostgreSQL, approche Ainsi, a été choisie premier an temps, qu'el nous soit présterons plus réaliste cte possib. étu Dans cas, second nous verrons temps, l décrirons processus génération du jeu nous verrons commt nous l'avons nous utilisé trac routier, sous PostgreSQL. n, nous Ensuite, exposerons nous examinerons résultats obtus requêtes comant permtront à ceux d'analyser obtus sous SECONDO. 5.1 Introduction Puisctetiedumémoiresebaseragrantiesur[4],ilconvitcommcerce chapitresapréstation.apujuin2008,[4]préstperformances(bchmark l'indi, angis) d'évaluer pour SGBD performances spatio-temporels. d' système Un t informati. performances Un tel perm, outil fournit comme généramt son nom SGBD, c semb semb problèmes accompagné formulé plusieurs l'intermédiaire problèmes à expérimter. requêtes SQL, Dans ou pseudo cas s SQL première lorsqu'il s'agit l'association requêtes d' compxes. jeu Ce type à semb t uti requêtes pour plusieurs perm raisons. faciliter La évaluations qu'il perm expérimta. mtre évince Ces rnières certaines pourront forces ainsi faibses facimt d' être système réitérées. La tant secon diértes composantes, s'assurant ces rnières fonctionnemt correctemt. Dans ses cas d' SGBD, il s'agira exemp s structures d'inxation, s structures s types, évince permtra l'implémtation d'oriter s certaines opérateurs, recherches c. En ce domaine. concerne Au niveau faibses, s points cte forts, mise pourront être réutilisés d'autres systèmes but d'accroître urs performances. Enn, ils e d'autres autre systèmes raison orant l'utilité s fonctionnalités ce type t évantes. qu'il facilite C' granmt ce nous allons comaison expérimter avec nchapitre 70

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 71 non Nousl'avonsvuprécémmt,SGBDpeutstockerdiverstypes.Ilpeutstocker dards(spatia,spatio-temporel,c.).c'l'introductioncesrnièresamisévince seumt s standards (texte, tier, c.), mais égamt s non stan- nécessitéd'améliorersgbd.act,nousavonsvu(chapitre2)nombreuxtravaux ontttéd'apporterssolutionsausujproblématiposéemaniputionl'accès auxnonstandards.enceconcernockagegionnonstandards, nous pasi.ene,tockagegionnonstandardssontuxsprincipaux avons vu(chapitre 3) philosophie adoptée Hermes. Néanmoins, cte philosophie n' chalnges spatia (section domaine 3.3.1) spatio-temporel. mtant Nous évince l'avons égamt fait qu'orac vu au se niveau basait du sur stockage notion e tab autre nichée approche? (voir Pourquoi gure 3.6). ne Mais pas simpmt qu' -il, tout au stocker niveau s performances, e même tab si l'on utilisant utilisait élémts attribut réponses type tabau à ces interrogations. longueur variab? Nous verrons, Un t suite, performances qu'au niveau pourra d'hermes, donner s performances peuvt être ssibmt diértes selon représtation adoptée SGBD. d' Ainsi, système, t c'-à-dire performances système ( doit cas s être SGBD) capab perm supporter rseigner rge sur évtail maturité requêtes[4]. 5.2 Etu cas : trac routier vil Berlin 5.2.1 Introduction De ce soit nombreux au niveau ts s performances spatia au suj ou au s niveau SGBD s ont été proposés spatio-temporel. ces rnières Une années, non-exhaustive reprise [4]. La plut ces ts propost jeu sur l liste certainnombreproblèmesdéni.anl'expérimtationsoitplusréalistepossib, ces Une problèmes gran majorité sont généramt ces scénarios dénis concerne sous forme l'observation d'e simution d' semb se basant d'élémts sur scénario. moto, vélo, transport public, personne, c.) se dépçant e vil, l'objectif étant d'analyser (voiture, l'ecice mt d'autres s dépcemts amètres inuçant termes ces vitesse dépcemts durée (ex : météo, traj. Certains heures introduist pointes, vitesse éga- maxima, pit échantillon), péages, d'autres c.). Certains s simutions considèrt macroscopis(échantillon s simutions microscopis gran (observation tail), ces d' nières permtant d'avoir e meilure idée s performances d' système lorsqu'il confronté r- à ux spatia ou spatio-temporel. important, ce La génération très souvt du jeu cas lors ts s'eectue système généramt doit gérer s l'intermédiaire amétrisation d' l'exécution générateur s'eectueront amètrab. Ce ligne rnier comman, peut être sous ou sous forme forme script(s), d'e interface dont graphi. Une liste non-exhaustive ces rniers repris [4]. 5.2.2 T performances pour bases spatio-temporel Préstation drait An d'avoir s'intéresse jeu à ts gion correspon l'histori à s philosophie positions adoptée s élémts Hermes, observés. il Le fau- proposé [4] satisfait cte exigce. Son objectif doub: t 1. Comer, opérateurs diérts spatio-temporels composantes d' SGBD structures spatio-temporel d'inxation; tel types 2. Comer performances diérts SGBD spatio-temporels.

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 72 Il s'intéresse esstielmt aux types mpoint sur scénario suivant: l'observation, pdant e pério (point temps mobi). arbitraire(ex: A cte n, mois), il repose dépcemts d' échantillon véhicu(véhicu = point mobi) réseau routier s vilberlin,oùpositionscesvéhicusontcapturéesaumoinstoutesuxsecons. Ce travail scénario ( simu vice versa). comportemt Il prd égamt personnes considération se dépçant dépcemts urs domici additionnels vers urs lieux d'autres lieux, notammt durant temps loisirs. vers En générateur ce concerne associé au système génération SECONDO du jeu [23]. Ce rnier notre étu prototype cas, [4] se pteforme base sur (licce mtation GPL), l'expérimtation conçu épe modè chercheurs l'iversité non-standards Hag (spatial, 1, permtant spatio-temporel, l'implé- multimédia, fonctionnalités c.). qu'il Pour supporte cte sont raison, sous cte formes pteforme modu. Par extsib exemp, c'-à-dire support s structures toutes B types permis tabaux grâce au modu permis BTree, grâce au c. modu Par consént, Array, support il dispose d'e strucures quantité types modu arbre permtant support spatio-temporels(modu Polygon, MovingRegion, Temporal, Temporal SECONDO.Cejeuserasousformabpourront,suite,êtreexportéesdivers Unit, c.). Le générateur (script) permtra créer jeu sous SGBDsonchoix.Voyonsàpréstmodèadoptécejeu. formats(.shp 2,.csv).C'grâceàcesrniersqu'ilserapossibd'importer Modè Pour La modéliser gion d'objs ce type mobi d'obj,[4] sous se [4] base repose sur e sur représtation gion l'histori tranches urs nous positions. troduite section 2.4.4 3.2.5. Bi [4] concerne principamt objs type avons mpoint, in- sous modè SECONDO utilisé perm subdivisé égamt sept catégories[4]: représter d'autre types. Le système types 1. BASE={int, real, string, bool} 2. SPATIAL ={point, points, line, region} 3. TEMPORAL = instant 4. RANGE ={rint, rreal, rbool, periods (rinstants)} 5. UNIT ={uint, ureal, ubool, upoint, uregion} 6. MOVING ={mint, mreal, mbool, mpoint, mregion} 7. INTIME ={iint, ireal, ibool, ipoint, iregion} Les temporel. trois premières A noter catégories regroupt type spatial respectivemt types standards, spatia points l'évant du type MultiPoint avons vu précémmt. La quatrième catégorie regroupe types permtant représter nous colction d'interval disjoints dénis sur types base ou sur type temporel. La cinème e catégorieregroupypesitésmobi catégorie regroupe types mobi. La rnière nécessairesàrepréstationtranches.lasixième ur tière, réel, booléne, type catégorie perm d'associer instant à e va- point ou type region. sous Ainsi, Hermes. mise Néanmoins, à t types types regroupés quatrième catégorie, tous autres sont présts RANGE ces types, SECONDO propose peuvt égamt être mis rge pce évtail sans d'opérateurs trop diculté. permtant A coté 1http://www.ferni-hag./ 2Standard permtant stockage s géométries d' obj spatial (shape angis).

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 73 développer s requêtes compxes. De plus amp informations au suj ces opérateurs pourront être obtues [4, 23]. 5.2.3 Scénario Préstation seau Le routier scénario sera visagé représté se base sur graphe trac orité. routier Cha vil n ud du Berlin. graphe Concrètemt, correspondra ce soit ré- l'intersection ux voies, soit à n d'e voie sans issue(impasse). Tout n ud sera caractérisébelobjspatial à voie compris tre ux n uds. Tout point.chaarcdugraphecorrespondraàsegmt maxima autorisée sur ce segmt, réel, arc indiquant sera caractérisé durée nécessaire tier, pour indiquant courir vitesse dépçant à vitesse maxima autorisée, e chaîne caractères, indiquant nom rue, se obj spatial type ligne. L'semb s n uds suite titionner diértes régions. La gure 5.1 illustre ce titionnemt[4]. Fig. 5.1 Partitionnemt du réseau routier Berlin. N ud domici, n ud travail n ud voisinage An travail ( simur vice versa), dépcemts( ainsi s véhicu) dépcemts personnes additionnels, urs cha domici personne vers sera urs associée lieux àtroistypesn uds[4]: 1. Le n ud domici correspond au lieu résince; 2. Le n ud travail correspond au lieu travail; 3. Les n uds voisinages lomètres du n ud domici. corresponnt Ces n uds à seront tous utilisés n uds plus se situant frémt à moins trois cas ki- dépcemts additionnels(ex: supermarché, poste, ban, c.)

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 74 L'attribution uxfaçons[4]: d' n ud domici d' n ud travail à individu peut être eectuée 1. Soit utilisant e distribution iforme sur l'semb s n uds (nwork-based approach); 2. Soit région, utilisant, second premier temps, temps, utilisant e fonction e distribution probabilité iforme sur séctionnera n uds e région séctionnée (region-based fonction du nombre d'habitants du approach). nombre Cha personnes région ayant associée emploi à poids, région, d'être détermine séctionnée. sa priorité. La gure Plus 5.1 e illustre région ces aura priorités(priorité e priorité évée, 1 > priorité plus el 13). sera susceptib La s gure n uds 5.2 travail illustre se réseau basant routier sur secon Berlin métho(region-based)[4]. l sont rétis s n uds domici Fig. 5.2 Exemp distribution s n uds domici (a) s n uds travail (b). Itinéraire Intéressons-nous chemin à travers à prést réseau à routier. notion Cepdant, d'itinéraire e sous personne [4]. Cte notion susceptib sera représtée réaliser plusieurs e, cha dépcemts dépcemt au cours nécessite d'e même e certaine journée, durée ce pour compxie être réalisé. gion Ce impli ces rniers. e notion En heuredébut personne observée, s heur.parconsént,aiveaudujeu,pourcha vauchemts temporels itinéraires (dépcemt seront prédéni prédénis. vant Cepdant, être réalisé il faudra alors veilr à précént éviter n' che- toujours surlilssebast: pas ni). An faciliter cte tâche, auteurs [4] ont spécié certaines hypothèses Une Une personne personne travail tte son du domici ldi au à vdredi 8h + T inclut; lyrejusqu'à16h+t 1 2,rournesuiteverssondomici(-2 pour se rdre vers son lieu T travail 1,T 2 2); Une semaine,tre9h14h,19h00h00week-d; personne susceptib débuter dépcemt additionnel tre 20h 00h00 Une rios personne temps citées susceptib ci-suus; faire plusieurs dépcemts additionnels e s pé- La périos probabilité temps qu'e citées personne ci-ssus fasse au 0.4; moins dépcemt additionnel e s

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 75 Siepersonnertreàsondomici(semaine)avant20h,elyreaumoinsjusqu'à Un 20h; autre dépcemt au raurant), additionnel se peut termine être toujours composé au domici. à trois arrêts (ex : à ban Puisqu' doit être dépcemt rour son additionnel travail au plus susceptib tard à 20h. débuter Sachant à qu' 20h, ce itinéraire signie qu' individu Berlin ne dure jamais plus ux heures [4] (s observations ont montré ce prait, rues généra, auplustardà18h.pourassurerctecontrainte,auteursontdénist moins d'e heure mie), ce signie l'individu doit tter 1 T son 2 l'interval lieu travail [-2h,+2h].Cernierpermégamtd'orirecertainediversitéjeu(tous itinéraires ne commct/nisst pas tous jours à même heure). alr-rour Ainsi,tre6h20h(semaine),iln'yapasrischevauchemttemporel(seul qu'e personne tre tte domici lieu(faisant lieu tie travail d' peut dépcemt être réalisé). additionnel) Le seul trop cas visageab tard. Supposons qu'elltecelieuaprès6h.sielétaitcséetirautravailà8h,ily'aurarisqu'el arrive véhicu(personne)jour[4].sicecasseproduit,tousitinérairesjournéequion à son domici après 8h. Ce cas gure se produit avec e probabilité 0.000138 seront invalidés redénis. dét). La modélisation Le calcul d' d' itinéraire itinéraire se tre base sur point tripl(point dét dét, point d'arrivé point d'arrivé se base sur heure informations associées à cha arc du graphe représtant réseau routier. Ainsi, ce calcul peut être n uds réalisé ux réseau façons. alors La première secon calcu calcu chemin chemin plus plus court rapi (distance) (durée). tre Les positions ces ux successives au(x) segmt(s) d' véhicu ligne(s) seront représtant représtées chemin). semb points(ces rniers aptant sans Lorsqu'véhicucircuurcechemin,onsupposequ'ilrouàvitessemaximavigueur signalisation, jamais dépasser priorité [4]. Il droite, rantira c.). (ou Ainsi, s'arrêtera) rues imt du réseau routier s'il Berlin contraint sont (ex divisées : feux quatres catégories: 1. Autoroute(max. 70 km/h); 2. Route principa(max. 50 km/h); 3. Route secondaire croisant e route principa(max. 30km/h); 4. Route jeu fermée ). (cte catégorie rirée du graphe donc n' pas prise compte An comportemt prdre s automobilistes considération avec diértes minimum limitations réalisme, vitesses, auteurs an [4] ont modéliser introduit trois types d'événemts: 1. Accélération inférieure à vitesse : se produit maxima (taux autorisée; 12m/s²) lors vitesse actuel d' véhicu 2. Décélération :casrantissemt,vitesseactuel v c réduite v c. X 20 X Binomia(20,0.5); où 3. Arrêt:lorsvéhicu'arrête,ilreimmobi(v c =0)pdantdurée t Exp( 86400) millisecons. 15 Le biliste premier circur événemt à vitesse se produit maxima automatimt autorisée. Les lorsqu'auce ux autres contrainte se produist n'empêche avec e l'automo- certaine

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 76 probabilité p evt ( 1 v max où v courus. En ce concerne routes max = courbées, vitesse maxima réduction autorisée vitesse [4]) tout dépd cinq l'ang mètres formé - φ cte courbe. Soit c ang φ (< 180 ), vitesse sera réduite à v croisemts, probabilité véhicu s'arrête donnée tabau max. ci-ssous 180. Au niveau [4], tout s dépdantnaturesvoiessecroist.soit A=Autoroute, P =RoutePrincipa S =RouteSecondaire: Liaison p(stop) Liaison p(stop) Liaison p(stop) Liaison p(stop) S S 0.33 P S 0.33 S P 0.66 P P 0.50 S A 1.00 P A 0.66 A A 0.05 A P 0.33 A S 0.10 A prést, nous pouvons passer à l'algorithme createtrip tir d' n ud domici, d' n ud travail d'e heure utilisé dét, pour c créer algorithme itinéraire. fournit A itinéraire reliant ux n uds. Voici son pseudo-co[4]. INPUT:Start-n uddét, D- n ud d'arrivé, T ime-heuredét OUTPUT :cheminalnt Startvers D Soit P pluscourtchemin Startvers D POURchaarc e=(p i, p i+1 ) P FAIRE Récupérer v max segsàtir e // Cha segmt constituant chemin traité séemmt. POURcha seg =(s, t) segs FAIRE pos:= e // Cha portion cinq mètres constituant segmt traitée séemmt. TANT QUE pos t FAIRE SI distance(pos, t) > 50 mètres ALORS SIvitessecourante(v c )<vitessemaxima(v max ) ALORS Applir e accélération SINON Choisir evt:= aléatoiremt: décélération evt:= stop(probabilité (probabilité 0.1) 0.9) ou 1 Applir evt(probabilité v max) FIN SI SINON φ Réduirevitesseàv max. 180 Où φl'angtre seg egmtsuivant P FIN SI Dépcer poscinqmètresvers t(où pos=tsiondépasse t) FIN TANT QUE // A cha croisemt, il existe e certaine probabilité // véhicu s'arrête (voir tabau ci-ssus). FIN POUR Applir stop(dépdl'arccourantl'arcsuivant P) FIN POUR Algorithm 5.1 Création d' itinéraire tre n ud domici n ud travail. Calgorithmepermcréeritinéraire(débuteà T ime)tredomicid'epersonne son lieu travail. L'application s événemts accélération, décélération stop

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 77 se base sur ce nous avons précémmt mtionné. tination En ce n' concerne pas connue à itinéraires l'avance mais additionnels, choisie c' durant peu l'exécution plus compliqué. l'algorithme. En e, De plus, s- ce égamt type d'itinéraire choisit durant susceptib l'exécution d'être l'algorithme. composé Pour plusieurs ces raisons, stinations, second ur algorithme nombre étant conçu. Il se base sur l'algorithme précént pour créer cha sous chemin (vers diértes a été stinations possib) compost l'itinéraire additionnel. Voici son pseudo-co[4]. INPUT: BlockStart- Home- n ud début domici, d'e pério durant l dépcemt additionnel nbh- n uds voisinages peut débuter, Home OUTPUT : chemin(point mobi avec au maximum trois stinations) Choisirnombre N Initialisation:Start:= stinations:1(probabilité0.5),2(0.25)ou3(0.25) Home, i:=0, T rip:= Choisir T ime utilisant e distribution iforme [BlockStart, l'interval BlockStart + 2] /* Pour cha stination, création d' sous chemin. */ POUR i {0,1,2,3} FAIRE SI i<n ALORS Choisir D nbh(probabilité : l'semb s n uds 0.8) du où graphe(probabilité 0.2) SINON D:= Home FIN SI SI i<n ALORS T rip:= T rip+createtrip(start, D, T ime) Déterminermpsrard dt [0,120]minutes Ajouterbreaklongueur dt utilisant e distribution gaussine T rip /* La n d' sous chemin coïnci avec début du sous chemin suivant. */ Start:= D T ime:=dtime(t rip) FIN SI FIN POUR rurn T rip 5.2.4 Types représtations Algorithm 5.2 Création d' itiniéraire additionnel. mt Nous sur l'avons dit précémmt, types mpoint. l'étu Cepdant, cas sur commt l ce nous type nous basons opére représté esstiel- niveau du SGBD? Est-ce tous sous élémts types upoint(composant point mobi) au doivt t (ex être : chier stockés XML, directemt texte, c.)? Par SGBD exemp ou sous bi SECONDO, doivt-il être c' stockés uxième approche chier à étant a utilisé été choisie. imt En e, il cas stocke d'accès l'histori explicite(ex: s positions cteur ou mise à jour chier séé, cte histori). ce rnier Il procè ainsi pour toute donnée volumineuse(rge object performance propose ux mos représtation. Ces rnières angis). repost Pour cte sur raison, stockage t au

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 78 seinmêmedusgbd(aucchierexterne).toutefois,eldièrtsurrepréstationl'histori s positions d' véhicu (type mpoint). La première (appelée Object-Based Approach ou l'histori OBA) stocke s positions(colction informations caractérisant cha véhicu seul tup. L'tièré upoint i attribut(ex: attributtypabau représtant longueurvariab).lasecon(appelée mpoint) sera stockée seul Trip- Based Approach informations généra ou TBA) stocke caractérisant véhicu (mar, ux modè, tab c.), distinctes. secon La première reprdra reprdra ri ses positions. Cha tup cte rnière représtera e tie c histori l'histo- ( forme upoint).ansupportercesuxapproches,jeu[4]implémtésous neuf retions dont certaines seront utilisées imt l'e ou l'autre approche: Nos := {NoId: int, Pos: point} routier. Contit l'semb s n uds composant réseau QueryPoints := {Id: int, Pos: point} Contit P_SAMPLESIZE rateur ) points choisit aléatoiremt mi tous Nos.Pos. (amètre du géné- Id garantir l'icité cha tup(clé primaire). générée an QueryRegions := {Id: int, Region: region} Contit P_SAMPLESIZE ces rnières n-gone ctre p, point choisit iformémt mi régions.chace hauteur h( F(3,100,998) Nos.Pos, 3,où n F(1,100,100). Istcléprimaireretion. QueryInstants := {Id: int, Instant: instant} Contit P_SAMPLESIZE iformémt pério temps observée. Tout comme pour retions instants précénts, choisit l'attribut Idjouerôcléprimaireretion. QueryPeriods := {Id: int, Period: periods} Contit P_SAMPLESIZE tant dét cha pério choisit iformémt l'tièré pério périos. observée. L'ins- Laduréechacecespérios d=abs(x)où x N(0,1)(distributiongaussine). QueryLicces := {Id: int, Licce: string} Contit P_SAMPLESIZE matricutions choisit iformémt l'semb toutes ps d'immatricutions. ps d'im- Datascar := {Licce: string, Mol: string, Type: string, Tripid: int, Trip: mpoint} Contit modè, toutes type (ex informations : berline), retives l'tièré à l'histori véhicu à savoir s positions. p Sachant d'immatricution, qu' véhicu susceptib réaliser plusieurs dépcemts, l'attribut Tripid retion sera imt utilisée l'approche OBA. a été déni à cte n. Cte Datamcar := {Licce: string, Mol: string, Type: string} formations retives à véhicu, exceptée l'histori ses positions. Ce Contit rnier se toutes trouve in- retion l'approche suivante TBA. (DataMtrip). Ainsi, ces ux rnières retions seront imt utilisées DataMtrip := {Licce: string, Tripid: int, Trip: umpoint} cemts eectués tous véhicu. Cha tup corresponra à e Contit tie d' tous itinéraire dép- emprté véhicu. Grâce à l'attribut Licce s retions Datamcar possib rituer l'tièré s informations caractérisant véhicu. DataMtrip, il sera 3F(a, b, m) représte e distribution iforme discrète m tiers e interval [a, b].

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 79 Nous verrons suite l'importation du jeu sous PostgreSQL donnera lieu à plusieurs tab. C' sur base ces rnières nous implémterons t performances proposé [4]. 5.2.5 Génération du jeu Préstation lin, La se génération base sur du script jeu générateur, simunt dépcemts associé au système véhicu SECONDO [23]. rues Ce rnier Ber- dispose temt, d' ce script modu(simutionalgebra) constitué d'e sénce a d'instructions été conçu an SECONDO traiter cte constituées génération. d'opérateurs, Concrè- constantesd'objs.sonexécutionaurapouregénérerstockerjeu au CONDO sein même (utilisation SECONDO. sénces La manipution d'instructions SECONDO), ces soit pourra via être SGBD eectuée (utilisation soit via SEngage SQL). En ce nous concerne, nous avons opté pour uxième alternative. L'semb du s du t scripts performances nécessaires à sont génération disponib s sur[23]. à l'exécution(sous SECONDO) s requêtes Scripts cte Les n, auteurs ils ont utilisés [4] ont conçus informations jeu provance sur d' base programme carte permtant vil Berlin. pnica- A tion l'oce s itinéraires s Statistis pour cyclistes Berlin[27]. Berlin[1]. Une fois ces Ils se informations sont égamt récoltées, basés sur auteurs informations trois scripts reprant l'semb s informations nécessaires à l'implémtation du jeu ont ts. créés stres.data Fournit retion stres vitesses maxima s rues Berlin. reprd toutes informations retives aux géométries aux stres := {Vmax: real, geodata: line} homeregions.data Fournit retion homeregions décrit distribution s n uds domici. L'attribut geodata attributs, dénit rseignt zone sur l'importance l n uds d'e région domici termes seront séctionnés. popution Les ux personnes autres ayant. emploi, se bast informations obtues l'oce s Statistis Berlin[27] homeregions := {Priority: int, Weight: real, geodata: region} workregions.data Fournit retion workregions décrit distribution s n uds travail (simiire au - chier précént). workregions := {Priority: int, Weight: real, geodata: region} Paramétrisation An d'orir e exibilité à l'utilisateur, script générateur amétrab.

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 80 Dans étant proposée cadre [4, ce mémoire, 23]. nous ne verrons principaux amètres, e liste exhaustive ramètres, Le principal notammt amètre SCALEFACTOR. Ce rnier utilisé plusieurs autres pa- SCALEFCARS SCALEFDAYS, eux-mêmes déterminant amètres P_NUMCARS P_NUMDAYS server, pério d'observation représtt simution. respectivemmt Ainsi, amètre nombre véhicu à ob- SCALEFACTOR tra déterminer quantité à générer. Par défaut, perm- SCALEFACTOR simution concerne ux mil véhicu durant e pério vingt-huit jours. Le à amètre 1.0, P_SAMPLESIZE lorssrequêtesdutperformances(ctdéfaut).leamètre déterminerataildiértesretions(préstéessection5.2.4)utilisées P_TRIP_MODE d'indirfaçondontn udsdomici travail perm serontattribués(nwork Based ouregion Based). Le amètre P_STARTDAY tion). Le amètre déterminera date du premier jour l'observation(simu- P_NEIGHBOURHOOD_RADIUS mici permtant déterminer ses n uds voisinages. indira Les amètres rayon autour d' n ud do- P_HOMERANDSEED P_TRIPRANDSEED pseudo-aléatoires. permtront spécier graines utilisées génération nombres P_TRIP_DISTANCE n uds. Les vaurs possib sont Short déterminera Path Fast façon Path. calcur chemin tre ux P_GPSINTERVAL_M mineral'intervalmpsséantuxsauvegarssuccessivesspositionsd'véhicu( déter- défaut, ux secons). Enn, amètre P_EXPORT_TYPE tions. Pardéfaut,il ànone,ce signie déterminera serontpasexportées format d'exporta- mais imt stockées SECONDO. Les vaurs possib sont CSV ou Shape. 5.3 Application 5.3.1 Introduction formances Nous allons proposé à prést [4]. nous An pcher concevoir sur l'implémtation, jeu t intéressant, sous PostgreSQL, auteurs du t [4] per- sont pchés sur diérts types requêtes visageab. A cte n, ils ont intié se principa propriétés pouvait avoir e requête: 1. Intité s objs l'obj : e requête pourrait concerner e tité connue (ex : Est-ce X...?) ou inconnue(quel l'obj...?); 2. Dimsion temporel d'e : e tité, requête ou alors pourrait auce concerner d'tre el(attribut dimsion spatia, standard); temporel, spatio- 3. Interval points, d'tiers, : e c.); requête pourrait nécessiter l'utilisation d' interval (ex : d'instants, 4. Type condition treplusieurstités(ex:localsrouvebâtimt); : e requête pourrait concerner e seu tité ou bi retions 5. Agrégation: l'accès à e(auce e requête agrégation) pourrait ou concerner plusieurs e tab(agrégation). tité dont reconstitution nécessiterait En tains combinant ces rniers ces cinq concerneront aspects, nonante-six imt types dimsion requêtes temporel, peuvt spatia être visagés ou standard [4]. Cer-. Certains ont déjà été implémté d'autres ts performances[24](requêtes spatia). s s informations D'autres seront se trouvt irréalisab(ex: e seu e tab, requête exclue portant toute sur agrégation). e seu tité, D'autres dont nécessiteront l'semb temps d'exécution trop important(ex: interval non borné). auteurs[4]ontrudix-septrequêtes.parmicesrnières,certainesconcernerontimt An d'avoir échantillon requêtes soit plus représtatif possib l'semb,

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 81 l'aspect neront l'aspect spatial(trois), spatio-temporel. temporel(trois) Le tabau ou standard(ux) ci-ssous reprd s. propriétés Toutes respectives autres concer- dix-sept requêtes [4]. Un tabau simiire reprant propriétés l'semb s nonante-six ces types requêtes pottiels égamt proposé [4]. Intité Dimsion Interval Type Agrégation Requête s objs condition Connue Connue Temporel Standard Point Point Uni Uni Non Non 1 Connue Temporel Range Uni (Non) 3 Connue Spatia Non borné Retion (Non) 8 Connue Spatio-temporel Range Retion (Non) 10 5 Inconnue Inconnue Temporel Standard Range Point Uni Uni Oui Oui 2 Inconnue Spatia Point Uni (Non) 9 Inconnue Spatia Non borné Retion Non 4 Inconnue Spatio-temporel Point Uni Non 11 7 Inconnue Inconnue Spatio-temporel Spatio-temporel Range Point Retion Uni (Non) Non 13,14,15 12 Inconnue Inconnue Spatio-temporel Spatio-temporel Non Range borné Retion Retion (Non) (Non) 16 6 l'approche La nécessité OBA réaliser choisie, ou non auce e agrégation agrégation dépd nécessaire, ce représtation n' pas choisie. toujours Si c' l'approche TBA. Pour cte raison, colonne Agrégation possè s vaurs (non). cas 5.3.2 Implémtation s réquêtes du t performances proposé[4],ilconvitdétailrétapespréabàréalisationc.ene, Avant voir détail ces dix-sept requêtes, constitut donc t performances l'exécution t performances ces requêtes via Hermes ne constitue sous PostgreSQL. rnière Ce processus étape du processus composé d'implémtation trois étapes: du 1. La SGBD première PostgreSQL. consite à exporter Nous l'avons jeu vu précémmt(section format 5.2.5), supporté script (reconnu) permtant (P_EXPORT_TYPE) génération du jeu perm l'exportation sous SECONDO s amètrab. format L'.shp ces ou amètres ux étant supportés PostgreSQL. On obtidra ainsi, à n cte première.csv, étape, tout (section semb 5.2.4). chiers (CSV ou SHP) correspondant aux retions précémmt décrites 2. An (au niveau d'importer SGBD) sur l précémmt se baseront exportées, requêtes il faut du préabmt t performances. créer tab fois ces tab créées, pourront y être importées Une 3. Ce n' ces rnières qu'e fois ont l'importation été proposées terminée [4] l'on ngage peut pseudo s'attar SQL, à ces cte requêtes. rnière Sachant consiste à traduire ces requêtes an qu'el soit exécutab sous PostgreSQL. étape Exportation du jeu amétrage En ce du concerne script générateur l'exportation du jeu peuvt, être toutes trouvées [4]. informations Dans nécessaires cadre au mémoire, c' l'exportation au format CSV a été utilisée. A cte n, script génère huit ce chiers représtant retions introduites section 5.2.4. Etant donné conception d'

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 82 obj pas totamt mobi peut à ces être retions. diérte Par d' exemp, système à retion autre, exportées ne corresponnt QueryPoints néespatialype Point.Or,pointpeutêtrerepréstédiéremmtd'systèmeàautre caractérisée e don- (obj spatial, paire d'tiers, réels, c.). Simiiremt, retion QueryInstants tériséeedonnéemporellype Instant.Toutcommepourpoint,conceptiond' carac- instant étéréaliséed'efaçonapourbutfaciliterurrecréationsystèmespatio-temporel, peut être diérte d' système à autre. Pour ces raisons, l'exportation s a l soit exportées philosophie cel adoptée utilisées sous ce SECONDO. rnier. Ainsi, Voici certaines retions diérces caractérisant meurt tre chiers exportés: huit QueryLicces :={Id: int, Licce: text} QueryPoints QueryInstants QueryRegions QueryPeriods Datamcar Trips :={Id: int, P os_x: float, P os_y: float} :={Id: int, Instant: text} :={Id: int, V ertex_x: float, V ertex_y: float} :={Id: int, Begin: text, End: text} :={Moid: int, Licce: text, T ype: text, Mol: text} :={Moid: int, T ripid: int, T start : text, T d : text, X start : text, Y start : text, X d : text, Y d : text} Stres :={Id: int, V max : int, x 1 : float, y 1 : float, x 2 : float, y 2 : float} Les sept premières corresponnt aux retions introduites section 5.2.4 (où Trips pond à DataMtrip). En ce concerne retion Datascar(section 5.2.4), script ne corres- pas directemt. Néanmoins, el peut aisémt être rituée sur base s retions génère Datamcar Trips ci-ssus. La retion Stres serapasutiliséecasdutperformance. perm représter rues Berlin. Cepdant, el ne Importation du jeu sous PostgreSQL tué AnrituerjeuutilisésousSECONDO,processusd'importationconsti- s tab ux étapes. temporaires. La première Ces rnières consiste seront à importer représtatives, s provant exportées, s chiers CSV, donc, n'auront pas d'attribut spatial, ni temporel, ni spatio-temporel(voir retions). Les annexes C1 el C2 reprnt co PL/PgSQL nécessaire à création à l'initialisation ces tab. performances. La secon étape Ainsi, consiste ces tab à créer auront à s initialiser attributs spatiaux, tab temporels seront utilisées spatio-temporels t ( temporaires plus s précémmt attributs types créées. standards). Ce ux types Pour ce, tab cte représtt secon étape même se base jeu sur. tab La temporel). seu diérce Comme nous rési l'avons au niveau précémmt s attributs mtionné, type compxe point sera (spatial, caractérisé temporel, e spatio- ottantstypab,objspatiall'autre.lepassagel'àl'autre paire s'eectuera rournant point). l'intermédiaire De même, d'e instant métho sera caractérisé conversion (métho e chaîne ayant ux caractères amètres

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 83 typab,objtemporell'autre.danscecas,passagel'àl'autres'effectuera convertir e l'opérateur chaîne caractères conversion ::(présté e donnée section type 4.3.9). D_Timepoint_Sec, En e, ce rnier permtra à condition chaîne soit format (AAAA, MM, JJ, hh, mm, ss). Ce rnier format spécié interne sources d'hermes. Pour cte raison, formatage chaîne caractères ( tab temporaires) sera nécessaire car, exportées ( donc ci-ssous tab reprd temporaires), ls exemp instant conversions. sous forme L'annexe AAAA-MM-JJ-hh:mm:ss. C3 reprd co PL/PgSQL Le tabau nécessaire à création s tab utilisées t performances. Tab temporaire Tab principa ptx: oat, inst: text pty:oat instant:= pt:= ST_Point(ptx, inst::d_timepoint_sec pty) Implémtation s requêtes do Sous SQL. [4], Par exemp, requêtes ont vaur été formulées d' itinéraire cires réalisé ( texte) véhicu avant d'être formulées pseu- V à l'instant t comme suit: indiquée val (V.trip atinstant t.instant). sous La Hermes, processus à cel traduction utilisées aura donc requêtes. pour Dans but trouver cas exposé ci-ssus fonctionnalités exemp, évantes, propose e fonction Hermes at_instant mobi(itinéraire) instant(type (préstée D_Timepoint_Sec) section 3.4.4) dont dont vaur amètres rour sont point. point Ce toutes coïnci ces traductions donc faitemt ne sont pas avec toujours ce aussi indiqué évintes l'exemp. ce cas-ci. Mais malheureusemt, l'observation Passons à prést véhicu aux dix-sept réseau requêtes routier permtront vil d'analyser Berlin. Pour jeu chace d'tre issu el, nous gresql donnerons suivant son l'approche évant OBA cir( (Object-Based). français) avant Les élémts donner permtant co exécutab traduction sous Post- l'approche TBA(Trip-Based) seront suite expliqués. Voici ces requêtes. vers 1 ) Quels sont modè véhicu dont p d'immatricution se trouve QueryLicces? SELECT DISTINCT ll.licce AS licce, c.mol AS mol FROM Datascar c, QueryLicces ll WHERE c.licce = ll.licce ; n' Cte pas requête nécessaire. a pour Ici, but requête vérier ne concerne si SGBD pas l'itinéraire accè ou d' non véhicu a attribut (l'attribut lors ce trip Datascar). Si SGBD accédait à c attribut(alors ce inuti), ce réduirait considérabmt attribut n' performances pas accédé lors raison ce du n' volume pas nécessaire. Ainsi, accédé. l'utilisation Dans cas PostgreSQL, tab Datascar ou Datamcar formution évante( cte requête suivant termes l'approche résultats OBA performances) même cel ce suivant cas-ci. l'approche De ce fait, TBA,saufçan'pastab Datascar serautiliséemais Datamcar. 2 ) Combi véhicu sont type passager? SELECT COUNT(licce)

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 84 FROM Datascar WHERE type = passger ; à-dire Cte e requête fonction perm fournissant simpmt résultat montrer i l'utilisation à tir d'e plusieurs fonction tup. d'agrégation, Tout comme c'- requête précénte, el ne concerne attributs standards, donc l'utilisation tab Datascar (OBA) ou tab Datamcar (TBA) aura s performances évantes. 3 ) Où sont véhicu, dont p d'immatricution stockée QueryLicces1, à cha instant QueryInstants1? SELECT ll.licce AS licce, ii.instant AS instant, hermes.at_instant(ii.instant, c.trip) AS pos FROM Datascar c, QueryLicces1 ll, QueryInstants1 ii WHERE c.licce = ll.licce AND hermes.prest(ii.instant, c.trip) ; Cte requête rreint l'histori s positions à seul instant. Les tab QueryLicces1 QueryInstants1 reprnt respectivemt dix premiers tup s tab QueryLicces QueryInstants. véhicu. Dès lors, Contrairemt formution aux requêtes cte requête précéntes, suivant cel-ci l'approche concerne TBA l'itinéraire nécessitera suivi l'utilisation s tab Datamcar Trips au lieu Datascar (pour rappel, tab Datamcar possè pas d'attribut trip). L'attribut ne trip fonction sera obtu via e jointure sera réalisée gtrip pour vaur rour a pour amètre point mobi (l'itnéraire numéro compl p d'immatricution du véhicu). Cte (attribut fonction licce), pas préste sous Hermes, il a donc fallu l'implémter. Ainsi, à cha fois qu'e requête n'était nécessitera utilisée. A noter l'accès à l'itinéraire l'utilisation d' véhicu(sous tab l'approche TBA), c' cte métho sera Trips traduction requête ci-ssus suivant l'approche eectuée TBA. métho gtrip. Voici SELECT ll.licce AS licce, ii.instant AS instant, hermes.at_instant(ii.instant, hermes.gtrip(c.licce)) AS pos FROM Datamcar c, QueryLicces1 ll, QueryInstants1 ii WHERE c.licce = ll.licce AND hermes.prest(ii.instant, hermes.gtrip(c.licce)) ; 4 ) Quel ps d'immatricutions aptint aux véhicu ont passé points QueryPoints? SELECT pp.pos AS pos, c.licce AS licce FROM Datascar c, QueryPoints pp WHERE hermes.passes(pp.pos, c.trip) ; Lamétho passes pour requête précénte, permd'indirsirajectoirepassecertainpoint.toutcomme tion métho formution cel-ci, selon l'approche TBA, nécessitera l'utilisa- gtrip mobi) d' véhicu(voir exemp (dont amètre requête sera précénte). c.licce) pour rituer l'itinéraire (point 5 ) Quel distance minima tre lieux ls véhicu QueryLicces1 passé, ceux ls véhicu QueryLicces2 passé? SELECT ll1.licce AS licce1, ll2.licce AS licce2, hermes.f_distance(hermes.f_trajectory(v1.trip), hermes.f_trajectory(v2.trip)) AS dist FROM Datascar v1, Datascar v2, QueryLicces1 ll1, QueryLicces2 ll2 WHERE v1.licce = ll1.licce AND v2.licce = ll2.licce AND v1.licce <> v2.licce ;

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 85 Simiiremt à QueryLicces1, QueryLicces2 reprd dix seconds tup tab QueryLicces (tup alnt l'indice onze à l'indice vingt). La métho f_distance calcur distance minima séant ux géométries (coup points plus proche). perm rnières seront fournies métho Ces f_trajectory e polyligne(linestring) représtant l'itineraire emprté (préstée section véhicu. 3.4.4) Tout comme rournera ux requêtes précénte, formution cel-ci, selon l'approche TBA, rerra l'appel pour métho à gtrip(v1.licce pour amètre). 6 ) Quel sont paires ps d'immatricutions véhicu type camion ont été à moins dix mètres l' l'autre? SELECT v1.licce AS licce1, v2.licce AS licce2 FROM datascar v1, datascar v2 WHERE v1.licce < v2.licce AND v1.type = camion AND v2.type = camion AND hermes.f_within_distance (10.0, v1.trip, v2.trip) = TRUE ; C' l'intermédiaire métho f_within_distance sera possib vérier si ux objs mobi( l'occurce, s (préstée points mobi) section sont 3.4.3) à e qu'il taine distance l' l'autre. La métho cer- gtrip l'approche TBA. sera rese pour formur cte requête selon 7 ) Quel sont ps d'immatricutions s véhicu type passager ont atteint points QueryPoints avant tous autres véhicu type passager durant totalité pério d'observation? SELECT pp.pos AS pos, v1.licce AS licce FROM Datascar v1, QueryPoints pp WHERE hermes.passes(v1.trip, pp.pos) AND v1.type = passager AND hermes.f_timepoint(pp.pos, v1.trip) <= ALL ( SELECT hermes.f_timepoint(pp2.pos, v2.trip) AS firsttime FROM datascar v2, WHERE hermes.passes (pp.pos, v2.trip) AND v2.type = passager ) ; D_Timepoint_sec. Cterequêteanécessitél'implémtationd'nouvelopérateurpermtantcomerux au suj création Il s'agit d'opérateurs donc d'e sous surcharge PostgeSQL l'opérateur pourront être <=. obtues De plus [6, amp informations ALL( opposition à DISTINCT) perm séctionner l'semb s tup satisfaisant 19]. A noter sous séction. La métho f_timepoint certain point. A nouveau, représtation, indira selon premier l'approche instant aul TBA, rerra véhicu l'utilisation passé métho gtrip l'utilisation tab Datamcar (au lieu Datascar). 8 ) Quel distance tota courue véhicu QueryLicces1 durant périos QueryPeriods1? SELECT v1.licce AS licce, pp.period AS period, SUM( ST_Lgth( hermes.f_trajectory( hermes.at_temp_emt(pp.period, v1.trip) ) ) ) AS dist FROM Datascar v1, QueryPeriods1 pp, QueryLicces1 ll WHERE v1.licce = ll.licce AND hermes.prest(pp.period, v1.trip) ;

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 86 La métho at_temp_emt s positions d' véhicu à certains (introduite interval section temps 3.4.4) (plusieurs perm périos). rreindre La l'histori métho f_trajectory véhicu permtrarournerepolyligne(linestring)représtantl'itinéraireemprté durant ces interval temps. Enn, métho ST_Lgth cur longueur cte polyligne. Pour plus amp informations au suj permtra ST_Lgth, cal- cteur intéressé pourra se réferer à[6, 19]. La formution cte requête selon l'approche TBA nécessitera l'utilisation métho gtrip. 9 ) Quel plus longue distance courue cha véhicu durant chace s périos QueryPeriods? SELECT pp.period AS period, MAX(ST_Lgth( hermes.f_trajectory(hermes.at_temp_emt(pp.period, v1.trip)) ) AS dist FROM Datascar v1, QueryPeriods pp WHERE hermes.prest(pp.period, v1.trip) GROUP BY pp.period ; Toutcommepourrequêteprécénte,cterequêtesebasesurméthos at_temp_emt, f_trajectory égamt l'utilisation ST_Lgth. Et métho formution gtrip. cte requête selon l'approche TBA nécessitera 10 ) Quand où véhicu QueryLicces1 ont rcontrés autres véhicu (distance l' l'autre moins 3 mètres), l sont ps d'immatricutions ces rniers? SELECT v1.licce AS rylicce, v2.licce AS otherlicce, hermes.at_temp_emt( hermes.ftime (3.0, v1.trip, v2.trip), v1.trip) AS pos FROM Datascar v1, Datascar v2, QueryLicces1 ll WHERE v1.licce = ll.licce AND v2.licce <> v1.licce AND hermes.f_within_distance (3.0, v1.trip, v2.trip) = TRUE ; La métho ftime rourne semb d'interval temps durant ls véhicu v1 il a à donc moins fallu l'implémter. trois mètres du Tout véhicu comme v2. pour Cte métho plut s n'était requêtes pas préste précéntes, sous Hermes, métho gtrip sera nécessaire pour applir cte requête selon l'approche TBA. 11 ) Quels sont véhicu sont passés point QueryPoints1 à instant s instants dénis QueryInstants1? SELECT c.licce AS licce, pp.pos AS pos, ii.instant AS instant FROM Datascar c, QueryPoints1 pp, QueryInstant1 ii WHERE hermes.at_instant(ii.instant, c.trip) = pp.pos ; L'approche TBA pourra être appliquée utilisant tab Datamcar (au lieu Datascar) utilisant métho gtrip(c.licce pour amètre). La métho at_instant permtra vériersivéhicu,àcertaininstant,passécertainpoint. 12 ) Quels sont véhicu se sont rcontrés point QueryPoints1 à instant QueryInstants1? SELECT pp.pos AS pos, ii.instant AS instant, c1.licce AS licce1, c2.licce AS licce2 FROM Datascar c1, Datascar c2, QueryPoints1 pp, QueryInstant1 ii WHERE hermes.at_instant(ii.instant, c1.trip) = pp.pos

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 87 AND hermes.at_instant(ii.instant, c2.trip) = pp.pos ; Assez simiire à requête précénte, cte requête nécessite égamt l'utilisation métho gtrip pour l'applir selon l'approche TBA. 13 ) Quels sont véhicu sont trés e région QueryRegions1 durant e pério QueryPeriods1? SELECT rr.region AS region, pp.period AS period, c.licce AS licce FROM Datascar c, QueryRegions1 rr, QueryPeriods1 pp WHERE NOT ( hermes.isempty( hermes.f_ter( hermes.at_temp_emt(pp.period, c.trip) ), rr.region ) ) ; La métho f_ter e certaine région ( permtra polygone). d'indir El rournera si véhicu(point pour ce instant mobi) (D_Timepoint_Sec) tré ou non indiraàlinstantilytré.s'iln'ypastré, D_Timepoint_Sec métho seraànull isempty rournera TRUE. 14 ) Quels sont véhicu sont trés e région QueryRegions1 à instant QueryInstants1? SELECT rr.region AS region, ii.instant AS instant, c.licce AS licce FROM Datascar c, QueryRegions1 rr, QueryInstants1 ii WHERE ST_Within ( hermes.at_instant(ii.instant, c.trip), rr.region ) ; Dans ce requête, nous avons utilisé métho ST_Within véhicu pénètre ou non e région, car métho ( non f_ter), pour ter si at_instant point). En e, ce cas-ci, on considère seul instant contrairemt rourne à requête obj précénte spatial( considérait semb d'instants (pério). Dès lors, on ne peut pas utiliser métho f_ter pourra trouver car el a pour plus amètre amp informations obj spatio-temporel( au suj point mobi). Le cteur intéressé ST_Within [6, 19]. 15 ) Quels sont véhicu sont passés point QueryPoints1 durant e s périos QueryPeriods1? ) ) SELECT po.pos AS pos, pr.period AS period, c.licce AS licce FROM Datascar c, QueryPoints1 po, QueryPeriods1 pr WHERE NOT( hermes.isempty( hermes.f_timepoint( po.pos, hermes.at_temp_emt(pr.period, c.trip) ); L'implémtation cte requête se base sur méthos at_temp_emt, f_timepoint isempty Et tout comme nous plut avons déjà ces eu rnières, l'occasion l'application d'utiliser cte certaines requête s selon requêtes l'approche précéntes. nécessitera l'utilisation tab Datamcar, au lieu Datascar, métho gtrip. TBA 16 ) Lister paires ps d'immatricutions, première issue Query- Licces1 secon issue QueryLicces2, dont véhicu correspondant sont e région QueryRegions1 durant e pério QueryPeriods1 mais ne se rcontrt pas?

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 88 SELECT pp.period AS period, rr.region AS region, c1.licce AS licce1, c2 AS licce2 FROM Datascar c1, Datascar c2, QueryRegions1 rr, QueryPeriods1 pp, QueryLicces1 ll1, QueryLicces2 ll2 WHERE c1.licce = ll1.licce AND c2.licce = ll2.licce AND ll1.licce < ll2.licce AND hermes.passes (rr.region, hermes.at_temp_emt (pp.period, c1.trip) ) AND hermes.passes (rr.region, hermes.at_temp_emt (pp.period, c2.trip) ) AND hermes.isempty ( hermes.f_ter( hermes.at_temp_emt(pp.period, hermes.f_intersection(c1.trip, c2.trip)), rr.region) ) ) ; utiliserons An savoir métho si ux véhicu ne se rcontrt pas au cours ur itinéraire respectif, nous f_intersection (préstée section 3.4.6). La métho passes an s'assurer ux véhicu sont e certaine région(issue QueryRegions1) sera utilisée coursd'ecertainepériotemps(issue QueryPeriods1),méthos isempty, f_ter, au at_temp_emt f_intersection croist pas cte région durant seront cte utilisées pério an temps. s'assurer ux véhicu ne se 17 ) Quels sont points QueryPoints ont été visités maximum véhicu diérts? CREATE VIEW Poscot AS SELECT pp.pos AS pos, COUNT(c.licce) AS hits FROM QueryPoints pp, Datascar c WHERE hermes.passes(pp.pos, c.trip) GROUP BY pp.pos ; SELECT pos FROM Poscot AS n WHERE n.hits = (SELECT MAX(hits) FROM Poscot) ; visites Enn,cternièrerequêtesebasesurevuepermtrafaciliercalculdombre d'égalité) cha aura nombre point maximal QueryPoints. visites. Il sura suite choisir celui (ou ceux, cas sous La Hermes. quasi totalité Néanmoins, s méthos il a fallu, utilisés certains cas, requêtes implémter proposées s fonctions [4] était an concorr proposées exactemt [4],rournebooléindiquantsipointmobipassepointouerégion avec t performances. Par exemp, métho passes, tel qu'el vue (ux métho fonctions diértes). Sous Hermes, il n'existe pas tel métho. Néanmoins, il propose f_timepoint (ou passé) certain rourne point. Par l'instant consént, (D_Timepoint_Sec) il assez aisé aul d'implémter point mobi métho passe passes à NULL. tel Si qu'el c' cas, vue métho [4]. Il rournera sura, FALSE exemp, (l'obj vérier ne passe si l'instant jamais rourner ce point), mobi sinontrue.enceconcerneseconversionmétho passe e région), Hermes ne propose pas tel fonction. passes(vériesipoint baser sur métho Toutefois, on pourra se f_ter (proposée Hermes) an l'implémter. La métho prest été implémtée suivant même raisonnemt. a

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 89 5.4 Evaluation s performances 5.4.1 Introduction PostgreSQL. Nous allons Cte à prést évaluation, exposer s' résultats donc basée l'évaluation sur requêtes s préstées performances à d'hermes section précénte, sous réponses sera réalisée s requêtes selon obtus(sous ux ang. Le PostgreSQL) premier consistera selon à approches analyser OBA à comer TBA. Ce temps mtra comer, termes performances, ux mos représtations d' même obj per- mobi.lesecondang'intéresseraauxperformancesobtuessoussecondo(approchesoba d'e TBA) t, [4], comer comera ux systèmes avec ceux spatio-temporels obtues Hermes proposant sous PostgreSQL. s fonctionnalités Ce permtra, d'autre t, vérier si performances s approches OBA TBA, sous SECONDO, simiires, suivt mêmes conclusions sous Hermes. plusieurs.nousutiliseronspourceamètre Annepasbasercteévaluationsurisemb,nousgénérerons nous lui attribuerons diértes vaurs. Nous aurons SCALEFACTOR(préstésection5.2.5)aul même scénario, mais avec nombre véhicu observés ainsi diérts diérts jeu e pério, d'observation simunt diérte. conguration D' suivante: point vue matériel, cte évaluation sera réalisée sur ordinateur doté Processeur Mémoire Intel Core 2048 2 Mo 2.4 GHz Système HDD d'exploitation Microsoft 100 Windows Go XP 5.4.2 Préstation s résultats 5.3.2. Le Enceconcerne tabau ci-ssous reprd amètre temps SCALEFACTOR,nousnousbaserons réponses s dix-sept requêtes survaursutilisées préstées section 2000 véhicu [4], à savoir pdant 0.2 (observation vingt-huit jours). 447 Pour véhicu chace pdant ces six rnières, jours) 1.0 véhicu (observation réalisera ( 748,496 moyne) km) [4]. respectivemt Il sera égamt 34 caractérisé 146 itinéraires ( (distance moyne) tota respectivemt respective 170,645 6139 km 26963 umpoint(pour cinquante-troismillions l'semb s umpoint[4].parcomaison,récepteurgpsproduitmoyne itinéraires), ce fait jeu l'ordre trois millions plus d' million ités temporel véhicu sur e pério vingt-huit jours[4]. Nwork-Based (0.2) Nwork-Based (1.0) Postgres SECONDO Postgres SECONDO OBA TBA OBA TBA OBA TBA OBA TBA 1 0.351 0.248 0.476 0.451 0.375 0.287 0.460 0.407 2 0.118 0.015 0.050 0.140 0.212 0.096 0.113 0.099 3 220.097 131.191 6.303 0.993 547.527 152.930 12.080 1.092 4 5441.219 2191.033 625.431 273.426 26145.263 10006.833 6232.560 966.393 5 1291.372 853.240 45.535 34.710 9847.944 4151.819 121.885 61.015 6 3002.918 13679.857 333.341 1942.071 34871.918 269615.508 7032.000 53910.502 7 17156.699 3552.231 2325.340 241.182 81319.224 5281.385 23324.700 135.724 8 1872.418 951.003 5.854 3.521 3772.973 1083.261 13.989 4.308 9 9373.507 19624.878 1102.580 3241.180 22637.842 112591.611 4791.730 21730.800 10 19902.274 11007.557 3170.480 1189.130 141561.308 95790.772 23951.800 16410.200 11 198.027 117.281 1.862 0.849 2531.224 347.536 11.602 1.411 12 1146.598 383.624 144.466 0.510 9218.640 613.234 964.456 0.625 13 5992.206 2166.218 426.079 128.682 18274.374 5267.222 2015.680 261.572 14 1674.424 782.162 6.444 3.083 13951.846 2504.415 138.305 13.075 15 2153.510 1371.667 121.011 30.562 8473.005 1937.542 322.635 36.343 16 2274.883 1109.479 102.139 49.206 4917.281 2981.912 132.165 74.842 17 4022.518 2197.027 467.125 242.219 25918.673 10286.424 5374.080 1097.145

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 90 5.4.3 Object-Based Approach versus Trip-Based Approach TBA. Nous L'approche pouvons constater OBA meilur temps imt réponses au niveau sont généramt requêtes 6 meilurs 9. Ces sous rnières l'approche susceptib necessiter l'accès à l'tièré(ou à e gran tie) l'histori s positions sont (compxité ait léger avantage linéaire avec lorsqu'il pério s'agit d'accér temps observée). à grand Il volume sembrait. donc Cte l'approche tdance OBA conrme tant sous PostgreSQL sous SECONDO. se sousl'approcheoba,srequêtes9(scalefactor=0.2)6(scalefactor=1.0)pour Ence concerne requêteayantplusgrand tempsréponse,il s'agit requête10 l'approche ce conforte TBA premières (tant sous analyses PostgreSQL nous sous avons SECONDO). précémmt Au faites. niveau En e, l'approche on remar TBA, égamt 6 9 (sous TBA) plus se quantité détériort fortemt. a traiter Au niveau gran, l'approche plus OBA, performances on remar s requêtes requête 10 prd égamt temps consént sous l'approche TBA. La requête 10 commce ejointuretreséctiontousautresvéhicusontàmoinstroismètres.etant séctionner véhicu avec ps d'immatricution appropriées, eectue suite donné soussecondo),nombrecombinaisonspossibaugmtequadratimtavecnombre l'utilisation d' inx n'a pas amélioré performances (tant sous PostgreSQL sous véhicu l'approche observés. OBA Pour sous cte l'approche raison, cte TBA. requête produit mauvaises performances, tant bi On peut meilurs égamt résultats remarr sous qu'au l'approche niveau s OBA. requêtes Sous 7 cte 12, rnière, l'approche urs TBA performances semb avoir détériort fortemt lors nombre véhicu observés pério d'observation sont plus se grands, perm ce rrouver n' pas tous cas itinéraires sous TBA. Sous sont ces passés ux requêtes, certain l'utilisation point d' P. inx Il sembrait spatial donc performances.inmêmeaiveaurequête11.toutefois,diércetretba fait stocker l'itinéraire d' véhicu à t (tab distincte) induit meilures OBAmoinssignicativececaslà. 5.4.4 Hermes (sous PostgreSQL) versus SECONDO d'hermes Comme sous nous PostgreSQL pouvons sontntemt constater sur inférieures tabau à reprant cel SECONDO. résultats, Il s'agit performances aul on pouvait s'attdre. En e, nous pouvons pointer du doigt plusieurs élémts d' résut peuvt explir ce. Orac versus PostgreSQL ployésursgbdpostgresqlmaissursgbdorac.act,dèsphaseconception, Enpremierlieu,onpeutmtionnerfaitqu'Hermes,àl'origine,n'apasétéconçupourêtredé- sous auteurs PostgreSQL, ont pris pourrait compte être certaines néfastes ticurités sur performances d'orac dont ce urs rnier. homologues Par exemp, respectifs, l'avonsmtionnéprécémmt(section4.3.7),toutesfonctionsprocéduresd'hermes(à nous l'origne) avait imt s amètres type standard(d_timepoint_sec Il n'était donc pas rare d'avoir e fonction avec e trtaine amètres. Etant = donné six tiers). fonction PostgreSQL limitée à dix-huit amètres, cte façon amétrer a du être qu'e an ces fonctions reçoivt type revue D_Timepoint_Sec Cepdant, raison s résultats exposés ci-ssus, on pourrait au lieu s'interroger six tiers sur fait exemp. si ce changemt amétrage a été préjudiciab aux performances globa d'hermes savoir PostgreSQL). A priori, oui. Est-ce auteurs avait procédés ainsi an tirer ti (sous certaines ticurités d'orac? Est-ce ce rnier supporte mieux plusieurs objs type

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 91 standard(ex:tier)aulieud'seulobjtypecompxe(ex: -il PostgreSQL? A priori, il sembrait second cas soit D_Timepoint_Sec)?Etqu' performances pour PostgreSQL. désavantageux terme pxes. Ce Ont-ils nous amène été développés tout naturelmt ngage à pointer interne du doigt du SGBD l'implémtation (PL/SQL ou PL/PgSQL) ces types com- ngage hôte (ex : C++)? Nous avons vu fonctionnalités temporel d'hermes ou (TAU_TLL) surl'interactiondusgbdavecngagehôte.est-cel'échangetresgdb sont tièremt développées C++. On pourrait donc s'interroger sur ce co (ou ngage plus) hôte facimt? s'eectue Commt manière optima? tampons sont-ils Quel(s) gérés? type(s) Nous avons vu(section s'échange(nt) 4.3.10) moins sous PostgreSQL, l'interaction avec ngage hôte nécessitait l'utilisation d' certain nombre macros ). Or simpliait sous Orac, (pour il n'existe l'utilisateur) pas tels échanges macros. avec On peut SGBD donc (conversion se poser s quion types profondie savoir si pourrait ces macros nous sont donner préjudiciab s réponses au concrètes. niveau s Au performances. niveau du co, Seul on e pourrait analyse visager plus ap- l'optimiseranréduirempsd'exécutionsfonctionsl'espaceoccupé. (section Enn, 2.2.7), on peut Orac égamt ar citer au niveau fonctionnalités s SGBD spatia. spatiaux. Nous Il serait l'avons donc vu pas précémmt certaines fonctionnalités spatia, utilisées sous Hermes ( ont été migrées d'orac étonnant Spatial vers PostGIS), ne soit pas ecaces sous PostGIS. Implémtation initia d'hermes On Le pourrait second élémt visagé l'optimisation l'on peut mtre certains évince algorithmes concerne (ex l'implémtation : at_instant, at_temp_emt, même d'hermes. f_distance, mances moynes f_trajectory, indépdammt c.). En e, s ticurités il se peut du certains SGBD. ces rniers ait s perfor- Hermes versus SECONDO (pour Enn, plut on peut s égamt requêtes citer préstées ticurités précemmt) SECONDO. an d'optimiser Ce rnier requêtes utilise (ex s : éviter inx courirtoutab).cesinxsonttype s inx ont égamt été utilisés sous PostgreSQL, BTree[4].Danscassrésultatsci-ssus, plus ticulièremt, s inx type GiST performances( (arbre recherche bi supérieures généralisé) à ceux 4. Ces s rniers inx ont été choisies car ils orait meilures BTree mt s'interroger sur l'implémtation ces inx. En e, PostgreSQL). ils sont très On souvt peut donc utilisés logi- requêtes (jointure). Il sembrait inx type BTree formants inx proposés sous PostgreSQL ( même ntemt sous SECONDO supérieur aux soit plus per- BTree PostgreSQL). On pourrait donc revoir l'implémtation ces inx sous PostgreSQL, ou alors développer plémter ces d'utiliser propres ces structures. propres inx[6, En e, 19]. PostgreSQL donne possibilité à l'utilisateur d'im- traiter On s peut égamt non mtre standards évince (spatial, temporel, fait spatio-temporel, SECONDO a été c.). conçu A cte n, cha but modu fonctions, c.). compose Or, comme a été nous soigneusemt l'avons mtionné implémté précémmt, optimisé(types, composants structure d'hermes, sous 4PostgreSQL propose trois types d'inx : BTree, HashTab GiST [6, 19]

CHAPITRE 5. CAS D'ÉTUDE ET ÉVALUATION DES PERFORMANCES D'HERMES 92 PostgreSQL tiamt pour ne supporter sont probabmt s pas spatio-temporels. optimisés. En e, Ainsi, PostgreSQL ces méthos n'a d'inxation pas été conçu sur ini- type ne sont pas forcémt optima. De même stratégie mise uvre ce l'optimiseur élémts, esstiels, requêtes. orant Pour meilures cte raison, performances il probab ur évant SECONDO sous dispose PostgreSQL. certains peut citer, exemp, méthos d'inxation, l'optimiseur requête, algorithmes On (ex : tri ORDER BY), ou groupemt (ex : GROUP accér aux. Etant donné performance BY), ou s core composants stratégie fait cel mise du système, uvre pour peutdoncexplirctediércerésultatsl'optimisationscomposantssecondo. on faire Bi l'obj évimmt, d'analyses tous plus approfondies. émts Toutefois, nous avons ce précémmt sort du cadre mis ce mémoire. évinces En doivt objectifs nous nous sommes xés au dét concernait, premier temps, e, pce d' premier système spatio-temporel pour SGBD PostgreSQL,, second mise temps, Nous avons, mise plus, prati fournit e ce évaluation système s performances cas concr ce an système. ter En son ce utilisabilité. évtuel améliorations, il s'agit l'étape pourrait suivre ce mémoire, donc, concerne pourrait être visagée comme travail futur. Pour cte raison, nous avons imt indiqué ce certaines ce mémoire pistes ne propose serait susceptib première d'améliorer bri d' Hermes édice sous serait PostgreSQL. représté En d'autres système termes, spatio-temporel évtail domaines. mature, L'amélioration performant, d'hermes doté fonctionnalités constituerait donc, optima tout naturelmt, couvrant très secon rge bri c édice.

Chapitre 6 Conclusions développemts futurs 6.1 Conclusions évince L'émergcesapplicationsspatio-temporel,notammtsapplicationsmobi,amis ces rnières e insusance annéees nous : avons man assisté cruel à systèmes réel évolutions, gion ce soit au robustes. niveau Bi récolte s ou au niveau s épemts(plus légers, plus puissants, plus pis, plus capacitéstockage),ilyacepdantcorebeaucoupcheminàfaireaiveaussystèmes gionces.ene,casslbsexemp,l'analysesdépcemts utilisateurs tantpourtreprisespourconsommateurs.acotéslbs,onpeutégamtciter n' pas optima. Or, mobilité vue, nos jours, facteur esstiel, téléphoniemobi,l'aiànavigation,gionréseauxtransportsoucorelogisti. Pour cte raison, nous avons xé, cadre ce mémoire, ux objectifs principaux: 1. Mise pce d'e première extsion spatio-temporel pour SGBD PostgreSQL; 2. Misepratisfonctionnalitéscteextsioncasconcran: (a) Montrer son bon fonctionnemt son utilisabilité sous PostgreSQL; (b) Faire e évaluation ses performances sous PostgreSQL. Au initamt niveau du conçue premier pour objectif, SGBD nous Orac, l'avons du réaliser nom d'hermes. migrant Après e avoir extsion exposées spatio-temporel, lités ce rnier, nous avons montré principa étapes nécessaires à cte migration, fonctionna- avons vu ce processus était long minutieux. nous étu Au niveau cas simunt du second dépcemts objectif, nous quotidis avons montré d' l'utilisabilité échantillon variab cte d'individus extsion e seauroutiervilberlin.pource,nousavonsutiliséssembrequêtespermtant ré- d'analyser mances ces cte dépcemts. extsion, Nous nous avons l'avons égamt comé avec montré e autre première système évaluation spatio-temporel, s perfor- nom SECONDO, orant s fonctionnalités simiires. A cte n, nous avons vu ux mos du trait représtations s performances s inférieures spatio-temporel. sous SECONDO Nous avons (l vu ces soit premiers représtation résultats mon- ), nous avons mis évince plusieurs facteurs explirait ce résut. s il En important conclusion, nous garr pouvons à l'esprit dire solution objectifs apportée xés au ne dét constitue ont qu'e été atteints. étape Toutefois, d' long 93

CHAPITRE 6. CONCLUSIONS ET DÉVELOPPEMENTS FUTURS 94 processus couvrantplusrgedomainespossib.ene,commemontrerésultatssperformances, à terme, conduirait à système spatio-temporel compl, robuste optima, sous e future PostgreSQL, tâche. s améliorations sont nécessaires. Ce pourrait donc être visagées comme 6.2 Développemts futurs visagé Comme serait nous d'analyser l'avons mtionné détail ci-ssus, d'améliorer premier composants travail, d'hermes, esstiel, sous pourrait PostgreSQL, être - induistmauvaisesperformances.ene,onnepeutvisagerl'utilisationcteextsion cas réel sans lui apporter s modications. Dans spatio-temporel cadre ce mémoire, nous SGBD. avons Nous vu ux avons approches vu chace permtant ces rnières représter avait certains l'accèsmaniputioncessgbd.pource,eétudétailléesdiérts avantages. Dès lors, on pourrait visager d'améliorer ces représtations an d'optimiser composantsdusgbd(jointure,agrégation,inx,optimiseurrequêtes,tri,regroupemt,c.) vra, être exemp, réalisée. combinerait On pourrait (si égamt possib) visager avantages proposer s ux mos autre mo nous représtation mmt introduits. avons précé- rge On évtail pourrait égamt domaines. visager Nous l'avons d'étdre utilisé fonctionnalités cas d'e analyse d'hermes s an dépcemts supporter d'utilisateurs aurait besoin fonctionnalités réseau routier. On serait pourrait plus dès lors spécis visager à tel d'autres ou tel scénarios domaine. ls on mature Commousl'avonsmtionnéprécémmt,développemtd'systèmespatio-temporel sont visageab long processus domaine. qu'à ces prémices. Dès lors, nombreuses perspectives

Bibliographie [1] BBBike @ World - A Route Pnner for Cyclists. http://bbbike.elsif./ 31.07.2009) (consulté [2] M.H.Böhn. Temporal database system 60, 1995. impmtations.acmsigmodrec.,vol.24,p.53- [3] C. Davis, P. Vixie, T. Goodwin, and I. Dickinson. A means for expressing location information in the domain name system, January 1996. http://www.if.org/rfc/rfc1876.txt (consulté 31/07/2009). [4] Ch. Düntg, T. Behr, R. H. Güting. BerlinMOD : A Bchmark for Moving Object Databases. University of Hag, Hag, Germany, Je 18, 2008. [5] Op Geospatial Consortium, Inc. http://www.opgeospatial.org/ogc/glossary/g (consulté 31/07/2009). [6] K. Dougs, S. Dougs. PostgreSQL lis, 2005. databases. Second Edition, Sams Publishing, Indianapo- [7] M. Erwig, R.H. Güting, M. Schneir and M. Vazirgiannis. Abstract and Discre Moling of Spatio-Temporal Data Information Systems, p. 131-136, Types. Proceedings Washington D. of the C., November 6th. ACM 1998. Symposium on Geographic [8] S. Feuerstein, B. Pribyl. Orac PL/SQL (United State), August 2005. Programming. Fourth Edition, O'Reilly, Sebastopol [9] R.H. zirgiannis. Güting, M.H. Bohn, M.Erwig, C.S. Js, N.A. Lortzos, M.Schneir and M. Va- A Fodation for Represting and Querying Moving on Database Systems, 25(1):1-42, 2000. Objects. ACM Transactions [10] GEOS - Geomry Engine Op Source. http://geos.refractions.n/ 31.07.2009). (consulté [11] R. H. Güting and M. Schneir. Moving Objects San Francisco, 2005. Databases, Morgan Kaufmann Publishers, [12] C.S. Js, M.D. Soo and R.T. Snodgrass. Unifying temporal data mols via a conceptual mol. Information Systems, vol. 19, no. 7, p. 513-547, 1994. [13] I.Kakoudakis. The TAU Temporal Object putation, 1996. Mol.MPhilThesis,UMIST,DetmtofCom- [14] J.A.C. Lema, L. Forlizzi, R.H. Güting, E. Narlli, M. Schneir. Algorithms for Moving Objects Databases. The Computer Journal 46(6):680-712, 2003. [15] Op Geospatial Consortium, Inc. OpGIS Impmtation Specication for Geographic information - Simp feature access - Part 1: Common 05, 2006. architecture. Version 1.2.0, October [16] Op Geospatial Consortium, Inc. OpGIS Impmtation Specication for Geographic information - Simp feature access - Part 2: SQL option. Version 1.2.0, October 05, 2006. [17] Orac Database Application Developer's Gui 10g Rease 1 (10.1), 2003. http: //download.orac.com/docs/cd/b14117_01/appv.101/b10800/toc.htm 31/07/2009). (consulté 95

BIBLIOGRAPHIE 96 [18] N. Pekis, STAU : A Spatio-Temporal Extsion to ORACLE Detmt of Computation, 2002. DBMS. PhD Thesis, UMIST, [19] Documtation PostgreSQL 8.3.7. http://docs.postgresqlfr.org/8.3/ 31.07.2009). (consulté [20] PROJ.4 - Cartographic Projection Library. http://trac.osgeo.org/proj/ 31.07.2009). (consulté [21] N. Pekis, Y. Theodoridis, S. Vosinakis and T. Panayiotopoulos. Hermes - A Framework for Location-Based Data Technology(EDBT), LNCS Managemt. 3896, Mich, Proc. Germany, 10th Int'l 2006. Conferce on Extding Database [22] N.PekisandY.Theodoridis. An Orac Data Cartridge for Moving 2007-04, Technical Report Series, Information Systems Lab., University Objects.UNIPI-ISL-TR- Greece, December 2007. of Piraeus, Piraeus, [23] SECONDO - An extsib database system. http://dna.ferni-hag./secondo. html/(consulté 31.07.2009) [24] M. Stonebraker, J. Frew,, K.Garls and J. Meredith. The SEQUOIA 2000 storage bchmark. In SIGMOD Conferce, Vol. 22, p. 2-11, Je 1993 [25] R.T. Snodgrass. The TSQL2 temporal ry nguage, 1st edition, Springer, 1995. [26] ISO/IEC and Application 13249-3:2002 Packages FDIS. Part Information 3: Spatial, 2nd technology edition, Database 2002. nguages SQL Multimedia [27] StatistischesLansamtBerlin.InteraktiverStadtats. http://www.statistik-berlin./ framess/berl.htm (consulté 31.07.2009). [28] P. Sist, O. Wolfson, S. Chamberin and S. Dao. Moling And Querying Moving In Proc. IEEE Intl. Conf. on Data Engineering(ICDE), p. 422-433, 1997. Objects. [29] O.Wolfson. Moving Objects Information Managemt : The Database ofthe5thinternationalworkshoponnextgerationinformationtechnologiesandsystems Chalnge.Proceedings (NGITS'2002), p. 75-89, Caesarea, Israel, Je 25-26 2002. [30] O.Wolfson,P.Sits,B.Xu,J.Zhou,S.Chamberin,Y.YeshaandN.Rishe. Tracking Moving Objects Using Database Technology in on Next Geration Information Technologies DOMINO. and Systems Proceedings (NGITS), of The p. 112-119, Fourth Workshop Yaakov, Israel, July 1999. Zikhron- [31] C. Zaniolo, S. Ceri, Ch. Faloutsos, R.T. Snodgrass, V. S. Subrahmanian, R. Zicari. Advanced Database Systems, Morgan Kaufmann Publishers, San Francisco, 1997.

Annexe A Acronymes ANSI: API: Application American National Programming Standards Interface Institute BCDM: BD:BaseDonnées Bitemporal Conceptual Data Mol BT:BasesTypes CEI: Commission Ectrotechni Internationa CSV DLL: : Dynamic Comma-Seated Link Library Values DNS:DomainNameSystem ESRI: FTL: Future Environmtal Temporal Systems Language Research Institute GIS: GIST: Geographic Geralized information Search tree system GPS: GSM:GlobalSystemforMobi Global Positioning System IEC: IETF: International Intern Engineering Ectrotechnical Task Force Commission ISO: LBS: International Location Based Organization Service for Standardization MOST: MT:MovingTypes Moving Objects Spatio-Temporal OGC: PDA: Personal Op Geospatial Digital Assistant Consortium PL/SQL: Procedural Language/ Structured Query Language PL/PgSQL RPC: Remote : Procedural Procedure Language/PostgreSQL Call Structured Query Language SDO: SDT:SpatialDataTypes Service Data Objects SGBD: SHP:Shape Systèmes Gion Données SQL: Structured Query Language SQL/MM SRF: S Rurning : Structured Fction Query Language/MultiMedia ST: SRID: Spatials Spatial Types Referce IDtication TAU_TLL TSQL: Temporal : TA Universe Structure Temporal Query Language Litteral Library TT: Temporals Types 97

Annexe B Dénitions formel s types Nous allons voir cte annexe dénitions formel s types temporels spatiotemporels présts sous Hermes. Ils ont été préstés section 3.2. B.1 Dénition formel s types temporel [18].Cternièrepossèsepttypemporels,d'pointvueformel,peuvtsedénir Les types temporels présts sous Hermes provint cartouche temporel TAU_TLL commesuit[22]: Date := <year: GrYear, month: GrMonth, day: GrDay> Où: GrMonth:={m:short l m GrYear:={y:long y 0} GrDay:={d:short l d 31} 12} Time := <hour: GrHour, minute: GrMinute, second: GrSecond> Où: GrHour:={h:short 0 h 23} GrMinute:={m:short 0 m 59} GrSecond:={s:doub 0 s 59} Timamp := date time Interval := <day: long, hour: GrHour, minute: GrMinute, second: GrSecond> Timepoint (g) :=tp(g) STV Où: tp(year):=<year:gryear> tp(month):=... tp(year) <month: GrMonth> STV:={beginning, tp(second):= tp(minute) forever, <second: now} GrSecond> Où beginning forever sonttypestimepoint tel 98

ANNEXE B. DÉFINITIONS FORMELLES DES TYPES DE DONNÉES 99 t Timepoint(g).begining t forever A noter ce type(introduit TAU_TLL) n' qu'e extsion du type Timepoint (introduit SQL2) inclut granurité. Period (g) :={ <start: Timepoint(g), d: Timepoint(g)> start d}, g granurity Où: granurity:={year,month,day,hour,minute,second} temporalemt (g) :={te:s<period(g)> i, j. i j te i te j = } On peut résumer l'semb ces types temporels : Temporal Literal Types:= Date Time Tiemstamp Timepoint(g) Interval Period(g) TemporalEmt(g) B.2 Dénition formel s types spatio-temporel TAU_TLL Les types spatio-temporels sur types spatiaux dénis sous dénis Hermes Orac se base Spatial sur [?]. types Ils temporels sont rétis dénis catégories: trois 1. Les objs types ité mobi; 2. Les colctions d'objs types ité mobi (obj mobi); 3. Les colctions d'objs mobi. D'pointvueformel,onpeutdénircommesuit[22]: Les objs types ité mobi Unit_Fction := <a: doub, b: doub, c: doub, scr: TypeOfFction> Où quatre TypeOfFction:={PLNML_1, types fonctions actuelmt PLNML_2, supportées SQRT_PLNML_2, sous Hermes (polynomia CONST} (premier représte second gré), racine carrée d' polynôme du second gré constante). Unit_Moving_Point := <p: period(second), x: Unit_Fction, y: Unit_Fction> Unit_Moving_Rectang :={<ll:unit_moving_point, ur:unit_moving_point>equal(ll.p, ur.p)} Unit_Moving_Circ :={<f:unit_moving_point, s:unit_moving_point, t:unit_moving_point> equal(f.p, s.p, t.p)} Unit_Moving_Segmt :={<b:unit_moving_point, e:unit_moving_point, m:unit_moving_point, kind: Où TypeOfSegmt> TypeOfSegmt ={SEG, (kind=seg ARC} equal(b.p, e.p)) (kind=arc equal(b.p, e.p, m.p))}

ANNEXE B. DÉFINITIONS FORMELLES DES TYPES DE DONNÉES 100 Unit_Moving_LineString :={l:s<unit_moving_segmt> i, j long: i j equal(l i.b.p l j.e.p)} Unit_Moving_Polygon :={ <l: s<unit_moving_segmt>, ho: booan> i, j long: i j equal(l i.b.p l j.e.p)} Les colction d'objs types ité mobi (obj mobi) Moving_Point :={p:s<unit_moving_point> i, j long, l i, j s<unit_moving_point> : j=i+1 p i.p<p j.p overps(p i.p, p j.p) t doub:insi(t, p i.p) at_instant(p, t) SDO_GEOMETRY /* point_geomry */ } Moving_Rectang :={r:s<unit_moving_rectang> i, j long, l i, j s<unit_moving_rectang>: j = i+1 r i.ll.p<r j.ur.p overps(r i.ll.p, r j.ur.p) t doub:insi(t, r i.ll.p) at_instant(r, t) SDO_GEOMETRY /* rectang geomry */ } Moving_Circ :={c:s<unit_moving_circ> i, j long, l i, j s<unit_moving_circ> : j=i+1 c i.f.p<c j.s.p overps(c i.f.p, c j.s.p) t doub:insi(t, c i.f.p) at_instant(c, t) SDO_GEOMETRY /* circ_geomry */ } Moving_LineString :={line:s<unit_moving_linestring> i, j long, l i, j s<unit_moving_linestring> :j=i+1 line i.l l.b.p<line j.l l.e.p overps(line i.l l.b.p, line j.l l.e.p) t doub: insi(t, line i.l l.b.p) at_instant(line, t) SDO_GEOMETRY /* linring_geomry */ } :={pol :s<unit_moving_polygon> i, j long, l i, j s<unit_moving_polygon> :j=i+1 i.l l.b.p<pol j.l l.e.p overps(pol i.l l.b.p, pol j.l l.e.p) t doub:insi(t, pol i.l l.b.p) at_instant(pol, t) SDO_GEOMETRY /* polygon_geomry */ } Les colctions d'objs mobi Multi_Moving_Point :={multi_mpoint:s<moving_point> i, j long t doub:insi(t, multi_mpoint i.p j.p i (at_instant(multi_mpoint i, t)) SDO_GEOMETRY /* multi-point geomry */ } Multi_Moving_LineString :={ multi_mline: s<moving_linestring> i, j long t doub:insi(t, multi_mline i.line j.l l.b.p i (at_instant(multi_mline i, t)) SDO_GEOMETRY /* multi-linring geomry */ Multi_Moving_Circ :={multi_mcirc:s<moving_circ> i, j long t doub:insi(t, multi_mcirc i.c j.f.p i (at_instant(multi_mcirc i, t)) SDO_GEOMETRY /* multi-circ geomry */ }

ANNEXE B. DÉFINITIONS FORMELLES DES TYPES DE DONNÉES 101 Multi_Moving_Rectang :={ multi_mrectang: s<moving_rectang> i, j long t doub:insi(t, multi_mrectange i.r j.ll.p i (at_instant(multi_mrectang i, t)) SDO_GEOMETRY /* multi-rectang geomry */ } Multi_Moving_Polygon :={ multi_mpolygon: s<moving_polygon> i, j long t doub: insi(t, multi_mpolygon i.pol j.l l.b.p i (at_instant(multi_mpolygon i, t)) SDO_GEOMETRY /* multi-polygon geomry */} Moving_Colction :={ <multi_mpoint: Multi_Moving_Point, multi_mline: multi_mcirc: Multi_Moving_LineString, multi_mrectang: Multi_Moving_Circ, multi_mpolygon: Multi_Moving_Polygon> Multi_Moving_Rectang, i, j long t doub:insi(t, multi_mpoint i.p j.p) insi(t, multi_mline i.line j.l insi(t, l.b.p) multi_mcirc i.c j.f.p) insi(t, multi_mrectang i.r insi(t, j.ll.p) multi_mpolygon i.pol j.l l.b.p) [( i (at_instant(multi_mpoint i, t))) ( i (at_instant(multi_mline i, t))) ( i (at_instant(multi_mcirc i, t))) ( i (at_instant(multi_mrectang i, t))) ( i (at_instant(multi_mpolygon i, t)))] SDO_GEOMETRY /* colction geomry */} Moving_Object :={ <mobject: Moving_Object, mpoint: mline: Moving_LineString, Moving_Point, mcirc: mrectang: Moving_Circ, mpolygon: Moving_Polygon, Moving_Rectang, geomry: mcolction: SDO_GEOMTRY, Moving_Colction, gtype: optype: GeomryType, arg1: short, string, arg2: input: short, Union_Input> Où: GeomryType GON, MCOLLECTION} ={MOBJECT, MPOINT, MLINE, MCIRCLE, MRECTANGLE, MPOLY- Union_Input = <mask: string, torance: doub, distance: doub>

Annexe C Implémtation du t performances sous PostgreSQL La première sous étape PostgreSQL. l'implémtation En raison du t nature performances s exportées consiste a (imt importer s jeu attributsstandards),l'utilisationtabtemporairesnécessaire.unefoiscesrnièrescréées, t secon performances. étape consiste Cte à créer initialisation initialiser se basera tab sur ces tab seront temporaires. utilisées requêtes du C.1 Création s tab temporaires soit Labtemporairessontconçuesand'yimporterjeuts.Ancteimportation typesnombres).voicicopl/pgsqlnécessaireàcréationcab. possib, attributs ces tab doivt concorr avec ceux s à importer ( CREATE TABLE QueryLicces_tmp ( Id integer PRIMARY KEY, /* Assure ux tup n auront pas même id. */ Licce text, ); CREATE TABLE QueryPoints_tmp ( Id integer PRIMARY KEY, Pos_x float, Pos_y float ); CREATE TABLE QueryRegions_tmp ( Id integer, Vertex_x float, Vertex_y float, CONSTRAINT ryregions_pkey PRIMARY KEY(Id, Vertex_x, Vertex_y) ); CREATE TABLE QueryInstants_tmp ( Id integer PRIMARY KEY, Instant text, ); 102

ANNEXE C. IMPLÉMENTATION DU TEST DE PERFORMANCES SOUS POSTGRESQL103 CREATE TABLE QueryPeriods_tmp ( Id integer PRIMARY KEY, Begin text, End text, ); CREATE TABLE Datamcar_tmp ( Moid integer PRIMARY KEY, Licce text, Type text, Mol text ); CREATE TABLE Trips_tmp ( Moid integer, Tripid integer, Tstart text, Td text, Xstart doub precision, Ystart doub precision, Xd doub precision, Yd doub precision, CONSTRAINT trips_pkey PRIMARY KEY (moid, tripid, tstart, td) ); CREATE TABLE Stres_tmp ( Id integer, Vmax integer, X1 float, Y1 float, X2 float, Y2 float, CONSTRAINT stres_pkey PRIMARY KEY(Id, Vmax, X1, Y1, X2, Y2) ); C.2 Importation du jeu Dans Une cadre fois ces tab ce mémoire, temporaires jeu créées, l'importation a été exporté du jeu au format CSV. peut Dans être ce eectuée. portation peut être réalisée comme suit ( supposant chiers CSV se trouvt cas, l'im- répertoire C:/CSV/): COPY Datamcar FROM C:/CSV/datamcar.csv DELIMITERS, CSV HEADER; COPY QueryLicces FROM C:/CSV/rylicces.csv DELIMITERS, CSV HEADER; COPY QueryPoints FROM C:/CSV/rypoints.csv DELIMITERS, CSV HEADER; COPY QueryRegions FROM C:/CSV/ryregions.csv DELIMITERS, CSV HEADER; COPY Stres FROM C:/CSV/stres.csv DELIMITERS, CSV HEADER; COPY QueryPeriods FROM C:/CSV/ryperiods.csv DELIMITERS, CSV HEADER; COPY QueryInstants FROM C:/CSV/ryinstants.csv DELIMITERS, CSV HEADER ; COPY Trips FROM C:/CSV/trips.csv DELIMITERS, CSV HEADER;

ANNEXE C. IMPLÉMENTATION DU TEST DE PERFORMANCES SOUS POSTGRESQL104 litaire DanscasoùjeuseraitexportéauformatSHP(Shape),ilfaudrautiliserl'uti- shp2pgsql rnier génèrera (fournit script SQL dont sources l'exécution Postgres) importera pour chier importer SHP mtionné tab. tab Ce indiquée. Par exemp, l'importation du chier datamcar.shp se fera comme suit: shp2pgsql -D -I C:/CSV/datamcar DatamcarTbl DbName > DatamcarSQL.sql suite: psql -d DbName -f C:\CSV\DatamcarSQL.sql l'exécution La première importera instruction chier génèrera datamcar.shp ( répertoire tab bin Postgres) script SQL dont DatamcarTbl DbName. La secon instruction exécutera script (après nous ayons préabmt base script répertoire indiqué). Le tout s'eectue via MSDOS. De plus amp informations dépcé pourront être trouvées [19]. C.3 Création s tab utilisées t tab Ce n' seront qu'e utilisées fois tab t temporaires performances. initialisées, La création l'on pourra ces rnières créer s'eectue initialiser co PL/PgSQL suivant: CREATE TABLE QueryPoints ( Id integer PRIMARY KEY, Pt geomry ); CREATE TABLE QueryRegions ( Id integer PRIMARY KEY, Vertex geomry, CONSTRAINT ryregions_pkey PRIMARY KEY (id, vertex) ); CREATE TABLE QueryInstants ( Id integer PRIMARY KEY, Instant d_type.d_timepoint_sec ); CREATE TABLE QueryPeriods ( Id integer PRIMARY KEY, Per_sec d_type.d_period_sec ). CREATE TABLE Trips ( Id serial PRIMARY KEY, Moid integer NOT NULL, Tripid integer NOT NULL, Mpt d_type.moving_point );

ANNEXE C. IMPLÉMENTATION DU TEST DE PERFORMANCES SOUS POSTGRESQL105 CREATE TABLE Stres ( Id integer, Vmax integer, Pt1 geomry, Pt2 geomry, CONSTRAINT stres_pkey PRIMARY KEY (id, vmax, pt1, pt2) ); spatiaux, Les tab temporels temporaires spatio-temporels. sont utilisées imt Or, tab raison nécessité convertir types Datamcar QuerLicces pas tel type. Pour cte raison, ces ux tab peuvt être utilisées directemt ne stockt performances. Pour autres tab, il faudra y insérer s tab temporaires, t veilnt à convertir correctemt nécessaires (ex : point = ST_Point(XFlottant, YFlottant), instant = instanttexte::d_type.d_timepoint_sec).