Infrastructure de stockage et de manipulation des données de trajectoires

Dimension: px
Commencer à balayer dès la page:

Download "Infrastructure de stockage et de manipulation des données de trajectoires"

Transcription

1 FACULTÉ DES SCIENCES DÉPARTEMENT D INFORMATIQUE Infrastructure de stockage et de manipulation des données de trajectoires Michel FOÉ Directeur : Prof. Esteban ZIMÁNYI Mémoire présenté en vue de l obtention du grade de Master en Sciences Informatiques Année académique

2 A mon fils Mathis, que ce mémoire suscite en lui la soif de connaissances.

3 Remerciements Je tiens à remercier sincèrement Monsieur Esteban Zimanyí, mon Directeur de mémoire, qui m a honoré de sa confiance en acceptant de me confier ce sujet, pour sa grande disponibilité et son encadrement patient, ces deux dernières années à l ULB. Je voudrais également remercier Messieurs Thierry Massart et Stijn Vansummeren, membres de mon jury de mémoire, pour avoir accepté de prendre connaissance et d évaluer ce travail. Je souhaite ensuite exprimer ma gratitude au Professeur Ralf Hartmut Güting de l Université de Hagen en Allemagne, pour ses éclairages au sujet du jeu de données du BerlinMOD. En dehors de l univers académique, je voudrais exprimer ma reconnaissance à ma famille, particulièrement à mes parents qui, malgré l adversité, n ont jamais menagé des efforts pour mon éducation. Je remercie particulièrement ma compagne Nadine, pour ses encouragements et son soutien constants. Mes sentiments vont à l endroit de mes amis Louis-Marie, Gilles, Alain, Joseph, Franck, Salomon, Arielle et Géraud, pour avoir accepté de parcourir cet ouvrage, pour leurs judicieuses remarques et critiques. Enfin, que tous ceux qui, de près ou de loin ont contribué de quelque façon que ce soit à l aboutissement de ce travail et surtout à mon projet de reprendre les études après cinq années d inactivité académique, trouvent en ce mémoire, une récompense pour leurs efforts et encouragements.

4 Table des matières 1 Introduction Contexte Problématique Objectifs du mémoire Structure du mémoire Concepts de base des trajectoires Introduction Trajectoires Caractéristiques des trajectoires Caractéristiques à un instant Caractéristiques à une période Aspect spatial des trajectoires Système de coordonnées Structuration de l espace Aspect temporel des trajectoires Domaine temporel Cycles de temps Dimension temporelle La norme ISO/IEC 9075 (SQL-2011) Des données brutes aux trajectoires Méthodes d interpolation Notions d incertitude Conclusion Modélisation et systèmes de gestion de données de trajectoires Modélisation des données de trajectoires Modèle de données spatio-temporelles Le modèle de données avec contraintes Le modèle de données d objets mobiles Systèmes de gestion de données de trajectoires SECONDO Hermes Hermes dans PostgreSQL Introduction PostgreSQL Méthodologie de développement d une extension i

5 ii Environnement de développement de l extension Règles à respecter lors de l utilisation du compilateur C Hermes dans PostgreSQL Module spatial : PostGIS Module temporel : TAU-TLL Module spatio-temporel Light Hermes (Lhermes) Insuffisances de Hermes Temporal PostgreSQL Type de données dans Lhermes Fonctions de Lhermes Cas d utilisation de Lhermes Introduction Présentation du BerlinMOD Description du jeu de données Relations et requêtes Méthodologie de test Requêtes et résultats Synthèse et analyse des résultats Analyse Au niveau de la représentation physique des types de données Au niveau de l indexation Conclusion Contributions Perspectives A Types de données de Lhermes 76 B Configuration de l environnement de développement 78 B.1 Configuration au niveau de visual C B.2 Configuration au niveau de PostgreSQL

6 Table des figures 2.1 Une trajectoire en gégographie temporelle [40] Relation instantanée [16] Relation à temps valide [16] Relation à temps transactionnel [16] Relation bitemporelle [16] Interpolation linéaire [4] Interpolation utilisant des courbes de Bezier [4] Incertitude d interpolation dans l espace [10] Incertitude d interpolation dans l espace-temps [10] Zone de définition de trajectoire [42] Données vectorielles : abstractions de base [18] Une partition [18] Un réseau [18] Exemple de modélisation avec STER [43] Ecran de modélisation spatio-temporelle dans PERCEPTORY [5] MADS : Types de données abstraits spatiaux [31] MADS : Types de données abstraits temporels [31] Objet spatio-temporel trajectoire [10] Attribut spatio-temporel trajectoire [10] Trajectoire dans ISO/TC211 [10] Représentation d un moving real [12] Moving point (a) et moving region (b) dans l espace-temps [16] Représentation en tranches d un moving real [12] Représentation en tranches d un moving point [12] Architecture de SECONDO [41] Architecture de types dans Hermes [28] Diagramme de classe de Hermes-MDC [28] Diagramme de classes des types dans PostGIS [29] Représentation en tranches d un Moving-Point dans Hermes-MDC [28] Projection d un moving point dans le domaine temporel Comparaison des coûts d exécution sur Lhermes et SECONDO iii

7 Chapitre 1 Introduction 1.1 Contexte La question de la gestion des données issues de l observation des entités mobiles a suscité un intérêt particulier au sein de la communauté scientifique du domaine des bases de données ces dernières années. Cet intérêt se justifie par les énormes avancées observées avec l avènement d une multitude de technologies et d outils qui permettent d assurer techniquement et à moindre coût, la traçabilité d un objet en mouvement. Parmi ces technologies, on retrouve les systèmes de géolocalisation Global Positioning System (GPS) et Galileo, les technologies RFID (Radio Frequency IDentification), qui permettent de suivre l évolution à l aide d un marqueur embarqué ou implanté sur l entité en mouvement et enfin des technologies de communication sans fils (GSM, WIFI, WIMAX, BLUETOOTH, etc.). Cette facilité à pouvoir tracer des objets mobiles a ouvert la voie à une large gamme d applications dans des domaines aussi variés que la mobilité urbaine ou inter-urbaine, la logistique, l anthropologie ou l écologie. On peut citer : les applications de type Location Based Services, qui permettent aux utilisateurs d équipements mobiles (Smart Phone, tablettes, PDA, GPS, etc.) d accéder à un certain nombre de services (publicité ciblée, localisation de l hôtel ou du restaurant le plus proche, informations de trafic en temps réel, etc.) en fonction de l endroit où ils se trouvent ; l observation de travailleurs urbains se rendant à leur lieu de travail en utilisant divers moyens de transport ; le contrôle des déplacements d une flotte de camions d une entreprise dans une région donnée ; le suivi des animaux dans des aires protégées ; l étude du mouvement migratoire de certains oiseaux à la recherche de meilleures sources d alimentation ; ou l évolution comparée de la population de deux communes dans le temps. Ces applications génèrent un volume important de données représentant l historique des positions successivement occupées par le phénomène en observation. Ces données sont appelées données de trajectoire. Dès lors, il devient impératif de disposer d une infrastructure permettant le stockage et l interrogation de ce type de données en vue de leur interprétation, étant donné que les systèmes de gestion de base de données classiques n offrent pas ou offrent partiellement de telles fonctionnalités. 1

8 2 1.2 Problématique L augmentation du nombre d applications générant des données sur le mouvement des objets contraste avec le nombre de systèmes de gestion de base de données (SGBD) existants, offrant des fonctionnalités pour le stockage et la manipulation des données de ce type. Si dans le cadre de la recherche, des prototypes ont été développés, notamment [41, 33], il existe un besoin réel pour ce qui est de l extension des systèmes de gestion de base de données commerciaux ou open source, afin de les doter de la capacité de prendre en compte la gestion des données de trajectoire. En outre, en amont de la gestion au niveau des bases de données, il se pose un problème de modélisation de ce type de données. En effet, l un des centres d intérêt dans la manipulation des données issues de la mobilité des objets est la sémantique au niveau conceptuel qu il faut assigner à ce type de données : doivent-elles être représentées comme des types à part entière au sens langage de programmation (first class object), pour un SGBD donné? C est-à-dire qu on puisse déclarer des variables de type trajectoire, avoir des fonctions qui prennent en paramètre des variables de ce type ou qui renvoient des valeurs de ce type. Ou alors doit-on construire les types de données trajectoire par composition ou transformation, au moyen de requêtes ou d opérations sur des données brutes, collectées à l aide de capteurs et organisées en un flot de positions historisées? 1.3 Objectifs du mémoire Ce mémoire s inscrit dans la dynamique d extension des systèmes de gestion de base de données courants, afin de les doter de la capacité de stocker et d interroger des données issues d entités en mouvement(données de trajectoire). Ce mémoire a un double objectif : dans un premier temps, il sera question de faire une revue critique et structurée de la littérature scientifique en matière de gestion des données de trajectoire. Ensuite, proposer sous la forme d une extension, une insfrastructure pour la gestion des données de trajectoire pour le SGBD open source PostgreSQL qui offre des facilités en ce qui concerne le développement de nouvelles extensions et une stabilité proche de celle des leaders commerciaux dans le domaine notamment Oracle. 1.4 Structure du mémoire Le mémoire est composé de six chapitres dont cette introduction. Le chapitre 2 est consacré à la définition et à la formalisation des concepts de base nécessaires à la compréhension du sujet traité et utilisés dans la suite du travail. Ce chapitre introduit le chapitre 3, qui fait une revue de la littérature actuelle en matière de modélisation et de conception des systèmes de gestion des données de trajectoire. Au chapitre 4, nous présentons notre infrastructure de gestion de données de trajectoire pour le SGBD PostgreSQL 9. Cette infrastructure est basée sur Hermes-MDC, une cartouche spatio-temporelle développée à l origine pour le SGBD Oracle. De précédents travaux de migration de Hermes-MDC vers PostgreSQL 8, ont été effectués au sein du service WIT 1 de l école polytechnique de l ULB. Ces travaux constituent les fondements de notre extension ; nous présentons également dans ce chapitre, une version légère d Hermes dite Light Hermes, présentant des performances intéressantes (indexation, occupation de l espace disque, etc.) par rapport au prototype initial issu de la migration depuis Oracle. Ces performances seront 1. Web and Information Technology

9 évaluées au chapitre 5 grace au benchmark BerlinMOD, un test de performance basé sur un jeu de données issu de la simulation d une étude de la mobilité dans la ville de Berlin en Allemagne. Le chapitre 6 conclura notre travail et présentera des axes d amélioration de l extension actuelle. Deux annexes sont également fournies, la première contient des extraits essentiels de code source de notre travail et la deuxième annexe est un tutoriel de configuration d un environnement de développement des extensions de PostgreSQL sous Microsoft Visual C++. L objectif de ce guide de configuration est de donner à tout lecteur intéressé par le développement d extensions pour PostgreSQL dans un environnement Windows, le moyen d avoir rapidement un environnement de développement opérationnel. Ceci lui permettrait de gagner en temps et de se focaliser sur le problème de fond qu est le développement des différentes fonctionnalités de son extension. Quand il est vrai qu à notre connaissance une telle documentation n avait jusqu alors pas été publiée. 3

10 Chapitre 2 Concepts de base des trajectoires 2.1 Introduction Torsten Hägerstrand pionnier de la géographie temporelle, ancêtre de l étude actuelle des objets en mouvement, émet l hypothèse de l indissociabilité de l espace et du temps dans l observation d un objet mobile[19]. En effet, Hägerstrand représente la trajectoire d un objet en mouvement dans un espace à trois dimensions de la manière suivante : les deux axes horizontaux représentent l espace et l axe vertical représente le temps. Cette idée est reprise par Spaccapietra et al. dans [40] comme l illustre la figure 2.1. Figure 2.1 Une trajectoire en gégographie temporelle [40] La trajectoire est représentée par une polyligne(ou courbe) dont les segments (fragments de courbe) correspondent aux différentes phases du mouvement. Un segment perpendiculaire au plan (espace) correspond à un arrêt ou stop. Definition 1 Un stop est la partie de la trajectoire telle que l intervalle de temps entre le début et la fin du stop est non vide et l objet occupe la même position dans l espace au cours de cet intervalle [40]. Dans la figure 2.1, les positions P 1 et P 3 représentent des stop. Ainsi, dans le cadre de l observation d un travailleur urbain, le travailleur, initialement à son domicile se rend à son lieu de travail et y reste jusqu à la fin du 4

11 5 service. Ensuite, il se met sur le chemin du retour et s arrête au supermarché où il passe un certain temps avant de reprendre la route vers son domicile. Le lieu de travail et le supermarché correspondent à des stop. Les segments obliques à l axe du temps correspondent à des déplacements ou move, plus la pente est raide moins rapide est le mouvement. Definition 2 Un move est la partie de la trajectoire telle que l intervalle de temps entre le début et la fin du move est non vide et l objet mobile occupe des positions distinctes dans l espace au cours de cette période de temps [40]. Un move est délimité de part et d autre par des stop ou alors une de ses extrémités est le début ou la fin de la trajectoire et l autre est un stop. Le fait que certaines parties de la trajectoire soient représentées par des segments de droite suppose que l entité se déplace à vitesse constante sur ces parties, ce qui n est pas toujours le cas en pratique. Ceci n est rien d autre qu une approximation de la situation réelle par soucis de simplicité. Bien que les outils et les technologies pour observer, collecter, représenter et analyser les données de trajectoire aient évolué, les concepts de base qui sous-tendent l étude des objets en mouvement, restent les mêmes que ceux utilisés dans les études anciennes. Dans ce chapitre, nous essayerons de formaliser ces concepts. Plus précisément, nous parcourerons la littérature existante à ce sujet pour donner au lecteur non averti une définition des concepts essentiels que sont : les trajectoires, l espace, le temps, le spatiotemporel et d autres notions qui ont un intérêt dans l étude de la mobilité des objets. 2.2 Trajectoires Un mouvement se définit comme un changement de position (physique) dans un référentiel donné où la notion de position est clairement définie [4]. Dans le cadre de l étude des entités en mouvement, ce référentiel est généralement un référentiel géographique. Une trajectoire est l ensemble des positions successives occupées (ou chemin décrit) dans l espace, par une entité en mouvement. Une trajectoire est généralement décrite dans un intervalle de temps donné, ceci consacre le caractère indissociable entre la notion de trajectoire et celle de temps. En effet, si t begin est l instant de début du mouvement et t end l instant de fin, alors pour tout instant t i compris entre t begin et t end, il existe une position occupée par le mobile à cet instant dans le référentiel considéré. De cette façon, une trajectoire peut être vue comme une fonction qui associe chaque instant du mouvement à une position dans l espace. trajectoire : [t begin, t end ] espace On peut alors définir des paires (instant, position) pour collecter des données de trajectoire. Etant donné que la notion de temps est continue, il existe une infinité de telles paires pour représenter une trajectoire. En pratique, une trajectoire sera représentée par un nombre fini de paires (instant, position). Cette représentation sera fonction de la décision prise au moment de la collecte des données de position. Une telle décision est choisie parmi celles proposées ci-dessous : le prélèvement des données de position s effectue à intervalle de temps régulier, par exemple toutes les deux secondes ; le prélèvement est effectué lorsque l entité change de positions dans le référentiel ;

12 6 le prélèvement est basé sur la position de l entité par rapport à un point fixe, par exemple un capteur installé à un endroit ; le prélèvement est effectué lorsque survient un évenement donné ; ou toute combinaison des méthodes précédentes. Definition : Formellement, une trajectoire T est le graphe de la fonction de I R R 2 (l espace de dimension 2 ou plan) défini comme suit : I R R 2 : t α(t) = (α x (t), α y (t)) Ainsi, T = {(α x (t), α y (t), t) t I} R 2 R 2.3 Caractéristiques des trajectoires L observation de la trajectoire d un objet mobile permet de définir des caractéristiques qui aident à analyser le mouvement. Ces caractéristiques peuvent être regroupées en deux catégories. Les caractéristiques à chaque instant du mouvement et les caractéristiques pendant une période de temps ou l ensemble du mouvement Caractéristiques à un instant Une trajectoire est le chemin composé de l historique des positions successives par lesquelles passe une entité en mouvement. Les caractéristiques de trajectoire à un instant t i [t begin, t end ] correspondent aux informations qui décrivent une position du chemin de façon individuelle. De telles informations comprennent : la position de l instant à l échelle du temps ; la position de l objet dans l espace ; le sens du mouvement de l objet ; la vitesse du mouvement à l instant ; l accélération du mouvement à l instant ; la distance parcourue et le temps de parcours depuis le début du mouvement Caractéristiques à une période Les caractéristiques de trajectoire à une période donnée correspondent aux informations qui décrivent la trajectoire dans un intervalle de temps [t 1, t 2 ] [t begin, t end ] ou dans l entièreté de la période [t begin, t end ] couvrant toute la durée du mouvement. De telles caractéristiques comprennent : la forme géométrique décrite par tout ou partie de la trajectoire dans l espace pour la période donnée ; la distance parcourue c est à dire la longueur correspondante du fragment de trajectoire ou de la trajectoire entière dans l espace ; la durée du parcours ; le sens global du mouvement entre les deux extrémités de l intervalle de temps ; les valeurs moyenne, médiane et maximale de la vitesse ; le type de mouvement en fonction de la valeur de l accélération dans la période donnée : vitesse constante (accélération nulle) ;

13 7 mouvement accéléré (accélération positive) ; mouvement décéléré (accélération négative) ; la nature du mouvement en terme de direction : mouvement rectiligne ; mouvement curviligne ; mouvement circulaire. Il ressort des sections précédentes que la notion de trajectoire est intimement liée à celles d espace et de temps. Dès lors il nous parait judicieux de définir ces deux concepts, certes familiers, mais qui peuvent avoir une connotation particulière dans l étude des mouvements. c est ce que nous nous attélerons à faire dans les sections suivantes, dans un premier temps nous définirons la notion d espace dans le contexte des trajectoires, ensuite nous nous focaliserons sur la notion de temps. 2.4 Aspect spatial des trajectoires L espace est l ensemble des lieux (ou emplacements) et leurs relations [6]. Une propriété fondamentale de l espace est l existence de distances entre ses éléments. Cependant, l espace n a pas d origine c est-à-dire qu il n existe pas un lieu central à partir duquel sont organisés ses éléments, de même qu il n existe pas une relation d ordre entre ces derniers. Pour pouvoir distinguer les différents lieux, il est nécessaire d introduire un système de référence, par exemple le système de coordonnées dont l un des plus utilisés est le système de coordonnées géographiques. Lorsque l on utilise un système de coordonnées pour distinguer les éléments de l espace, il peut être nécessaire d introduire la notion de dimension qui renvoie au nombre de composantes nécessaires pour représenter un lieu Système de coordonnées En fonction des exigences, un lieu de l espace peut être représenté en deux dimensions c est-à-dire par une paire de coordoonnées comme c est le cas dans un plan cartésien (coordonnées cartésiennes) ; en trois dimensions (le lieu est représenté par trois coordonnées). Dans ce cas la troisième dimension peut être utilisée pour fournir une information supplémentaire sur la position, on va par exemple ajouter la composante altitude à des coordonnées géographiques (longitude, altitude). Dans certaines situations aussi, une seule coordonnée suffira pour représenter un lieu ; c est le cas par exemple, lors de l observation du mouvement d un objet sur un axe marqué (bornes kilométriques sur une route par exemple), la position courante du mobile peut être déterminée en fonction de la distance parcourue depuis l origine de l axe. Si les trois notions de dimension définies précédemment se réfèrent à l espace physique, théoriquement il est possible de parler d une représentation de l espace avec plus de trois dimensions. Une telle représentation décrit l espace au sens purement abstrait d où le terme : espace abstrait et peut être utile dans certains cas. Par exemple, dans le cadre de l étude de l évolution de la démographie dans une commune, un analyste peut être intéressé par plusieurs axes (dimensions) de l évolution temporelle de la population. Par exemple, le nombre d habitants, le nombre d enfants scolarisés dans la commune, l âge moyen, la densité, etc. Tous ces critères constituent des dimensions dans l évolution temporelle de la population (espace).

14 Structuration de l espace L espace physique est continu voir infini. Celà signifie que quelque soit le système de coordonnées ou de référence utilisé, en prenant deux lieux distincts de l espace, aussi petite soit la distance entre ces deux lieux, il est toujours possible de situer un point entre eux. Cependant, dans certaines situations il est tout à fait possible voir indispensable de discrétiser ou de réduire l espace à un ensemble fini de lieux. La discrétisation de l espace est nécessaire par exemple lorsque la localisation des lieux ne peut pas se faire (ou est sans intérêt) de façon précise. On peut par exemple imaginer la situation où les coordonnées sont des valeurs réelles et qu on ait besoin d un niveau de précision que les instruments de mesure utilisés ne permettent pas d obtenir ou bien le suivi de l évolution du parcours d un touriste dans une ville ou une région, dans ce cas l espace représentant la ville ou la région peut être réduit aux seuls lieux d intérêt visités par le touriste ou aux réseaux routiers et de téléphonie mobile. Il est dès lors possible de représenter l espace de façon structurée en particulier par division en zones. Une telle division pourra se faire de manière hiérarchisée ; par exemple un pays est divisé en départements, un département en communes, une commune en districts ainsi de suite. En définitive, tout comme le système de coordonnées, la structuration de l espace permet de distinguer ses différents éléments (lieux). On peut donc résumer comme suit, les différentes approches pour localiser un objet dans l espace : en utilisant un système de coordonnées, c est-à-dire que chaque lieu est décrit par un tuple de nombres, correspondant à la distance linéaire ou angulaire, par rapport à certains axes choisis comme référence. Le système de coordoonnées géographique en est une illustration ; la deuxième possibilité est basée sur la division de l espace en zones éventuellement hiérarchiques ou sur la base d un réseau (réseau routier, réseau de téléphonie mobile, etc.) ; enfin, il est possible d utiliser un système de référence linéaire qui n est rien d autre qu une réduction de la notion de coordonnées, à une dimension. En effet, il est tout à fait possible de localiser un lieu en utilisant sa position relative sur un objet perçu comme une droite (rivière, rue, route, etc.). Dans ce cas, pour déterminer la position de l objet mobile, on associe l identifiant de la route ou de la rivière à la distance parcourue dépuis l une des extrémités. La deuxième notion fondamentale attachée aux trajectoires est la notion de temps. Dans la section qui suivra, nous essayerons tout comme avec l espace de comprendre les différents concepts liés au temps et à sa représentation. 2.5 Aspect temporel des trajectoires Le temps est un ensemble infini (continu), constitué d éléments ordonnés linéairement et dont l une des propriétés fondamentales est l existence de distances entre les éléments. Un élément correspond à un instant ou moment de l axe du temps. De façon similaire à l espace, il est nécessaire de disposer d un système de référence pour pouvoir représenter la notion de temps dans des données. Le système de référence généralement utilisé est le calendrier Grégorien associé à une notion de granularité qui permet la division du temps en plusieurs niveaux : les années en mois, des mois en jours, des jours en heures, des heures en minutes et des minutes en secondes. On peut indiquer une heure précise de la journée en se référant à l heure locale (basée sur le fuseau horaire de la région) où

15 9 les données sont collectées ou en se référant au temps universel (Greenwich Mean Time - GMT). Dans certains cas cependant, il peut être intéressant de spécifier les instants d échantillonnage des données de façon relative, par exemple par rapport au temps écoulé dépuis le début de l échantillonnage ou de façon abstraite en utilisant une numérotation chronologique à partir d un instant initial. De cette façon, le temps peut être vu comme un ensemble fini discret et cette conception du temps contraste avec la conception du temps physique, reconnu comme continu Domaine temporel Comme évoqué précédemment, le domaine temporel peut être perçu comme borné ou infini. Cependant, quelque soit la perception adoptée, le domaine temporel est un espace à une dimension qui s étend du passé au futur. Dès lors, le domaine temporel peut être modélisé comme suit [16] : de façon isomorphe à l ensemble des entiers naturels, auquel cas on parle de temps discret ; de façon isomorphe à l ensemble des nombres rationnels, auquel cas on parle de temps dense ; ou de façon isomorphe à l ensemble des réels, auquel cas on parle de temps continu. Une autre perception du domaine temporel considère le temps de façon absolu (par exemple : :43 :25 ) ou de façon relative (par exemple : il y a deux semaines). Toutes ces approches partagent cependant les mêmes concepts temporels représentés par l ontologie suivante : instant, représentant un chronon (moment précis du temps) ou point sur la ligne du temps (exemple : :43 :25 ) ; periode, représentant un intervalle d instants ancré (que l on peut situer précisément) sur la ligne du temps (exemple : [ :43 :25, :43 :26)) ; intervalle, représentant une durée non ancrée mais orientée, de la ligne du temps (exemple : [ , 12 :43 :26)) ; périodes, représentant un ensemble d objets de type periode. A cette ontologie, il faut ajouter les types standards Date, Time et Timestamp de la norme SQL Cycles de temps Lorsqu on s intéresse au temps comme domaine continu (comme c est le cas dans l étude des objets mobiles), on constate que quelque soit le niveau de précision imposé, il est impossible de pouvoir recueillir des échantillons de données à tous les instants de l axe du temps. En effet, pour deux instants d échantillonnage sucessifs t 1 et t 2, il existe toujours entre ces deux instants, un instant t où les données n ont pas été prélevées. Dès lors, le seul moyen de savoir ce qui s est passé à l instant t est de faire une estimation grace à la technique de l interpolation présentée à la section Lors de l observation de la trajectoire d une entité, il est particulièrement important de bien définir à quelle fréquence les données sont prélevées. Cette fréquence définit les cycles temporels qui permettent de préléver des données de localisation qui sont pertinentes pour l analyse du phénomène observé. Ainsi, le prélèvement de la position d un véhicule en mouvement dans les rues d une ville toutes les 2 secondes a du sens dans l analyse des données

16 10 puisqu on observe une différence de localisation raisonnable dans son mouvement ; alors que le prélèvement des mêmes données par exemple toutes les deux minutes peut être source d erreurs, en ce sens qu en 2 minutes et en fonction de sa vitesse, le véhicule peut parcourir une distance considérable : en résultera une trajectoire très approximative Dimension temporelle Lorsqu on stocke des données issues de l observation d un phénomène dans une base de données, il existe toujours un décalage entre le moment où les données sont prélevées et le moment où les données sont prises en compte dans la base de données. Ce décalage introduit la notion de dimension temporelle qui définit le temps de transaction et le temps de validité. le temps de validité d un phénomène correspond au moment où un fait est vrai dans le monde réel ; le temps de transaction représente le moment où un fait est vrai dans la base de données. Les deux notions (dimensions) présentées précédemment son orthogonales : celà signifie qu une donnée sera dite temporelle au sens du temps de validité, si seule son temps de validité est pris en compte. Elle sera dite temporelle au sens du temps de transaction si elle ne prend en compte que le moment du stockage de la donnée dans la base. On parlera de donnée bitemporelle lorsque les deux aspects seront pris en compte. A ces concepts correspondent des systèmes de gestion de base de données particuliers [16] : les bases de données instantanées : celles qui prennent en compte uniquement l état courant du monde réel. Ce type de SGBD ne gère pas l historique des données. La grande majorité des SGBD appartiennent à cette catégorie. La figure 2.2 présente un exemple de relation dans une base de données instantanée.dans cette figure, la représentation de la relation par un tableau à une dimension symbolise la non prise en compte de l historique du phénomène représenté. Figure 2.2 Relation instantanée [16] les bases de données temps valide : ce sont des SGBD qui stockent les données dont seul le temps de validité est pertinent. La figure 2.3 présente une relation à temps valide avec quatre tuples ; On y constate par exemple que le quatrième tuple n est plus valide à l instant courant, alors qu il l a été à de précédents instants. Figure 2.3 Relation à temps valide [16]

17 11 les bases de données à temps transactionnel : stockent les données dont le temps de transaction est pertinent. La figure 2.4 illustre l évolution d une relation en fonction du temps de transaction. Au départ, une première transaction insère trois tuples dans la relation, ensuite une deuxième transaction insère un quatrième tuple ; à la fin, la troisième transaction supprime le deuxième tuple et insère un autre tuple. On constate ici qu on peut aisément accéder à l historique de la donnée. Figure 2.4 Relation à temps transactionnel [16] les bases de données bitemporelles : elles ont la particularité de gérer les données dont les deux dimensions (temps de validité et temps transactionnel) sont importantes. La figure 2.5 illustre une relation dans une base de données bitemporelles : Figure 2.5 Relation bitemporelle [16] La norme ISO/IEC 9075 (SQL-2011) Le standard ISO/IEC 9075 est la nouvelle spécification du langage SQL dépuis Décembre 2011 [3]. Entre autres innovations, cette norme étend la norme SQL-92 (qui a introduit les concepts de base de la gestion du temps dans le langage SQL : Date, Time et Timestamp), avec de nouvelles fonctionnalités pour le support temporel dans SQL. Ces fonctionnalités sont principalement [25] : la prise en charge des colonnes de type Period dans des tables dites (Applicationtime period tables). Dans ce type de tables, on introduit deux champs supplémentaires start-time et end-time qu on encapsule dans une clause PERIOD pour créer une variable permettant à l utilisateur (l application ou le développeur) de gérer le cycle de vie (historicité) d un tuple. Les valeurs start-time et end-time sont mises à jour par l utilisateur. La norme définit également une syntaxe riche, permettant notamment à l utilisateur d ajouter des contraintes de clé primaire sur la variable de type Period, pour éviter par exemple que des périodes se chevauchent lorsqu on met à jour start-time et end-time pour une ligne ou lorsqu on insère une nouvelle ligne. Ce type de tables permettent d implémenter les bases de données temps valide introduites à la section précédente. Le listing SQL suivant

18 12 présente un extrait de code qui définit une table Application-Time Period employees, possédant une variable de type Period nommée (emp period), construite à partir d une clause PERIOD sur les colonnes start date et end date. On peut voir dans ce listing, la syntaxe de la définition de la clé primaire sans chevauchement (PRIMARY KEY WITHOUT OVERLAPS) sur la paire (emp name, emp period), qui empêche tout chevauchement de période lors de la mise à jour des champs start date et end date. Une contrainte de clé étrangère sur la période de validité du département en référence à la période pendant laquelle l employé est supposé y avoir travaillé est aussi définie. CREATE TABLE employees( emp_name VARCHAR(50) NOT NULL PRIMARY KEY, dept_id VARCHAR(10), start_date DATE NOT NULL, end_date DATE NOT NULL, PERIOD FOR emp_period (start_date, end_date), PRIMARY KEY (emp_name, emp_period WITHOUT OVERLAPS), FOREIGN KEY (dept_id, PERIOD emp_period) REFERENCES departments (dept_id, PERIOD dept_period)); l introduction des tables à temporalité système (System-versioned tables), qui sont des tables dont l historique est automatiquement gérée par le système (SGBD). En effet, contrairement aux Application-Time Period Table où c est l utilisateur qui nomme explicitement la variable Period et gère ses mises à jour, dans les System-versioned tables la clause PERIOD utilise une variable implicite nommée SYSTEM TIME. La variable SYSTEM TIME utilise également deux colonnes system start et system end qui sont mises à jour automatiquement par le système lui même. Cette nouvelle fonctionnalité permet d implémenter les bases de données à temps transactionnel. Le listing suivant présente la création d une table System-versioned employees. La colonne system start est automatiquement créée lors de l insertion, de la suppression ou de la mise à jour d une ligne donnée et sa valeur est automatiquement fixée au temps de transaction (clause GENERA- TED ALWAYS AS ROW START) ; au même moment la valeur de system end est fixée au plus grand Timestamp supporté par le système. Plus tard, sa valeur est positionnée au temps de transaction lorsque survient un évènement qui crée une nouvelle ligne. CREATE TABLE employees (emp_name VARCHAR(50) NOT NULL, dept_id VARCHAR(10), system_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, system_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (system_start, system_end), PRIMARY KEY (emp_name), FOREIGN KEY (dept_id) REFERENCES departments (dept_id); )WITH SYSTEM VERSIONING; l association des deux concepts (application-time period tables et system-versionned tables), dans une nouvelle fonctionnalité appelée System-versioned application-

19 13 time period tables, permettant d implémenter les bases de données bitemporelles (prise en compte des temps de validité et de transaction). 2.6 Des données brutes aux trajectoires Bien que de façon intuitive, une trajectoire se définit comme une fonction qui associe chaque instant du mouvement à une position dans l espace géographique, ses description, représentation et manipulation ne sont pas aussi évidentes au niveau des applications informatiques notamment dans les systèmes de gestion de bases de données. En effet, d un point de vue applicatif, une trajectoire correspond à l ensemble des positions successivement occupées par un objet en mouvement à des instants spécifiques. Par conséquent, bien que l on puisse naturellement penser à une représentation de la trajectoire d un objet sous la forme d une simple courbe de fonction, la réalité est tout autre en ce sens que la simple courbe doit être construite à partir de l ensemble des positions collectées (données brutes) en appliquant des techniques d interpolation. Et quelque soit la méthode d interpolation utilisée, la courbe obtenue n est qu une approximation de la trajectoire réelle de l objet prise parmi une infinité de trajectoires candidates. Par ailleurs, cette trajectoire candidate choisie peut être mauvaise si on tient compte des éventuelles erreurs qui sont inévitablement apparues lors du prélèvement des différentes positions. Il y a par conséquent, une notion d incertitude qu il faut associer aux trajectoires. Cette incertidtude étant liée soit au prélèvement des positions du mobile, soit à la méthode d interpolation utilisée pour construire la trajectoire. Dans cette partie, nous nous intéressons à la façon dont les données brutes, issues de l historique des positions de l objet mobile, sont transformées en trajectoire et représentées dans une base de donnée. Nous allons principalement nous intéresser aux différentes méthodes d interpolation utilisées à cette fin Méthodes d interpolation En section 2.2, nous avons défini formellement une trajectoire T, comme l ensemble des positions représentées par des triplets formés des coordonnées dans l espace géographique (abscisse et ordonnée) et de l instant t correspondant au moment où ces coordonnées sont prélevées : où T = {(α x (t), α y (t), t) t I} R 2 R α(t) = (α x (t), α y (t)) La première conséquence de cette définition est que toute trajectoire construite à partir d un ensemble de positions ne contient que des positions de cet ensemble. C est-à-dire, pour toute position (x i, y i, t i ) collectée, nous avons : (x i, y i, t i ) = (α x (t i ), α y (t i ), t i ) ; en d autres termes, lors de la construction de la trajectoire, toute position prélevée (données brutes) correspond à une position dans la trajectoire construite. De même, il apparait clairement que l ordre de prélèvement des différentes positions des données brutes dans le temps, est préservé dans la trajectoire finale ; c est-à-dire si i < j alors t i < t j. Par ailleurs, il apparait que pour un ensemble de données brutes, il existe une infinité de trajectoires que l on peut construire à partir de ces données. La trajectoire n est en aucun cas unique, l application d une méthode d interpolation permettra de trouver la représentation géométrique qui s apparente le mieux à la trajectoire réelle de l objet.

20 14 En utilisant l interpolation pour construire la trajectoire de l entité en mouvement, on arrive à estimer les coordonnées du mobile à des instants qui ne sont pas échantillonés Interpolation linéaire Elle constitue la méthode la plus simple et la plus rapide de toutes les méthodes d interpolation[4]. L idée est de joindre par des segments de droite deux positions successives de l ensemble des données brutes (voir fig. 2.6). Cette méthode suppose que l objet se déplace dans le temps à vitesse constante. Ainsi, pour un même intervalle de temps correspond la même distance parcourue. On peut alors calculer la position du mobile entre deux positions sucessives à chaque instant t pris dans la période couvrant le déplacement entre ces deux positions. A titre d illustration, le segment de droite entre les positions (x i, y i, t i ) et (x i+1, y i+1, t i+1 ) est donné par l équation suivante : (x, y, t) = (x i, y i, t i ) + dans R 2 R à l instant t [t i, t i+1 ]. t t i t i+1 t i (x i+1 x i, y i+1 y i, t i+1 t i ) Figure 2.6 Interpolation linéaire [4] Inconvénients : Cette façon de construire la trajectoire n est pas la plus adaptée. En effet, en appliquant la méthode de l interpolation linéaire, plusieurs hypothèses ont été prises qui ne reflètent pas toujours la réalité : en premier, en appliquant l interpolation linéaire, nous avons supposé que le mobile se déplace à vitesse constante et ne change pas de direction entre les positions considérées. De plus, cette vitesse est la vitesse moyenne minimale qu il faut pour parcourir la distance entre les points (x i, y i ) et (x i+1, y i+1 ) en un temps t i+1 t i ; deuxièmement, cette méthode ne permet pas de représenter certaines situations ou des contraintes particulières liées à l itinéraire du mobile ; c est le cas par exemple, d un rond point ou d un changement brutal de vitesse dû à un coup de freins

21 15 de l automobiliste devant un obstacle imprévu. On constate simplement que la trajectoire issue de l interpolation linéaire est continue et que les différents points de changement de direction (virages par exemple) sont des angles aigus ; enfin, la trajectoire construite avec cette méthode s apparentera plus à la trajectoire réelle du mobile si l échantillongage des différentes positions de l objet au cours de son mouvement est faite à intervalle de temps très réduit (toutes les secondes par exemple), en d autres termes les positions doivent être assez proches les unes des autres pour obtenir une trajectoire de meilleure précision. Ce qui suppose un volume de données plus important et donc des temps de traitement plus longs Interpolation avec des courbes de Bezier L interpolation utilisant les courbes de Bezier [4] parait plus adéquate pour créer des courbes ou trajectoires reflétant au mieux la réalité. En effet, étant données deux positions de l ensemble des données brutes et le vecteur vitesse (qui renseigne sur la valeur de la vitesse et la direction à chacune de ces positions), une courbe de Bezier est construite en représentant chaque coordonnée spatiale par un polynome de dégré 3 de paramètre t (Figure. 2.7). Le début et la fin de la courbe correspondent exactement aux deux positions échantillonées des données brutes. La trajectoire construite est dérivable en tout point, ce qui permet de déterminer l accélération du mobile à chaque instant de son déplacement. Inconvénients : Le principal inconvénient de cette méthode est qu elle n est pas facile à mettre en oeuvre, ni à manipuler en pratique. Par exemple, le calcul de distance ou la recherche des intersections avec d autres trajectoires se compliquent avec cette méthode. En effet, du point de vue de la mise en oeuvre, il apparait clairement qu il faut plus d informations (par exemple, la vitesse de l objet en tout point, la direction en tout point, etc.), pour pouvoir construire ce type de trajectoire. Néanmoins, si ces données sont inconnues, on peut toujours faire des conjectures en prenant par exemple la direction moyenne obtenue sur la base de la direction du mobile dans les positions qui précèdent et suivent la position considérée ; on procède de la même façon pour déterminer la vitesse du mobile en ce point. Le point commun entre l interpolation avec des courbes de Bezier et l interpolation linéaire c est le fait que pour l une ou l autre méthode, plus on a de points d échantillonnage (temps de prélèvement des informations assez court), meilleure est la trajectoire obtenue. Figure 2.7 Interpolation utilisant des courbes de Bezier [4]

22 Notions d incertitude Quelque soit la méthode d interpolation utilisée, la trajectoire obtenue n est qu un choix parmi une multitude de trajectoires candidates. Dès lors, nait la notion d incertitude en rapport avec la méthode d interpolation utilisée pour construire la trajectoire. Cette première incertitude est appelée incertitude d interpolation. Dans le domaine des bases de données, notamment géographiques, l incertitude se définit comme la mesure de l écart entre ce qui est stocké dans la base de données et ce qu un opérateur ou une application obtiendrait de façon directe et précise de l observation d un phénomène [27] [24].Ainsi, les sources d incertitude suivantes sont recensées : une observation imparfaite de la réalité, qualifiée d incertitude dans la localisation (spatiale et temporelle) ; l incomplétude du langage utilisé pour décrire tous les détails inhérents à une observation, l incertitude descriptive ; enfin les insuffisances ou faiblesses de la méthode d interpolation utilisée Incertitude d interpolation L incertitude d interpolation résulte principalement des deux dernières sources et peut être gérée en appliquant la technique dite du bead model présentée dans [10]. Le bead model se base sur l hypothèse que : la vitesse maximale d un objet mobile entre deux positions échantillonnées, est connue sur la base que l information sur les différents positions prélevée est exacte. Ceci n est pas toujours vérifié comme le suggère la deuxième notion d incertitude. Donc, dans l espace (à 2 dimensions), si v est la vitesse maximale de l objet pour partir du point (x i, y i ) à l instant t i et arrivé au point (x i+1, y i+1 ) à l instant t i+1, alors pour tout instant t [t i, t i+1 ], la distance de l objet entre (x i, y i ) et (x i+1, y i+1 ) est au plus égale à v(t t i ). Celà signifie qu à tout instant t [t i, t i+1 ], l objet se trouve quelque part dans le disque de centre (x i, y i ) et de rayon v(t t i ). Dans l espace-temps (3 dimensions), ce disque équivaut à un cône de sommet (x i, y i, t i ) ayant un axe de symétrie parallèle à l axe du temps et orienté dans le sens contraire de ce dernier. A ce même instant t [t i, t i+1 ], l objet en position (x, y) doit atteindre la position (x i+1, y i+1 ) en un temps (t i+1 t). Celà signifie que la distance qu il parcourt jusqu à (x i+1, y i+1 ) est au plus égale à v(t i+1 t) et ainsi l objet se trouve sur un disque de centre (x i+1, y i+1 ) et de rayon v(t i+1 t). De façon similaire dans l espace-temps, ce disque correspond à un cône de sommet (x i+1, y i+1 ), d axe parallèle au temps mais cette fois dirigé vers le sens de l axe du temps. Donc à tout instant t [t i, t i+1 ], l objet se trouve quelque part dans l intersection des deux disques comme le montre la figure 2.8 [10]. De façon générale, un point (x, y, t) appartiendrait à la trajectoire allant de (x i, y i, t i ) à (x i+1, y i+1, t i+1 ) si et seulement s il se trouve dans l intersection des cônes comme illustré à la figure 2.9 [10] Incertitude de mesure Elle est dûe aux erreurs générées par les instruments de mesure par exemple des capteurs GPS. Cette dernière forme d incertitude, tout comme la précédente, concerne surtout la dimension spatiale des trajectoires. La notion d incertitude permet de mesurer l écart qui

23 17 Figure 2.8 Incertitude d interpolation dans l espace [10] Figure 2.9 Incertitude d interpolation dans l espace-temps [10] existe entre ce qui est stocké dans la base de données et ce qui est réellement observé. Un modèle pour représenter graphiquement une combinaison des deux formes d incertitudes est présenté dans [42]. Dans ce modèle, un seuil d incertitude est introduit. Ce seuil correspond à l écart maximal entre la trajectoire actuellement stockée et la trajectoire réelle en tout point du mouvement. Après avoir construit la trajectoire de l objet par interpolation linéaire, le modèle associe à chaque segment de la polyligne obtenue, un disque de rayon égal au seuil fixé. Tous ces disques mis ensemble dans l espace à trois dimensions (espace - temps), génèrent un cylindre autour de la polyligne de trajectoire. Ce cylindre couvre la zone de définition de toutes les trajectoires possibles de l objet mobile, comme l illustre la figure 2.10 [42]. 2.7 Conclusion Au terme de ce chapitre introductif consacré à la définition des concepts qui nous semblent pertinents dans l étude des trajectoires, il en ressort que les notions de temps et d espace sont fondamentales en matière de gestion d objets mobiles. Dès lors, vu le caractère continu et infini de ces deux ensembles, il est particulièrement important de pouvoir définir pour l un et l autre, un système de référence afin de pouvoir distinguer leurs éléments ; quand il est vrai que l on ne peut parler de mouvement que s il y a changement de position au cours du temps. L autre aspect important abordé est la façon

24 18 Figure 2.10 Zone de définition de trajectoire [42] dont les données brutes, c est-à-dire les données collectées à partir des différents capteurs lors de l observation d un mouvement, sont traitées, afin de pouvoir reconstruire la trajectoire de l objet mobile. A cette fin, nous avons présenté diverses techniques d interpolation utilisées ainsi que les limites de l une ou l autre technique. La dernière notion abordée dans ce chapitre est la notion d incertitude Intrinsèquement liée aux trajectoires et introduite soit par la méthode d interpolation utilisée, soit lors des prélèvements ou échantillonnage des données. Dans le chapitre qui suivra, nous allons nous intéresser à la modélisation et aux systèmes existants en matière de gestion des données de trajectoires. En effet, nous essayerons de faire un état de l art des différentes approches de modélisation élaborée dans la communauté scientifique en vue du stockage et de l interrogation des concepts introduits précédemment (espace, temps, trajectoire, etc.). Par la suite, nous étudierons quelques exemples de systèmes de gestion de base de données qui proposent un support même partiel à la gestion des trajectoires.

25 Chapitre 3 Modélisation et systèmes de gestion de données de trajectoires Dans ce chapitre, nous nous intéressons à l état de l art de la modélisation des données de trajectoires et des systèmes de gestion associés. Dans la première partie consacrée à la modélisation des données, nous étudierons les principales approches qui existent dans la littérature. Ces approches sont principalement dérivées des modèles de données classiques (relationnel et objet), auxquels on ajoute des constructions, afin de prendre en compte au mieux, les concepts inhérents aux trajectoires. Dans la deuxième partie, nous passerons en revue quelques systèmes de gestion de données implémentés sur la base de ces approches. 3.1 Modélisation des données de trajectoires Un modèle de données est une vue logique de la façon dont les données sont organisées dans le système de gestion de base de données. On regroupe en trois catégories les approches de modélisation des données de trajectoires [10] : le modèle de données spatio-temporelles, le modèle de données avec contraintes (constraint data model), le modèle de données d objets mobiles (moving object model). Si les deux premières catégories ne prennent pas en compte les trajectoires comme des types à part entière (first class object), elles permettent néanmoins d en représenter les principaux concepts et par conséquent de manipuler implicitement les trajectoires. La troisième catégorie par contre, regroupe les différentes approches développées spécifiquement pour la modélisation et l interrogation des objets mobiles et donc la modélisation et l interrogation des trajectoires Modèle de données spatio-temporelles La caractéristique commune des modèles de données spatio-temporelles réside comme leur nom l indique, dans le fait qu ils sont construits par association de types de données spatiales et des types de données temporelles. Si la modélisation et la manipulation des types de données géographiques (spatiales) font l objet d un consensus au sein de la communauté des systèmes d information géographique (SIG) ; où, notamment des standards SQL 1 existent, un tel consensus n existe pas encore en ce qui concerne les 1. Structured Query Language 19

26 20 types de données temporels. En effet, bien que des standards en matière de types de données temporelles soient définis [22], au niveau du SQL ce n est pas encore le cas. Les différentes propositions [38, 37, 21] n ont pas convaincu le comité SQL[39, 8]. De récents développements[3] introduisent de nouvelles fonctionnalités dans le langage SQL pour la gestion du temps. Ces nouvelles fonctionnalités, présentées à la section de ce mémoire, sont progressivement implémentées par les grands éditeurs de SGBD à l instar d Oracle, Teradata ou IBM avec son système DB2[36]. Pour ce qui est de la modélisation des données spatio-temporelles, des solutions ont été proposées dans la littérature. Certaines s inspirant du modèle entité-association (STER [43], ST USM), d autres de l approche orientée objet (PERCEPTORY [5], Extended Spatiotemporal UML [43]) et d autres enfin, d une approche orientée logique basée sur des contraintes. Finalement, des bases pour une approche générale applicable à toute modélisation d objets mobiles ont été proposées par [16, 1] Le standard ISO/TC 211 ISO/TC 211 est le comité technique de l Organisation Internationale de Normalisation(ISO) en charge de la définition des normes internationales en matière d information géographique et géomatique. Ces normes spécifient les techniques, outils et services pour la collecte, le traitement, l analyse, la présentation et la diffusion des données géographiques entre divers partenaires (utilisateurs, applications, etc.) et sont consignées dans le guide [2]. En ce qui concerne la modélisation des données spatio-temporelles, deux standards de l ISO/TC 211 nous intéressent particulièrement, il s agit de : i) la norme ISO 19107, Information géographique - schéma spatial, qui définit les types spatiaux et les opérations qui s y appliquent dans l espace géométrique et topologique [23]. Elle concerne essentiellement les données vectorielles qui sont des données spatiales représentées dans un système de coordonnées en utilisant les trois abstractions de base : point, ligne/courbe et region comme l illustre la figure 3.1 [18]. Fondamentalement, un point représente le plus petit élément dans un système de référence et permet de modéliser un objet en terme de localisation (coordonnées) indépendamment de sa forme géométrique. De cette façon, un point permet de représenter une ville sur une carte à grande échelle ou un piéton sur un écran d observation (Google Maps, GPS, etc.) ; une ligne (ou courbe dans l espace), permet de représenter un mouvement (changement de position) d une entité ou une connexion dans l espace. Une ligne permettra ainsi de représenter par exemple la trajectoire d un piéton dans une région, une route ou une rivière sur une carte. Une région quant à elle permet de représenter une surface c est à dire un objet en deux dimensions, idéal lorsqu on s intéresse à la forme de l objet. Comme exemple d objet représentable par une région, on peut citer une forêt ou un lac sur une carte. Collection d objets spatiaux A côté des types de base( point, ligne et région), la norme permet également de définir des collections d objets spatiaux. Une collection d objets spatiaux peut être représentée par deux abstractions : une partition ou un réseau. Une partition est un ensemble d objets de type région nécessairement disjoints. Une partition est adaptée pour représenter des phénomènes spatiaux dont la relation d adjacence est particulièrement intéressante à l analyse, pour chaque paire d éléments de la collection [18]. Les cartes thématiques sont un exemple de tels phénomènes. Un

27 21 Figure 3.1 Données vectorielles : abstractions de base [18] réseau est une collection d objets représentée sous la forme d un graphe dont les noeuds sont de type point reliés entre eux par des objets de type ligne. Un réseau est idéal pour représenter des phénomènes où la notion de graphe est prépondérante ; par exemple, le réseau de transport urbain avec ses différentes stations, le réseau gazier ou l ensemble des cours d eau d un pays. Les figures 3.2 et 3.3 illustrent respectivement les notions de partition et de réseau. Figure 3.2 Une partition [18] Opérations sur les types spatiaux : Comme évoqué plus haut, ISO définit également les opérations de base qui s appliquent aux types spatiaux. On peut formaliser quelques unes de ces opérations dans le tableau 3.1. où points représente une collection d objets de type point. ii) la norme ISO 19108, Information géographique - schéma temporel, définit un ensemble de types de données et les opérations associées, pour décrire l aspect temporel de l information géographique[22]. Les types de données supportés par la norme ISO sont ceux décrits à la section La norme définit également un ensemble d opérateurs de synchronisation et de comparaison pour les types temporels, inspirés des opérateurs d Allen[46]. Le tableau 3.2, présente les opérateurs temporels de base pour les types de données Période.

28 22 Figure 3.3 Un réseau [18] Opération Signature Signification inside point region bool retourne vrai si le point est contenu dans region, faux sinon. adjacent region region bool retourne vrai si les deux regions sont adjacentes, faux sinon. intersection line line points retourne l ensemble des points communs aux deux lignes. minus region region region retourne l ensemble des points de la region A qui ne font pas partie de la region B. contour region line retourne une ligne correspondant au périmètre de la region. length line real retourne la longueur d un objet de type ligne. Table 3.1 Opérations de base sur les objets spatiaux [23] Un modèle de données spatio-temporelles basé sur le modèle entitéassociation : STER Spatio Temporal Entity Relationship (STER) a pour objectif d étendre le modèle entité-association classique afin de prendre en compte la modélisation des données spatiotemporelles [43]. STER utilise les concepts de base du modèle entité-association que sont : la notion d entité, qui représente une abstraction du monde réelle avec une existence propre et identifiable de façon unique, elle est représentée dans le modèle graphique par un rectangle ; la notion d association, représentant la façon dont les différentes entités intéragissent les unes les autres ; elle est représentée par un losange ; la notion d attribut qui sert à décrire une entité ; elle est représentée par un losange ; la notion de cardinalité qui définit le type de relation entre deux entités en indiquant le nombre d occurences de chaque entité intervenant dans la relation (association). La cardinalité est représentée par une paire de nombres : 1 :1 pour une association où une et une seule occurence de chaque entité intervient dans

29 Opérateur Signature Signification before bef ore(p erioda, P eriodb) bool Retourne Vrai si l entièreté de la période A se trouve avant la période B. meets meets(p erioda, P eriodb) bool Retourne Vrai si la fin de la période A coïncide avec le début de la période B. overlaps overlaps(p erioda, P eriodb) bool Retourne Vrai si les deux périodes se chevauchent. during during(p erioda, P eriodb) bool Retourne Vrai si l entièreté de la période A est contenue dans la période B. starts starts(p erioda, P eriodb) bool Retourne Vrai si les deux périodes commencent au même instant. finishes f inishes(p erioda, P eriodb) bool Retourne Vrai si les deux périodes se terminent au même instant. equal equals(p erioda, P eriodb) bool Retourne Vrai si les deux périodes coïncident c est-à-dire que le début de A est égale au début de B et la fin de A est égale à la fin de B. Table 3.2 Opérateurs temporels de base 23 la relation ; 1 :M, pour une occurence de l entité de gauche, on peut associer une multitude d occurences de l entité de droite ; N :M, plusieurs occurences de l entité de gauche peuvent être associées à plusieurs occurences de l entité de droite. STER crée des extensions de ces éléments de base en leur ajoutant une dimension spatiale, temporelle ou spatio-temporelle (par simple conjonction des deux précédentes notions). Les éléments ainsi construits constituent les concepts de base du modèle spatiotemporel entité-association (STER). Graphiquement, un élément du modèle STER est représenté en ajoutant à l élément du modèle entité-association simple correspondant : une indication sur le coin supérieur droit si l élément prend en compte l aspect temporel. Pour ce faire, plusieurs dimensions temporelles sont prises en compte : le temps d existence (symbole et), correspondant au temps où un objet existe ; le temps de validité (vt), le temps de transaction (tt) et le temps bitemporel(bt) tels que définis à la section une indication sur le coin inférieur droit s il prend en compte l aspect spatial (symbole R et P respectivement pour région et point) ; La figure 3.4 présente un exemple de modélisation d une application cadastrale utilisant STER [43]. On y voit notamment la représentation des différents aspects spatiaux (entités agricultural et industrial par exemple), temporels(attribut type de l entité industrial) et spatio-temporels (entités landparcel et building par exemple) Un modèle de données spatio-temporelles orienté objet : PERCEP- TORY PERCEPTORY est un outil de modélisation des bases de données spatiales et des bases de données spatio-temporelles, développé à partir du formalisme orienté-objet de UML et enrichi pour supporter la référence spatiale et les normes ISO/TC 211[45, 5, 26].

30 24 Figure 3.4 Exemple de modélisation avec STER [43] L approche de PERCEPTORY est de développer des plug-ins de langages visuels (PVL : Plug-in for Visual Languages) pour la modélisation des informations spatiales et temporelles. Ces plug-ins peuvent être installés dans un outil de modélisation existant (par exemple Microsoft Visio). Les plug-ins de PERCEPTORY disposent d un ensemble de concepts élémentaires (existence, évolution d une entité ou de l attribut d une entité, etc.), représentés par des symboles visuels ; la sémantique attachée à chaque concept permet de combiner ces concepts élémentaires afin de représenter des concepts complexes. PERCEPTORY dispose d une composante de modélisation spatiale (PVL spatial), permettant de modéliser des objets spatiaux en deux ou trois dimensions et d une composante de modélisation spatio-temporelle(pvl spatio-temporelle) qui intègre les types de données de la norme ISO/TC et La figure 3.5 présente un écran de modélisation dans PERCEPTORY [5] Un modèle de données spatio-temporelles hybride : MADS Le modèle MADS (Modélisation d Applications à Données Spatiales) [31], est un modèle de type objet-relation, à mi-chemin du modèle entité-association (notions d attribut, d association et de cardinalité supportées) et de la modélisation objet (notions d objet et lien de généralisation/aggrégation supportées). MADS permet de modéliser à la fois des données classiques, les phénomènes spatiaux (route, rivière, bâtiment, pente, altitude...), temporels (dates des crues, débits journaliers des rivières...) et spatio-temporels (zones inondées ou polluées jour par jour, extension d un incendie, couverture du sol selon les années, etc.). Pour ce faire, MADS définit un formalisme visuel composé de pictogrammes permettant d ajouter une spatialité ou une temporalité à divers niveau

31 25 Figure 3.5 Ecran de modélisation spatio-temporelle dans PERCEPTORY [5] du schéma objet-relation(au niveau de l objet, de l attribut, ou de la relation). La spatialité renvoie à la localisation, à la forme et aux relations de l objet avec les autres objets dans l espace et se réfère à un ensemble extensible de types de données abstraits (TAD) illustré à la figure 3.6. La temporalité a trait au cycle de vie de l objet et à la validité de l information.elle se réfère également sur un ensemble de TAD illustré à la figure 3.7 [31]. Les figures 3.8 et 3.9 illustrent une modélisation de la spatio-temporalité respectivement au niveau de l objet et sur un attribut de l objet dans MADS Insuffisances des modèles spatio-temporels La plupart des modèles spatio-temporels présentés précédemment, à l exception de la norme ISO/TC 211 permettent de modéliser les données d objets dont la géométrie ou la position change en fonction du temps et donc, de manipuler des trajectoires. Pour la norme ISO/TC 211 qui ne propose aucun formalisme pour modéliser de tels objets, il reste néanmoins possible de définir une trajectoire comme un objet composite (constitué d un attribut spatial de type point et d un attribut temporel de type Instant représentant respectivement la position de l objet et l instant de prélèvement de cette position), qu on associe à l objet en mouvement. La figure 3.10 illustre une telle modélisation. Les trajectoires décrites avec des modèles spatio-temporels prennent en compte les

32 26 Figure 3.6 MADS : Types de données abstraits spatiaux [31] Figure 3.7 MADS : Types de données abstraits temporels [31] concepts des trajectoires, dans le sens de géométries évoluant dans le temps (considération de la spatialité et de la temporalité), mais ignorent toutes les contraintes et opérations spécifiques liées aux trajectoires. On peut par exemple citer la contrainte qui veut que toute trajectoire comporte au moins deux instants distincts. Des exemples d opérations relatives aux trajectoires concernent par exemple la durée et la direction de la trajectoire. De même, aucun de ces modèles ne propose de langage d interrogation spécifique ni de méthodes, pour l analyse des trajectoires. Toutes ces insuffisances incitent à explorer d autres approches de modélisation Le modèle de données avec contraintes L approche du modèle de données avec contraintes est de représenter des ensembles infinis en utilisant des contraintes logiques [35]. Etant donné que l espace et le temps sont des ensembles infinis, on peut naturellement imaginer exploiter cette propriété du modèle avec contraintes pour modéliser des données de trajectoires. En effet, dans un modèle de données avec contraintes, tout objet, spatial ou temporel, peut être décrit en utilisant une combinaison d égalités et d inégalités logiques de polynomes. Un tel polynôme est par exemple décrit en utilisant comme variable, les coordonnées (x, y) du

33 27 Figure 3.8 Objet spatio-temporel trajectoire [10] Figure 3.9 Attribut spatio-temporel trajectoire [10] point dans le plan. Ainsi, l ensemble des points appartenant à la moitié supérieure d un cercle trigonométrique est donné par l ensemble de contraintes suivant : (x, y) R 2 x 2 + y 2 = 1 y 0 Cette façon de modéliser des objets fixes peut être étendue pour modéliser des objets mobiles. En effet, il suffit d ajouter le temps comme troisième dimension au plan décrit à l étape précédente pour obtenir un espace - temps. Ainsi, un demi cercle qui se déplace sur l axe des abscisses en fonction du temps sera décrit par l ensemble de contraintes suivant : (t, x, y) R 3 (x t) 2 + y 2 = 1 y 0 0 t 1 Une trajectoire relie une infinité de positions (courbe construite), à partir d un ensemble fini de positions prélevées à des instants précis. On peut donc aisément adapter le modèle avec contraintes aux objets mobiles et donc aux trajectoires. Cette section est consacrée à l approche de modélisation des données de trajectoires en utilisant les différentes approches de modélisation avec contraintes : le modèle à contrainte linéaire le modèle à géométrie différentielle le modèle à équations de mouvement Dans cette section, nous nous intéresserons aux modèles à contrainte linéaire et au modèle avec équation de mouvement qui nous semblent plus appropriés au traitement informatique Le modèle à contrainte linéaire Dans le modèle à contrainte linéaire, le polynome utilisé pour décrire les données doit être linéaire. Ce modèle suppose que l objet se déplace à vitesse constante sur un segment de droite reliant deux positions successives de l ensemble des positions prises comme échantillon. En prenant m instants t ] 1, m[ t i < t j, i < j et une fonction p qui associe un instant t à une position p(t) = (p 1 (t), p 2 (t),, p n (t)) R n représentant la trajectoire de l objet. Dans le modèle à contrainte linéaire correspondant, chaque p i est représenté par la contrainte : pour t [t j, t j+1 ] et j = 1,, m 1. p i (t) = b ij t + cij

34 28 Figure 3.10 Trajectoire dans ISO/TC211 [10] Le fait que dans la réalité, la vitesse d un mobile ne soit pas toujours constante et que les changements de direction ne se font pas toujours de façon brutale (on imagine mal des routes en segments, avec des virages en angles), rend ce modèle peu naturel malgré sa grande simplicité et sa facilité d implémentation Le modèle à équations de mouvement L approche ici consiste à modéliser la trajectoire d un objet à l aide de l équation de son mouvement. En effet, en se basant sur la deuxième loi de Newtown relative au mouvement, Geerts dans [13], représente un objet mobile à l aide de l équation de son mouvement. La deuxième loi de Newtown ou relation fondamentale de la dynamique stipule que la force qui agit sur un objet mobile est proportionelle à l accélération que subit son mouvement. Formellement, soit x : R R n : t x(t) = (x 1 (t), x 2 (t),, x n (t)) représentant la position de l objet à l instant t et soit m sa masse. Considérons F : R R n : t F (t) = (F 1 (t), F 2 (t),, F 3 (t)) la somme des forces qui agissent sur le mobile à l instant t, la seconde loi de Newton stipule que : F (t) = m d2 x(t) dt 2 Etant, x 0 = x(t 0 ) et v 0 = dx(t 0) dt respectivement position initiale et vitesse initiale de l objet mobile, on peut retrouver une solution unique à cette équation différentielle d ordre 2 [13]. On peut ramener l ordre de cette équation au premier ordre en rajoutant des variables de la façon suivante : d dt X(t) = d ( ) ( ) x(t) v(t) = F (t). dt v(t) m La forme générale d une contrainte différentielle donnéee par : x i = f i (x 1,..., x n, t) x i sur les variables x 1, x 2,, x n est où i = 1,, n et f i est un polynôme à variables multiples et coefficients entiers. A partir de là, l auteur de [13] décrit une équation de mouvement comme un ensemble fini de triplets où chaque triplet est composé de l ensemble des contraintes initiales, d un ensemble de contraintes différentielles et de l instant de validité du triplet. En utilisant la méthode d Euler, l auteur de [13] démontre que la trajectoire de l objet peut être obtenue en joignant des morceaux de courbes construites à partir des triplets ainsi définis. Une base de données de trajectoires avec ce modèle est décrite par un triplet composé d un ensemble fini d identifiants d objets, d un mappage entre cet ensemble et l ensemble contenant toutes les équations de mouvement et de l instant de validité du mouvement(borne supérieure de la période du mouvement).

35 Le modèle de données d objets mobiles A la base, les modèles de données spatio-temporels permettent de représenter les objets dont on s intéresse uniquement à la forme ou à la position dans le temps considéré comme discret (à des instants précis). Ces objets spatio-temporels sont décrits en intégrant au sein de la représentation de l objet, un attribut spatial et un attribut temporel. Avec le temps, notamment avec l avènement des équipements mobiles personnels (GSM, GPS, Smartphone, etc.), de nouveaux besoins sont apparus. Notamment avec les applications ubiquitaires (applications qui nécessitent de connaitre la position d un objet en temps réel) et les location-based services, une nouvelle approche de représentation des trajectoires sous la forme d objets mobiles (moving object) a émergé. Cette approche s intéresse à la fois, à la gestion de l historique des positions, à la position courante de l objet à tout instant (temps continu) et éventuellement permet de faire des prévisions sur les positions dans un futur très proche. Suivant les besoins, les objets mobiles peuvent être représentés sous deux abstractions : lorsque l on s intéresse uniquement à la localisation de l objet dans le temps (par exemple tracking d un utilisateur de téléphone mobile, tracking d un véhicule, d un avion ou d un bateau, équipés d un GPS), l objet mobile peut être représenté comme un point mobile (moving point) ; lorsque l on s intéresse en plus de la localisation, à la forme de l objet ou à son extension dans le temps (par exemple, l évolution d un désert, le mouvement d une armée sur un champ de bataille), on utilisera un moving region comme abstraction. Diverses approches ont été élaborées pour modéliser la trajectoire des objets mobiles dans les bases de données. Ces approches peuvent être regroupées en deux catégories dans la littérature. La première s intéresse à l interrogation des positions courantes et futures de l objet dans le temps et la deuxième se focalise sur l historique des positions de l objet Approche basée sur l historique des positions (point-location management) Cette approche très utilisée dans l industrie, notamment dans le tracking des véhicules, consiste à prélever périodiquement des couples (p, t) où p est la position (par exemple les coordonnées géographiques) de l objet à l instant t. Ces couples sont stockés dans la base de données au fur et à mesure que l objet évolue et l on peut à l aide du langage d interrogation, faire des requêtes sur la localisation de l objet à un instant passé. Cette approche souffre de quelques insuffisances : premièrement, elle ne fournit pas assez d informations permettant d effectuer des interpolations et donc de déterminer la localisation de l objet à des instants qui ne sont pas échantillonés, c est-à-dire qui ne figurent pas dans la base de données ; la deuxième insuffisance est liée au fait que cette méthode impose un compromis ressource/précision. En effet, la précision des résultats des requêtes sera fonction de la fréquence des mises à jour de la localisation de l objet. Des mises à jour fréquentes de la position de l objet ont pour avantage de donner une situation quasi instantanée mais suppose de très bonnes connexions réseau (un très bon réseau de transmission) et surtout une grande puissance de calcul pour analyser les données générées. Des mises à jour moins fréquentes par contre produisent des résultats moins précis, qui reflètent moins bien la réalité pour une faible sollicitaion des ressources réseau et de calcul.

36 30 enfin, cette façon de modéliser les données générées par des objets mobiles est source de lourdeur et d inefficacité au niveau du développement des applications qui utilisent ces données Approche MOST (Moving Objects Spatio-Temporal L approche MOST développée dans [34] permet de stocker des vecteurs de mouvement plutôt que les positions successives de l objet. Le premier avantage de cette méthode est qu elle évite des mises à jour fréquentes de la position de l objet. Dans cette approche, la localisation d un objet peut être obtenue à l aide d une fonction linéaire qui associe la position (cordonnées (x, y) de l objet) à un instant t. Un deuxième paramètre, appelé vecteur de mouvement qui renseigne sur la vitesse et la direction du mouvement est également associé à cette fonction. De cette façon, le serveur de localisation peut calculer ou plutôt, estimer la position de l objet mobile à tout instant t, en utilisant la technique de l interpolation linéaire présentée au point , à l aide de la fonction suivante : y(t) = y 0 + v(t t 0 ), t > t 0 Formellement, l approche MOST définit des attributs dynamiques c est-à-dire des paramètres dont la valeur change de façon continue par opposition à des attributs statiques qui changent par modification discrète - mise à jour explicite de la position de l objet par exemple). Un attribut dynamique X est défini par trois champs : X.value : représentant la valeur de l attribut au moment de la mise à jour ; X.updatetime : représentant l instant de la dernière mise à jour ; X.function : la fonction décrite plus haut. Dans cette approche, une mise à jour est effectuée uniquement lorsque l un des paramètres (généralement l une des composantes du vecteur de mouvement : vitesse ou direction) de la fonction linéaire, change. Cette approche de mise à jour est dite navigation par estimation ou dead-reckoning [30]. Si elle offre des performances intéressantes pour les localisations courante et future de l objet, cette approche dépend néanmoins fortement des incertitudes (changement brusque de vitesse ou de direction par exemple) liées au déplacement de l objet mobile. Le langage FTL Afin de tirer profit des attributs dynamiques introduits précédemment, les auteurs de MOST ont développé le langage de requêtes FTL (Future Temporal Logic), inspiré de la syntaxe SQL et utilisant des prédicats de logique temporelle pour préciser les relations temporelles entre objets dans les requêtes. FTL définit deux opérateurs de base Until et Nexttime définis comme suit : le prédicat f Until g est vrai lorsqu on a g à l état présent ou futur et, f vérifié en attendant ; le précidcat Nexttime f est vrai si f est vérifié au prochain état du mouvement. A partir de ces opérateurs de base, on peut construire d autres opérateurs complexes, par exemple : Eventually f = true Until f Always f = Eventually f La syntaxe générale d une requête FTL est la suivante : RETRIEVE} target-list WHERE condition-list

37 31 Où, condition-list est exprimée sous la forme d un prédicat FTL. Ces derniers effectuent des requêtes sur les positions futures de l objet, comme soulignés plus haut. Le modèle MOST manipule uniquement des points mobiles (moving point) et gère exclusivement la position courante et future de l objet en mouvement. Le principal intérêt du modèle MOST est de permettre l interrogation de la localisation courante et future de l objet sans tenir compte de l historique des positions du mobile, ce qui constitue un allègement du volume de données à traiter et donc une meilleure réactivité pour les requêtes de localisation. Ceci sous-entend aussi que MOST permet de gérer la localisation en continu (puisqu une fonction qui estime la position de l objet en tout instant t existe). D un autre côté il peut être interessant de stocker l historique des positions de façon explicite (à la manière de l approche présentée en ). On pourrait donc imaginer une approche qui permette d interroger les positions courantes et futures tout en stockant l historique des positions du mobile. Celà permettrait par exemple de revenir à l état de la base de données à des instants passés, afin de mieux analyser l évolution du mobile et comprendre son mouvement. C est l approche que Güting et al. développe dans [16, 1, 18] Modélisation avec des types abstraits de données (TAD) Cette approche développée par Güting et al dans [16, 1, 18], ambitionne de répondre à un double besoin. le support de la localisation, c est-à-dire la possibilité de connaitre la position du mobile en temps réel et dans un futur proche ; le support de l historique des positions (gestion des données spatio-temporelles passées), afin de pouvoir analyser l évolution du mobile. L approche consiste à développer des types abstraits de données spatio-temporels (moving point ou mpoint, moving region ou mregion, etc.) avec l ensemble d opérations associées. Ces nouveaux types peuvent ensuite être intégrés comme types de base dans un système de base de données (relationnel ou objet), qui peut être étendu avec des types utilisateurs. De façon générale, cette approche introduit un constructeur de type τ qui transforme tout type élémentaire a en un type τ(a) tel que : τ(a) = time a De cette façon, les types mpoint et mregion introduits plus haut, peuvent également être représentés par τ(point) et τ(region). De même, pour des types scalaires, par exemple les entiers, (int), les réels(real) ou les booléens(bool), en leur appliquant le constructeur τ, on obtient respectivement un entier mobile ou moving int (mint), un réel mobile ou moving real (mreal) et un booléen mobile ou moving bool (mbool) correspondant à un entier, un réel ou un booléen dont la valeur change en fonction du temps. On peut aisément imaginer les multiples usages qu on pourrait faire de telles constructions. Un entier mobile mint pourra par exemple être utilisé pour représenter l évolution de la population d une commune dans le temps. Un réel mobile, sera utilisé pour représenter la distance entre deux points mobiles au cours du temps et un booléen mobile pour s assurer qu une condition est vérifiée dans le temps (par exemple la vitesse du mobile v < v max ). La figure 3.11 illustre la représentation d un mreal alors que la figure 3.12 illustre respectivement un mpoint et un mregion. On remarquera que les deux derniers objets

38 32 mobiles sont représentés en trois dimensions (espace (2D) + temps) alors qu un moving real est représenté par sa valeur dans le temps (2D). En général, tous les types construits par application du constructeur τ sont des fonctions sur un domaine infini (le temps) et par conséquent constituent eux même des ensembles infinis. Figure 3.11 Représentation d un moving real [12] Figure 3.12 Moving point (a) et moving region (b) dans l espace-temps [16] Opérations sur les objets mobiles : Le tableau 3.3 présente quelques opérations qui s appliquent aux objets mobiles décrits précédemment. Les objets ligne, périodes, etc. ont la même sémantique que celle qu on leur a assigné à la section Modèle abstrait et modèle discret Il ressort des développements précédents que la trajectoire d un point mobile peut être décrite soit par une courbe, soit par une polyligne (un ensemble de segments de droites liés entre eux) dans l espace-temps (2D + 1D). Lorsqu elle est décrite par une courbe, le temps est considéré comme infini ; alors la trajectoire qui est une fonction du temps est continue et correspond à un ensemble infini de positions. Lorsqu elle est décrite par une polyligne, le temps est réduit à un ensemble fini et la trajectoire qui est une fonction du temps, correspond à un ensemble fini de valeurs(positions sucessivement occupées par l objet mobile). Ces deux abstractions sont appelées respectivement modèle abstrait et modèle discret. i) le modèle abstrait est une approche formelle de la modélisation des trajectoires, c est-à-dire qu elle permet de raisonner sur des ensembles infinis sans se soucier de l implémentation ou de toute représentation finie de ces ensembles. L approche de définition des types est similaire à ce qui est présenté au point Bien qu elle

39 Opération Signature Signification distance mpoint mpoint mreal Renvoie un moving real représentant la distance temporelle entre les deux moving point. trajectory mpoint line Renvoie une ligne (objet line ou linestring) par projection du moving point sur le plan. intersection mpoint mregion mpoint renvoie un moving point correspondant à la partie du moving point en entrée chaque fois que ce dernier croise le moving region tout au long de son évolution. deftime mpoint periods Renvoie l ensemble des périodes pendant lesquelles le moving point est défini. min mreal real Renvoie la plus petite valeur prise par l objet mreal au cours du temps. length line real Renvoie la longueur de l objet line. Table 3.3 Opérations de base sur les objets mobiles [16] 33 reflète mieux la réalité (par exemple, une trajectoire d un objet mobile en 3D (espace+temps) s apparente plus à une courbe qu à une polyligne dans la réalité), cette approche est malheureusement utopique du fait de la difficulté à représenter un ensemble infini dans un SGBD. Dès lors, il devient nécessaire de réduire ces ensembles infinis en des ensembles finis qu on peut représenter, d où le modèle discret. ii) le modèle discret propose une représentation finie, assez proche de l implémentation, d un ensemble infini. Ce qui revient à réduire l ensemble infini (abstrait) à un sous ensemble d éléments constituant un ensemble fini (discret). Cette réduction n est cependant pas sans côut, notamment pour les entités mobiles où des approximations sont nécessaires pour décrire les trajectoires. A cet effet, la notion de représentation en tranches (sliced representation en anglais) est introduite dans [12]. Elle consiste à découper le développement d une entité dans le temps (trajectoire), en plusieurs morceaux ou tranches (slices en anglais), de telle sorte que la partie de la trajectoire décrite dans un morceau puisse être représentée par une simple fonction. Les figures 3.13 et 3.14 illustrent respectivement la représentation en tranches d un réel (moving real) et d un point mobile (moving point). Dans [12], un constructeur appelé mapping est utilisé pour créer la représentation en tranches d une entité. En effet, la première étape consiste à définir un type pour décrire une tranche individuelle ; ce type qu on nommera unité mobile ( moving unit en anglais), est composée généralement un couple de deux champs (p, v) où p correspond à un intervalle de temps (sous la forme d une période : [t debut, t fin ]) et v la représentation dans cet intervalle, d une fonction simple. L unité mobile est ensuite passée en paramètre au constructeur mapping pour créer la représentation en tranches correspondante. Par exemple pour les types real, point, line et region, on a respectivement les types unités mobiles suivants : ureal, upoint, uline, uregion.

40 34 Figure 3.13 Représentation en tranches d un moving real [12] Figure 3.14 Représentation en tranches d un moving point [12] A la fin de cette section consacrée à une revue des principales approches de modélisation des données de trajectoires qui existent dans la littérature, nous allons nous intéresser à la section suivante aux systèmes de gestion de base de données existants qui implémentent d une façon ou d une autre certaines de ces approches. Plus particulièrement, nous allons nous intéressé aux systèmes qui implémentent l approche de modélisation par types abstraits de données étant donné que c est sur cette même approche que s appuie notre contribution. 3.2 Systèmes de gestion de données de trajectoires L étape préalable pour le développement de tout système de gestion de base de données est la définition des différentes structures de types, des opérations qui s y appliquent et la définition d un langage d interrogation pour la manipulation et l analyse des objets créés. Les systèmes de gestion de données pour les objets mobiles ne dérogent pas à cette règle. Dans la section précédente, nous avons présenté les principales approches. Dans cette partie, nous nous intéressons principalement à quelques implémentations de l approche de Güting et al [16, 1, 18, 12], basée sur les types abstraits de données (TAD), notamment SECONDO et Hermes SECONDO SECONDO est un système de gestion de base de données (SGBD) spécialement développé pour les applications non standards (applications manipulant des données que les bases de données classiques ne manipulent pas encore) [41]. SECONDO est développé par des chercheurs de l université de Hagen en Allemagne. C est un SGBD extensible qui constitue une plateforme idéale pour le développement et l expérimentation de nouveaux

41 35 types de données et prototypes de systèmes de gestion de données. C est dans ce cadre qu a été développée une extension pour la manipulation des objets mobiles Architecture de SECONDO SECONDO est composé d un noyau, d un optimiseur de requêtes et d une interface graphique extensible. a) Le noyau de SECONDO s occupe du traitement des requêtes sur la base d un catalogue d algèbres implémentées pour différents modules. l algèbre de base qui fournit le support des types simples : entiers, réels, booléens et chaines de caractères, de même que les opérations associées ; l algèbre relationnelle contient les types de données et les opérations nécessaires pour manipuler une base de données relationnelle classique ; l algèbre spatiale qui représente les objets spatiaux (point, ligne et région) avec leurs opérations ; l algèbre temporelle contient les types et opérations nécessaires pour la manipulation des objets mobiles. b) L optimiseur de requêtes implémente la partie qui fournit les fonctionnalités similaires au langage SQL ; c) L interface graphique à laquelle on peut ajouter des extensions visuelles pour la modélisation de nouveaux types de données et pour visualiser les objets créés. La figure 3.15 présente une architecture en couches du système SECONDO de base [41]. Les parties colorées en gris représentent les composants extensibles du système alors que les parties blanches composent le système de base. La couche 1 regroupe un ensemble d outils nécessaires pour la communication avec le système d exploitation et la gestion du stockage. A la couche 2, on retrouve le catalogue d algèbres. La couche 3 contient le moteur de requêtes, le catalogue système de types et d objets et implémente les mécanismes d ajout de nouveaux modules. A la couche 4 on retrouve l optimiseur de requêtes qui prépare les requêtes pour le moteur en proposant notamment un plan d exécution efficient sur la base de règles de transformation. L optimiseur de requête travaille sur une algèbre descriptive alors que le moteur de requête travaille sur une algèbre opérationnelle. Le gestionnaire de commandes à la couche 5 fournit une interface procédurale aux fonctionnalités de couches inférieures. Au niveau 6, on retrouve l interface graphique. Pour plus de détails sur l implémentation de SECONDO, le lecteur intéressé pourra se référer à [17] Gestion des objets mobiles dans SECONDO L idée de base dans la gestion des objets mobiles dans SECONDO est d utiliser les types spatio-temporels moving point et moving region tels que présentés au point De cette façon, on peut représenter par exemple l itinéraire complet d un véhicule par un objet de type moving point (mpoint) et l évolution d un feu de brousse pourra être représentée par un objet de type moving region (mregion). A ces types de données, on associe un ensemble d opérations dont quelques unes sont présentées dans le tableau 3.4 [17].

42 36 Figure 3.15 Architecture de SECONDO [41] Hermes Hermes est un système de gestion de base de données manipulant des objets dont la forme, la taille ou la position changent de façon discrète ou continue au cours du temps. Hermes implémente l approche de modélisation par de types abstraits de données que nous avons introduite au point Hermes a été proposé et développé par Pelekis et al. dans [33, 28]. Hermes fournit des fonctionnalités spatio-temporelles à des systèmes de gestion de base de données relationnelles ou objet. Un prototype a été développé comme extension de STAU [32, 28], une extension spatio-temporelle pour le SGBD Oracle. Hermes peut être utilisé comme extension spatiale pure ou comme extension temporelle pure (grâce notamment à sa cartouche temporelle TAU-TLL) ; cependant, sa principale fonctionnalité est le support de la manipulation des objets qui changent (en forme, taille ou position), de façon continue Architecture de types dans Hermes Hermes est developpé sous la forme d une cartouche Oracle appelée Hermes Moving Data Cartridge (Hermes-MDC) qui définit les différents types de données et les opérations qui s y appliquent pour la modélisation, l interrogation et l analyse des objets mobiles. Comme extension du SGBD Oracle, Hermes hérite : des types de base ou Base Type (BT) en anglais, composés des entiers, réels, chaines de caractères et booléens avec les opérations associées ; des types spatiaux ou Spatial Type (ST) en anglais fournis par Oracle Spatial,

43 Opération Signature Signification trajectory mpoint line retourne la projection d un moving point dans le plan distance mpoint point mreal calcule la distance temporelle entre un objet mobile moving point et un point fixe passes mpoint region bool vérifie si un point mobile passe par une région inside mpoint mregion mbool retourne un moving boolean (mbool) indiquant lorsque le point mobile est à l intérieur de la région mobile à tout instant de leur mouvement. Table 3.4 Opérations de base sur les objets mobiles [17] 37 composant Oracle (sous la forme d une cartouche également), qui s occupe de la gestion des données spatiales et des opérations associées ; enfin Hermes définit dans sa cartouche temporelle TAU-TLL, les fonctionnalités temporelles nécessaires à la modélisation spatio-temporelle, temporal Type (TT). La figure 3.16 présente l architecture d Hermes Ojets mobiles dans Hermes (Hermes-MDC) Comme nous l avons souligné à l introduction de cette section, à travers sa cartouche Hermes-MDC, Hermes implémente la gestion des objets mobiles et donc des trajectoires en se basant sur l approche de modèle discret introduite par Güting et al. dans [16, 1, 18, 12]. Hermes exploite notamment l idée de la représentation en tranches présentée au point?? et étend le constructeur mapping à toutes les formes géométriques fournies par Oracle Spatial. L autre particularité d Hermes est le support des collections d objets spatio-temporelles grâce aux types mobiles multiples (multi moving type). La figure 3.17 présente le diagramme de classe d Hermes.

44 38 Figure 3.16 Architecture de types dans Hermes [28] Figure 3.17 Diagramme de classe de Hermes-MDC [28]

45 Chapitre 4 Hermes dans PostgreSQL Introduction L une des principales contributions de ce mémoire est de proposer une infrastructure pour la gestion des objets mobiles dans le SGBD PostgreSQL 9. Cette infrastructure est basée sur Hermes-MDC (Hermes Moving Data Cartridge), la cartouche spatiotemporelle développée pour le SGBD Oracle, que nous avons introduite à la section Cette contribution s inscrit dans le cadre des travaux futurs proposés dans [7] ; où des tâches préparatoires avaient été réalisées pour assurer la migration de Hermes de Oracle à la version 8 de PostgreSQL. D une façon générale, il est question d étendre le prototype de base obtenu à la suite de cette migration, par : le développement de nouvelles fonctionnalités, notamment la prise en charge des opérateurs et classes d opérateurs, la prise en charge des index, le développement des fonctions d entrée/sortie et la gestion des exceptions ; la mise en oeuvre d une nouvelle approche de modélisation des types de données temporelles et spatio-temporelles qui constituent en fait, l essentiel des développements de l extension, puisque les types spatiaux et les opérations associées, comme nous le verrons, proviennent de PostGIS, l extension spatiale de PostgreSQL. Dans cette approche, il est question de construire les types temporels comme des objets à part entière (first class citizen), c est-à-dire des entités, pouvant être construites pendant la phase d exécution, passées comme paramètres à des fonctions ou renvoyées comme valeur de retour de fonction. Ce qui était fait jusque là, c est que les types temporels étaient traités comme des structures (au sens des structures en langage C) où chacun des champs était traité individuellement. Par exemple, pour manipuler un type Timepoint granularité jour (D_Timepoint_D), l utilisateur devait manipuler les champs année, mois et jour individuellement. De cette façon, une fonction qui n aurait pris qu un seul paramètre de type D_Timepoint_D, en recevait plutôt trois de type entier ; l application de la nouvelle méthodologie de développement des extensions en vigueur dans la communauté des développeurs de PostgreSQL, afin de permettre à notre extension, de prétendre à une certaine portabilité et de susciter l intérêt d autres développeurs au sein de la communauté. Dans ce chapitre, nous allons dans un premier temps, présenter le SGBD PostgreSQL 9 et son environnement de développement d extension. Ensuite nous reviendrons de façon détaillée, sur l implémentation de la cartouche Hermes dans PostgreSQL 9, en 39

46 40 étudiant notamment les différents modules (spatial, temporel et spatio-temporel) qui la composent ainsi que les principales modifications et ajouts apportés au premier travail de migration effectué sur la version 8. Enfin, nous proposons une version allégée de Hermes dite Light Hermes, qui prend en considération certaines insuffisances observées avec Hermes. 4.2 PostgreSQL 9 PostgreSQL est un puissant système de gestion de bases de données relationnelles et objet open source, dont l ancêtre est PostGRES, un SGBD développé à l université de Californie au département des sciences informatiques de Berkeley en PostgreSQL a connu une grande évolution de sa création à la distribution actuelle (9.2), ce qui lui permet aujourd hui de fonctionner sur une grande partie des systèmes d exploitation du marché, entre autres : Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64) et Windows. De même, PostgreSQL supporte la quasi-totalité du standard SQL tout en offrant de nombreuses fonctionnalités modernes telles qu un module spatial (PostGIS), permettant de représenter des données géographiques [15]. Enfin, son organisation en catalogues permet à l utilisateur averti, de développer facilement des extensions Méthodologie de développement d une extension PostgreSQL est extensible parce qu il opère grâce à un système de catalogues ; c està-dire que les informations concernant les schémas, les tables, les colonnes, etc. sont stockées dans ce qu on nomme communément des catalogues systèmes ou dictionnaires de données dans certains SGBD. Du point de vue de l utilisateur, ces catalogues sont semblables à des tables ordinaires, mais le SGBD y stocke ses registres internes. Contrairement à d autres systèmes, PostgreSQL enregistre beaucoup d informations dans ses catalogues. En plus de celles citées plus haut, on y retrouve l information concernant les types de données, les fonctions, les méthodes d accès, etc. Ces tables peuvent être modifiées par l utilisateur. Par conséquent, puisque PostgreSQL fonde ses opérations sur ces tables, il peut être étendu par les utilisateurs. A contrario, les systèmes de bases de données conventionnels ne peuvent être étendus qu en modifiant des procédures dans le code source ou en installant des modules spécifiquement écrits par l éditeur même du SGBD. Par ailleurs, le serveur PostgreSQL peut incorporer du code utilisateur par chargement dynamique ; cela signifie que l utilisateur peut indiquer un fichier de code objet (par exemple une bibliothèque ou librairie dynamique - DLL) qui implémente de nouveaux types ou de nouvelles fonctions et PostgreSQL le charge à la demande grace à des fonctions ou des procédures stockées - en langage PL/pgSQL 1 qui attaquent la librairie. C est cette méthode que nous utiliserons dans le développement de notre extension Environnement de développement de l extension Difficultés rencontrées L une des principales difficultés de la réalisation de cette étape a été la mise sur pied de l environnement de développement de l extension de PostgreSQL. En effet, nous étions contraints de travailler dans un environnement Windows parce que l extension 1. Procedural Language for PostgreSQL

47 41 de base avait été développée avec Microsoft Visual C++ (langage par ailleurs recommandé par la communauté des développeurs, pour le développement d extensions ou la compilation des sources PostgreSQL sous Windows[15]). Malheureusement, nous nous sommes confrontés à un manque de documentation sur une méthodologie de mise en oeuvre d une infrastructure de développement d extension sous Windows. Dans [15], il est juste mentionné la possibilité de compilation des sources pour une installation de PostgreSQL à partir des sources avec MS Visual C++. L accent y est surtout mis sur l infrastructure intégrée de développement d extensions sous UNIX. Une autre contribution de ce mémoire est la production d un tutoriel de configuration pour la mise en place d une infrastructure de développement d extensions pour PostgreSQL avec MS Visual C++, afin de mettre à la disposition des développeurs de la communauté, travaillant en environnement Windows, un point de départ efficace pour leurs travaux Environnement de développement L environnement de développement est constitué d une part du compilateur Microsoft Visual C++ pour l écriture des fonctions de la librairie dynamique et du moteur d exécution des requêtes du serveur PostgreSQL d autre part. Il a fallu effectuer un certain nombre de configurations pour faire communiquer PostgreSQL et Microsoft Visual C++. Dans l annexe B, nous proposons les grandes lignes des étapes de configuration nécessaires pour créer un tel environnement. Comme décrit plus haut, l extension de PostgreSQL passe par le développement d une librairie de fonctions sous forme de code objet que le serveur charge ensuite à la demande. PostgreSQL étant un projet open source, la majorité des développements de ce genre de code objet est faite en C standard sous UNIX sous la forme de librairie partagée, une large documentation existe à cet effet dans [15] et les différents forums associés. Une autre méthode consiste à créer la bibliothèque en utilisant le langage C++ pour générer une DLL (Dynamic Link Library) afin de faire fonctionner l extension dans un environnement Windows. L utilisation du langage C++ pour développer l extension permet d exploiter les propriétés orientées objet de ce langage (héritage, polymorphisme, etc.), mais nécessite toutefois le respect de certaines règles lors de l écriture du code afin d assurer la portabilité de l extension (c est cette méthode qui nous intéresse) Règles à respecter lors de l utilisation du compilateur C++ Les règles suivantes doivent être respectées lors de la construction d une extension PostgreSQL avec un compilateur C++ [15] : Toutes les fonctions utilisées par le serveur doivent présenter une interface C au serveur ; ces fonctions C peuvent ensuite appeler des fonctions C++. Par exemple, le lien extern C est requis comme préfixe d entête pour toutes les fonctions présentes dans l extension. Il est aussi nécessaire que chaque fonction soit passée comme pointeur entre le serveur et le code C++. Allouer/libérer la mémoire en utilisant la méthode appropriée d allocation/libération. Par exemple, la majorité de la mémoire serveur est allouée en utilisant la fonction palloc(), donc utilisez pfree() pour la libérer. Utiliser la fonction delete() de C++ pour ces cas échouera. Empêcher la propagation des exceptions dans le code C (utiliser un bloc capable de récupérer toutes les exceptions au plus haut niveau des fonctions C ). Ceci est nécessaire même si le code C++ ne renvoie aucune exception car des événements

48 42 comme le manque de mémoire renvoient toujours des exceptions ; par exemple vérifier le renvoi de NULL suite à l appel de la méthode new().toute exception doit être récupérée et une erreur appropriée doit être envoyée à l interface C. Si possible, compilez C++ avec l option -fno-exceptions pour complètement éliminer les exceptions. S il doit y avoir des appels aux fonctions du serveur à partir du code C++, s assurer que la pile d appels C++ contienne seulement l ancienne structure de données (POD). Cela est nécessaire car des erreurs du serveur génèrent un appel distant à longjmp() qui ne dépile pas proprement la pile d appels C++ avec les objets autre que POD. En résumé, il est préférable de placer le code C++ derrière un mur de fonctions extern C qui font l interface avec le serveur et évitent la fuite des exceptions, de mémoire et de pile d appels. Toutes ces recommandations ont été prises en compte dans nos développements. 4.3 Hermes dans PostgreSQL 9 Dans la section 3.2.2, nous avons présenté l architecture de haut niveau d Hermes. Nous allons nous intéresser dans cette partie, à une étude détaillée de ses différents composants (spatial, temporel et spatio-temporel) sous PostgreSQL 9. Il s agit en fait de présenter la façon dont ces différents modules sont implantés physiquement. Nous ne reviendrons pas sur les détails de la migration d Hermes vers PostgreSQL 8 dépuis Oracle, cette question étant suffisament abordée dans les travaux de [7] Module spatial : PostGIS Les fonctionnalités spatiales d Hermes sont supportées par PostGIS. PostGIS est la cartouche qui dote le SGBD PostgreSQL des capacités d une base de données spatiale, c est-à-dire une base de données qui stocke et manipule des objets géographiques (Point, Ligne, Polygone, etc.), comme des objets classiques (entier, réel, chaine de caractères, etc.). Pour ce faire, PostGIS définit les types de données spatiales, les fonctions associées et le support des index [29] Types de données PostGIS implémente les types de données spatiales spécifiés par l Open Geospatial Consortium (OGC) dans [14]. La figure 4.1 présente le diagramme de classes des types de données spatiales [14] supportées par PostGIS. On constate notamment dans ce diagramme que tous les objets spatiaux héritent de la classe Geometry qui est donc la classe mère et celle qui sera utilisée dans la définition des types spatio-temporels dans Hermes, afin de prendre en compte toutes les formes géométriques possibles. Par ailleurs, PostGIS utilise deux formats également recommandés par l OGC pour exprimer la forme des objets spatiaux dans un système de référence (système de coordonnées par exemple). Ce système de référence est lui même spécifié par un identifiant (SRID). Les deux formats sont : le format Well-Known Text (WKT), qui représente un objet spatial sous forme texte et donc compréhensible pour l humain. Par exemple un point est représenté par Point(x 1, y 1 ), une ligne par Linestring(x 1, y 1, x 2, y 2, x 3, y 3 ) où les x i représentent des coordonnées dans un système de référence ;

49 43 Figure 4.1 Diagramme de classes des types dans PostGIS [29] et le format Well-Known Binary (WKB) qui représente les objets spatiaux sous forme binaire Fonctions Sur la base des spécifications de l OGC [14], PostGIS fournit un riche ensemble de fonctions pour créer, déterminer les relations spatiales (intersection, chevauchement, union, etc.) ou analyser des objets spatiaux. La liste des fonctions spatiales proposées par PostGIS est très longue, cependant elles peuvent être regroupées dans les cinq catégories suivantes [29] : les fonctions de conversion qui permettent de convertir des données géographiques dans divers formats ; les fonctions de gestion pour la gestion des informations sur les tables spatiales et les informations d administration ; les fonctions d interrogation qui permettent d interroger les tables avec des attributs spatiaux ; les fonctions de comparaison qui permettent de comparer deux objets spatiaux sur la base de leur relation spatiale ; les fonctions de construction pour créer de nouveaux objets spatiaux à partir d autres. Le tableau 4.1, illustre quelques opérations implémentées par PostGIS. Pour une description complète des fonctions spatiales utilisées dans PostGIS et donc dans Hermes, le lecteur intéressé pourra se référer à [20].

50 44 Signature ST AsBinary(geometry) ST AsText(geometry) ST Distance(geometry g 1, geometry g 2 ) ST IsEmpty(geometry) ST Relate(geometry g 1, geometry g 2 ) ST Union(geometry[ ]) ST Makeline(geometry[ ]) Description Retourne le format WKB de l objet spatial (geometry) en paramètre. Retourne le format WKT de l objet spatial (geometry) en paramètre. Retourne la distance eucludienne entre les deux objets spatiaux en paramètres. Renvoie vrai ou faux selon que suivant que l objet spatial en paramètre est un ensemble vide. Retourne vrai si les deux objets spatiaux en paramètres se touchent. retourne un objet de type Multi* geometry à partir de l ensemble des objets en paramètre. Crée un objet de type Linestring à partir de l ensemble des Points en paramètre. Table 4.1 Quelques fonctions de PostGIS [20] Support des index spatiaux Les SGBD classiques utilisent les structures d arbres binaires (B-Tree) pour la gestion des index. Un index est une méthode d accès efficace et non séquentielle à un sous ensemble de données. Les index (B-Tree) sont généralement basés sur des ensembles de données qui possèdent une relation d ordre naturel, par exemple les entiers ou l ordre alphabétique. Pour les bases de données spatiales, les arbres binaires ne sont plus suffisants pour supporter les méthodes d indexation étant donné la nature des relations entre les objets spatiaux. Par exemple, les polygones peuvent se chevaucher, être contenus dans d autres et sont représentés par des tableaux à plusieurs dimensions : il est difficile d en déduire un ordre naturel. Dès lors il est nécessaire d introduire de nouvelles méthodes d accès. Index R-tree : PostGIS, comme d autres systèmes de gestion de bases de données spatiales, introduit la notion d index spatial ou R-Tree qui permet de répondre à des questions dans le style : quel objet se trouve à l intérieur d une étendue spécifique?. Une étendue est le plus petit rectangle capable de contenir un objet spatial. Pour répondre à la question : l objet A contient t-il l objet B, opération non coûteuse si on manipule des rectangles, un index R-Tree va diviser l objet A en des rectangles de plus en plus petit jusqu à trouver ou non un rectangle qui contienne l objet B. Cependant l implémentation R-Tree de PostgreSQL n est pas assez robuste pour les concepteurs de PostGIS[20], d où l introduction des index GiST. Index GiST : Les index GiST (Generalized Search Tree) ou arbre de recherche généralisé, constituent un socle pour le développement des index personalisés pour structures de données complexes. En effet, un index GiST, peut être étendu à tous les types de données sur lesquels on peut effectuer des recherches. Les index GiST offrent en réalité un modèle de base ou template permettant d implanter des schémas d indexage arbi-

51 45 traires, par exemple B-tree et R-tree [44]. Pour le SGBD PostgreSQL [15], l interface GiST propose un haut niveau d abstraction qui permet au développeur de la méthode d accès d implémenter uniquement la sémantique du type de données à accéder et non la façon dont les données sont accédées. La couche GiST s occupant elle-même des accès concurrents. L utilisation d une méthode d accès GiST fonctionnelle sous PostgreSQL nécessite le développement de sept fonctions utilisateur définissant le comportement des clés dans l arbre [15]. PostGIS implémente des index GiST pour ses types spatiaux ; dans le cadre de notre extension, nous avons implémenté les fonctions nécessaires pour les différents types temporels Module temporel : TAU-TLL Le module temporel est responsable des fonctionnalités purement temporelles d Hermes. Il implémente les types temporels, les fonctions et opérateurs associés. Il est composé de deux parties : la première partie réalise le support de bas niveau, sous la forme d une librairie dynamique. La seconde partie, sous la forme d un script, (TAU-TLL.sql), est une enveloppe qui fait le pont entre la librairie dynamique et le serveur PostgreSQL. 1. La librairie dynamique (DLL) contient les binaires des différentes fonctions C qui supportent la cartouche temporelle au bas niveau. En effet, c est au niveau de ces fonctions que sont implantés les types temporels et leurs comportements. Le développement des différentes fonctions de cette partie obéit aux règles énoncées au point ; 2. Le script TAU-TLL.sql contient le code PLpgSQL qui déclare les différents types temporels et les fonctions au niveau SQL afin de les rendre accessibles aux utilisateurs de la base de données. La cartouche temporelle définit principalement trois nouveaux concepts : Timepoint, Period et Temporal Element ; représentant respectivement un Point Temporel de l axe du temps, une Période bornée par deux points temporels de l axe du temps et une collection de périodes. A chacun de ces trois concepts, nous associons six niveaux de granularité : Année, Mois, Jour, Heure, Minute et Seconde, suivant le niveau de précision que l on désire atteindre pour représenter un phénomène. Ceci a pour avantage de permettre une certaine souplesse dans la modélisation des phénomènes temporels. Par exemple, pour modéliser l évolution temporelle d un désert, il est plus pertinent de s intéresser à une granularité de type Année ; alors que pour la modélisation de l évolution d un véhicule, la granularité Seconde est plus adéquate. Le tableau 4.2, présente les trois concepts évoqués, avec les différents niveaux de granularité. Period Temporal Element 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 Table 4.2 Types temporels dans Hermes A ces trois concepts, nous proposons également notre propre implémentation des types standards de la norme SQL-92 (Date, Time, Timestamp et Interval). Ceci par souci

52 46 de consistence et pour permettre une certaine indépendance vis-à-vis de l implémentation PostgreSQL des mêmes types, de même qu une souplexe dans la mise en oeuvre des fonctions et opérateurs de notre extension. Le tableau 4.3 présente les types issus de l implémentation Hermes des types de données SQL-92. Date Time Timestamp Interval D Date D Time D Timestamp D Interval Table 4.3 Types SQL-92 dans Hermes En ce qui concerne les fonctions et opérateurs, nous avons implémenté pour tous les concepts temporels présentés précédemment, les opérations temporelles de la norme ISO-19108, présentées à la section Auxquelles nous avons ajouté des fonctions particulières, notamment les fonctions d appui aux index B-tree et GiST pour l indexation temporelle, ainsi que les différents opérateurs de comparaison. C est la partie de l extension principalement affectée par les modifications par rapport au prototype hérité du portage de PostgreSQL Interfaçage des fonctions de la librairie Comme nous l avons mentionné au point 4.2.1, l une des recommandations lorsque l on développe une extension pour PostgreSQL en utilisant le langage C++, est de s assurer que toutes les fonctions dans la librairie communiquent avec le serveur en langage C. Ceci se fait en préfixant le prototype de chaque fonction par une directive extern C coté DLL et du côté des fonctions PostgreSQL, on précise pour chacune des fonctions SQL qui attaquent la librairie, que le langage utilisé est le C, par l inclusion de la clause Language C strict dans la définition de la fonction. Par ailleurs, pour exporter les fonctions de la DLL afin de les rendre accessibles au serveur, l ancienne extension utilisait un fichier de définition de modules tllwrapper.def ; dans lequel pour chaque fonction, on associait manuellement et de façon unique, une valeur ordinale comprise entre 1 et N où N représente le nombre de fonctions exportées par la DLL. Si cette approche est aisée pour des librairies de quelques fonctions, elle devient très vite fastidieuse et des risques de confusion peuvent apparaitre lorsque le nombre de fonctions à écrire devient élevé comme c est le cas pour notre librairie (un millier de fonctions environ). Pour résoudre ce problème, nous avons préconisé une approche qui consiste à laisser le soin au compilateur C++ de générer automatiquement le processus d exportation. Pour ce faire, nous introduisons dans l entête de chaque fonction une clause declspec(dllexport) qui indique à l éditeur des liens de gérer lui-même l identification des fonctions dans la librairie. L avantage évident ici est que le développeur n a plus à gérer manuellement une séquence, avec le risque d avoir des doublons (ce qui conduirait nécessairement à une exception puisque le serveur se retrouvera devant deux fonctions distinctes associées à un même numéro et ne saura pas laquelle des deux invoquée). De même, le développeur peut créer de nouvelles fonctions sans avoir à se soucier de la façon dont elles seront exportées. Pour illustrer les aspects évoqués ci-dessus, dans ce qui suit, nous présentons un extrait du fichier de définition de module (ancienne approche), suivi de la nouvelle approche en présentant le prototype de quelques fonctions de la librairie : Ancienne approche TLLWrapper.def : Declares the module parameters LIBRARY "TLLWrapper.DLL"

53 47 EXPORTS PRIVATE PRIVATE PRIVATE PRIVATE Nouvelle approche extern "C" declspec(dllexport) Datum D_Interval_C_day(PG_FUNCTION_ARGS); extern "C" declspec(dllexport) Datum D_Interval_C_hour(PG_FUNCTION_ARGS); Les paramètres d export de la librairie sont implicitement inclus dans la déclaration des prototypes de fonction. On peut voir, l introduction du préfixe extern C, de même que la recommandation qui veut que les paramètres soient passés au serveur sous forme de pointeurs PG_FUNCTION_ARGS ; le type de retour des fonctions (datum) est un type générique qui peut être mappé à n importe quel type de valeurs effectivement retournées La définition des types Pour définir un nouveau type sous PostgreSQL, le guide du développeur PostgreSQL[15] recommande les étapes suivantes : 1. définir des fonctions d entrée/sortie pour le type ; 2. définir des différentes fonctions de manipulation du type (pour les différents traitements) ; 3. créer des opérateurs et classe d opérateurs associés au type ; 4. déclarer le type proprement dit (clause CREATE TYPE). Il est à noter que chacune des étapes de 1. à 3. est réalisée à la fois côté PLpgSQL et côté C (code source de la DLL). Dans l ancienne extension, seules les étapes 2. et une partie de l étape 4. étaient prises en compte ; une déclaration de type se faisait directement par un ordre CREATE TYPE AS, pas de fonctions d entrée/sortie, pas d opérateurs définis sur le type. Ainsi, un type d_timepoint_h était défini par : CREATE TYPE timepoint_h AS(y integer,m integer,d integer,h integer) Ceci a quelques inconvénients majeurs à savoir : du côté de la manipulation du nouveau type dans les tables, du fait qu il n existe pas de fonctions d entrée/sortie dédiées pour ce type, le serveur aura tendance à manipuler les colonnes déclarées de ce type comme des types enregistrement (type RECORD sous PostgreSQL) ; les opérations sur le type ainsi déclaré sont par conséquent fastidieuses : on doit faire un cast avant de pouvoir appliquer à un type ses propres fonctions ; par ailleurs, impossible de définir des d index sur ces types de données, puisqu il n existe pas d opérateurs, ni des classes d opérateurs ; Nous avons essayé de répondre à ces insuffisances, les principales actions prises sont les suivantes : Création des fonctions d entrée/sortie Pour chaque type à créer, nous définissons des fonctions d entrée/sortie pour ce type.

54 48 Ceci revient à proposer un format de données en entrée et un format de données en sortie. Les fonctions d entrée/sortie sont appelées par le système lorsque l utilisateur exécute un ordre SQL insert ou select sur une table où des colonnes du type correspondant sont déclarées. Dans le cas où ces fonctions ne sont pas définies, le système charge les fonctions d entrée/sortie par défaut et le type des colonnes insérées ou renvoyées est le type générique RECORD. C est ce qui justifie la nécessité de faire un cast lorsque l on veut maintenant effectuer des traitements avec des fonctions propres au type. Pour les types temporels, le format de date utilisé est le format standard ISO 8601/SQL, recommandé pour PostgreSQL 9. Il propose le format suivant : :37:16 pour un d_timepoint_sec. Illustrons la création des fonctions d entrée/sortie pour le type d_timepoint_sec. Pour rappel, la création d une fonction pour un type et donc celle des fonctions d entrée/sortie, se fait à deux niveaux : 1. on implémente son comportement au bas niveau en C, ensuite on l exporte dans une librairie dynamique ; 2. ensuite on écrit le code PLpgSQL qui fait le pont entre le serveur et la librairie dynamique. Dans notre cas, la fonction d entrée prendra en paramètre une chaine de caractères (cstring) et renverra un d_timepoint_sec ; et l inverse pour la fonction de sortie. Nous donnons dans ce qui suit le prototype des fonctions C correspondantes et le code PLpgSQL associé. // Timepoint_Sec_IN extern "C" { PG_FUNCTION_INFO_V1(timepoint_sec_in);} Datum timepoint_sec_in(pg_function_args) // Timepoint_Sec_OUT extern "C" { PG_FUNCTION_INFO_V1(timepoint_sec_out);} Datum timepoint_sec_out(pg_function_args) Code PLpgSQL CREATE OR REPLACE FUNCTION Timepoint_Sec_In(cstring) RETURNS D_Timepoint_Sec AS $libdir/hermes.dll, timepoint_sec_in LANGUAGE C IMMUTABLE STRICT ; CREATE OR REPLACE FUNCTION Timepoint_Sec_Out(D_Timepoint_Sec) RETURNS cstring AS $libdir/hermes.dll, timepoint_sec_out LANGUAGE C IMMUTABLE STRICT ; La redéfinition des fonctions de traitement Les différentes fonctions de traitement ont été adaptées côté PLpgSQL pour mettre à profit les nouvelles possibilités d entrée/sortie des types qu elles manipulent. Ceci génère un gain de lisibilité, de simplicité du code et de simplicité des requêtes également. Illustrons ceci par l exemple suivant de la fonction d_timepoint_sec.f_equal. Elle prend en paramètres deux d_timepoint_sec et renvoie un booléen selon que les deux paramètres sont égaux ou non. Ancienne approche CREATE OR REPLACE FUNCTION d_timepoint_sec.f_equal(y1 integer, m1 integer, d1 integer,

55 49 h1 integer, mn1 integer, sec1 integer, y2 integer, m2 integer, d2 integer, h2 integer, mn2 integer, sec2 integer) RETURNS bool AS $libdir/hermes.dll, D_TimeP_Sec_C_equal LANGUAGE C IMMUTABLE STRICT ; Nouvelle approche CREATE OR REPLACE FUNCTION d_timepoint_sec.f_equal(d_timepoint_sec, D_Timepoint_Sec) RETURNS bool AS $libdir/hermes.dll, D_TimeP_Sec_C_equal LANGUAGE C IMMUTABLE STRICT; On constate effectivement que, dans la nouvelle approche, le nombre et le type de paramètres ont changé et la sémantique de la fonction est plus perceptible. Le type D_Timepoint_Sec est clairement un type à part entière (first citizen object) ici, plutôt qu une composition de types entiers. Création des opérateurs et classes d opérateurs Nous définissons des opérateurs et les classes d opérateurs associés à tous les types temporels. Le support spatial étant fourni par PostGIS, nous ne définissons pas d opérateurs pour les types spatiaux. L absence d opérateurs rend fastidieuse la manipulation des types. Pour de simples opérations de comparaison par exemple, il faut appeler une fonction dont le nom n est pas toujours commun. Cette complexité est d autant plus accentuée que l utilisation de ces fonctions nécessite de faire un CAST explicite sur les paramètres. Illustration Considérons l exemple suivant, représentant ce qui se faisait avant le développement des opérateurs et des fonctions d entrée/sortie. -- on crée une table t1 contenant deux attributs temporels CREATE TABLE t1( id integer; tp1 d_timepoint_sec; tp2 d_timepoint_sec ) -- on y insère deux lignes INSERT INTO t1 VALUES(1, 2010,3,4,15,27,6, 2011,12,5,6,56,36 ); INSERT INTO t1 VALUES(2, 2011,12,5,6,56,36, 2011,12,5,6,56,36 ); -- renvoyer les lignes où tp1=tp2 SELECT * FROM t1 WHERE D_timepoint_sec.f_equal(tp1::timepoint_sec,tp2::timepoint_sec); On constate la complexité de la dernière requête, pour une sémantique pourtant simple ; de même le format des données dans l ordre insert est assez ambigu. Après une définition correcte des fonctions d entrée/sortie et des opérateurs, suivie d une définition de type ; cette requête se résume simplement en ce qui suit : INSERT INTO t1 VALUES(1, :27:06, :56:36 ); INSERT INTO t1 VALUES(2, :56:36, :56:36 ); -- renvoyer les lignes où tp1=tp2 SELECT *

56 50 FROM T1 WHERE tp1=tp2; Il est à noter que de façon générale, nous avons surtout créé des opérateurs de comparaison pour les différents types. Ceci pour leur intérêt fondamental dans la manipulation des types de données spatio-temporelles. L extrait de code PLpgSQL suivant crée les opérateurs = (equal) et && (overlaps) pour le type d_timepoint_sec et la classe d opérateurs associée pour l indexation. CREATE OPERATOR = ( leftarg = D_Timepoint_Sec, rightarg =D_Timepoint_Sec, procedure = D_Timepoint_Sec.f_eq, commutator = =, negator = <>, restrict = eqsel, join = eqjoinsel ); -- Opérateurs d overlapping CREATE OPERATOR && ( leftarg = D_Timepoint_Sec, rightarg = D_Timepoint_Sec, PROCEDURE = D_Timepoint_Sec.f_overlaps, COMMUTATOR = &&, RESTRICT = areasel, JOIN = areajoinsel); -- classe d opérateurs associée CREATE OPERATOR CLASS timepoint_sec_ops DEFAULT FOR TYPE cube USING btree AS OPERATOR 1 <, OPERATOR 2 <=, OPERATOR 3 =, OPERATOR 4 >=, OPERATOR 5 > ; La déclaration de type Une fois les fonctions d entrée/sortie, les opérateurs et classes d opérateurs définis, on peut passer à la déclaration du type. Nous illustrons dans le code qui suit la création du type timepoint_sec. CREATE TYPE d_type.d_timepoint_sec ( internallength = 24, input = d_type.timepoint_sec_in, output = d_type.timepoint_sec_out, alignment = double ); Les attributs input et ouptput contiennent respectivement, les fonctions d entrée et de sortie ; l attribut internallength correspond à la taille allouée au type sur le disque.

57 Validation des données et gestion des exceptions Dans l ancienne extension, il était possible de se retrouver avec des dates invalides par exemple :60:05, dans ce cas les minutes. Ceci du fait qu aucun test de validation n était effectué sur les données en entrée et que globalement, ces dernières étaient traitées commes des types RECORD. Pour résoudre ce problème, nous avons introduit dans le code C++ des fonctions d entrée, un appel au contructeur du type correspondant dans un try{} catch(e){} ; ainsi, lorsque l utilisateur tente d insérer des données invalides dans une table avec des colonnes de types temporels, il reçoit le message d erreur approprié. Par exemple, pour le type d_timepoint_sec, nous avons l extrait suivant : try { d_timepoint_sec temp(y, m, d, h, min, sec); } catch(d_error e) { ereport(error,(errcode(errcode_data_exception),errmsg("%s",e.what()))); PG_RETURN_POINTER(NULL); } La gestion des exceptions est particulièrement importante dans un objectif d amélioration de l intéractivité entre le serveur de base de données et le programmeur, l administrateur de base de données ou les applications clientes. En effet, étant donné que le langage C (qui supporte les fonctions du moteur de base de données au bas bas niveau) est particulièrement exigeant pour ce qui est de la gestion de la mémoire, il arrive qu une instruction délicate cause un dépassement de capacité de la pile mémoire, occasionnant un arrêt brutal du serveur. Pour éviter cela, il est important d envelopper toutes les instructions sensibles dans un bloc try{} catch(e){} et de générer des messages d erreurs appropriés pour que le programmeur ou l application cliente ait une idée de la source du problème Module spatio-temporel Le module spatio-temporel est au centre de notre travail, en ce sens qu il constitue la partie qui supporte au premier plan, la représentation et l interrogation des objets mobiles. L objectif à ce niveau est de mettre en oeuvre des structures de données et des opérations, qui permettent de créer et de manipuler les données de trajectoires. A cet effet, nous avons exploité les fonctionnalités spatiales qu offre PostGIS et les fonctionnalités disponibles sur la cartouche temporelle TAU-TLL, pour implémenter les types abstraits de données mobiles présentés à la section Le module spatio-temporel se compose de deux scripts SQL : le script Hermes.sql, comportant la définition des types mobiles et les fonctions de manipulation ; le script Utilities.sql, contenant quelques fonctions de calcul utiles indépendantes des aspects spatio-temporelles (calcul de direction, calcul de vitesse, calculs angulaires, etc.) Les types de données spatio-temporelles Concrètement, nous manipulons principalement les objets mobiles dont la forme peut être assimilée à un point (un utilisateur de téléphonie mobile, un véhicule équipé

58 52 d un GPS, un animal portant un émetteur, etc.). De ce fait, ces objets mobiles sont représentés par des types moving point. Ces types moving point utilisent à leur tour, la représentation en tranches (sliced representation) présentée à la section Pour rappel, l idée de base dans la représentation en tranches, est de décomposer l évolution temporelle d une entité mobile en plusieurs phases ou tranches ; de telle sorte que, chaque tranche peut être décrite à l aide d une fonction du temps. La figure 4.2 présente les différentes phases du mouvement d un point mobile (moving point) : mouvement linéaire accéléré pour la période [t 1, t2) ; mouvement linéaire dééléré pour la période [t 4, t5) ; mouvement circulaire dans la période [t 2, t3) mouvement constant dans [t 3, t4) ; Figure 4.2 Représentation en tranches d un Moving-Point dans Hermes-MDC [28] Dans notre cas, le moving point est décomposé en unit moving point et chaque unit moving point est composé d un champ unit function décrivant le comportement (accélération, vitesse et direction), du mobile entre deux instants t 1 et t 2 correspondant à une période p. La position géographique du point mobile est décrite par des coordonnées cartésiennes, représentées par deux couples de réels représentant respectivement, la position initiale et la position finale de l objet dans une tranche donnée, indépendamment du type Point : :Geometry, proposé par PostGIS. La période p correspond au type temporel D_Period_Sec implémenté dans TAU-TLL. Ces différentes structures de données sont définies comme suit : CREATE TYPE d_type.unit_function_point AS ( xyi numeric[2],-- (xi, yi) position initiale xye numeric[2],-- (xe, ye) position finale xym numeric[2],-- (xm, ym) centre du cercle (en cas de mouvement circulaire) v integer,-- vitesse initiale (en cas d accélération) a integer,-- accélération f integer,-- angle balayé en cas de mouvement circulaire descr text -- type de mouvement(accéléré, décéléré, constant) ); CREATE TYPE d_type.unit_moving_point AS ( p d_type.d_period_sec,

59 53 ); m d_type.unit_function_point A partir de ces déclarations, le type moving point, est déclaré simplement comme un tableau de unit moving point ; de la manière suivante : CREATE TYPE d_type.moving_point AS d_type.unit_moving_point []; Pour des besoins de souplesse dans la conception des différentes opérations spatiotemporelles, nous définissons également des variantes mobiles de certains types scalaires notamment : les réels mobiles (moving real) ; les entiers mobiles (moving int) ; et les booléens mobiles (moving bool). La liste complète de ces déclarations est fournie en annexe A, pour Lhermes Les fonctions spatio-temporelles de Hermes L implémentation des opérations sur les types de données spatio-temporelles de Hermes obéit à quelques principes de base [28] : 1. concevoir les opérations de la façon la plus générique possible ; afin d éviter une prolifération des functions, il est important de regrouper les comportements similaires au sein d une même fonction ; 2. assurer une cohérence entre les opérations purement temporelles, les opérations purement spatiales et les opérations spatio-temporelles ; pour atteindre cet objectif, nous procédons en trois étapes : dans un premier temps, on recherche les opérations purement spatiales susceptibles d avoir une sémantique temporelle ; par exemple la distance euclidienne entre deux points ; ensuite on utilise les fonctionalités purement temporelles qu offre TAU-TLL, pour construire des variantes des opérations choisies à la première étape, qui sont fonction du temps. Généralement, il suffit d ajouter un argument de type D_Timepoint_Sec (un instant), à la fonction purement spatiale, pour obtenir sa valeur à un instant ; par exemple on peut s intéresser à la distance entre deux points à un instant t de la ligne du temps ; la dernière étape consiste à récupérer les opérations de l étape précédente (celles qui dépendent du temps), et à leur retirer leur dimension temporelle fixe (au sens : à un instant précis de la ligne du temps ), pour construire des variantes dites mobiles (au sens : indépendamment de tout instant de la ligne du temps ), pour ces opérations ; Cette méthode est appelée lifting. Pour revenir à l exemple de l opération distance, le processus ainsi décrit, permet simplement de construire la distance entre deux points mobiles (time varying distance), ce qui correspond à la distance spatio-temporelle, le résultat de cette opération est de type moving real ; 3. s assurer de la stabilité et de la consistance de la base de données ; l ajout de nouvelles règles et des opérations au langage d interrogation de la base de données, ne doit pas menacer l intégrité de la base de données ;

60 54 4. développer des opérations uniquement pour des phénomènes intéressants pour le domaine étudié ; dans notre cas, nous prenons principalement en compte les relations d ordre, le relations topologiques, etc. Liste de fonctions. Nous présentons par catégorie, quelques opérations importantes de la cartouche spatio-temporelle de Hermes. 1. Consistance de la base de données Cette catégorie de fonctions permet à l utilisateur de vérifier certaines contraintes liées aux objets mobiles lors de leur construction. Nous présentons deux de ces fonctions ici : boolean check sorting(moving point) Cette opération permet de s assurer que les périodes (D Period Sec) pendant lesquelles, les différents (unit moving point) qui composent le (moving point), sont chronologiquement ascendantes. Cette vérification est importante, pour s assurer de l évolution de l objet mobile dans la ligne du temps. boolean check disjoint(moving point) Cette méthode s assure que les périodes (D Period Sec) pendant lesquelles, les différents (unit moving point) qui composent le (moving point), ne se chevauchent pas. 2. Projection et Interaction des domaines spatial et temporel. Cette catégorie regroupe les fonctions courantes dans la gestion des objets mobiles. Point at instant(d Timepoint Sec, moving point). Cette opération permet d avoir la position d un point mobile à un instant donné. Cette opération est certainement la plus importante pour notre extension. En effet, elle a un double intérêt : premièrement, au point de vue conceptuel, nous avons définit la trajectoire d un objet mobile comme une fonction du temps (cf. section 2.2). Cette opération, grace à la technique de l interpolation linéaire présentée en , matérialise la continuité de cette fonction dans l espace à trois dimensions (2D + temps). La deuxième raison de son importance réside dans le fait que la plupart des autres fonctions spatio-temporelles l utilise dans leur implémentation. moving point at period(d Period Sec, moving point) Cette fonction renvoie, la partie de la trajectoire d un objet mobile correspondant à une période donnée. Le résultat de cette opération est donc de type moving point. D Period Sec [] f temp element(moving point) Cette fonction renvoie un ensemble de périodes de la ligne du temps, correspondant à la concaténation des différentes périodes pendant lesquelles les (unit moving point) qui composent le point mobile sont définis. En d autres termes, cette fonction n est rien d autre que la projection d un moving point dans le domaine temporel. La figure 4.3 illustre cette projection. moving point at temp element(d Period Sec []). Cette opération renvoie des parties de la trajectoire du mobile dans les périodes spécifiées. Point f initial(moving point). Renvoie la valeur de la fonction at instant, au tout premier instant de la trajectoire ; Point f final(moving point).

61 55 Figure 4.3 Projection d un moving point dans le domaine temporel Similaire à la fonction précédente, mais l instant considéré est la borne supérieure de la période de définition du dernier unit moving point (dernier instant de la trajectoire). LineString f trajectory(moving point). Cette fonction retourne un LineString correspondant à la projection du point mobile dans le plan cartésien. Cette projection construit segment par segment, l objet LineString en joignant les différents morceaux construits en considérant la position aux extrémités de chaque unit moving point et une position intermédiaire. Si les trois positions (les deux extrémités et la position intermédiaire) sont alignés, le morceau est un segment de droite sinon le morceau correspond à un arc. 3. Opérations de distance Hermes supporte deux opérations pour le calcul de distance entre deux objets mobiles. La première opération qui renvoie un réel, correspond à la distance euclidienne (indépendamment du temps), qui calcule la distance minimale qui sépare les deux points les plus proches entre les trajectoires de deux objets mobiles dans le plan. La deuxième opération calcule la distance entre deux mobiles à tous les instants et la valeur de retour est de type moving real. 4.4 Light Hermes (Lhermes) Insuffisances de Hermes L implémentation actuelle de Hermes, présentée à la section précedente a quelques limites : 1. La lourdeur de la cartouche temporelle TAU-TLL. Comme nous l avons souligné à la section 4.3.2, TAU-TLL implémente vingt-deux (22) types temporels ; si cela constitue une grande souplesse, en terme de modélisation ou de représentation des phénomènes temporels, ce n est pas le cas en ce qui concerne la gestion des données de trajectoires qui nous intéresse ici. En effet, on constate que dans la cartouche spatio-temporelle, seuls 2 types temporels sont effectivement utilisés : le type D_Timepoint_Sec et le type D_Period_Sec. Par ailleurs, l implantation de

62 56 ces deux types de données est particulièrement coûteuse en espace mémoire et certainement en temps d accès disque. Le premier (D_Timepoint_Sec) est représenté sur 28 octets alors que D_Period_Sec tient sur 56 octets. Etant donné que, pour la gestion des données de trajectoires, nous traitons d énormes volumes de données, avec une telle représentation, on arrive facilement à une occupation exponentielle de l espace de stockage, ajoutés à cela les coûts en temps d accès liés. Dès lors, il est nécessaire d envisager une autre façon de représenter les types Période utilisés dans la définition des différents types mobiles. Temporal PostgreSQL que nous présentons en section 4.4.2, propose une solution à ce problème. 2. Une faible utilisation des fonctionnalités PostGIS. La composante spatiale, dans la définition actuelle des points mobiles (unit moving point) de Hermes, utilise des tableaux de réels pour représenter les coordonnées géographiques d un point. Dans les fonctions spatio-temporelles, pour utiliser certaines fonctionnalités spatiales offertes par PostGIS, on est obligé de faire un cast explicit de ces coordonnées vers des objets de type Point (type Geometry de PostGIS). Dès lors, on pourrait simplement envisager de représenter la composante spatiale d un unit moving point, directement par un objet de type Point de PostGIS Temporal PostgreSQL Temporal PostgreSQL est une initiative de Jeff Davis, développeur actif de la communauté PostgreSQL. L objectif de Temporal PostgreSQL (TPg) est de mettre à la disposition de la communauté, un ensemble d outils pour la gestion du temps dans les bases de données PostgreSQL, afin de dépasser les limites constatées avec SQL-92, notamment la non prise en charge des types périodes [9]. TPg fournit les structures de données, les fonctions, les opérateurs et classes d opérateurs (pour l indexation), nécessaires à la manipulation des périodes dans PostgreSQL. Le projet ne fait pas actuellement partie de l arbre de projets de PostgreSQL, mais l arrivée de SQL-2011, va certainement suscité un souffle nouveau à ce projet. Les sources de TPg sont disponibles sur le site de la communauté des développeurs (PgFoundry) en libre télechargement Type de données dans Temporal PostgreSQL Temporal PostgreSQL utilise les types standards TimestampTZ (Timestamp with timezone), supporté par PostgreSQL. L idée est de construire un type Period (équivalent de D Period Sec), pour la gestion des périodes sur l axe du temps, en utilisant comme bornes des TimestampTZ. Ceci a un double intérêt pour nous, dans le développement de l extension : en utilisant le type standard TimestampTZ, dans la construction du type Period, on s appuie sur un standard et on peut donc bénéficier de toute la richesse des opérations standards SQL sur ce type ; le deuxième avantage vient combler l une des insuffisances relevées au point 4.4.1, à savoir la taille de l espace occupé par un D Period Sec de TAU-TLL. En effet, nous avons relevé qu un D Period Sec occupait actuellement 56 octets (28 octets pour chaque D Timepoint Sec représentant la borne), contre 16 octets pour un type Period de TPg.

63 Fonctions et opérateurs de Temporal PostgreSQL TPg supporte la plupart des opérations et opérateurs temporels standards définis au point Il a cependant été nécessaire d adapter certaines implémentations TPg, de ces fonctions standards, pour respecter certaines règles de nommage que nous utilisions dans notre extension. Mais, Il a surtout été question d étendre TPg pour supporter des fonctions spécifiques à TAU-TLL, utiles dans Hermes ; dans le même sens, nous avons dévéloppé pour TPg, des fonctions de support pour la prise en charge des index GiST. Le tableau 4.4, présente quelques fonctions de TAU-TLL et leur équivalent dans Temporal PostgreSQL. Description TAU-TLL Temporal PostgreSQL Borne inférieure de la f begin first période Borne supérieure de la f end last période Opérateur strictement f l before inférieur Opérateur strictement f b after supérieur Fonction contain f contains contains Fonction overlaps f overlaps overlaps Table 4.4 Quelques opérations de base dans TAU-TLL et Temporal PostgreSQL Type de données dans Lhermes Sur la base des insuffisances listées en section 4.4.1, nous avons défini une version légère de Hermes que nous avons appelé Light Hermes (Lhermes). Concrètement, il est question de remplacer la composante temporelle (représentée par un D Period Sec de TAU-TLL), de chaque unit moving point, par un type temporel Period de TPg. Plus loin, pour les moving point, afin d exploiter la riche bibliothèque de fonctions de PostGIS, nous représentons également la composante spatiale par un objet Geometry de PostGIS. La nouvelle définition du type moving point est : CREATE TYPE d_type.unit_function_point AS ( posi GEOMETRY,-- position initiale pose GEOMETRY,-- position finale posm GEOMETRY,-- centre du cercle (en cas de mouvement circulaire) v integer,-- vitesse initiale (en cas d accélération) a integer,-- accélération f integer,-- angle balayé en cas de mouvement circulaire descr text -- type de mouvement(accéléré, décéléré, constant) ); CREATE TYPE d_type.unit_moving_point AS ( p period, m d_type.unit_function_point

64 58 ); CREATE TYPE d_type.moving_point AS d_type.unit_moving_point[]; La définition complète des autres types moving real, moving int et moving bool, sera fournie en annexe Fonctions de Lhermes Les fonctions de Lhermes sont exactement les mêmes que celles définies pour Hermes ; moyennant cependant quelques adaptations dans leur implémentation pour exploiter au mieux, les fonctionnalités offertes d une part, par le type standard TimestampTZ, utilisé par Temporal PostgreSQL. Et les fonctionnalités offertes par le type Geometry d autre part. Finalement, nous disposons d une extension fonctionnelle et légère pour la manipulation des objets mobiles. C est cette extension que nous utilisons au chapitre suivant pour évaluer son utilisabilité et ses performances sur un cas pratique d utilisation : le benchmark BerlinMOD.

65 Chapitre 5 Cas d utilisation de Lhermes 5.1 Introduction Dans ce chapitre, nous nous intéressons à l application de notre extension à un cas pratique. Il sera en effet question d évaluer l effectivité et les performances des structures de données et des opérations développées, pour représenter et interroger un jeu de données, le benchmark BerlinMOD 1, généré à partir d une simulation de la mobilité dans la ville de Berlin. Le test est réalisé sur un ordinateur dont on peut retrouver les caractéristiques dans le tableau 5.1. Processeur RAM HDD Intel Core i7 CPU 920, 2.67 GHz. 4 Go. 120 Go. Table 5.1 Spécifications de la machine de test 5.2 Présentation du BerlinMOD Le BerlinMOD est un test de performance (benchmark) pour des systèmes de gestion de base de données spatio-temporels. C est un outil développé par des chercheurs de l université de Hagen en Allemagne dont l objectif est double [11] : 1. mettre à la disposition de la communauté scientifique, un moyen de comparer les différentes implémentations des fonctionnalités d un système de gestion de base de données spatio-temporelles. Parmi ces fonctionnalités : les types de données, les index et les opérateurs spatio-temporels ; 2. évaluer les performances des SGBD spatio-temporels Description du jeu de données Le BerlinMOD s intéresse principalement à l évaluation des performances des requêtes sur les objets mobiles de type moving point, présentés dans les chapitres 3, 4 et en section Le jeu de données du BerlinMOD est issu d une simulation de la mobilité d un échantillon d automobiles, dans le réseau routier de la ville de Berlin. Le scénario est basé sur l observation de travailleurs allant et venant entre leur domicile 1. Berlin Moving Objects Database 59

66 60 et leur lieu de travail. Les données du benchmark sont générées à partir d un script paramétrable, exécuté sur le SGBD SECONDO. Le script reçoit comme entrées, des données spatiales réelles du réseau routier de Berlin. Différents facteurs de dimensionnement (scale factor), sont utilisés pour générer le jeu de données. Dans le cadre de notre application, nous nous limiterons au facteur Le scale factor 0.05 correspond à 6 jours d observation de 447 véhicules, produisant un total de voyages (trip) et unit moving point en moyenne. Les données sont disponibles sur le site du projet[11], sous format CSV 2. Le jeu de données est composé de 8 fichiers CSV, contenant des données brutes (principalement des relevés GPS des différents mouvements de véhicules). Chaque fichier CSV est décrit par une relation. Le benchmark utilise deux approches différentes pour représenter les mouvements des véhicules : la première approche dite Object Based (OBA), représente pour chaque véhicule, l historique des positions couvrant l entiereté de la période d observation dans un fichier unique, contenant également les informations générales du véhicule (Immatriculation, Type, Modèle, etc.) ; la deuxième approche dite Trip Based (TBA), découpe l historique entière de chaque véhicule en plusieurs morceaux ou trip. L ensemble des trips d un véhicule est stocké en plusieurs tuples, dans une relation, avec une référence sur le véhicule concerné. Les informations du véhicule sont quant à elles stockées dans une autre table Relations et requêtes Pour notre application, nous utilisons l approche OBA. Les principales relations utilisées sont décrites dans le tableau 5.2. Pour pouvoir être utilisées sur les types et les Fichier Relation Description datamcar.csv datamcar{moid, Licence, Type, Informations générales sur un Model} véhicule ; clé primaire : Moid journey.csv Journey{Moid, Licence, Type, Model, stocke l historique complet Tstart, Tend, Xstart, Ystart, Xend, Yend} (sur plusieurs lignes), d un véhicule et les informations sur le véhicule, Approche OBA. queryinstants.csv QueryInstants{Id, Instant} Echantillons d instants utilisés dans les requêtes querylicences.csv QueryLicences{Moid, Licence, Informations sur les véhicules Type, Model} queryperiods.csv QueryPeriods{Id, Begin, End} Echantillons de Période utilisées dans les requêtes. querypoints.csv QueryPoints{Id, Pos x, Pos y} Echantillons de Point utilisés dans les requêtes. queryregions.csv QueryRegions{Id, Vertex x, Vertex y} Table 5.2 BerlinMOD : description des relations opérations de notre extension, ces données ont subi des transformations. 2. Comma Separated Values Echantillons de Région utilisées dans les requêtes.

67 61 En ce qui concerne les requêtes, le BerlinMOD propose une batterie de 17 requêtes basées sur des prédicats de données standard, spatiale, temporelle et spatio-temporelles. 5.3 Méthodologie de test Pour chaque requête exécutée, PostgreSQL construit un plan de requête (Query Plan). Les performances du système sont liées à ce plan de requête, pour une structure de données particulière. Pour mettre en oeuvre le plan de requête, le système utilise un planificateur complexe pour essayer d établir le meilleur plan possible pour une requête donnée. Chaque plan de requête est constitué de noeuds appelés noeud de plan qui correspondent aux principales étapes de l exécution de la requête. Par exemple, renvoyer des lignes brutes d une table (noeud hash), sélectionner des lignes répondant à une condition donnée, renvoyer les lignes issues d une jointure (noeud hash Join), effectuer un tri(noeud sort), boucler sur une condition (noeud nested loop), fusionner des tuples (noeud merge join), charger des données en mémoire (noeud materialize), etc. Le benchmark consiste à exécuter les 17 requêtes proposées par le test de performance sur l extension qu on veut évaluer. Ensuite, on compare les temps d exécution avec ceux obtenus sur SECONDO. Pour notre extension, nous avons procédé comme suit : dans un premier temps, nous exécutons chaque requête à froid (les données ne sont pas disponibles en mémoire), s en suivent deux exécutions à chaud ; puis nous calculons la moyenne des trois exécutions ; la deuxième étape consiste à exécuter sur chaque requête, la commande EXPLAIN ANALYZE de PostgreSQL, qui permet d avoir des informations (statistiques) sur l exécution d une requête, notamment le plan d exécution et les détails de coûts en temps processeur et de taille des résultats ; à l étape 3, nous comparons ces résultats avec ceux obtenus à la première étape. Le temps d exécution retenu pour la requête est le plus grand entre ces deux valeurs. Parmi les informations fournies par EXPLAIN ANALYZE, nous allons nous intéresser : au coût d exécution moyen de la requête. Le coût est mesuré en unités arbitraires, déterminés par les paramètres de coût du planificateur, sur la base du coût en unité de récupération d une page sur disque ; à la façon dont les données sont accédées dans les tables (accès séquentiel, indexé ou Bitmap) ; au nombre de lignes retournées par la requête ainsi qu à la taille (en octets) de chaque ligne ; Par ailleurs, pour visualiser le plan de requête, nous utilisons l utilitaire de visualisation fourni par le client pgadmin Environnement graphique d administration pour PostgreSQL. A la fin, nous présentons une synthèse des résultats (tableau 5.3), accompagnée d une interprétation. 5.4 Requêtes et résultats 1. Requête 1 : Enoncé : Quels sont les modèles de véhicules dont la plaque d immatriculation se trouve dans QueryLicences? Formulation SQL :

68 62 SELECT DISTINCT ll.licence AS licence, c.model AS model FROM berlinmod.datascar c, berlinmod.querylicences ll WHERE c.licence = ll.licence; Query Plan :(fig.5.1) Figure 5.1 Query Plan de la requête 1 L objectif de cette première requête est de vérifier les performances du système sur les types standards et les index. En effet, certains SGBD ont tendance à aller chercher au-delà des colonnes intervenant dans une requête donnée. Par exemple dans notre requête, un mauvais SGBD pourrait accéder (même partiellement) à la colonne trip de la table Datascar alors que cela n est absolument pas nécessaire dans cette requête. 2. Requête 2 : Enoncé : Combien de véhicules sont de type passager? Formulation SQL : SELECT COUNT (licence) FROM berlinmod.datascar WHERE type = passenger ; Query Plan :(Fig.5.2) L objectif est le même que celui de la requête 1, c est-à-dire tester les fonction- Figure 5.2 Query Plan de la requête 2 nalités standards du SGBD. Une particularité cependant, c est l utilisation d un prédicat de sélection et d une fonction d agrégation. 3. Requête 3 : Enoncé : Par quels Points sont passés les véhicules dont la plaque d immatriculation est stockée dans QueryLicences1 (les 10 premiers tuples de QueryLicences),

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

Chapitre VIII. Les bases de données. Orientées Objet. Motivation Chapitre VIII Motivation Le modèle relationnel connaît un très grand succès et s avère très adéquat pour les applications traditionnelles des bases de données (gestion) Les bases de données Orientées Objet

Plus en détail

Chapitre 0 Introduction à la cinématique

Chapitre 0 Introduction à la cinématique Chapitre 0 Introduction à la cinématique Plan Vitesse, accélération Coordonnées polaires Exercices corrigés Vitesse, Accélération La cinématique est l étude du mouvement Elle suppose donc l existence à

Plus en détail

Le langage SQL Rappels

Le langage SQL Rappels Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,

Plus en détail

Fonctions de plusieurs variables

Fonctions de plusieurs variables Module : Analyse 03 Chapitre 00 : Fonctions de plusieurs variables Généralités et Rappels des notions topologiques dans : Qu est- ce que?: Mathématiquement, n étant un entier non nul, on définit comme

Plus en détail

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée. ANALYSE 5 points Exercice 1 : Léonie souhaite acheter un lecteur MP3. Le prix affiché (49 ) dépasse largement la somme dont elle dispose. Elle décide donc d économiser régulièrement. Elle a relevé qu elle

Plus en détail

Cours IV Mise en orbite

Cours IV Mise en orbite Introduction au vol spatial Cours IV Mise en orbite If you don t know where you re going, you ll probably end up somewhere else. Yogi Berra, NY Yankees catcher v1.2.8 by-sa Olivier Cleynen Introduction

Plus en détail

Rappel sur les bases de données

Rappel sur les bases de données Rappel sur les bases de données 1) Généralités 1.1 Base de données et système de gestion de base de donnés: définitions Une base de données est un ensemble de données stockées de manière structurée permettant

Plus en détail

TSTI 2D CH X : Exemples de lois à densité 1

TSTI 2D CH X : Exemples de lois à densité 1 TSTI 2D CH X : Exemples de lois à densité I Loi uniforme sur ab ; ) Introduction Dans cette activité, on s intéresse à la modélisation du tirage au hasard d un nombre réel de l intervalle [0 ;], chacun

Plus en détail

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes

Plus en détail

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007 Vision industrielle et télédétection - Détection d ellipses Guillaume Martinez 17 décembre 2007 1 Table des matières 1 Le projet 3 1.1 Objectif................................ 3 1.2 Les choix techniques.........................

Plus en détail

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/ Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : cinzia.digiusto@gmail.com webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/

Plus en détail

Nom de l application

Nom de l application Ministère de l Enseignement Supérieur et de la Recherche Scientifique Direction Générale des Etudes Technologiques Institut Supérieur des Etudes Technologiques de Gafsa Département Technologies de l Informatique

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

Chapitre 2 : Caractéristiques du mouvement d un solide

Chapitre 2 : Caractéristiques du mouvement d un solide Chapitre 2 : Caractéristiques du mouvement d un solide I Rappels : Référentiel : Le mouvement d un corps est décris par rapport à un corps de référence et dépend du choix de ce corps. Ce corps de référence

Plus en détail

Session Usager, Infrastructures, Réseaux sociaux et Transports intelligents

Session Usager, Infrastructures, Réseaux sociaux et Transports intelligents Session Usager, Infrastructures, Réseaux sociaux et Transports intelligents Président : Benoît CLOCHERET Artelia Modérateur : Christophe DESNOUAILLES Cerema Données mobiles : De la mobilité 2.0 au PDU

Plus en détail

Annexe commune aux séries ES, L et S : boîtes et quantiles

Annexe commune aux séries ES, L et S : boîtes et quantiles Annexe commune aux séries ES, L et S : boîtes et quantiles Quantiles En statistique, pour toute série numérique de données à valeurs dans un intervalle I, on définit la fonction quantile Q, de [,1] dans

Plus en détail

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes. Promotion X 004 COURS D ANALYSE DES STRUCTURES MÉCANIQUES PAR LA MÉTHODE DES ELEMENTS FINIS (MEC 568) contrôle non classant (7 mars 007, heures) Documents autorisés : polycopié ; documents et notes de

Plus en détail

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. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre Bases de Données Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre Synthèse : conception de BD langage de modélisation famille de SGBD SGBD Analyse du

Plus en détail

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

Cours Base de données relationnelles. M. Boughanem, IUP STRI Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),

Plus en détail

pour quoi faire? Introduction au Séminaire «Véhicules traceurs» Toulouse le 10/12/2010 03/01/2011 François PEYRET LCPC/MACS/GEOLOC

pour quoi faire? Introduction au Séminaire «Véhicules traceurs» Toulouse le 10/12/2010 03/01/2011 François PEYRET LCPC/MACS/GEOLOC Les véhicules v traceurs : pour quoi faire? Introduction au Séminaire «Véhicules traceurs» Toulouse le 10/12/2010 03/01/2011 François PEYRET LCPC/MACS/GEOLOC 1 Plan de l exposl exposé Qu est-ce qu un véhicule

Plus en détail

Bases de données. Chapitre 1. Introduction

Bases de données. Chapitre 1. Introduction Références : Bases de données Pierre Wolper Email : pw@montefiore.ulg.ac.be URL : http : //www.montefiore.ulg.ac.be/~pw/ http : //www.montefiore.ulg.ac.be/ ~pw/cours/bd.html Henry F. Korth, Abraham Silberschatz,

Plus en détail

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

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude INF 1250 INTRODUCTION AUX BASES DE DONNÉES Guide d étude Sous la direction de Olga Mariño Télé-université Montréal (Québec) 2011 INF 1250 Introduction aux bases de données 2 INTRODUCTION Le Guide d étude

Plus en détail

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme? Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version

Plus en détail

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme? Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version

Plus en détail

Chafa Azzedine - Faculté de Physique U.S.T.H.B 1

Chafa Azzedine - Faculté de Physique U.S.T.H.B 1 Chafa Azzedine - Faculté de Physique U.S.T.H.B 1 Définition: La cinématique est une branche de la mécanique qui étudie les mouements des corps dans l espace en fonction du temps indépendamment des causes

Plus en détail

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas

Plus en détail

Notes de cours : bases de données distribuées et repliquées

Notes de cours : bases de données distribuées et repliquées Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées

Plus en détail

INFO 364 : Bases de Données Projet Professeur : Esteban Zimányi Assistants : Pierre Stadnik et Mohammed Minout Année Académique : 2004-2005

INFO 364 : Bases de Données Projet Professeur : Esteban Zimányi Assistants : Pierre Stadnik et Mohammed Minout Année Académique : 2004-2005 Université Libre de Bruxelles Faculté des Sciences Appliquées & Faculté des Sciences INFO 364 : Bases de Données Projet Professeur : Esteban Zimányi Assistants : Pierre Stadnik et Mohammed Minout Année

Plus en détail

TP 7 : oscillateur de torsion

TP 7 : oscillateur de torsion TP 7 : oscillateur de torsion Objectif : étude des oscillations libres et forcées d un pendule de torsion 1 Principe général 1.1 Définition Un pendule de torsion est constitué par un fil large (métallique)

Plus en détail

TP Blender n 2 : Importation d un modèle SketchUp et animation

TP Blender n 2 : Importation d un modèle SketchUp et animation TP Blender n 2 : Importation d un modèle SketchUp et animation Service de Conception Géométrique Université de Liège Aérospatiale et Mécanique Conçu avec Blender 2.66 et SketchUp 8 De SketchUp à Blender

Plus en détail

INTRODUCTION AUX METHODES D INGENIERIE DES DONNEES DIRIGEE PAR LES MODELES

INTRODUCTION AUX METHODES D INGENIERIE DES DONNEES DIRIGEE PAR LES MODELES INTRODUCTION AUX METHODES D INGENIERIE DES DONNEES DIRIGEE PAR LES MODELES Les contenus de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et

Plus en détail

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

Le langage SQL pour Oracle - partie 1 : SQL comme LDD Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1 SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger

Plus en détail

Introduction aux SGBDR

Introduction aux SGBDR 1 Introduction aux SGBDR Pour optimiser une base Oracle, il est important d avoir une idée de la manière dont elle fonctionne. La connaissance des éléments sous-jacents à son fonctionnement permet de mieux

Plus en détail

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être

Plus en détail

Deux disques dans un carré

Deux disques dans un carré Deux disques dans un carré Table des matières 1 Fiche résumé 2 2 Fiche élève Seconde - version 1 3 2.1 Le problème............................................... 3 2.2 Construction de la figure avec geogebra...............................

Plus en détail

Création et Gestion des tables

Création et Gestion des tables Création et Gestion des tables Version 1.0 Z Grégory CASANOVA 2 Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les tables... 5 3.1 Les types de données... 5 3.1.1 Les types de données Sql Server... 5

Plus en détail

1 Introduction et installation

1 Introduction et installation TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on

Plus en détail

I4 : Bases de Données

I4 : Bases de Données I4 : Bases de Données Passage de UML au modèle relationnel Georges LOUIS Département Réseaux et Télécommunications Université de La Rochelle Module I4 2008-2009 1 G.Louis Sommaire 1 Des classes aux tables

Plus en détail

Comment se servir de cet ouvrage? Chaque chapitre présente une étape de la méthodologie

Comment se servir de cet ouvrage? Chaque chapitre présente une étape de la méthodologie Partie I : Séries statistiques descriptives univariées (SSDU) A Introduction Comment se servir de cet ouvrage? Chaque chapitre présente une étape de la méthodologie et tous sont organisés selon le même

Plus en détail

Créer le schéma relationnel d une base de données ACCESS

Créer le schéma relationnel d une base de données ACCESS Utilisation du SGBD ACCESS Polycopié réalisé par Chihab Hanachi et Jean-Marc Thévenin Créer le schéma relationnel d une base de données ACCESS GENERALITES SUR ACCESS... 1 A PROPOS DE L UTILISATION D ACCESS...

Plus en détail

Bases de Données. Plan

Bases de Données. Plan Université Mohammed V- Agdal Ecole Mohammadia d'ingénieurs Rabat Bases de Données Mr N.EL FADDOULI 2014-2015 Plan Généralités: Définition de Bases de Données Le modèle relationnel Algèbre relationnelle

Plus en détail

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique DOMAINE P3.C3.D1. Pratiquer une démarche scientifique et technologique, résoudre des

Plus en détail

NF26 Data warehouse et Outils Décisionnels Printemps 2010

NF26 Data warehouse et Outils Décisionnels Printemps 2010 NF26 Data warehouse et Outils Décisionnels Printemps 2010 Rapport Modélisation Datamart VU Xuan Truong LAURENS Francis Analyse des données Avant de proposer un modèle dimensionnel, une analyse exhaustive

Plus en détail

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Chapitre 5 LE MODELE ENTITE - ASSOCIATION Chapitre 5 LE MODELE ENTITE - ASSOCIATION 1 Introduction Conception d une base de données Domaine d application complexe : description abstraite des concepts indépendamment de leur implémentation sous

Plus en détail

Chapitre 1 Cinématique du point matériel

Chapitre 1 Cinématique du point matériel Chapitre 1 Cinématique du point matériel 7 1.1. Introduction 1.1.1. Domaine d étude Le programme de mécanique de math sup se limite à l étude de la mécanique classique. Sont exclus : la relativité et la

Plus en détail

Nom : Groupe : Date : 1. Quels sont les deux types de dessins les plus utilisés en technologie?

Nom : Groupe : Date : 1. Quels sont les deux types de dessins les plus utilisés en technologie? Nom : Groupe : Date : Verdict Chapitre 11 1 La communication graphique Pages 336 et 337 1. Quels sont les deux types de dessins les plus utilisés en technologie? Les dessins de fabrication. Les schémas.

Plus en détail

Analyse de la vidéo. Chapitre 4.1 - La modélisation pour le suivi d objet. 10 mars 2015. Chapitre 4.1 - La modélisation d objet 1 / 57

Analyse de la vidéo. Chapitre 4.1 - La modélisation pour le suivi d objet. 10 mars 2015. Chapitre 4.1 - La modélisation d objet 1 / 57 Analyse de la vidéo Chapitre 4.1 - La modélisation pour le suivi d objet 10 mars 2015 Chapitre 4.1 - La modélisation d objet 1 / 57 La représentation d objets Plan de la présentation 1 La représentation

Plus en détail

et les Systèmes Multidimensionnels

et les Systèmes Multidimensionnels Le Data Warehouse et les Systèmes Multidimensionnels 1 1. Définition d un Datawarehouse (DW) Le Datawarehouse est une collection de données orientées sujet, intégrées, non volatiles et historisées, organisées

Plus en détail

Logiciel XLSTAT version 7.0. 40 rue Damrémont 75018 PARIS

Logiciel XLSTAT version 7.0. 40 rue Damrémont 75018 PARIS Logiciel XLSTAT version 7.0 Contact : Addinsoft 40 rue Damrémont 75018 PARIS 2005-2006 Plan Présentation générale du logiciel Statistiques descriptives Histogramme Discrétisation Tableau de contingence

Plus en détail

4.2 Unités d enseignement du M1

4.2 Unités d enseignement du M1 88 CHAPITRE 4. DESCRIPTION DES UNITÉS D ENSEIGNEMENT 4.2 Unités d enseignement du M1 Tous les cours sont de 6 ECTS. Modélisation, optimisation et complexité des algorithmes (code RCP106) Objectif : Présenter

Plus en détail

Structuration des décisions de jurisprudence basée sur une ontologie juridique en langue arabe

Structuration des décisions de jurisprudence basée sur une ontologie juridique en langue arabe Structuration des décisions de jurisprudence basée sur une ontologie juridique en langue arabe Karima Dhouib, Sylvie Després Faiez Gargouri ISET - Sfax Tunisie, BP : 88A Elbustan ; Sfax karima.dhouib@isets.rnu.tn,

Plus en détail

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

Utilisation du SIG dans une entreprise industrielle pour l analyse et la prise de décision 309 Schedae, 2007 Prépublication n 47 Fascicule n 2 Utilisation du SIG dans une entreprise industrielle pour l analyse et la prise de décision Mohamed Najeh Lakhoua UR : Système, Énergétique, Productique

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

Bases de Données Avancées

Bases de Données Avancées 1/26 Bases de Données Avancées DataWareHouse Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin,

Plus en détail

Cours de Mécanique du point matériel

Cours de Mécanique du point matériel Cours de Mécanique du point matériel SMPC1 Module 1 : Mécanique 1 Session : Automne 2014 Prof. M. EL BAZ Cours de Mécanique du Point matériel Chapitre 1 : Complément Mathématique SMPC1 Chapitre 1: Rappels

Plus en détail

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Mickaël Bergem 25 juin 2014 Maillages et applications 1 Table des matières Introduction 3 1 La modélisation numérique de milieux urbains

Plus en détail

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

Calculer avec Sage. Revision : 417 du 1 er juillet 2010 Calculer avec Sage Alexandre Casamayou Guillaume Connan Thierry Dumont Laurent Fousse François Maltey Matthias Meulien Marc Mezzarobba Clément Pernet Nicolas Thiéry Paul Zimmermann Revision : 417 du 1

Plus en détail

Extraction d informations stratégiques par Analyse en Composantes Principales

Extraction d informations stratégiques par Analyse en Composantes Principales Extraction d informations stratégiques par Analyse en Composantes Principales Bernard DOUSSET IRIT/ SIG, Université Paul Sabatier, 118 route de Narbonne, 31062 Toulouse cedex 04 dousset@irit.fr 1 Introduction

Plus en détail

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Classe de terminale de la série Sciences et Technologie du Management et de la Gestion Préambule Présentation Les technologies de l information

Plus en détail

Les correcteurs accorderont une importance particulière à la rigueur des raisonnements et aux représentations graphiques demandées.

Les correcteurs accorderont une importance particulière à la rigueur des raisonnements et aux représentations graphiques demandées. Les correcteurs accorderont une importance particulière à la rigueur des raisonnements et aux représentations graphiques demandées. 1 Ce sujet aborde le phénomène d instabilité dans des systèmes dynamiques

Plus en détail

Interaction milieux dilués rayonnement Travaux dirigés n 2. Résonance magnétique : approche classique

Interaction milieux dilués rayonnement Travaux dirigés n 2. Résonance magnétique : approche classique PGA & SDUEE Année 008 09 Interaction milieux dilués rayonnement Travaux dirigés n. Résonance magnétique : approche classique Première interprétation classique d une expérience de résonance magnétique On

Plus en détail

1/ Présentation de SQL Server :

1/ Présentation de SQL Server : Chapitre II I Vue d ensemble de Microsoft SQL Server Chapitre I : Vue d ensemble de Microsoft SQL Server Module: SQL server Semestre 3 Année: 2010/2011 Sommaire 1/ Présentation de SQL Server 2/ Architerture

Plus en détail

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

Bases de Données relationnelles et leurs systèmes de Gestion III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation

Plus en détail

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

Plus en détail

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

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 303 Schedae, 2007 Prépublication n 46 Fascicule n 2 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 Samya Sagar, Mohamed Ben Ahmed Laboratoire

Plus en détail

Industrie des cartes de paiement (PCI) Norme de sécurité des données Récapitulatif des modifications de

Industrie des cartes de paiement (PCI) Norme de sécurité des données Récapitulatif des modifications de Industrie des cartes de paiement (PCI) Norme de sécurité des données Récapitulatif des modifications de la norme PCI DSS entre les versions 2.0 et 3.0 Novembre 2013 Introduction Ce document apporte un

Plus en détail

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

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions Exemple accessible via une interface Web Une base de données consultable en ligne : Bases de données et systèmes de gestion de bases de données The Trans-atlantic slave trade database: http://www.slavevoyages.org/tast/index.faces

Plus en détail

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

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Les Géodatabases en 9.2

Les Géodatabases en 9.2 Les Géodatabases en 9.2 Session Technique Géodatabase 9.2 Versailles SIG 2007 Nouveautés dans les Géodatabases Géodatabase adaptée À la taille de l entreprise À l architecture déployée Aux processus de

Plus en détail

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...) Avant-propos 1. À qui s'adresse ce livre? 15 2. Pré-requis 15 3. Objectifs du livre 16 4. Notations 17 Introduction à la Business Intelligence 1. Du transactionnel au décisionnel 19 2. Business Intelligence

Plus en détail

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1 La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1 La licence Mathématiques et Economie-MASS de l Université des Sciences Sociales de Toulouse propose sur les trois

Plus en détail

Simulation de Réseaux Ferroviaires

Simulation de Réseaux Ferroviaires Le projet de recherche Modélisation orientée objets dans le domaine ferroviaire a été conduit par l Institut des Transports et de Construction Routière et Ferroviaire (IVT, Institut für Verkehrsplanung,

Plus en détail

Lecture graphique. Table des matières

Lecture graphique. Table des matières Lecture graphique Table des matières 1 Lecture d une courbe 2 1.1 Définition d une fonction.......................... 2 1.2 Exemple d une courbe........................... 2 1.3 Coût, recette et bénéfice...........................

Plus en détail

Partie II Cours 3 (suite) : Sécurité de bases de données

Partie II Cours 3 (suite) : Sécurité de bases de données Partie II Cours 3 (suite) : Sécurité de bases de données ESIL Université de la méditerranée Odile.Papini@esil.univ-mrs.fr http://odile.papini.perso.esil.univmed.fr/sources/ssi.html Plan du cours 1 Introduction

Plus en détail

Concevoir et déployer un data warehouse

Concevoir et déployer un data warehouse Concevoir et déployer un data warehouse Ralph Kimball Éditions Eyrolles ISBN : 2-212-09165-6 2000 2 Le cycle de vie dimensionnel Avant d étudier de plus près les spécificités de la conception, du développement

Plus en détail

Créer et partager des fichiers

Créer et partager des fichiers Créer et partager des fichiers Le rôle Services de fichiers... 246 Les autorisations de fichiers NTFS... 255 Recherche de comptes d utilisateurs et d ordinateurs dans Active Directory... 262 Délégation

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

Plus en détail

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

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

Introduction au Système de Gestion de Base de Données et aux Base de Données Introduction au Système de Gestion de Base de Données et aux Base de Données Formation «Gestion des données scientifiques : stockage et consultation en utilisant des bases de données» 24 au 27 /06/08 Dernière

Plus en détail

Les bases de données

Les bases de données Les bases de données Introduction aux fonctions de tableur et logiciels ou langages spécialisés (MS-Access, Base, SQL ) Yves Roggeman Boulevard du Triomphe CP 212 B-1050 Bruxelles (Belgium) Idée intuitive

Plus en détail

LES DECIMALES DE π BERNARD EGGER

LES DECIMALES DE π BERNARD EGGER LES DECIMALES DE π BERNARD EGGER La génération de suites de nombres pseudo aléatoires est un enjeu essentiel pour la simulation. Si comme le dit B Ycard dans le cours écrit pour le logiciel SEL, «Paradoxalement,

Plus en détail

Introduction à l informatique temps réel Pierre-Yves Duval (cppm)

Introduction à l informatique temps réel Pierre-Yves Duval (cppm) Introduction à l informatique temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 -Définition et problématique - Illustration par des exemples -Automatisme:

Plus en détail

Modélisation et Simulation

Modélisation et Simulation Cours de modélisation et simulation p. 1/64 Modélisation et Simulation G. Bontempi Département d Informatique Boulevard de Triomphe - CP 212 http://www.ulb.ac.be/di Cours de modélisation et simulation

Plus en détail

LIDAR LAUSANNE 2012. Nouvelles données altimétriques sur l agglomération lausannoise par technologie laser aéroporté et ses produits dérivés

LIDAR LAUSANNE 2012. Nouvelles données altimétriques sur l agglomération lausannoise par technologie laser aéroporté et ses produits dérivés LIDAR LAUSANNE 2012 Nouvelles données altimétriques sur l agglomération lausannoise par technologie laser aéroporté et ses produits dérivés LIDAR 2012, nouveaux modèles altimétriques 1 Affaire 94022 /

Plus en détail

DÉPLOIEMENT D UN ERP. Cours dispensé pour les L3 MSI Elaboré par : Mehdi M tir 2013/2014 Chapitre 3 : Modélisation des besoins

DÉPLOIEMENT D UN ERP. Cours dispensé pour les L3 MSI Elaboré par : Mehdi M tir 2013/2014 Chapitre 3 : Modélisation des besoins 1 DÉPLOIEMENT D UN ERP Cours dispensé pour les L3 MSI Elaboré par : Mehdi M tir 2013/2014 Chapitre 3 : Modélisation des besoins LA CONDUITE D UN PROJET ERP La conduite d un projet d ERP est différente

Plus en détail

AUTRES ASPECTS DU GPS. Partie I : tolérance de Battement Partie II : tolérancement par frontières

AUTRES ASPECTS DU GPS. Partie I : tolérance de Battement Partie II : tolérancement par frontières AUTRES ASPECTS DU GPS Partie I : tolérance de Battement Partie II : tolérancement par frontières 1 Partie I Tolérance de battement Défaut de Battement Défautconjuguéde forme, orientation et position, constatélorsde

Plus en détail

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e : CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE Projet 2 Gestion des services enseignants G r o u p e : B E L G H I T Y a s m i n e S A N C H E Z - D U B R O N T Y u r i f e r M O N T A Z E R S i

Plus en détail

FORMATION CONTINUE SUR L UTILISATION D EXCEL DANS L ENSEIGNEMENT Expérience de l E.N.S de Tétouan (Maroc)

FORMATION CONTINUE SUR L UTILISATION D EXCEL DANS L ENSEIGNEMENT Expérience de l E.N.S de Tétouan (Maroc) 87 FORMATION CONTINUE SUR L UTILISATION D EXCEL DANS L ENSEIGNEMENT Expérience de l E.N.S de Tétouan (Maroc) Dans le cadre de la réforme pédagogique et de l intérêt que porte le Ministère de l Éducation

Plus en détail

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

Présentation du module Base de données spatio-temporelles Présentation du module Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes

Plus en détail

UML et les Bases de Données

UML et les Bases de Données CNAM UML et les Bases de Données UML et les Bases de Données. Diagramme de classes / diagramme d objets (UML)...2.. Premier niveau de modélisation des données d une application...2.2. Les éléments de modélisation...2.2..

Plus en détail

COMPTE-RENDU «MATHS EN JEANS» LYCEE OZENNE Groupe 1 : Comment faire une carte juste de la Terre?

COMPTE-RENDU «MATHS EN JEANS» LYCEE OZENNE Groupe 1 : Comment faire une carte juste de la Terre? Claire FORGACZ Marion GALLART Hasnia GOUDJILI COMPTERENDU «MATHS EN JEANS» LYCEE OZENNE Groupe 1 : Comment faire une carte juste de la Terre? Si l on se pose la question de savoir comment on peut faire

Plus en détail

Rapport de stage d initiation

Rapport de stage d initiation Ministère de l enseignement supérieur et de la recherche scientifique Direction Générale des Études Technologiques Institut Supérieur des Etudes Technologiques de SILIANA Département Technologies de l

Plus en détail

Statistiques Descriptives à une dimension

Statistiques Descriptives à une dimension I. Introduction et Définitions 1. Introduction La statistique est une science qui a pour objectif de recueillir et de traiter les informations, souvent en très grand nombre. Elle regroupe l ensemble des

Plus en détail

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION DES NOMBRES par Jean-Luc BREGEON professeur formateur à l IUFM d Auvergne LE PROBLÈME DE LA REPRÉSENTATION DES NOMBRES On ne conçoit pas un premier enseignement

Plus en détail

Le Langage SQL version Oracle

Le Langage SQL version Oracle Université de Manouba École Supérieure d Économie Numérique Département des Technologies des Systèmes d Information Le Langage SQL version Oracle Document version 1.1 Mohamed Anis BACH TOBJI anis.bach@isg.rnu.tn

Plus en détail

WHITE PAPER Une revue de solution par Talend & Infosense

WHITE PAPER Une revue de solution par Talend & Infosense WHITE PAPER Une revue de solution par Talend & Infosense Master Data Management pour les données de référence dans le domaine de la santé Table des matières CAS D ETUDE : COLLABORATION SOCIALE ET ADMINISTRATION

Plus en détail