GEO7531 STRUCTURES DES DONNÉES APPLIQUÉES AUX SIG
|
|
|
- Denise Morin
- il y a 10 ans
- Total affichages :
Transcription
1 GEO7531 STRUCTURES DES DONNÉES APPLIQUÉES AUX SIG Notes de cours Automne 2005 Préparé par Benoît St-Onge Professeur Département de géographie Université du Québec à Montréal
2 Chapitre 1 : Introduction 1.1 De l utilité de correctement structurer les données à référence spatiale Les systèmes d information géographique servent à enregistrer des informations spatiales afin qu elles puissent être exploitées le plus efficacement possible, c est-à-dire pour : o que l on puisse la questionner de multiple façons, notamment en mettant à profit les liens entre les éléments d information, o que l on puisse obtenir rapidement réponse à nos questions (requêtes), o que l on puisse s assurer que les réponses sont complètes, ne contiennent pas de redondances, et dans la mesure du possible soient dépourvues d erreurs grossières, o que l on puisse facilement mettre à jour l information. Pour toutes ces raisons, il est nécessaire de réfléchir à l organisation des informations au sein des bases de données à référence spatiale. Heureusement, de nombreuses règles nous guident dans l élaboration de telles structures de données. L étude de ces règles forme l essentiel du présent cours. 1.2 La base de données comme modèle de la réalité géographique Un système d'information géographique représente sous une forme simplifiée un sous-ensemble de la réalité : o un sous-ensemble : parce qu'on ne peut tout représenter, il faut choisir les entités géographiques pertinentes, o un sous-ensemble simplifié car il est toujours nécessaire de schématiser la réalité. Les SIG reposent, explicitement ou implicitement sur des modèles. Les modèles sont à tout le moins implicites, c'est-à-dire qu'ils existent dans l'esprit du concepteur et président à la représentation informatique de la réalité géographique même s'ils n'ont pas été développés volontairement, ni même parfois consciemment. La conception du SIG débute alors avec la structuration, ce qui équivaudrait à concevoir une maison en la construisant physiquement sans en avoir auparavant tracé les plans. Il est toutefois préférable de modéliser la réalité explicitement avant de structurer. Les modèles explicites se présentent habituellement sous forme de schémas. Cependant, aucun système d'information ne peut fonctionner à partir de son modèle conceptuel seulement. Les modèles ne sont que des constructions logiques qui servent à guider précisément la structuration du système. Ils doivent être mis en œuvre selon une structure logique implantée informatiquement. Département de géographie / Université du Québec à Montréal 1
3 Les deux types essentiels de modèles composant les SIG sont : o le modèle cartographique qui illustre par quel type d'entité graphique (points, lignes, polygones, etc.) sont représentées les entités géographiques et comment ces entités seront réparties sur différentes couches, o le modèle conceptuel qui illustre les différentes entités (conceptions de l'esprit, géographiques ou non : lac, route, personne), et les relations qui existent entre ces dernières (l'immeuble A appartient à la personne B). 1.3 Un exemple simple d un modèle et d une structure de données L'exemple qui suit vise à illustrer simplement les aspects structuraux des SIG afin de donner une vue d'ensemble sur les activités reliées à la structuration ainsi qu'à laisser entrevoir les effets de l'organisation des informations sur les possibilités de requêtes effectuées sur la base de données structurée. Le mini-sig donné en exemple a pour but d'enregistrer les informations sur les principaux aspects humains et physiques des municipalités formant une MRC (municipalité régionale de comté). Le schéma suivant illustre les différentes couches qui le composent. Les municipalités y sont représentées par des polygones complexes (zone composée de plusieurs parcelles ou comportant des trous) aux parties parfois disjointes (par exemple, la municipalité de Boucherville est composée de plusieurs îles en plus du territoire principal). Les lots cadastraux sont représentés par des polygones simples. Les rivières sont représentées par des chaînes complètes (ligne brisée comportant certains attributs topologiques). Les routes sont également représentées par des chaînes complètes. Le relief est représenté par une couche matricielle où chaque élément (ou "pixel") est une valeur d'élévation en mètres. Département de géographie / Université du Québec à Montréal 2
4 Le schéma conceptuel se présente de la façon suivante : Il est composé d'entités (rectangles) et de relations (ellipses). Des attributs peuvent se rattacher aux uns et aux autres. On y voit aussi les cardinalités qui indiquent les nombres minimum et maximum d'individus d'un type d'entité pouvant se rattacher à une autre. Verbalisons par exemple la relation Bâtiment-Lot : " Un bâtiment est dans un lot ". Précisons cette expression en tenant compte des cardinalités : un bâtiment est situé dans au moins un lot et au plus dans un lot, ce qui revient à dire "un bâtiment ne peut chevaucher deux ou plusieurs lots". On peut également lire la relation dans l'autre sens en exprimant la relation inverse : un lot contient des bâtiments, ou plus précisément "un lot contient de 0 à N bâtiments", N étant un nombre variable selon le lot. Ceci indique qu'il existe peut-être des lots ne contenant pas de bâtiments. Il est à noter que le relief n'apparaît pas dans le schéma. La raison en est que cette couche se présente sous forme matricielle, structure où le concept d'entité, ou d'objet, cède la place à une surface continue, sous forme d image. Ceci n'empêche pas que l'on puisse intégrer le relief dans la base de données mais demande que l'on fasse appel à des méthodes et outils différents. Le schéma conceptuel est principalement un outil de conception et de communication. Il doit être traduit par une structure. Le schéma conceptuel présenté ci-haut a été traduit par la structure relationnelle suivante. Département de géographie / Université du Québec à Montréal 3
5 Cette image de la structure a été réalisée à l'aide du logiciel Microsoft Access On y remarque que les entités ont été traduites par des tables. Les liens entre les tables se font grâce à des champs reliés et sont indiqués par des lignes. Les cardinalités se résument, dans le logiciel Microsoft Access, à 1 et plusieurs (indiqué par le symbole de l'infinité). On note que dans certains cas des relations se sont traduites par des tables. C'est le cas de la relation entre "Personne" et "Lot". La relation est devenue une table "Personne-Lot". Les tables, composées de lignes et de colonnes et comportant des données (les données ne sont pas montrées ici), donnent la possibilité d'interroger la base de données. Exemple de requête en SQL SELECT numéro, valeur FROM Bâtiment WHERE valeur > 100,000; "Afficher le numéro et la valeur des bâtiments dont la valeur est supérieure à $100,000" Des requêtes beaucoup plus complexes peuvent être effectuées en exploitant les liens entre les tables, En résumé, la réalisation d'un système d'information géographique demande de modéliser la réalité, et de traduire le modèle conceptuel par une structure dans laquelle seront placées les données. Le type de requêtes que l'on voudra pouvoir effectuer est un des facteurs importants qui déterminera la structure de la base de données. Département de géographie / Université du Québec à Montréal 4
6 1.4 Des paradigmes géorelationnel et objet L évolution des système de gestion de base de données (SGBD) a connu au cours des dernières trente années l évolution suivante : o SGBD hiérarchiques o SGBD réseau o SGBD relationnels o SGDB objet Il avait été annoncé par certains que les SGBD objet supplanteraient les SGBD réseau et hiérarchiques, mais on voit plutôt aujourd hui les système relationnels et objets se côtoyer et de nombreux systèmes hybrides. Les SIG véritablement orientés objet sont encore assez rares, malgré les avantages que présente le modèle objet dans le cas particulier des données à référence spatiale. Nous insisterons donc sur le modèle relationnel mais aborderons également les SGBD objet. Département de géographie / Université du Québec à Montréal 5
7 Chapitre 2 : La modélisation géorelationnelle 2.1 La modélisation cartographique La modélisation de la réalité constitue la première étape de conception d'un système d'information. Dans le cas des systèmes d'information géographique, il faut essentiellement prévoir comment les différents éléments de la réalité reconnus comme objets peuvent être rassemblés en classes d entités, comment ces dernières seront réparties en couches, par quel type d'éléments graphiques (ou cartographiques) elles seront représentées, et comment elles seront logiquement reliées entre elles. Le chapitre se divise en trois parties : d'abord on y traitera de la modélisation cartographique (couches et éléments graphiques) puis on y abordera la modélisation entité-relation pour terminer sur une discussion des méthodes qui permettent de traduire la réalité en schéma entitérelation. La modélisation cartographique peut s'appliquer aux couches vectorielles ou matricielles mais est beaucoup plus développée dans le premier cas. Ceci tient au fait que la notion d'objet n'existe pas à proprement parler dans le mode matriciel. Le choix de représentation par un objet cartographique ne se présente donc pas directement. L'essentiel de la section 2.1 est pour cette raison consacré à la modélisation en mode vectoriel Notion de couche d information Qu'est-ce qu'une couche? Une couche est un plan réunissant normalement des éléments géographiques de même type. La notion de couche peut être associée, par exemple, à celle des couches transparentes sur lesquelles on traçait les différents éléments retrouvés sur les cartes topographiques. Une couche peut aussi être vue comme un compartiment logique du système d'information. Ainsi chaque couche représente un sous-ensemble " thématique " des informations retrouvées dans le SIG. On dit qu'il s'agit d'un plan car dans la majorité des cas, les données géographiques incorporées dans les SIG sont bidimensionnelles. Les limites extérieures de la couche (sa périphérie) constituent généralement les limites de la région d'étude ou les limites d un feuillet cartographique. Certain systèmes rangent chacune des couches dans un fichier distinct alors que d'autres vont rassembler toutes les couches d'une même base dans un seul fichier. La structuration en couches est associée de près au modèle «géorelationnel». D'autres modes de structuration, notamment les structures de type «objet» fonctionne de façon différente. Le recours à des couches est encore le mode de structuration de loin le plus répandu. Département de géographie / Université du Québec à Montréal 6
8 Note : le logiciel ARC/INFO utilisait le terme «coverage», traduit par «couverture» pour désigner une couche. Plus récemment, ArcGIS, issu de ArcInfo, utilise le terme de «feature class». Quelques exemples de couches : o couche des routes o couche des rivières o couche de l'occupation du sol o couche des pentes du terrain o couche des puits artésiens o couche du réseau de distribution électrique o etc Que mettre sur la même couche? Compartimentation selon le type d'objet cartographique De manière générale, on met sur une même couche un seul type d'objet cartographique. Ainsi, on voit assez peu fréquemment une couche contenir à la fois des points, des lignes et des polygones. Plusieurs formats de données ne tolèrent pas que l'on mette ainsi plusieurs types topologiques différents sur une même couche. C'est le cas du format «shapefile» de ArcView par exemple. Certains autres SIG permettent de le faire : le format «.map» de MapInfo est de ce nombre, ce qui n'est pas sans occasionner des problèmes de transcodage entre ArcView et MapInfo. La séparation d un modèle de la réalité en couches distinctes comportant des types d'objets différents vient entre autres du fait que les programmes de dessin des objets géographiques diffèrent. Le traçage d'une ligne n'implique que le dessin de la ligne elle-même tandis que le traçage d'un polygone demande le traçage de la ligne décrivant le périmètre et le remplissage de l'intérieur, ce qui fait appel à un autre sous-programme. La contrainte principale vient toutefois des attributs que l'on rattache aux couches. Ce point est abordé à la prochaine section. On retrouve sur le marché des produits comportant parfois plusieurs types différents sur la même couche. C'est le cas de la couche " Bâtiments " de la Base Nationale de Données Topographiques, qui, dans sa version MapInfo représente au 1: les petits bâtiments par des points et les immeubles de plus grande envergure par des polygones. Il s agit d un cas de double représentation pour une seule entité «logique». En résumé, il est plus commun, et souvent plus pratique, de placer des objets de types topologiques différents sur des couches distinctes mais faire le contraire ne constitue pas une erreur dans le cas ou le logiciel utilisé l'autorise. En général, on recherche la «modularité». Cette pratique nous amène normalement à décomposer la réalité en sous-ensembles homogènes. Ces sous-ensembles, en l occurrence des couches, peuvent être facilement assemblés. Par contre, les ensembles sont plus difficile à diviser. Département de géographie / Université du Québec à Montréal 7
9 Compartimenter selon le type d'entité De manière générale, on met sur une même couche des entités de même classe, par exemple : toutes les rivières, toutes les limites municipales, tous les conduits d'égout. Plus précisément, on prévoit une couche par entité géographique. On ne mettrait jamais par exemple les routes et les rivières sur la même couche. La contrainte vient de ce que les attributs qui caractérisent d'une part les routes ne sont pas les mêmes que ceux qui caractérisent les rivières et que, en général, on associe une couche à une table d'attributs. Afin de démontrer les problèmes résultant d'un tel arrangement, voyons à quoi pourrait ressembler une table d'attributs pour une couche ou apparaîtraient des routes et des rivières : À chaque élément (section de route, section de rivière) correspond un enregistrement (un ligne) de la table. Puisque les attributs ne sont pas les mêmes pour l'entité route et l'entité rivière, beaucoup de cellules de la table ne peuvent être remplies. C'est une solution peu pratique et peu rentable en termes d'espace-disque. La règle à retenir est de ne pas mettre sur une même couche des entités décrites par des ensembles d'attributs différents. Les classes d'entités primitives doivent avoir une définition assez étroite. Ainsi, la classe «limites administratives» est trop générale puisqu'elle peut regrouper les limites municipales, limites des MRC, limites provinciales, etc. De plus, comme une municipalité ne possède pas les mêmes attributs qu'une MRC, les deux sont incompatibles. On voit habituellement une entité géographique être caractérisée par un tandem couche-table. Souvent, les entités figurant dans le schéma conceptuel (section 2.2) occupent chacune leur propre couche. Une certaine confusion peut naître de la caractérisation des entités. Ainsi, on pourrait voir une carte d'occupation du sol où figurent les parcs, les zones industrielles, les aéroports, les emprises autoroutières, etc. ; mais on pourrait aussi trouver une base de données avec une couche "parcs", une autre couche "zone industrielle", etc., c'est-à-dire autant de couches qu'il y a de classes caractérisant les occurrences de l'entité. Dans le premier cas, les entités seraient des "zones d'occupation du sol" avec comme attribut le type d'occupation. Dans le second cas, chaque occupation est vue comme une entité. On aurait donc une table d'attributs pour les parcs, une autre pour les aéroports, etc. Le fait de choisir l'une ou l'autre des solutions dépend de ce qu'on veut ou non associer des attributs à chaque type, ce qui dépend des objectifs de la base de données. Département de géographie / Université du Québec à Montréal 8
10 On verra parfois une même entité représentée sur deux couches différentes lorsqu'il s'agit de polygone : on réserve une couche pour l'expression polygonale de l'entité et une seconde couche pour les contours des polygones exprimés sous forme d'éléments linéaires. C'est la cas des entités polygonale de la Digital Chart of the World. Dans tous les cas énumérés précédemment, aucun lien explicite n'existe entre les couches. Ceci peut causer certains ennuis lorsque deux lignes placées sur des couches différentes doivent se superposer parfaitement. Si ces lignes sont numérisée deux fois (une fois pour chaque couche), il y aurait non seulement perte de temps, mais aussi un mauvais ajustement géométrique entre les deux lignes, malgré tout le soin qu on apporterait à la numérisation. Par exemple : Certains systèmes offrent la possibilité de relier des entités placées sur des couches différentes. La ligne commune, appelée «primitive partagée», est en fait définie une seule fois et est partagée entre deux ou plusieurs couches. Cette façon de faire enrichit la base de données, facilite certaines mises à jour mais complique la numérisation et la structuration. Il est aussi concevable de modéliser la réalité en couches différentes et de les ramener virtuellement à une seule et même couche. C'est ce qui est fait dans le cas de la base de données américaines TIGER, montrant les rues, certains éléments physiques (rivières, côtes) et les Département de géographie / Université du Québec à Montréal 9
11 délimitation de recensement. Chaque intersection de ligne devient un nœud, sans égard au type de lignes qui se croisent. En résumé : on place presque toujours des entités distinctes sur des couches distinctes et très souvent non-reliées. Le manquement à la règle «une entité, une couche» pourra occasionner des problèmes de structuration tout au long de la constitution du S.I.G La modélisation cartographique en mode vectoriel La modélisation cartographique vectorielle consiste à représenter une entité géographique par un objet graphique, aussi appelé cartographique. Un bâtiment peut ainsi devenir un point, une rivière peut devenir une ligne, un lac un polygone, etc. La modélisation cartographique doit tenir compte des aspects informationnel et graphique. La modélisation cartographique ne devrait pas être faite dans un but exclusif de représentation graphique. Malheureusement on trouve dans certaines bases de données une certaine confusion entre les deux niveaux. Idéalement, on modélise de façon fonctionnelle et on associe une symbolisation à chaque entité. Exemple : modélisation d'un arbre sur une carte à grande échelle À faire : L'entité est un point (auquel on peut rattacher des attributs, comme l'âge, l'espèce, etc.). On lui associe un symbole graphique comprenant trois lignes. À ne pas faire : Ici, on a modélisé l'arbre par sa représentation sur la carte : trois lignes courbes. Comment faire ensuite pour y rattacher des attributs? Bien sûr, beaucoup d objets sont non seulement des instances d entité géographique, mais aussi des tracés : routes, rivières, limites internationales, etc. Dans ce cas, l objet cartographique (par exemple un tronçon de route), possède le double rôle d objet (élément d information) et de tracé (graphique). Département de géographie / Université du Québec à Montréal 10
12 On choisira parfois d'utiliser deux modèles pour représenter un phénomène. Ainsi, une rivière est à la fois un espace dont il faut connaître la configuration spatiale précise, c'est-à-dire le tracé des deux rives (si la rivière est large), mais aussi une voie de navigation dont il importe principalement de connaître les branchements à d'autres voies (autres rivières, fleuve). En ce cas, on mettra un modèle plus «graphique» sur une couche et un modèle plus «topologique» sur une autre couche. Chaque représentation a donc une fonction différente. Cette structuration facilitera l'utilisation de l'information. On utilisera par exemple le modèle graphique pour la représentation cartographique et pour un calcul de la superficie de tronçons de la rivière, tandis que le modèle topologique servira à déduire le parcours d'un polluant dans le réseau hydrographique de même qu'à calculer la longueur des tronçons. Il faut savoir de plus que les échanges de données entre les systèmes différents (par exemple de ArcGIS à GRASS) sont souvent compliqués par les différences de structures et de formats. Ces échanges peuvent être carrément impossibles à cause des différences dans la modélisation des entités. Exemple : modélisation des rues Dans le premier cas, les rues sont représentées explicitement par des segments de lignes qui forment des intersections à leur jonction. Dans le second cas, les rues apparaissent parce que les îlots urbains ont été modélisés par des polygones : bien que les rues aient été, par complément, numérisées, il est impossible de leur rattacher des attributs parce qu'elles n'existent pas en tant qu'entités. Finalement, il va sans dire que l'échelle de représentation est un facteur déterminant dans le choix du niveau topologique : point, ligne ou polygone. L apparence de l objet sur les cartes d une échelle donnée peut guider le choix de modèle cartographique. Le raccordement de couches d échelles différente n est pas sans poser quelques problèmes Les éléments vectoriels Dans la prochaine section, nous montrerons les objets tels que définis par les «spécifications logiques» du «Standard de transfert de données spatiales» (ou «Logical specifications» du «Spatial Data Transfer Standard», le STDS) produit par la United States Geological Survey et soumis à l American National Standard Institute (ANSI). Nous y ajouterons par la suite des objets retrouvés dans certains systèmes répandus. Le choix de ce standard repose sur des critères pédagogiques. Les objets cartographiques proposés sont simples et fondamentaux, ce qui convient à Département de géographie / Université du Québec à Montréal 11
13 une première approche. Des standards récents commencent à s imposer. C est le cas notamment du standard ISO TC 211 ( et celui d OpenGIS. Ces standards sont beaucoup plus complexes et pour cette raison seront abordés plus tard dans la session. Les objectifs des comités scientifiques qui ont travaillé à l'élaboration du standard STDS étaient de: o spécifier un ensemble de primitives et d'objets cartographiques simples en 0, 1 et 2 dimensions, o spécifier un ensemble d'objets qui permette les trois principales fonctions cartographiques, i.e. les opérations: 1. uniquement géométriques (dessin cartographique), 2. uniquement topologiques (ex: quels sont les voisins de..., quelles routes croisent l'avenue X...), 3. géométriques-topologiques. o spécifier les objets de façon modulaire de façon à pouvoir élaborer des objets composés et complexes à partir de ceux-ci Les objets à 0 dimension 1. le point d'entité, i.e. un point utilisé pour identifier la localisation d'éléments ponctuels comme des tours, bâtiments, etc., 2. le point étiquette, i.e. un point pour afficher du texte, pour l'identification de l'élément, ex. le nom d'une localité, On utilise également le point topologique, i.e. une jonction topologique entre deux segments ou un simple point terminal. On appelle ce type de point un " noeud " Les objets à 1 dimension Ligne: objet à une dimension qui représente un élément linéaire ou le contour d'un polygone. Les types de lignes: Département de géographie / Université du Québec à Montréal 12
14 Segment de ligne : une ligne directe entre deux points, Corde : une séquence de segments; une corde ne possède pas de nœud ni d'identificateurs gauche-droite et ne peut s'intersecter elle-même ni ne peut croiser d'autres cordes, Arc : emplacement de points qui forment une courbe qui est définie par une fonction mathématique, On voit ci-haut à droite un exemple de spline : modélisation d'une courbe par une équation, i.e. une polynomiale de degré n. Les B-splines sont des cas particuliers des splines. Ils ont l'avantage de représenter l'information de façon précise et concise. On doit toutefois les évaluer. Lien : connection entre deux noeuds, frontière, Lien directionnel : semblable au lien mais comprenant une direction, Département de géographie / Université du Québec à Montréal 13
15 Chaîne : séquence directionnelle de segments ou arcs de ligne qui ne s'intersectent pas avec des nœuds à chaque terminaison et avec référence aux polygones de gauche et de droite optionnelle, Chaîne complète : elle comprend des identificateurs pour les polygones de gauche et de droite et pour les nœuds, Chaîne de surface : elle comprend des identificateurs pour les polygones de gauche et de droite mais pas pour les nœuds, Chaîne-réseau : elle comprend des identificateurs pour les nœuds mais pas pour les polygones de gauche et de droite, Anneau : séquence de chaînes, cordes, liens ou arcs qui ne s'intersectent pas, avec fermeture (représentent une frontière close mais pas la surface délimitée) Département de géographie / Université du Québec à Montréal 14
16 Objets cartographiques à 2 dimensions Aire: objet bi-dimensionnel borné qui inclut ou non ses frontières. Polygone: aire formée d'une surface intérieure, d'un anneau extérieur et qui peut comporter plusieurs anneaux intérieurs qui ne se croisent pas ni ne s'imbriquent Autres objets Certains logiciels permettent de tracer des cercles, ellipses, rectangles, etc. Ces objets sont toutefois beaucoup moins utilisés, en raison principalement des problèmes de transcodage qu ils occasionnent La modélisation cartographique en mode matriciel La modélisation en mode matriciel procède d'une toute autre façon que celle, beaucoup plus riche, qui se fait en mode vectoriel Notion d'objet et de pixels Une matrice est normalement formée d'éléments de forme et de taille uniformes appelés pixels. Ceux-ci, contrairement aux coordonnées X,Y, possèdent une superficie. Les points, lignes et polygones qui seraient présents sur une couche vectorielle seraient donc représentés par des surfaces dans une version matricielle. C'est le fait de visualiser la matrice qui peut nous renseigner alors sur le type topologique des différentes entités. Une ligne sera par exemple un long groupe de pixels très étroit. En résumé, ici, la notion d'entité géographique de même que la notion d'objet cartographique n'existe pas vraiment. On retrouve simplement des groupes de pixels contigus ayant les mêmes valeurs. Les pixels qui ne correspondent à aucune entité porte souvent zéro comme valeur. Il sont toutefois présents dans la matrice et occupe le même espace géographique et informatique. En général, on utilisera le mode matriciel pour représenter des phénomènes continus sous forme de surface, comme par exemple le relief, sous forme d altitudes Couche-identifiant et la modélisation entité-relation Les couches matricielles sont composés de pixels qui sont simplement des valeurs numériques. La plupart du temps, ces valeurs reflètent la classe du pixel (par exemple : le type de Département de géographie / Université du Québec à Montréal 15
17 sol) ou l'envergure d'un phénomène (par exemple la pente). Ainsi, on ne présente habituellement pas, comme c'est le cas du côté des vecteurs, les identifiants et les coordonnées d'une part, et les identifiant et attributs d'autre part. On présente seulement les valeurs d attributs. Dans les cas où plusieurs attributs sont rattachés à des entités géographiques, il peut être utile de créer d'abord une matrice d'identifiants et, à partir d'une table d'attributs, créer des matrices contenant les valeurs d'attributs. Exemple : Créer un ensemble de matrices contenant des attributs se rattachant aux secteurs de recensement. Créer d'abord une matrice-identifiant contenant les numéros des secteurs de recensement et ensuite produire des matrices pour l'âge moyen et le pourcentage de francophones par secteur de recensement à l'aide d'une table d'attributs. À la lumière de cet exemple, la modélisation matricielle consiste simplement à prévoir une couche par type d'entité et de fournir la liste des attributs. Département de géographie / Université du Québec à Montréal 16
18 2.2 La modélisation entité-relation La modélisation entité-relation consiste à schématiser la portion du monde réel qui sera représentée dans une base de données. On y voit principalement les entités (par exemple : personne, bâtiment) et des relations entre entités (par exemple personne possède bâtiment). La modélisation se traduit par un schéma conceptuel. La modélisation est un outil de conception de même qu'un outil de communication. Il est possible de structurer une base de données sans pour autant effectuer une modélisation préalable. Toutefois, on considère que la modélisation comporte les avantages suivants : o La distinction entre le niveau conceptuel et le niveau "implantation" rend le travail de conception plus simple et plus clair. o La modélisation conceptuelle n'est pas entravée par les limites du SGBD sur lequel la base de donnée sera implantée. o Le schéma conceptuel est plus stable que la structure d'une base de données, qui changera lorsqu'on transfère les données d'un système à un autre. o Le schéma entité-relation peut être plus aisément compris que la structure des données par quelqu'un qui connaît peu les systèmes d'information. o Le perfectionnement de la base de données par un nouvel intervenant est facilité par le schéma conceptuel. o La structuration directe des données sans passer par une étape de modélisation donne souvent lieu à de l improvisation qui nuit considérablement à la fonctionalité de l ensemble. Nous décrivons dans cette section la modélisation entité-relation classique. Cette dernière en a inspiré de nombreuses autres, comme la modélisation appelée «MERISE». Même la modélisationobjet, comme celle initialement proposée par Rumbaugh et al.(1991) et qui a évolué vers UML, montre un lien de parenté avec la modélisation entité-relation. La maîtrise de la modélisation entitérelation facilitera donc l'apprentissage des autres méthodes qui, tout en gagnant à être connues, peuvent être laissée de côté dans un premier temps afin de nous aider à nous concentrer sur les aspects fondamentaux que sont l'entité et la relation Définitions Éléments fondamentaux : Entité Objet pourvu d'une existence propre et conforme à la fonction occupée par l'objet dans le système d'information. D après le petit Robert : «Ce qui constitue l essence d un genre ou d un individu», ou encore : «Objet considéré comme un être doué d unité matérielle, alors que son existence objective n est fondée que sur des rapports. Un fleuve, un courant d air, une vague sont des entités.» Relation Association fonctionnelle entre deux entités. Département de géographie / Université du Québec à Montréal 17
19 Attribut Donnée élémentaire sur une entité ou une relation. Relation binaire Relation entre deux entités Relation ternaire Relation unique impliquant simultanément trois entités. Exemple : relation simultanée entre les entités «Livreur», «Produit», «Client». Relation réflexive Relation entre une entité et elle-même. Par exemple, un secteur de recensement "est voisin" d'un autre secteur de recensement Connectivité et cardinalité La connectivité renseigne sur le nombre d'occurrences de part et d'autre d'une relation. Les valeurs de connectivité sont : Exemples : o un-à-un (1,1) o un-à-plusieurs (1,N) o plusieurs-à-plusieurs (N,M) Un polygone possède un centroïde (1,1). Un lot peut compter plusieurs bâtiments (1,N). Une rue compte plusieurs intersections et une intersection raccorde plusieurs rues (N,M). La cardinalité renseigne sur le nombre précis d'occurrence de part et d'autre d'une relation. On distingue la cardinalité minimum et la cardinalité maximum. Lorsqu'elle est indéfinie (le nombre maximum dépend du contenu de la base de données), on la désigne par la lettre N. Toute combinaison de chiffres et de variables (N) est acceptable en autant que la cardinalité maximum soit plus grande ou égale à la cardinalité minimum. Les cardinalités sont écrites de part et d'autre de la relation, près de la boîte réservée à l'entité. Le schéma conceptuel suivant donne un exemple d'entité (rectangles), de relations (ovales) et de cardinalités. Département de géographie / Université du Québec à Montréal 18
20 On lit le schéma comme suit : un polygone est composé d'au moins trois segments ; un segment peut composer un ou deux polygone ; chaque segment est tendu par deux points ; chaque point tend au moins deux segments. Ceci a plusieurs implications. Les polygones peuvent être isolés ou directement voisins. Si les polygones ne se touchaient jamais, on verrait plutôt, à côté de l'entité "Segment", la cardinalité 1,1 pour la relation avec les polygones. D'autre part, le schéma renseigne sur le fait qu'un segment appartient toujours à un polygone et ne "flotte" jamais seul. Sinon, on aurait la cardinalité 1,N à côté de l'entité "Point". Département de géographie / Université du Québec à Montréal 19
21 2.2.3 Quelques exemples de schémas conceptuels simples Département de géographie / Université du Québec à Montréal 20
22 2.2.4 Expression des relations entre les couches dans le schéma conceptuel Le schéma conceptuel permet d'exprimer les relations entre entités situées sur des couches différentes. Ainsi, le schéma suivant énonce le fait que les agglomérations et les lacs peuvent parfois avoir une frontière commune. 2.3 Construction analytique du schéma conceptuel La construction du schéma conceptuel comporte normalement les étapes suivantes : o Définir les objectifs o Analyser la réalité o Tracer le schéma conceptuel La partie analytique consiste essentiellement à transformer des énoncés décrivant certains aspects de la réalité en entités, relations et cardinalités. Des informations sur le sujet sont données dans les sections à Aperçu : du français au schéma conceptuel L'analyse se fait en formulant des énoncés concernant la partie de la réalité qui sera représentée dans la base de données et en traduisant les substantifs par des entités, des relations et des attributs. Cette traduction n'est pas automatique et doit être faite, non pas en suivant les règles à la lettre, mais en prenant soin de représenter sémantiquement la réalité. Département de géographie / Université du Québec à Montréal 21
23 2.3.2 Le nom commun Le nom commun correspond à une entité. Exemple : les lacs et les rivières se connectent (lac et rivière sont les entités) Le verbe transitif Le verbe transitif correspond à une relation. Exemple : Certaines personnes possèdent certains bâtiments (possède constitue la relation) L'adjectif L'adjectif correspond à un attribut d'une entité. Exemple : les bâtiments âgés demandent à être inspectés (" âge " est un attribut de bâtiment) L'adverbe L'adverbe correspond à un attribut d'une relation. Par exemple «l'autoroute passe par-dessus la route» («par-dessus» caractérise la relation «passe») La commutativité Une phrase peut être inversée et donc la relation entre deux entités est en quelques sorte commutative. Il ne faut toutefois pas oublier que les cardinalité sont associées à un sens de lecture. Par exemple " une personne possède un bâtiment " est l'équivalent de " un bâtiment appartient à une personne " En faire une entité ou pas? On se pose parfois la question : est-ce que cet objet est une entité ou un simple attribut? Par exemple : pour représenter l'information apparaissant sur une carte d'utilisation du sol, doit-on dans le schéma conceptuel faire figurer les entités parc, gare de triage, centre d'achat? La réponse est habituellement non puisque l'on cherche à représenter l'entité " polygone d'utilisation du sol " comportant un attribut " type " qui pourra prendre les valeurs " Parc ", " Commerces ", etc. Dans certains cas on veut toutefois caractériser chacun des parcs par des attributs (types d'équipements, présence d'une piscine, etc.). Alors il faudra faire de " parc " une entité. Par ailleurs, on doit faire figurer toutes les entités qui seront documentées dans la base de données. On n'ajoute pas d'entités qui ne répondent pas à cette condition. Département de géographie / Université du Québec à Montréal 22
24 2.3.8 Exprimer la relation ou pas? Doit-on faire figurer dans le schéma conceptuel toutes les relations existant entre les entités? Heureusement non! On se contente d'exprimer celles que l on veut documenter dans la base de données. Par exemple, il est connu que les chemins de fers et les routes se croisent souvent. Cela ne veut pas dire que cette relation doivent figurer dans le schéma conceptuel! Si, en fonction des objectifs de la bases de données, le passage à niveau constitue un objet significatif, la relation entre les deux entités devrait être représentée dans le schéma. Les relations de distance (par exemple " les puits sont situés près des habitations ") sont rarement exprimées. Plusieurs relations topologiques, de voisinage ou de connexion réseau, ne seront pas exprimées, du fait de leur grand nombre et parce que certains outils SIG permettent de les reconstituer sur la base des coordonnées des objets. Note : la modélisation entité-relation ne s'applique pas au monde matriciel, monde où ni les entités (objets intègres), ni les relations ne sont représentables puisque la réalité se désintègre en pixels. 2.4 Outils de modélisation Outils logiciels La partie qui consiste à tracer le schéma conceptuel peut être grandement facilitée par l'utilisation d'un logiciel de conception. Ces logiciels sont en général capables de générer automatiquement à partir du schéma des instructions pour créer les tables relationnelles, les attributs, les règles d'intégrité, les relations et le dictionnaire de données pour un SGBD particulier. En voici quelques uns : E-R Designer Designer 2000 de ORACLE System Architect Perceptory Il existe plusieurs autres méthodes de modélisation, certaines fondées sur la modélisation entité-relation, d'autres non Modélisation objet et UML Comme la conception d'un SIG amène souvent la conception d'algorithmes de traitement des données, il peut être utile et nécessaire de schématiser les traitements et les flux de données en plus de l'état statique des données. Par ailleurs, la conception de logiciel est aujourd'hui effectuée dans le paradigme orienté-objet. Cette conjoncture a amené certaines compagnies comme ESRI à redéfinir leur conception logique des données tout en modifiant également leur approche à la programmation. Le standard aujourd'hui le mieux établi, et récemment adopté par ESRI pour son modèle de Geodatabase, se nomme Unified Modeling Language (UML). On peut trouver une description exhaustive du langage à l'adresse suivante : Ce langage très Département de géographie / Université du Québec à Montréal 23
25 riche permet de modéliser les données, les flux, les événements, etc. Il constitue la fusion d'efforts en sens émanant de Grady Booch, Ivar Jacobson, and Jim Rumbaugh. Il est dans l'ensemble d'une complexité qui dépasse actuellement les besoins en modélisation de données, mais son modèle de classes d'objets statiques est de plus en plus utilisé pour la modélisation entité-relation. La persistance du modèle géorelationnel en SIG fait qu'il est plus simple et plus commode d'utiliser encore le modèle entité-relation. Il est toutefois raisonnable de prévoir une évolution vers des modèles plus avncés, tels UML. Département de géographie / Université du Québec à Montréal 24
26 Chapitre 3 La structuration géorelationnelle 3.1 La structuration vectorielle Cette section traite des différentes façons d'organiser les données vectorielles. Nous n'entrons pas dans les détails structurels des fichiers vectoriels car ces derniers sont habituellement gérés directement par un système d'information géographique. Il est rare que l'usager ait à définir la structure des fichiers vectoriels (par opposition aux fichiers relationnels dont la structure logique est entièrement contrôlée par le concepteur). De plus, nous connaissons la plupart du temps le format vectoriel d'échange en ASCII (par exemple DXF de AutoCad, MIF de MapInfo, e00 de Arc/Info, etc.) mais pas le format, habituellement binaire, dans lequel les fichiers vectoriels sont manipulés par le logiciel Spaghetti Le format dénommé «spaghetti» (sic) désigne habituellement l'absence de structuration topologique. Les données vectorielles se présentent dans ce cas telles que numérisées. Les lignes qui se croisent ne comportent habituellement pas de nœuds à leur intersection et les polygones ne sont souvent que des lignes traçant les contours, c est-à-dire qu ils ne représentent pas la surface intérieure délimitée par le contour. La segmentation des lignes peut souvent laisser à désirer, c'est-àdire que les lignes sont parfois continues là où normalement on devrait trouver un nœud et sont coupées sans raison apparente là où il n'y a pas d'intersection. Les modes et séquences de numérisation se reflètent directement dans la structure. En résumé, la structuration spaghetti n'est que du dessin cartographique et se prête très mal au raccordement à une base d'attributs ou à l'analyse spatiale. Certes, il est possible de visualiser et comprendre une carte spaghetti à l'écran, mais cette carte ne pourra en général être interrogée (par exemple : «où sont tous les polygones dont la superficie est plus grande que x? «) ou analysée (par exemple, si les courbes de niveau sont mal structurées, il sera en général difficile d'en tirer un modèle numérique d'altitude). À titre indicatif, les données vectorielles en format ASCII, de structure spaghetti ou autre, se présentent souvent de la façon suivante : Identifiant (nombre de coordonnées) Coordonnée X Coordonnée Y Par exemple : Département de géographie / Université du Québec à Montréal 25
27 Il arrive parfois que les polygones soient représentés par une suite de coordonnées dans laquelle la dernière est la répétition de la première (c'est le cas par exemple de MapInfo). On voit souvent dans le fichier mal structuré des problèmes additionnels : o des chevauchements ou des interstices entre polygones adjacents, o des boucles dans les lignes ou les contours de polygones, o des dépassements ou des raccords manqués entre lignes, o des polygones non fermés. Certain logiciels (entre autres ARC/INFO) permettent de passer automatiquement ou semiautomatiquement d'une structure vectorielle spaghetti à une structure vectorielle topologique Structure topologique La structuration topologique implique dans la plupart des cas trois types d éléments : o les points ordinaires (coordonnées X,Y sans signification topologique), o les nœuds accompagnés de leur identifiant, o les identifiants des polygones de droite et de gauche. Les lignes et polygones se construisent à partir de ces éléments. La structure détaillée des coordonnées X,Y varie selon chaque logiciel et est généralement peut connue de l'utilisateur puisque la stratégie de structuration des fichiers vectoriels (habituellement binaires) est la plupart du temps considérée comme un secret industriel. Les attributs reliés aux couches topologiques servent à rendre possibles la topologie de réseau et la topologie de surface : o le numéro du nœud de départ, o le numéro du nœud de fin, o le numéro du polygone de gauche, o et le numéro du polygone de droite. La structuration topologique implique en général que : o on trouve un nœud à l'intersection des lignes qui se croisent, o une ligne ne s'intersecte pas elle-même o les nœuds et les polygones de gauche et de droite sont numérotés pour toutes les chaînes complètes o et les polygones sont correctement fermés. Malheureusement, ce ne sont pas tous les logiciels qui offrent par défaut des possibilités de représentation topologique. Département de géographie / Université du Québec à Montréal 26
28 3.1.3 Les polygones complexes Un polygone complexe est un polygone formé de plusieurs anneaux. Si ceux-ci s imbriquent, on parlera d îles ou de «trous». Les «trous» sont des polygones délimitant des zones «vide» à l intérieur d un autre polygone, plus grand. Plusieurs stratégies sont utilisées pour les représenter. Par exemple, l'usage d'un nombre négatif pour l'identifiant des polygone intérieur : Ce qui peut donner la structure suivante dans un fichier vectoriel "texte" : 102 x y x y x y etc x y x y x y x y etc x y x y x y etc. La représentation des trous ne pose habituellement pas de problème. Il faut toutefois noter que le format «coverage» d ArcInfo ne tolère pas les trous. Ainsi, il est possible de représenter des polygones «intérieur», mais il est difficile de les «vider» en les effaçant pour laisser des trous. Ce n est toutefois pas le cas du format shapefile et de plusieurs autres formats. Si les divers anneaux d un polygone sont disjoint et ne s imbriquent pas, il s agira d un assemblage de polygones simples formant un tout (par exemple un archipel). Une façon simple de les représenter est d'assigner à chacun des "morceaux" un même identifiant. Les polygones complexes sont un cas particulier des objets complexes (on voit aussi chez ESRI des groupes de points). La représentation de leur assemblage se fait plus facilement au moyen de pointeurs ou de moyens comme les «structures» et les «classes», respectivement en langage C et C++. La Département de géographie / Université du Québec à Montréal 27
29 composition d objet complexes se représente aisément en UML. L'usager n'est généralement pas directement impliqué dans la structuration vectorielle de tels objets dans les cas habituels (assemblage de polygones). Des outils sont normalement fournis dans un SIG pour déclarer qu un groupe d anneaux forment un polygone complexe. 3.2 La structuration matricielle Comparaison sommaire des représentations matricielles et vectorielles MODÈLE VECTORIEL x,y définissent points, vecteurs et polygones. La résolution dépend du nombre de décimales des coordonnées X,Y La topologie est représentée implicitement ou explicitement Les attributs sont rattachés aux entités La qualité graphique est indépendante de l'échelle de représentation Compact Les opérations portant sur les points et les lignes sont faciles (système de projection, calcul de périmètre) MODÈLE MATRICIEL i,j définissent une cellule qui représente toujours une surface La résolution dépend de la taille de la cellule La topologie est toujours représentée implicitement Les attributs sont rattachés aux cellules La qualité graphique est dépendante de l'échelle de représentation Volumineux Les opérations sur les surfaces sont faciles (calcul d'aire, superposition de couches) Les types de matrices La modélisation matricielle s'effectue en apposant une grille (régulière ou non) sur la surface à représenter et en attribuant à chaque cellule la valeur dominante ou moyenne de l'attribut se rapportant à cette surface. Plusieurs types de maillages ont été proposés dans le passé (triangulaire, hexagonal, etc.), mais le seul qui soit en usage aujourd hui est le maillage rectangulaire, habituellement carré : Département de géographie / Université du Québec à Montréal 28
30 Il sert à représenter aussi bien des variables continues (réflectance, pente, drainage, etc.) que discrètes (utilisation du sol, type de forêt, etc.), mais il est beaucoup mieux adapté aux premières. Polygone vectoriel Représentation matricielle de ce polygone Il est à l'origine des structures les plus simples. Il est caractérisé par des distances variables entre le centre de deux cellules voisines selon l'angle, ce qui peut occasionner certaines complications : Ce type de maillage a l'avantage d'être identique à celui des écran vidéo (lorsque les pixels sont carrés. Il y a de plus une concordance entre sa structure et celle d'une mémoire vidéo. Il est donc idéal pour les représentations graphiques sur écran vidéo Les matrices normales Ce que l'on nomme ici les «matrices normales» sont celles qui se présentent directement comme un ensemble régulier et ordonné de cellules. Les structures de fichiers matriciels sont très différentes des structures vectorielles et se prêtent généralement moins bien à l'intégration aux bases de données Département de géographie / Université du Québec à Montréal 29
31 relationnelles. La première étape de modélisation consiste généralement à séparer en couches les différents aspects de la réalité. La structure des données dépendra principalement par la suite du choix de maillage. La structuration des fichiers matriciels procède par intercalage des éléments des différentes couches. On en retrouve trois types : L'intercalage par couche est pratique lorsqu'on effectue des opérations sur une seule couche (ex: transformation matrice-vecteur). L'intercalage par pixel est pratique pour les opérations concernant plusieurs couches (ex: intersection). L'intercalage par ligne constitue un compromis entre les deux premiers. Certains fichiers possèdent toutefois une organisation beaucoup plus complexe comme par exemple les fichiers d'élévation de terrain de la USGS. On attache habituellement un entête aux fichiers matriciels qui contient généralement de l'information sur la taille des éléments, de la matrice, sur le nombre de couches, etc.. La taille des fichiers de ce type est calculée ainsi : Nboctets_entête+Colonnes*Lignes*Nboctets_pixels Il existe beaucoup d'autres structures pour ce type de données comme les «longueurs de séries» (run length). Nous les verrons au chapitre de la compression des données. Il est possible de structurer l'information matricielle de façon imbriquée ou «quadtree». Les matrices normales offrent l'avantage de la simplicité mais occupent en général beaucoup de place sur un disque dur. Les matrices imbriquées, plus complexes, peuvent éventuellement être beaucoup plus économes en termes d'espace pour des données binaires (0-1) ou qualitatives. Département de géographie / Université du Québec à Montréal 30
32 Niveau 1 Niveau 2 Niveau Structure pour les éléments carrés imbriqués (quadtrees) Une des raisons principales qui mena à l'élaboration des quadtrees est la taille considérable qu'occupent les fichiers matriciels. Il est parfois difficile de les comprimer lorsqu'il s'agit de données continues de grande variabilité (ex: élévations) mais les cartes thématiques ainsi encodées peuvent être représentées dans des fichiers quadtree très petits. La stratégie consiste à diviser l'image en quatre parties et continuer la division récursive des parties en quatre autres sections jusqu'au niveau de base, c'est-à-dire la cellule. On crée ainsi une série hiérarchique dont chaque niveau est composé de quatre éléments, c'est-à-dire les quadrants Nord-Ouest, Nord-Est, Sud-Ouest, Sud-Est. Les liens entre les différents niveaux sont assurés par des pointeurs. Le tout est implanté dans un arbre d'ordre 4 («arbre à quatre branches»). NO NE GLOBAL NO NE SO SE SO SE Chaque niveau n < N (autre que les feuilles) constitue une généralisation plus ou moins poussée du niveau de base (N). Il s'agit toutefois d'une généralisation arbitraire basée sur une division quadratique qui est généralement différente de celle qu'effectuerait un cartographe. Le quadtree est très dense dans les régions complexes et très simple pour les régions uniformes, ce qui permet une compression optimale. Pour une carte très complexe, la compression effectuée par le quadtree ne sera pas bonne pouvant même reproduire un fichier plus gros que le fichier matriciel original. Les opérations telles la superposition de couches, le calcul de périmètre et d'aire sont plus complexes mais possibles. La mise à jour d'une carte est également plus longue. Les quadtrees ne sont presque plus en usage aujourd hui. Les images en tons de gris ou représentant un phénomène continu sont compressées en utilisant d autres techniques que nous verrons plus loin. Département de géographie / Université du Québec à Montréal 31
33 3.2.4 Voxels La représentation de volumes en mode matriciel peut s effectuer au moyen de voxels. Ces derniers sont simplement des cubes composant une division régulière de l espace à trois dimension. Les voxels sont encore peu usités dans les SIG, mais se rencontrent de plus en plus dans les logiciels de géologie, d imagerie médicale, etc Octrees Les quadtree ne sont aujourd hui presque plus utilisés, notamment parce que les SIG vectoriels ont évolué et parce que la capacité des disques durs a considérablement augmenté. Par contre, la taille des bases de données voxels reste un problème. Par exemple, une matrice de voxel de 1000 par 1000 par 1000 éléments contient un million d enregistrements. Il est possible de compresser les voxels comme l on compresse les matrices, à partir d une division récursive de l espace. En trois dimension, on effectue des regroupements de 2x2x2 voxels pour former des sous-ensembles de huit éléments. Cette méthode est également récursive. On la nomme octree. Elle est très efficace pour la représentation de données binaires (0-1) ou qualitatives Les pyramides d images Une pyramide est une représentation matricielle multi-résolution. Une pyramide comprend la matrice pleine résolution et un certain nombre de matrices dont la résolution a été progressivement dégradée. Par exemple, pour une matrice d une résolution de 10 m, on aura les résolutions 10, 20, 40, 80, 160 m, etc. Ceci accélère significativement l affichage. Ainsi, lorsque l on visualise une image de grande taille à petite échelle («de loin», ou en «zoom out»), le logiciel ne lit que la matrice de résolution plus grossière. Comme il existe un facteur de 4 entre la taille d une matrice de résolution donnée et la taille d une matrice formée de pixels 2 fois plus gros, l affichage se fera plus rapidement parce que la quantité d information à lire sur le disque est réduite Notion de profondeur de pixel On appelle «profondeur de pixel» (pixel depth) le nombre de bits utilisé par pixel pour représenter des quantités. Ceci s applique normalement lorsque la représentation des nombres se fait selon le système binaire (et non décimal). 1 bit = 2 valeurs possibles (0-1) 8 bits = 1 octet = 256 valeurs possibles Département de géographie / Université du Québec à Montréal 32
34 «Unsigned 8 bits» = 0 à 255 «Signed 8 bits» = -128 à +127 «Unsigned integer» = 0 à «Signed integer» = à Entiers long (signés et non signés) Nombres réels (32 ou 64 bits, selon IEEE ou Motorola) Nombres complexes et autres. Les attributs qualitatifs sont représentés par des nombres. Une table de correspondance reliant les nombres aux attributs qualitatifs accompagne le fichier matriciel et permet de reconstituer la carte matricielle qualitative. 3.3 La structuration relationnelle La structuration des données d'attribut, reliées ou non à des objets géographiques, peut se faire selon plusieurs modes d'organisation. Nous verrons plus loin en effet que les modèles " hiérarchique " et " réseau " on servi dans les années soixante à quatre-vingt à organiser les informations dans des bases de données informatisées. Toutefois, c'est le modèle relationnel qui domine encore aujourd'hui dans le monde des SGBD et des SIG. Le modèle relationnel, dans sa forme la plus simple (c'est-à-dire sans utilisation d'index), consiste à placer les données dans des tables organisées selon un ensemble de règles. Les différentes rangées (lignes) de ces tables se nomment formellement "tuples" et constituent des enregistrements contenant un ensemble ordonné d'attributs, apparaissant dans des colonnes appelées «champs». Le passage du schéma conceptuel à la structure relationnelle correspondante se fait aisément en suivant un certain nombre de règles simples. Précisons que la structuration relationnelle est en fait une organisation «logique» des données qui ne se reflète pas forcément dans la structure «physique» des fichiers informatiques contenant les données. Voici un exemple de table relationnelle (la clé primaire est montrée en caractères gras, les noms de la première ligne sont les appellations des attributs et ne font pas comme tel partie de la table) : Département de géographie / Université du Québec à Montréal 33
35 CHAÎNE COMPLÈTE Identifiant Noeud_Initial Noeud_Final Polygone_Gauche Polygone_Droite Id_Rue Le modèle relationnel comporte un certain nombre d'avantages parmi lesquels on compte ceux-ci : L'ajout et le retrait de données est facile. Le modèle repose sur une base théorique bien développée (logique booléenne). La flexibilité du modèle relationnel est relativement grande. La construction et l'utilisation d'une base de données relationnelle est simple. Malgré sa grande popularité, le modèle relationnel présente certains désavantages : Il implique beaucoup de fouilles séquentielles qui ne peuvent être évitées que par la création et l'entretien d'index parfois volumineux. La redondance gonfle la taille des fichiers. Les requêtes sont traitées plus lentement que dans les structures reposant sur des pointeurs (modèles hiérarchique, réseau et objet) Définitions Relation (table) Une relation est un fait, un ensemble de valeurs reliées de façon permanente. Elles sont formées de tuples, eux-mêmes composés d'attributs dont certains peuvent être des clés primaires, externes ou les deux à la fois. Il existe de multiples façons d'organiser un ensemble de données, certaines étant meilleures que d'autres. Les différents types d'organisation des données se dénomment (dans le modèle relationnel) "formes normales". Le terme formel de relation proposé par Codd a été repris dans un autre sens, soit celui qu on lui donne dans «entité-relation» et qui se traduit par «jointure» dans le volet structure. L acception originale de «relation» est ainsi presque désuète. Afin d éviter toute confusion, nous préférons employer dans la suite du texte le mot «table» et réserver le mot «relation» pour exprimer la notion de jointure. Enregistrement ou tuple L'élément fondamental de la base de donnée est l'enregistrement ou «tuple». Chaque tuple représente une seule occurrence d un fait. Chaque champ contient une donnée sur un aspect de ce fait. On accède à chaque enregistrement au moyen d'une clé primaire, ex: le nom de la rue, le numéro civique, etc. Champ ou attribut Un attribut est une variable qui renseigne sur une caractéristique d'une entité. L'attribut correspond au champ (un attribut par champ et un champ par attribut). Département de géographie / Université du Québec à Montréal 34
36 Domaine de l'attribut Le domaine de l'attribut est l'ensemble des valeurs qu'il peut prendre. Pour un attribut de type nominal (par exemple : nom, occupation du sol, type de culture), le domaine est défini par un ensemble de valeurs possibles (l'ensemble des types de cultures possibles dans une région). Cet ensemble est habituellement fini mais est parfois difficile à cerner (domaine des noms de familles). Pour les attributs de type quantitatif (pente, température, âge), le domaine se définit souvent par des bornes minimales et maximales. Le respect du domaine des attributs contribue grandement à l'intégrité référentielle. Il est d'usage de créer une table contenant l'ensemble des valeurs du domaine d'un attribut de type nominal afin d'offrir à la personne qui saisit les donnée une liste correcte des valeurs possibles. Il s'agit alors d'une table de consultation. Clés primaires et externes Chaque table possède une clé primaire, i.e. un attribut ou groupe d'attributs dont la valeur identifie chaque tuple de façon unique. Par exemple, on utilise rarement le nom d'une personne comme clé primaire car la même valeur peut représenter deux personnes différentes ou plus. Une clé primaire peut être la concaténation de deux attributs (comme le code permanent) ou encore la combinaison de deux attributs. Par exemple, dans une table "logement", pour identifier un seul logement, on doit procéder par une clé adresse et # d'appartement. Il faut souvent disposer de renseignements sur le fonctionnement d'un organisme afin de déterminer quels seront les attributs qui constitueront des clés primaires. Une clé externe est un attribut qui se retrouve dans plus d'une table et dont la fonction est de lier des tables. Elle remplace les pointeurs des modèles hiérarchique et réseau. Une valeur de clé primaire doit exister pour toute valeur de clé externe afin de préserver l'intégrité référentielle. Dépendance fonctionnelle La relation entre un attribut non-clé et la clé primaire d'une relation est appelée dépendance fonctionnelle : on pourrait écrire : Valeur = f (clé primaire) où valeur est la valeur d'attribut pour un tuple donné et f est une fonction correspondant à l'attribut. Par exemple : valeur = population (Id_SR) que l'on pourrait traduire par valeur est égal à la population du secteur de recensement identifié par Id_SR, dépendance dont voici un exemple numérique : 3456 = population (78664) La normalisation La structuration relationnelle consiste à organiser des données sous forme de tables en suivant un certain nombre de règles. Ce processus se nomme la «normalisation» des données. Les formes normales constituent un ensemble hiérarchique de règles progressivement plus restrictives. Bien qu'il existe une quatrième et même une cinquième forme normale, la troisième forme normale est considérée comme la forme optimale, alliant simplicité et rigueur. Nous allons examiner les trois premières formes normales. Voici les principaux avantages de la normalisation des données selon Brathwaite (1991). : Département de géographie / Université du Québec à Montréal 35
37 elle permet de développer une stratégie pour construire des tables et choisir des clés, elle bonifie l'interface-usager en offrant la possibilité d'effectuer des requêtes non-prévues, elle réduit les problèmes d'insertion et d'effacement de données, elle rend la modification de la structure de la base de données (par exemple : ajout ou suppression d'attributs) plus facile. Les propriétés structurales d'une table sont les suivantes (d'après Brathwaite, 1991): Les colonnes représentent des champs. Chaque colonne porte un nom unique. Chaque colonne est homogène de sorte que toutes les données qui s'y trouvent sont de même type (par exemple : nom, densité, identifiant, etc.) Chaque colonne possède un domaine, c'est-à-dire un ensemble des valeurs possibles pour cette colonne. Les rangées représentent des enregistrements. L'ordre des rangées et des colonnes n'est pas important et ne doit pas être utilisé comme moyen d'organiser ou de classer les données. La duplication de rangées n'est pas admise. La répétition de groupes (c'est-à-dire d'un ensemble d'attributs inter-reliés qui apparaît plusieurs fois dans un même enregistrement) n'est pas admise. Un clé-candidate est un attribut (ou groupe d'attributs) qui identifie de façon unique une rangée. Une clé-candidate doit posséder les propriétés suivantes : o o chaque rangée doit être identifiée de façon unique par la clé, aucun attribut de la clé ne peut être supprimé sans altérer la propriété d'identification unique de la clé. Une clé primaire est une clé candidate choisie pour être identificateur unique. Toute table doit contenir une clé primaire. Une clé externe est un attribut non-clé qui apparaît à la fois dans une première table comme attribut simple ou comme partie d'une clé composée dans une autre table comme clé primaire. Une clé composée est une clé qui contient plusieurs attributs. Une notation pour les tables relationnelles Nous allons utiliser deux modes de représentation des tables. Le premier représente uniquement la structure et consiste à montrer uniquement le nom de la table, sa clé primaire ainsi que les attributs qui y sont reliés : Nom (Clé primaire, Attribut 1, Attribut 2,..., Attribut N). Voici par exemple la table qui renseigne sur les secteurs de recensement : SR(Numéro_SR, Population_1986, Population_1991, Superficie) Cette notation est utilisée par la plupart des auteurs. Pour illustrer une règle ou pour faire comprendre un principe, on choisira parfois de montrer une «instance d'une table», c'est-à-dire un ensemble d'enregistrements de la façon suivante : Département de géographie / Université du Québec à Montréal 36
38 SR Numéro_SR Population_1991 Population_1996 Superficie La première forme normale Toute table ne représente pas nécessairement une relation (sensu Codd) normalisée. On voit par exemple des «bases de données» enregistrées dans des chiffriers tel EXCEL qui contiennent sur chaque ligne des informations se rattachant à entités différentes. On trouve dans ces cas des «répétitions de groupes», c'est-à-dire des groupes d'attributs, logiquement reliés, qui se répètent sur une même ligne. Il s'agit alors d'une table non-normalisée. Par exemple, si voulait mettre dans une table (non-normalisée) l'information sur un propriétaire et sa ou ses propriétés on pourrait créer la table suivante : PROPRIO (Nom, Lot1, Adresse1,Valeur1, Lot2, Adresse2, Valeur2,..., Lot10, Adresse10, Valeur10) Une table est en première forme normale si elle ne présente pas de répétition de groupes et qu'elle possède une clé primaire. Toutefois, cette règle peu restrictive laisse passer plusieurs vices de structure. Par exemple, pour représenter l'information concernant des îles à protéger, on pourrait procéder de la sorte : ILE (Nom_île, Superficie_Île, Nom_Lac, Superficie_Lac, Municipalité, Province) Premièrement, puisque qu'un lac peut contenir plusieurs îles, les attributs Nom_Lac, Superficie_Lac, Municipalité et Province sont répétés pour chaque île. Cette table non normalisée présente, en plus d'une forte redondance, des problèmes nommés «anomalies d'élimination et d'insertion». Une anomalie d'élimination survient lorsqu'on élimine de la base de données la ou les îles d'un lac. En effet, l'information sur la superficie de ce lac disparaît de la base de donnée. Par ailleurs, si l'on voulait représenter l'information concernant la relation d'appartenance entre Municipalité et Province, on ne peut le faire sans ajouter une île, c'est ce qu'on nomme une anomalie d'insertion. Finalement, il faut aussi souligner que cette absence de structure alourdit la tâche de modification des données. Ainsi, lorsqu'une municipalité change de nom, il faut mettre à jour tous les enregistrements où apparaissent le nom de cette municipalité. La deuxième forme normale Une table est en deuxième forme normale si: Elle est exprimée sous forme tabulaire avec une clé primaire et sans répétition de groupes (1FN). Tous les attributs non-clé ont une dépendance fonctionnelle complète sur la clé primaire. Département de géographie / Université du Québec à Montréal 37
39 Une table en première forme normale sera en deuxième forme normale dans les cas suivants : La clé primaire se compose d'un seul attribut. Aucun attribut non-clé n'existe. Chaque attribut non-clé dépend entièrement de l'ensemble complet des attributs de la clé primaire lorsque celle-ci est composée. La table suivante n'est pas en deuxième forme normale : ACHAT_LOT (Personne, Numéro_Lot, Date, Numéro_Acte, Superficie_Lot, Municipalité, Province) Puisque la superficie du lot, la municipalité et la province où il se trouve, dépendent seulement du lot lui-même et non du processus d'achat (comme la date et le numéro de l'acte notarié) alors que la clé primaire est composée de deux attributs. Il faudrait ré-écrire cette table sous la forme suivante : ACHAT_LOT(Personne, Numéro_Lot, Date, Numéro_Acte) LOT(Numéro_Lot, Superficie_Lot, Municipalité, Province) Il est à noter que le lien entre les deux tables repose sur la clé externe Numéro_Lot, c'est-àdire qu'une valeur de l'attribut Numéro_Lot de la table ACHAT_LOT correspond à une valeur de l'attribut Numéro_Lot de la table LOT (ici, le nom de l'attribut est le même pour clarifier l'exemple, il pourrait très bien différer d'une table à l'autre). La deuxième forme normale n'est pas assez restrictive pour faire disparaître toute possibilité d'anomalie. Ainsi, la relation entre une municipalité et une province ne peut être représentée que si un lot est acheté dans la municipalité en question. Ce problème provient du fait qu'il existe une dépendance transitive entre Lot, Municipalité et Province. Il est ainsi vrai de dire que le lot acheté détermine la province où s'est effectuée la transaction mais il est également vrai que la province dépend de la municipalité où l'achat s'est fait. C'est qu'il existe une chaîne de dépendance : lot détermine municipalité qui détermine province, ou, en d'autres termes, il existe une dépendance fonctionnelle entre des attributs qui ne font pas partie de la clé primaire. La troisième forme normale Une table sera en troisième forme normale lorsque : Elle est exprimée sous forme tabulaire avec une clé primaire et sans répétition de groupes (1FN). Tous les attributs non-clés ont une dépendance fonctionnelle complète sur la clé primaire (2FN). Elle élimine toute dépendance transitive. Voici douze règles à suivre pour développer des tables en troisième forme normale (d'après Brathwaite,1991) : Département de géographie / Université du Québec à Montréal 38
40 Définir les attributs. Regrouper les attributs logiquement reliés dans des tables. Identifier les clés candidates. Choisir une clé primaire pour chaque table. Identifier et supprimer les répétitions de groupe. Combiner les tables possédant les mêmes clés. Identifier toute les dépendances fonctionnelles. Décomposer les tables de façon à ce que tous les attributs non-clé possèdent une dépendance fonctionnelle complète sur les attributs de la clé primaire. Combiner toutes les tables de la possédant une clé primaire identique. Identifier toutes les dépendances transitives. Décomposer les tables de façon à éliminer les dépendances transitives. Combiner les tables possédant les mêmes clés primaires si aucune dépendance transitive n'en résulte. Nous verrons à la section 3.4 comment passer directement du schéma conceptuel à des tables en troisième forme normale Trois types de tables Bien que toutes les tables obéissent aux mêmes règles de structuration, on remarque dans la pratique l'existence de trois fonctions distinctes des tables relationnelles : les tables «standards», les tables de consultation et les tables à référence croisée. Les tables standard sont les plus courantes. Ce sont celles qui servent à représenter la relation (sensu Codd) entre une entités et ses attributs. Les tables de consultation servent fréquemment à représenter le domaine d'un attribut. On y retrouve habituellement un identifiant et au moins un attribut descriptif. Les tables à référence croisée traduisent habituellement des liens un-à-plusieurs entre deux entités ou plus. Elles ont une clé primaire composée d'au moins deux champs. Elle servent ainsi à faire le lien entre au moins deux tables Le passage du schéma conceptuel à la structure relationnelle Le schéma conceptuel ne peut en lui-même accepter des données, c'est une l'expression schématique d'une conception de la réalité, non une structure. Les données sont gérées par un SGBD qui fonctionne selon un certain mode. La grande majorité des systèmes de gestion de base de données actuels sont relationnels. Le passage du schéma conceptuel à la structure relationnelle (de Département de géographie / Université du Québec à Montréal 39
41 troisième forme normale) se fait facilement et obéit à certaines règles. On y procède en suivant les étapes suivantes : 1. élimination des identifiants externes 2. élimination des attributs composés 3. Transposition de chaque entité en une table 4. Transposition de chaque lien du schéma en une table Élimination des identifiants externes Les entités dont l'identité est en partie ou en totalité déterminée par un lien avec une autre entité («externe») doivent être doivent être identifiées de façon autonome dans la table qui leur correspond. Dans le schéma ci-contre, le secteur de dénombrement (S. de dénomb.) est en partie identifié par le secteur de recensement auquel il appartient. #_SR est donc un identifiant externe de Secteur de dénombrement. On traduira ce schéma par les tables suivantes : SR(#_SR, etc.) SD(#_SD, #_SR, etc.) Le champ #_SR devient donc interne à la table Secteur de dénombrement. Élimination des attributs composés et multi-attributs Cette étape consiste à découper les attributs formés de plusieurs sous-attributs atomiques en autant de champs qu'il y a de sous-attributs. Exemple : si l'entité personne a comme attribut nom, âge, adresse, et qu'adresse est composée de rue, ville et province, il faut tout ramener au même niveau hiérarchique. PERSONNE (nom, age, numéro_civique, rue, ville, province) Transposition des entités Chaque entité apparaissant dans le schéma conceptuel devient une table Département de géographie / Université du Québec à Montréal 40
42 Transposition des relations du schéma conceptuel Relation un-à-un (1, ,1) : l'une des entité devient un attribut de l'autre entité. Exemple : l'entité IMMEUBLE(#_immeuble, nb_étages) et l'entité CENTROIDE_DE_L'IMMEUBLE(coord_X, coord_y) deviennent IMMEUBLE(#_immeuble, nb_étages, coord_x, coord_y). Relation zéro-à-un (0, ,1) : les deux entités restent telles quelles mais on inclut une clé externe dans la table contenant l'information sur l'entité faible (l'entité pouvant être sans occurrence c'est-à-dire celle se trouvant du côté (1,1) dans le schéma conceptuel). Exemple : dans une base de données qui contiendrait des information sur les ville et sur l'identité du responsable de la division de l'environnement de la ville, si une telle division existe, la relation VILLE POSSÈDE RESPONSABLE deviendrait : VILLE (ID_Ville, Nom, Maire, Population) RESPONSABLE_DIVISION_ENVIRONNEMENT (ID_Resp, Nom, Prénom, Téléphone) Relation zéro-à-zéro (0, ,1) : les deux entités restent telles quelles, mais il faut en plus créer une table à référence croisée pour la relation. Exemple : les entités GARE, PORT et la relation SONT INTÉGRÉS. GARE(#_id, nom, ville, etc.) PORT(#_id, nom, rivière, etc.) SONT_INTÉGRÉS (id_gare, #id_port) Relation un-à-plusieurs (participation totale) (1,1) ---- (1,N) : il faut ajouter un champ dans la table du côté "plusieurs" qui permette d'enregistrer le lien entre les deux entités. devient : VILLE(nom_ville, nom_province, etc.) PROVINCE(nom_province, etc.) Département de géographie / Université du Québec à Montréal 41
43 Relation un-à-plusieurs (participation partielle du côté plusieurs) de type (0,1) ---- (1,N) : il faut créer une table pour la relation en plus d'une table pour chacune des entités. devient : RUE(#_Rue, etc.) SEGMENT(#_segment) RUE_SEGMENT(#_segment, #_Rue) Relation un-à-plusieurs de type (participation partielle du côté un) de type 1, ,N : se fait comme une relation un-à-plusieurs normale. Relation plusieurs-à-plusieurs : on crée toujours une table pour la relation en plus d'une table pour chacune des entités. IMMEUBLE(#_immeuble) PROPRIETAIRE(nom, etc.) PROPRIETAIRE_IMMEUBLE(#_immeuble, nom_proprio, etc.) Relation ternaire, premier cas : la relation entre deux des entités détermine la troisième entité. On crée alors une table pour la relation déterminante dans laquelle on placera les attributs de l'entité déterminée. Une table est créée pour chacune des deux entité déterminantes, mais pas pour l'entité déterminée. Département de géographie / Université du Québec à Montréal 42
44 Exemple : devient : LAC (ID_Lac, Nom, Superficie, etc.) RIVIERE (ID_Rivière, Nom, Débit, etc.) LAC_RIVIERE (ID_Lac, ID_Rivière, Nom_Décharge, Responsable, etc.) Relation ternaire, deuxième cas : la relation entre chacune des paires d'entités ne peut déterminer la troisième entité. On crée alors une table pour chacune des entités et une table pour la relation. Cette dernière possèdera une clé primaire composée d'au moins trois champs. devient : COMMERCE (ID_Com, Nom, Adresse, etc.) PRODUIT (ID_Prod, Nom, Coût, etc.) LIVREUR (ID_Livreur, Nom, Prénom) LIVRAISON (ID_Com, ID_Prod, ID_Livreur, Date, Quantité) La même règle de transposition s'applique aux relations d'ordre trois (ternaire) et plus. Département de géographie / Université du Québec à Montréal 43
45 Relation réflexive : l'entité devient une table et la relation devient une table comportant une clé primaire formée d'au moins deux champs, c'est-à-dire l'identifiant d'une première occurrence de l'entité et l'identifiant de la seconde occurrence de l'entité (l'occurrence reliée). Exemple : devient : TRONCON (ID_Tronçon, Rue, Longueur, etc.) RELIE (ID_Tronçon_1, ID_Tronçon_2) Ceci donne une structure un peu particulière : deux clés externes faisant référence à la même entité se retrouvent dans une même table, ce qui nous oblige à faire, lorsqu'on interroge cette structure, une requête SQL comportant une UNION. Ainsi, pour connaître tous les tronçons reliés au tronçon 14, il faudrait écrire : SELECT ID_Tronçon_2 AS Tronçon FROM RELIE WHERE ID_Tronçon_1 = 14 UNION SELECT ID_Tronçon_1 AS Tronçon FROM RELIE WHERE ID_Tronçon_2 = 14; ce qui manque un peu d'élégance... Le mot AS sert ici à créer un pseudonyme (alias) pour harmoniser les noms ID_Tronçon_1 et ID_Tronçon_2 dans la présentation des résultats de la requête. Ces contorsions au niveau des requêtes peuvent être évitées par l'utilisation d'entité intermédiaires qui font l'articulation entre deux occurrences reliées. Il s'agit du nœud pour les chaînes-réseau et des chaînes de surface pour les polygones. Ces aspects sont discutés dans les prochaines sections. Remarque finale sur les schémas conceptuels : on fait apparaître dans le schéma conceptuel seulement les entités et les relations qui seront documentées dans la structure relationnelle. Département de géographie / Université du Québec à Montréal 44
46 3.4 L interrogation des tables relationnelles Le SQL AVERTISSEMENT : Ceci n est pas un cours de SQL. Il est préférable de consulter les nombreux livres et sites Internet sur le sujet (ex : Pour établir un lien entre l'usager et le S.G.B.D., il faut disposer d'un langage commun. On travaille actuellement à développer des systèmes en mesure de comprendre les langages naturels (français, anglais, etc.) mais on doit pour l'instant faire usage de langages d'interface normalisés comme le SQL. Certains langages d'interface spécifiques à la géographie ont également été mis au point. S.Q.L. est l'acronyme de Structured Query Language, c'est-à-dire "langage structuré de requête". Il fut développé pour interroger et gérer les bases de données relationnelles par E.F. Codd dans les années 70. C'est un langage non-procédural qui contient environ deux douzaines d'instructions. Il permet de créer, modifier, sélectionner des données. Il assure d'une certaine façon l'indépendance programmes - données puisque la manière dont les données sont recherchées est en partie transparente à l'usager. On ne précise pas: l'endroit où se trouvent les données, les opérations à effectuer, les index à utiliser. Le SQL peut se diviser en trois parties: DDL (Data Definition Language), sert à définir la structure: créer, modifier, effacer... DML (Data Manipulation Language), sert à manipuler les données: choisir, ajouter, effacer des tuples. DCL (Data Control Language), sert à contrôler l'accès à l'information. On retrouve dans le DDL les commandes principales suivantes: CREATE TABLE = Création d'une table CREATE INDEX = Création d'un index ALTER TABLE = Modification de la structure DROP TABLE = Effacement d'une table CREATE VIEW = Créer une vue On retrouve dans le DML les commandes principales suivantes: INSERT = Insérer un tuple Département de géographie / Université du Québec à Montréal 45
47 UPDATE = Modifier un tuple DELETE = Effacer un tuple SELECT = Choisir un ensemble de tuples Il existe de plus des fonctions : de tri (ORDER BY) et de regroupement (GROUP BY) arithmétiques, mathématiques et statistiques (moyenne, maximum, minimum, etc.) logiques (UNION, INTERSECTION, etc.) Les données sont définies selon des types (entier, caractères, date, etc.). On peut aussi inclure dans la définition des attributs des mots de contrôle pour forcer la saisie. Par exemple: nom_rue CHAR(20) NOT NULL définit une variable "nom_rue" qui sera constituée d'un champ de 20 caractères auquel on devra obligatoirement attribuer une valeur si on désire ajouter un tuple contenant cet attribut. Pour créer la table suivante, on utilisera la commande SQL qui suit : CREATE TABLE segment_rue (#_segment_rue INT, nom_rue CHAR(20), longueur INT, nombre_voies INT); Pour créer un index: CREATE INDEX #_seg_rue ON segment_rue (#_segment_rue); Pour rajouter un attribut: ALTER TABLE segment_rue ADD (nom_quartier CHAR(20)); Dans le DML on peut par exemple retrouver les commandes suivantes: INSERT INTO segment_rue (#_segment_rue,nom_rue,longueur,nombre_voies) VALUES (32143,'St-Denis',79,2); UPDATE segment_rue SET nombre_voies = 1 WHERE #_segment_rue = 32143; La commande qui donne son nom au SQL est SELECT, qui permet d'effectuer des requêtes de façon souple et puissante. Sélection de tous les attributs: SELECT * FROM segment_rue; Sélection de certains attributs: SELECT longueur, nombre_voies FROM segment_rue; Département de géographie / Université du Québec à Montréal 46
48 Sélection de certains attributs et tuples: SELECT longueur, nombre_voies FROM segment_rue WHERE longueur < 50 AND nombre_voies = 1; On peut également se servir de mots de contrôle tels: BETWEEN, NULL, LIKE, EXISTS, IN, ALL, SOME, =, etc.. La fonction SELECT peut également s'appliquer à plusieurs tables à la fois et être imbriquée. Il est à notre que le SQL n a pas été développé pour le traitement de l'information spatiale ce qui rend parfois très difficile l'extraction de l'information reliée à l'arrangement spatial des objets Les jointures en SQL Pour interroger une base de données relationnelle sur plusieurs entités, nous devons recourir à des jointures pour raccorder des éléments d'information apparaissant dans plusieurs tables. Jointure interne ou équijointure C'est le type de jointure le plus courant. Seul les champs de la table 1 correspondant aux champs de la table 2 sont retenus. Jointure externe Moins courante, la jointure externe retient tous les champs de la première table (même s'il ne correspondent à aucun champ de la deuxième) et les champs de la deuxième table correspondant à ceux de la première (jointure externe gauche) ou l'inverse (jointure droite). La jointure s écrit comme une égalité entre la clé primaire d une première table et la clé primaire d une autre table. Exemple Pour les tables PUIT (IdPuit, profondeur, municipalité) RELEVÉ_QUALITÉ_EAU (IdRelevé, puit, azote, phosphore, date) La requête suivante : SELECT PUIT.IdPuit, PUIT.municipalité FROM PUIT, RELEVÉ_QUALITÉ_EAU Département de géographie / Université du Québec à Montréal 47
49 WHERE RELEVÉ_QUALITÉ_EAU.azote > 1000 AND PUIT.IdPuit = RELEVÉ_QUALITÉ_EAU.puit ; (jointure) donne la liste des puits dont le niveau d azote a dépassé Comme l exemple le suggère, le nom de la clé externe peut ne pas être identique à celui de la clé primaire à laquelle il renvoie. Par ailleurs, l ordre des jointures dans une requête SQL est sans conséquences La vue La vue est un sous-ensemble de la base de donnée. C'est en fait la définition d'une table où l'on a choisi et peut-être réarrangé les attributs de la base de données en fonction de la perception ou des besoins d'un groupe d'usagers. Contrairement aux tables, seul l énoncé de la vue est enregistré. L exécution d une vue produit une table temporaire. Lorsque cette dernière est enregistrée, les vues résident seulement en mémoire vive. La définition d'une vue peut par contre être enregistrée sur disque. La vue se crée en SQL par la commande CREATE VIEW suivi d une requête de type SELECT (dans laquelle l instruction SELECT est remplacée par CREATE VIEW). L enregistrement d une requête SQL (son énoncé, non son résultat) constitue en fait une vue. Le logiciel Microsoft Access ne distingue d ailleurs pas les requêtes des vues L'intégrité référentielle L'intégrité référentielle concerne l'accord entre l'information distribuée dans deux tables. Il ne s agit pas d une propriété structurelle, mais d une propriété des données peuplant deux tables reliées. L'intégrité référentielle d'une base de donnée sera assurée si une valeur de clé primaire existe pour toute valeur de clé externe. Plusieurs S.G.B.D. permettent une vérification automatique de l'intégrité référentielle. Par exemple, dans les tables suivantes : TRONCON_RUE (Id_Tronçon, Id_Rue, Adresse_Min, Adresse_Max, Longueur) NOM_RUE(Id_Rue, Nom_Rue) Chaque valeur de TRONCON.Id_Rue doit se retrouver dans la table NOM_RUE. La vérification automatique de l'intégrité référentielle empêchera l'usager de supprimer un enregistrement de la table NOM_RUE si un enregistrement de la table TRONCON_RUE y fait référence à travers son champ Id_Rue. Département de géographie / Université du Québec à Montréal 48
50 3.5 La structuration géorelationnelle La représentation de la topologie des surfaces La topologie de surface réfère à l'information explicite qui renseigne sur l'identité des voisins d'un polygone. La façon la plus utilisée, et d'ailleurs la plus efficace, pour représenter cette information est de rattacher des données d'attribut à un élément linéaire. La chaîne complète est donc l'objet cartographique employé. Voici une table classique renfermant l'information sur la topologie : CHAÎNE (id_chaîne, noeud_début, noeud_fin, polygone_gauche, polygone_droit) Voici un exemple de table de données ayant cette structure : voici la requête SQL qui donnerait la liste des voisin du polygone 2 d'après cette table : Et SELECT POLY_DROITE FROM CHAINE WHERE POLY_GAUCHE = 2 UNION SELECT POLY_GAUCHE FROM CHAINE WHERE POLY_DROITE = 2 ; Remarque générale : les relations réflexives spatiales (est voisin de..., est connecté à...) s'expriment à partir d'une entité-charnière du niveau topologique immédiatement inférieur à celui de l'entité visée. Les chaînes-réseau (niveau topologique = 1) s'articulent autour de nœuds (niveau topologique = 0), les polygones (niveau topologique = 2) s'articulent autour de chaînes de surface (niveau topologique = 1), les volumes (niveau topologique = 3) s'articulent autour de facettes (niveau topologique = 2). Département de géographie / Université du Québec à Montréal 49
51 Il existe théoriquement plusieurs façons d'exprimer la relation de voisinage immédiat entre deux polygones : En procédant ainsi, On obtient ceci : POLYGONE (ID_Poly, Type, Surface, etc.) VOISIN (ID_Poly_1, ID_Poly_2) ce qui, en pratique, n'est jamais utilisé. Le modèle classique se présente ainsi : 1,2 et se traduit par : CHAINE (ID_Chaîne, Poly_Gauche, Poly_Droite) POLY (ID_Poly, Surface, etc.) Nous avons vu à la section précédente que cette structure nous oblige à écrire des requêtes SQL plus ou moins élégantes. Le meilleur choix, rarement employé, serait de considérer la relation entre Chaîne de surface et Polygone comme une relation un-à-plusieurs même si il n'y a jamais plus de deux polygones reliés à une chaîne en particulier (deux est quand même "plusieurs"). On aurait alors : CHAÎNE (ID_Chaîne, Longueur, etc.) POLY (ID_Poly, Surface, etc.) Département de géographie / Université du Québec à Montréal 50
52 CHAINE_POLY (ID_Chaîne, ID_Poly, Côté) où l'attribut côté peut prendre les valeurs "gauche" ou "droit". Pour sélectionner les polygones voisins du polygone 14 on écrirait alors : SELECT ID_Poly FROM CHAINE_POLY WHERE ID_Chaîne IN (SELECT ID_Chaîne FROM CHAINE_POLY WHERE ID_Poly = 14) AND ID_Poly <> 14; où l'opérateur <> signifie "différent de". Bien que cette approche soit moins classique, elle est davantage dans l'esprit de la conception de structures relationnelles en troisième forme normale. Il reste néanmoins que les relations réflexives amènent toujours certaines complications La représentation de la topologie des réseaux Les divers types de réseaux peuvent être représentés dans le modèle géorelationnel au moyen de chaîne-réseau et de tables d'attributs. Exemple de réseaux : aqueduc route égout électricité rivières etc. Les réseaux simples Les réseaux simples se caractérisent de la façon suivante : ils ne sont pas orientés ils ne comportent qu'une seule voie Exemple : réseau de sentiers pédestres Département de géographie / Université du Québec à Montréal 51
53 Une table d'attributs rattachée au réseau aurait la structure suivante : Chaîne_réseau (Id_Chaîne, Noeud_Initial, Noeud_Terminal) On peut circuler à travers le réseau en trouvant les chaînes-réseau dont un des nœuds possède le même identifiant que celui du nœud ou l'on se trouve sur la chaîne-réseau que l'on vient de traverser. Pour trouver les chaînes-réseau rattachées à un nœud dont le numéro serait contenu dans la variable numéro on pourrait procéder de la façon suivante : SELECT Id_Chaîne FROM Chaîne_réseau WHERE Noeud_Initial = numéro OR Noeud_Terminal = numéro ; L'application récursive d'une requête semblable permet par exemple de " naviguer " à travers un réseau hydrographique. Plusieurs systèmes d'information géographique offrent des possibilités de recherche de parcours optimaux ou de circulation à travers le réseau. Les réseaux orientés Les réseaux orientés sont des réseaux simples dans lesquels la circulation le long d'une chaîneréseau ne peut se faire que dans un seul sens. Par exemple : réseau hydrographique réseau d'aqueduc réseau d'égout réseau de gaz naturel pipeline etc. Ce sens devra donc être indiqué implicitement ou explicitement. Plusieurs logiciels retiennent le sens de numérisation (qui se traduit par l'ordre d'enregistrement des coordonnées dans le fichier) et s'en servent comme donnée d'orientation. Il est toutefois préférable de spécifier l'orientation de façon explicite. Ceci peut se faire en indiquant qu'un des deux nœuds terminant la chaine-réseau est le nœud initial et que le second est le nœud final ou terminal. Cette façon de faire permet de répondre aux requêtes normales visant une base de données constituée de chaînes-réseau orientées. Toutefois, cette approche manque de flexibilité en ce qu'elle est relativement rigide. Considérons l'exemple suivant : Département de géographie / Université du Québec à Montréal 52
54 voulait changer la direction de la chaîne définie par les noeuds 4-2 il faudrait changer les enregistrements 4 et 2 pour 2 et 4. Plus simplement, on pourrait prévoir un champ qui renseigne sur la direction de la chaîne : Chaîne_réseau (Id_Chaîne, Noeud_Initial, Noeud_Terminal, Sens_Normal) Ici le champ Sens_Normal nous dit si la direction est normale ou inversée : si Sens_Normal est vrai ("TRUE") la direction est du nœud initial au nœud terminal, si Sens_Normal est faux ("FALSE") la direction est du nœud terminal au nœud initial. Dans le cas ou l'on s'en remet simplement aux nœuds, on peut trouver les chaînes-réseau connectées à un nœud et situé en aval du réseau de la façon suivante : SELECT Id_Chaîne FROM Chaîne_réseau WHERE Noeud_Initial = numéro ; Seulement le nœud initial est retenu car si une chaîne est rattachée au nœud actif (celui sur lequel "on se trouve") par son nœud terminal, on ne pourra circuler sur cette chaîne car on le ferait à sens inverse. La même requête prendrait la forme suivante si le champ Sens_Normal était inclus dans la table de chaîne-réseau : SELECT Id_Chaîne FROM Chaîne_réseau WHERE (Noeud_Initial = numéro AND Sens_Normal = TRUE) OR (Noeud_Terminal = numero AND Sens_Normal = FALSE) ; Note : attention aux priorités imposées par les parenthèses et au choix des «AND» et «OR». Département de géographie / Université du Québec à Montréal 53
55 Les réseaux routiers Les réseaux routiers sont habituellement plus complexes car ils comprennent : plusieurs voies, une direction pour chacune des voies, des règlements de circulation associés aux intersections. Les règlements sont principalement les arrêts, les feux de circulation et les interdictions de virage. Pour guider un véhicule dans un réseau routier - et le problème se pose avec plus d'acuité pour les réseaux urbains - il faut pouvoir enregistrer toutes ces règles. Une seule entité est nécessaire pour ce faire mais on doit exploiter une relation réflexive qui se traduit par une table relationnelle à références croisées appelée Turntable, ce qui pourrait se traduire par "table de virages" : Table_Virage (Voie_Origine, Voie_Destination, Type d'arrêt, Virage_Possible, De_Heure, à_heure) où Voie_Origine et Voie_Destination contiennent des numéros de chaînes-réseau qui les relient aux enregistrements d'une table, c'est-à-dire que Voie_Origine et Voie_Destination font référence à Numéro_Chaîne : Chaîne_réseau (Numéro_Chaîne, Noeud_Initial, Noeud_Terminal, Vitesse_Maximum) Pour le graphe suivant : On aurait la table suivante : Département de géographie / Université du Québec à Montréal 54
56 Les nœuds n'apparaissent plus car leur fonction était d'articuler le réseau. Comme ils ne permettent pas de représenter les informations relatives aux virages il faut utiliser une table à référence croisée où n'apparaissent que des chaînes-réseau. Celles-ci suffisent à représenter les connexions possibles dans le réseau mais il est clair que cette solution entraîne la création d'une très grosse table (douze enregistrements pour chaque intersection " à quatre branches "). La segmentation dynamique On veut souvent rattacher des attributs qui renseignent sur l'état des routes : revêtement qualité de la chaussée zone d'épandage d'abrasif etc. Toutefois, la segmentation du réseau routier ne saurait être autre que topologique, c'est-à-dire que l'emplacement des nœuds doit refléter la présence d'intersections et non pas, par exemple, le début et la fin de tel type de revêtement : Il faut éviter de placer des nœuds aux extrémités des segments comportant une différence au niveau de l'attribut car ces segments n'ont pas de caractère permanent. Il faudrait donc modifier les nœuds à chaque fois que l'on constate un changement (de qualité du pavé, etc.). Il est préférable d'utiliser la "segmentation dynamique" (cette terminologie est propre à ARC/INFO) qui consiste à superposer l'entité "section" à celle de chaîne-réseau. On aura donc : Département de géographie / Université du Québec à Montréal 55
57 Chaîne_réseau (Id_Chaîne, Noeud_Initial, Noeud_Terminal) Section (Id_Section, Id_Chaîne, Début, Fin, Revêtement) Les attributs " Début " et " Fin " sont généralement des distances à partir du nœud initial. Cette approche ne peut être implantée sur n'importe quel logiciel puisque le traçage des sections fait appel à un programme spécial La gestion sur plusieurs feuillets Les bases de données à référence spatiale couvrent souvent des territoires très vastes. À cause de la structure des fichiers vectoriels ou matriciels, il est difficile de conserver l ensemble des données d une couche couvrant une très grande superficie dans un même fichier. En général, lorsque l on tente de fonctionner ainsi, on fait face à des problèmes découlant des limites des logiciels (par exemple, le nombre maximum de polygones sur une couche, etc.) et toutes les opérations sont ralenties par la lourdeur du fichier. Il convient alors de segmenter l espace en feuillets. Chaque couche se voit ainsi divisée en tuiles de dimensions uniformes. La grille des feuillets est évidemment la même pour toutes les couches. Il faut alors mettre en place une super-structure qui servira à gérer l organisation des feuillets. Les approches sont très variables de logiciel en logiciel et il n existe pas de standard dans ce domaine. La segmentation en feuillet pose aussi le problème de la continuité de l information. En effet, que faire avec par exemple les polygones qui se retrouvent à cheval sur deux feuillets? On appelle carte continue des dispositifs logiciels qui permettent de segmenter l information tout en maintenant sa continuité spatiale. Malheureusement, peu de SIG offrent ce genre de fonctions. La nouvelle structure du Geodatabase d ESRI contourne le problème en abolissant le découpage en feuillets et an ayant recours à des SGBD d envergure (comme ORACLE) pour gérer les très grosses bases de données La structuration pour la représentation de la troisième dimension Vue d'ensemble Le relief peut être représenté de plusieurs façons qu'on peut rassembler en deux grandes catégories : La caractérisation locale Il s'agit ici d'une information qui ne caractérise le relief d'une région qu'en un certain nombre d'endroits. Les points cotés et les courbes de niveau font partie de cette catégorie. Cette information, bien que parfois riche, ne se prête pas aux calculs automatisés par lesquels on dérive la pente, l'azimut, la longueur de la pente et parfois aussi la situation et le type topographique, ou la délimitation automatisée des bassins versant de même que les portions de territoire visibles à partir d'un point X,Y,Z. Département de géographie / Université du Québec à Montréal 56
58 La couverture totale Deux types de représentations permettent de caractériser tous les points du territoire : les réseaux de triangles irréguliers et les matrices. On les nomme «modèles numérique d'altitude». Les calculs automatisés des caractéristiques énumérées au point précédent se font aisément à partir de ces deux types. Note : toutes les informations données dans cette section concernent également la bathymétrie et, de façon plus générale, toute donnée quantitative (pensons entre autre aux cartes d'isohyètes ou d'isobares) que l'on souhaite exprimer sous forme tridimensionnelle. De plus, les SIG offrent généralement des outils qui permettent de passer d'un mode de représentation à un autre. Le modèle vectoriel La structuration des données vectorielles pour la représentation du relief ne présente pas de différence avec la structuration habituelle. Des points ou des lignes représentant respectivement des points cotés et des courbes de niveau sont associés à une table d'attributs où apparaîtront les altitudes de chacun. Certains logiciels de CAO (Conception Assistée par Ordinateur, ou CAD), comme AutoCad ou Microstation, enregistrent des coordonnés X,Y,Z et peuvent donc représenter le relief sans recours à une table d'attributs. La répétition de la coordonnées Z pour tous les points qui dessinent une courbe de niveau est toutefois inefficace. L'anneau est le seul objet cartographique apte à représenter rigoureusement une courbe de niveau. Malheureusement, on retrouvera parfois sur le marché des fichiers topographiques dans lesquels chacune des courbes de niveau pourra être constituée de plusieurs cordes. Ces courbes de niveau sont même parfois ouvertes, ce qui provoque des erreurs dans la constitution de modèles numériques d'altitude. Récemment, certains SIG autorisent la constitution et l analyse de fichiers vectoriel 3D comme le font depuis longtemps les logiciels de CAO. Les versions récentes de ArcView en sont un exemple. Les réseaux de triangles irréguliers (TIN) Les réseaux de triangles se composent, comme leur nom l'indique, d'une multitude de triangles quelconques qui se jouxtent de telle sorte qu'ils partagent leurs sommets et leurs arêtes. Département de géographie / Université du Québec à Montréal 57
59 On peut trouver une animation faite à partir d'un TIN à l'adresse suivante : La façon la plus simple de les représenter est d'associer une table d'attributs à la couche de triangles. TRIANGLE (ID_Triangle, Pente, Azimut) Si on veut toutefois représenter de façon explicite la topologie de surface, c'est-à-dire les relations de voisinage entre les triangles (pour détecter facilement les vallées et les crêtes), on préférera la structure suivante : ARÊTE (ID_Arête, Triangle_Gauche, Triangle_Droite) TRIANGLE (ID_Triangle, Pente, Azimut) Il est toutefois rare que l on interroge un TIN en SQL. Des fonctions spéciales sont prévues à cet effet dans les SIG. Le modèle matriciel Une matrice dont les pixels expriment l'élévation locale constitue une façon simple et habituelle de représenter le relief. On préférera le recours à des nombres réels pour exprimer cette quantité pour éviter les effets de terrasse dans les zones de pente faible. La dimension d'une matrice d'élévation sera alors de : nombre de colonnes x nombre de lignes x 4. Ainsi, une matrice de 1000 par 1000 occupe quatre méga-octets. On reconnaît donc en général que le TIN est beaucoup moins gourmand en espace-disque. Il s'ajuste mieux aux crêtes et aux vallées mais il donne toutefois un aspect facetté au relief. Département de géographie / Université du Québec à Montréal 58
60 3.5.5 La structuration pour la représentation du temps Les "photographies" d'une base de données On appelle "photographie" l'enregistrement intégral d'une base de données, c'est-à-dire sa structure et son contenu. Il s'agit ni plus ni moins d'un "backup" de la base. Cette méthode permet de récupérer des données caractérisant des états passés de tels ou tel objet géographique de même que le tracé de ces objets. Il s'agit d'une méthode simple mais coûteuse en espace. De plus, dans le cas de données vectorielles, des requêtes multidates (par exemple : quelles sont les zones où la population a augmenté de plus de 5% en 10 ans) ne peuvent être effectuées directement. Il faut extraire les données nécessaires, donc ré-activer d'anciennes version de la base de données, et les placer dans un espace temporaire, ce qui constitue un processus plutôt lourd. Notons également que les anciennes versions de la base reposent peut-être dans un format qui n'est plus lisible par un éventuel nouveau SGBD, ce qui peut occasionner d'épineux problèmes de transcodage. Les données matricielles se prêtent bien à la photographie car elles constituent toujours des instantanés d'un phénomène. Les images de télédétection par exemple sont fréquemment utilisées pour caractériser des changements survenus sur le territoire au fil des ans. Les cartes matricielles, pour autant qu'elles soient superposables (mêmes projection et résolution), s'utilisent facilement pour caractériser l'évolution temporelle d'un phénomène. Le problème de volume de données reste toutefois entier. Données d'attribut multitemporelles Si l'on considère le cas particulier d'une base de donnée vectorielle où les valeurs d'attributs changent au fil des ans sans que ne soient modifiés les vecteurs eux-mêmes (le dessin des objets reste le même), on peut voir qu'il est relativement facile de représenter l'aspect temporel des données dans une base relationnelle. Dans le cas où des modifications affectent tous les attributs en même temps, il peut être intéressant de créer des tables pour chacune des "versions". Les données du recensement se prêtent bien à cette approche. Elles ne sont modifiées qu'à tous les cinq ans et tous les attributs sont en général modifiés. Pour représenter les données par secteur de recensement, on pourrait utiliser les tables suivantes : Département de géographie / Université du Québec à Montréal 59
61 SR_1991 (ID_SR, Population, Superficie, Revenu moyen, etc.) SR_1996 (ID_SR, Population, Superficie, Revenu moyen, etc.) Une requête donnant l'accroissement de population s'écrirait ainsi : SELECT SR_1996.Population - SR_1991.Population FROM SR_1996, SR_1991 WHERE SR_1996.ID_SR=SR_1991.ID_SR; Il faut donc effectuer une jointure à partir d'un champs invariable, en l'occurrence l'identifiant des secteurs de recensement. On pourrait également avoir recours à la structure suivante : SR (ID_SR, Population_1991, Population_1996, Superficie, etc.) qui est néanmoins problématique lorsque de nombreuses dates doivent être entrées. Lorsque des modifications sporadiques affectent l'un ou l'autre des attributs d'un objet (pensons par exemple aux données du rôle d'évaluation), nous devons avoir recours à une autre approche. Une façon simple de faire les choses serait d'inclure la date de modification pour chacun des enregistrements d'une table. Pour le rôle d'évaluation on aurait : ROLE (ID_Parcelle, ID_Proprio, Valeur_terrain, Valeur_Bâtiment, Date, etc.) Voici une requête qui retournerait l'information actuelle sur la parcelle # 2345 : SELECT * FROM ROLE WHERE ID_Parcelle=2345 and Date = (SELECT MAX(Date) FROM ROLE WHERE ID_Parcelle=2345); La requête suivante donnerait l'état de la parcelle en 1980 : SELECT * FROM ROLE WHERE ID_Parcelle=2345 and Date = (SELECT MAX(Date) Département de géographie / Université du Québec à Montréal 60
62 FROM ROLE WHERE ID_Parcelle=2345 and Date<=31/12/1980); Données vectorielles multitemporelles La situation se complique lorsque les éléments vectoriels sont eux-aussi modifiés en cours de route. En général, l'ajout ou le retrait de vecteurs n'est pas trop difficile à gérer. C'est plutôt les modifications qui sont problématiques, comme par exemple : modification d'un tracé, modification de la topologie d'un réseau ou de surfaces, division ou fusion de polygones, réorganisation complexe d'un ensemble de parcelles. Ces modifications sont malheureusement plus ou moins bien gérées par les SIG commerciaux. Là encore on peut penser associer chaque vecteur à une date de modification et en plus ajouter une référence qui donne pour chaque objet défini au temps 1, le ou les objets qu'il est devenu après modification. On comprend pourquoi les bases SIG multitemporels constituent un axe de recherche très actif aujourd'hui La représentation des méta-données Les méta-données sont des informations décrivant un ensemble de données. Dans le cas d une base de donnée géorelationnelle vectorielle, les méta-données peuvent décrire : o La signification du contenu des couche o Les projections cartographiques utilisées o La date d acquisition des données o L explication du nom des tables et des attributs, o Etc. Dans le cas matriciel, on retrouvera : o La géoréférence o Le nombre de lignes et de colonnes o La taille des pixels, o Le nombre de canaux, o Etc. Il est possible d organiser les méta-données relatives aux bases géorelationnelles vectorielles sous forme de tables consultables et interrogeables. Ceci en facilite également la mise à jour. Département de géographie / Université du Québec à Montréal 61
63 Dans le cas matriciel, les méta-données sont enregistrées dans un fichier de documentation séparé ou en en-tête de fichier. Les formats varient d un logiciel à l autre Outils de modélisation géorelationnelle On peut classer les outils de modélisation pertinents en deux catégories : ceux qui ne servent qu à l organisation des données descriptives, et ceux qui servent à l organisation des données vectorielle et les données descriptives. Les premiers sont bien répandus et utilisés surtout en dehors du contexte SIG. Il permettent de tracer le schéma conceptuel et d en dériver automatiquement la structure relationnelle. Le logiciel System Architect en est un exemple. Les seconds, beaucoup plus rares, sont assez peu souvent utilisés. Il ont pour la plupart été développé par des groupes universitaires et n ont pas de base commerciale large, mais peuvent se révéler fort utiles. Le logiciel Perceptory développé par l équipe de Mario Bédard au Centre de Recherche en Géomatique de l Université Laval en est un exemple. Département de géographie / Université du Québec à Montréal 62
64 Chapitre 4 La structure physique des fichiers 4.1 La représentation informatique des nombres et des caractères Les données enregistrées dans les fichiers informatiques et sont exprimées d'après des types précis : o Nombres entiers (plusieurs types) o Nombres réels (plusieurs types) o Chaîne de caractères o Date o Monétaire o Logique (Vrai ou Faux) o Etc. Les nombres en particulier peuvent être exprimés selon plusieurs types. C'est souvent la dimension maximale attendue des valeurs que l on désire insérer dans un champ numérique qui déterminera le type. En effet, et contrairement à une idée répandue, les ordinateurs ne peuvent exprimer des nombres de toute taille et de toute précision. Par souci de parcimonie, on choisira le type numérique de manière à qu il puisse exprimer le plus gros chiffre prévu en fonction de l attribut visé mais de manière à ce qu il occupe le moins de place possible. Par exemple, pour l âge d une personne, on choisira l entier court (8 bits ou 0 à 255), ce qui permet d exprimer tous les âges «humainement» possibles, pour l âge d un bâtiment, la valeur de 255 (ans) est limitative, on préférera l entier «normal» (16 bits ou ). Bien qu une grande part du domaine possible ne sera pas utilisée, il s agit du plus petit type numérique pouvant exprimer l âge de bâtiments médiévaux par exemple, pour exprimer la coordonnée UTM «northing» sous nos latitudes (à 45 degrés nord, cette coordonnée est supérieure à 5,000,000) avec une précision centimétrique (deux décimales), nous aurons besoin d un réel double (64 bits). Toutes ces représentations et les limites qui les accompagnent découlent du système binaire à la base de l informatique. Expression des nombres en système binaire Département de géographie / Université du Québec à Montréal 63
65 Le bit (contraction de Binary DIgit ou «chiffre binaire») constitue la plus petite unité informatique. Il peut représenter seulement deux valeurs : 0 ou 1. Un octet (byte) est formé de huit bits et peut représenter 256 valeurs différentes car 2 à la puissance 8 est égal à 256. Voici les puissances de 2 associées à la position du bit dans l'octet (première ligne) et la valeur numérique associée (deuxième ligne) : Puissance n Valeur (2 n ) Pour trouver la valeur d un octet, on multiplie la valeur de chaque bit par la valeur numérique associée à sa position (c est-à-dire 2 exposant n, n fonction de la position dans l octet). On additionne ensuite les huit produits. Par exemple, l'octet suivant : possède la valeur 54 car : = 54 Voici la liste des types numériques les plus fréquents Octet (byte) ou entier court : 1 octet = 0 à 255, -128 à 127. Entier : 2 octets = 0 à 65535, à Entier long : 4 octets = 0 à , à Réel : 4 octets = 1.75E-38 à 3.40E+38. Ici, un certain nombre de bits sont dédiés respectivement à la mantisse et à la puissance. Réel double : 8 octets = 1.7E-308 à 1.7E+308 Attention, ni la taille ni la précision des nombres n est infinie. On ne peut en effet représenter une infinité de nombre avec un nombre limité de bits! Il arrive que des erreurs se créent par défaut de représentation correcte des dernières décimales. De plus, l expression des nombres réels varient selon le processeur. La signification des bits varie en effet. Ceci est ne cause pas de problème si vous utiliser toujours la même plateforme. Par contre, si vous échanger des données entre Windows et MacIntosh, il faudra convertir les nombres réels. Il faut se rappeler des deux principales classes : 1 Les chips Intel 2 Les chips Sparcs, Motorola 68k utilisés dans les Macs, et Motorola Ce site explique en profondeur ces notions. Département de géographie / Université du Québec à Montréal 64
66 4.2 La structure physique des fichiers L organisation générale Les fichiers informatiques consistent en une suite ininterrompue d octets. Comment l ordinateur peut-il y reconnaître des valeurs de coordonnées, des noms de personnes, des couleurs, etc. dans cette suite ininterrompue? Tout dépend de l interprétation des valeurs des octets. Il revient au programme informatique qui lit les données de savoir les interpréter. Cela se fait en fonction de la structure attendue. Un fichier numérique dont on ne connaît pas le contenu ressemble à un texte dans une langue inconnue Fichiers binaires et fichiers «texte» On qualifie les fichiers de binaires lorsque les valeurs de octets qui s y trouvent doivent absolument être interprétées par un programme «connaissant» la structure et les types de données se trouvant le fichier. On qualifie les fichiers de «texte», ou «ASCII» lorsque les valeurs des octets peuvent être interprétées selon une table de correspondance nombre => caractère. On appelle ici «caractère» un symbole graphique ayant une certaine signification : une lettre, un chiffre, un caractère de ponctuation. Les fichiers textes peuvent être décodés par n importe quel programme de traitement de texte. Ce que ce programme fera apparaître à l écran sera intelligible si l usager sait reconnaître les caractères, les mots, etc., apparaissant à l écran. La lecture d un fichier binaire par un logiciel de traitement de texte ne fera apparaître qu une suite inintelligible de caractères. Voici un extrait de la table ASCII standard : Nombre Caractère 60 < 61 = 62 > 63? 65 A 66 B 67 C 68 D Pour connaître le symbole ASCII associé à un nombre, on peut maintenir la touche Alt du clavier enfoncée pendant que l ont tape une valeur sur le clavier numérique de l ordinateur. Lorsque la touche Alt est relâchée, le symbole ASCII apparaît. Les valeurs utilisées sont de type entier court. Les tables ASCII varient d une langue à l autre. Pour cette raison, on souhaite instaurer une table Département de géographie / Université du Québec à Montréal 65
67 ASCII à 2 octets (entier) pour représenter tous les caractères accentués et autres de la plupart des langues de manière à harmoniser les tables. Le format ASCII est très utilisé comme format d échange des données car sa lisibilité fait qu il est facile d analyser le contenu d un fichier avec un simple logiciel de traitement de texte. Par contre, la taille des fichiers ASCII est en général plusieurs fois plus grande que celles des fichiers binaires correspondants La structure des fichiers binaires Tel que mentionné plus haut, la structure d un fichier binaire doit être connue par le programme de lecture afin que celui-ci puisse décoder le fichier. En général, le moindre petit écart de structure rendra le fichier illisible en totalité ou en partie. L expression de la structure prend souvent la forme, dans le programme, d une série d instructions demandant de lire un certain nombre d octets à une certaine adresse et d interpréter les octets lus selon un type numérique. L expression explicite de la structure est faite dans des documents techniques, souvent gardés secret. Ces documents révèlent le contenu adresse par adresse, ou alors selon une structure en sections, en blocs, commençant à tel adresse, etc La structure des fichiers binaires tabulaires Les tables relationnelles sont enregistrée sous forme de suite d enregistrements. Les enregistrements on une longueur fixe. Cette longueur est déterminée par la composition de l enregistrement, i.e., le fait qu il soit formé de tel ou tel type de champ, en tel ou tel nombre. Il est possible de connaître l adresse informatique d un enregistrement en fonction de son numéro de séquence. Par exemple, pour des enregistrements de 20 octets, le début du sixième enregistrement sera situé à l adresse 100. L adresse du début du fichier étant 0, on a : Enregistrement Adresses de début et de fin etc L ajout d un nouvel enregistrement consiste à ajouter des valeurs, d une longueur totale de un enregistrement, à la fin du fichier. Le retrait d un enregistrement par contre consiste à placer une valeur nulle à l emplacement du début de l enregistrement. Celui-ci n est plus compté, ni considéré. Le retrait d un enregistrement ne diminue donc pas la dimension du fichier. Pour que cette réduction s opère, il faut explicitement demander de compacter la base de données. Ceci consiste à écrire à l adresse de l enregistrement effacé n, l enregistrement n+1, à la place de l enregistrement n+1, l enregistrement n+2, et ainsi de suite. Il s agit d une opération longue lorsque réalisée sur des bases de données volumineuses. Pour cette raison, elle n est pas lancée à chaque Département de géographie / Université du Québec à Montréal 66
68 effacement. On comprend également qu un enregistrement vide, ou formé de valeurs nulles, occupe autant de place qu un enregistrement non nul La structure des fichiers vectoriels binaires Les vecteurs sont souvent représentés par un identifiant (facultatif), le type (point, ligne ou polygone), le nombre de coordonnées de l objet et une ou plusieurs coordonnées. Bien que la structure précise des fichiers vectoriels binaires ne soit en générale connue que des concepteurs du logiciel, on sait que la structure la plus simple consiste à enregistrer ces données en séquence : ID,Type,N,X1,Y1,X2,Y2,ID,Type,N,X1,Y1,X2,Y2, X3,Y3,X4,Y4, etc. Comme pour les fichiers tabulaires, le retrait de coordonnées ou d objets laisse des «trous» dans le fichier. On devra là aussi demander la compaction de la base de données. 4.3 Les pointeurs Le concept de pointeur Bien qu'il soit rare que l'analyste SIG ait à utiliser le concept de pointeur dans un cadre normal d'utilisation, il est bon de connaître ce qu'est un pointeur pour comprendre comment sont construit les index. Un pointeur est une variable (ou en d'autres termes une «case mémoire») contenant l'adresse-mémoire d'une autre variable. Lorsqu'une variable contient l'adresse d'une deuxième, on dit qu'elle pointe sur la deuxième. Par exemple, si une variable à l'adresse 100 est pointée par une variable se trouvant à l'adresse 50, on trouvera dans cette dernière variable la valeur 100. Dans la figure suivante, le contenu de la case-mémoire portant l'adresse 4 est un pointeur car sa fonction est d'enregistrer l'emplacement d'une autre case-mémoire qui comporte un intérêt quelconque, en l'occurrence la case 8. Voici quelques structures que l'on peut mettre en place grâce à des pointeurs. La plus importante est l'arbre car elle sert généralement de support aux index. La liste chaînée Département de géographie / Université du Québec à Montréal 67
69 Il s'agit d'une liste où la recherche ne peut s'effectuer que dans une seule direction. Elle peut servir par exemple à contenir une liste ordonnée comprenant des enregistrements de longueur variable. La liste doublement chaînée Il s'agit d'une liste où la recherche peut s'effectuer vers l'avant et vers l'arrière. Elle peut servir de structure par exemple à un fichier séquentiel ordonné. Les anneaux Il s'agit de listes où la recherche peut s'effectuer vers l'avant et vers l'arrière, sans borne. Les arbres Un arbre binaire est une structure hiérarchique dans laquelle deux branches partent de chaque embranchement. Département de géographie / Université du Québec à Montréal 68
70 Les arbres n-aires sont simplement des arbres comportant plus de deux branches à chaque embranchement. 4.4 L indexation des tables Les structures relationnelles contiennent des données enregistrées séquentiellement sans ordre particulier. Or, les recherches, lancées entre autre par des requêtes SQL de type SELECT doivent retracer des enregistrements en évaluant leur valeur d après un ou plusieurs critères. Bien qu'il s'agisse d'une tâche simple, le temps de réponse peut devenir très long lorsque la base de données est volumineuse. Pour remédier à ce problème, on construit un index sur un ou plusieurs champs d'une table. On choisira souvent d'indexer la clé primaire et les champs les plus souvent utilisés comme critères de recherche (ceux apparaissant dans la clause WHERE). Un index est un arbre dont les nœuds contiennent l'adresse d'un enregistrement. Un arbre est construit après, ou au fur et à mesure, que se fait l'entrée de données. Les arbres sont toujours invisible à l'usager mais peuvent eux-mêmes devenir volumineux. La constitution d'un arbre par le SGBD se fait en parcourant les enregistrements d'une table et en créant des nouvelles branches d'après une règle très simple : la nouvelle valeur est-elle plus petite ou plus grande que celle enregistrée dans le nœud actuel. Si elle est plus petite on crée une banche à gauche, si elle est plus grande on en crée une à droite. La recherche à travers l'index construit se fait de la même façon. Exemple d'index représenté dans un arbre binaire et de la table indexée. Département de géographie / Université du Québec à Montréal 69
71 Numéro de l'enregistrement Identifiant Attribut 1 25 dg 2 32 hg 3 21 fh 4 42 kj 5 18 hy 6 41 et 7 50 jy 8 12 dt 9 23 rt uy gh jy 4.5 Les index cartographiques L indexation des données cartographiques en format vectoriel pose un défi particulier. En effet, les données ont au moins deux dimensions, ce qui empêche leur ordination et complique Département de géographie / Université du Québec à Montréal 70
72 considérablement leur indexation. Pour remédier à ce problème, on a imaginé des solutions dans lesquelles l espace couvert par une couche est divisé en cellules, virtuelles, qui reçoivent les données vectorielles. Certaines solutions utilisent des cellules rectangulaires de taille régulière, d autres de cellules rectangulaires de tailles irrégulières épousant la configuration des données. Tous les vecteurs inscrits dans une cellule sont inscrits les uns à la suite des autres. L adresse du début des enregistrements de chaque cellule est connue et la zone couverte par celle-ci est aussi connue. Lorsque les vecteurs d un secteur doivent être lus, on commence par déterminer à quelle cellule ils appartiennent d après les limites connues de chaque cellule. On peut ainsi diriger la tête de lecture immédiatement à l endroit approprié dans le fichier. Ceci permet d accélérer considérablement les opérations demandant une lecture de fichier. Les fichiers ainsi organisés sont beaucoup plus complexes. Les SIG utilisant cette approche ne sont pas nombreux. Les données matricielles ne nécessitent habituellement pas d indexation. Leur structure simple permet l accès direct aux données d une zone en fonction de la coordonnée ligne-colonne. Par contre, en raison du volume parfois très grand des fichiers matriciels, on veut parfois les organiser en pyramides. Département de géographie / Université du Québec à Montréal 71
73 Chapitre 5 Les formats d'échange 5.1 Motifs et principes du transcodage Le transcodage consiste en une modification de la structure d un fichier afin de le rendre lisible par un programme particulier. Le transcodage des données est utilisé pour transporter des données d un logiciel à un autre. En effet, la plupart des logiciels de géomatique utilisent, pour la plupart des opérations, un ou des formats qui leur sont propres. Comme l environnement de travail géomatique est en général peuplé de plusieurs logiciels, il est souvent nécessaire de transcoder les données. En fait, la chaîne de travail géomatique fait souvent appel à des logiciels différents de manière à profiter des forces de chacun en contournant leurs faiblesses. Définitions Format natif : format dans lequel un logiciel effectue la plupart des opérations. Format d échange : format intermédiaire entre deux logiciels pour fin de transfert de données. Le transfert de données entre deux logiciels peut se faire selon deux modes : 1) Natif1 vers Natif2 2) Natif1 vers Échange vers Natif2 Le premier cas ne nécessite pas format intermédiaire. Malheureusement, il n est pas le plus fréquent car les formats natifs sont souvent secrets. Un exemple de ce type de transfert est : MapInfo (.map) à ArcView (.shp). Ceci est possible car le format.shp de ArcView est du domaine public. Le programme «Universal Translator» de MapInfo peut se charger de la tâche. Voici un exemple du second type de transfert : MapInfo (.map) à DXF (format texte d AutoCad) à ArcInfo coverage. Dans ce cas, il faudra utiliser MapInfo pour exporter en DXF, puis ArcInfo pour importer en coverage. Département de géographie / Université du Québec à Montréal 72
74 Certains logiciels se spécialisent dans le transcodage et font partie de la «trousse de secours» des laboratoires de géomatique. Le plus répandu est FME. Par contre, les logiciels SIG eux-mêmes sont de plus en plus ouverts, c est-à-dire qu ils permettent d importer et d exporter de plus en plus de formats différents. Il n est toutefois pas rare que des incompatibilités subsistent. Ainsi, l importation à partir d un certain format peut échouer si le filtre d importation n es pas suffisamment général. Il arrive qu un logiciel parviennent à lire un format donnée lorsque celui-ci est généré par un logiciel X, mais pas lorsqu il est généré par un logiciel Y 5.2 Transcodage en format matriciel Le transcodage de fichiers matriciels ne pose habituellement pas de problème étant donné la caractère simple de ce type de format. Pour la plupart des formats, il suffit que les métadonnées soient inscrites dans le fichier pour que la lecture soit possible : dimension de la matrice, nombre de couches, intercalage, profondeur des pixels (1 octet, 2 octets, etc.), le type numérique (entier, réel, etc.) et ordre des bits. Voici par exemple un extrait du fichier de documentation d une matrice en format ER-Mapper : DataType = Raster ByteOrder = LSBFirst RasterInfo Begin CellType = IEEE4ByteReal NullCellValue = NrOfLines = 1001 NrOfCellsPerLine = 1001 NrOfBands = 1 Certains types de matrice représentent toutefois un défi plus important. Parmi ceux-ci on retrouve : Les fichiers matriciels compressés (par exemple, le TIFF compressé) Ces derniers utilisent des approches de compressions diverses et beaucoup moins standards que les formats de fichiers eux-mêmes. Les formats d images satellitaires (par exemple, le LGSOWG) Ces derniers contiennent beaucoup d information sur les paramètres de vol, date d acquisition, etc. En général, seul les logiciels de traitement d images de télédétection parviennent à les décoder. Le format DTED pour l enregistrement des données d élévation Département de géographie / Université du Québec à Montréal 73
75 Ce format unique en son genre, ne ressemble à rien d autre du côté matriciel. Heureusement, la plupart des SIG sont en mesure de le décoder. Plusieurs formats graphiques sont utilisés pour transcoder les données, notamment le TIFF, le BMP, etc. Les formats d échange matriciels «géographiques» comprennent notamment le.bil d ArcInfo. Il est bon de connaître les limites de chaque format. Ainsi, par exemple, le TIFF ne permet pas la représentation de plus de trois couches dans le même fichier de même qu il ne permet pas la représentation des nombres réels. Il existe toutefois une forme géoréférencée du TIFF : le GeoTIFF. 5.3 En format vectoriel Le transcodage des données vectorielles pose davantage de problèmes. D une part, les données vectorielles sont en général synchronisées avec les enregistrements d une table d attributs. Le transcodage doit donc être double. De plus, la variété des éléments vectoriels est grande. Dans la mesure du possible, on tentera de se limiter au transcodage des points, lignes et polygones, en évitant celui des cercles, splines, et autres objets. En général, ce sont les dessins relativement simples qui se transcodent facilement. La topologie, les primitives partagées, les objets complexes passent mal. Les autres données de documentation, sur la projection notamment, ou sur la représentation graphique, passent mal. On se contentera donc en général de transcoder des couches séparées et complètes, formées d objets simples. On utilise parfois des formats «graphiques» pour le transcodage, notamment les formats DXF, DGN (Microstation) ou PostScript. Ceux-ci ne permettent pas de transporter les attributs. Le format d échange vectoriel de ArcInfo, le e00, est parmi les formats d échange très répandus. Certains formats «géographiques» comme les shapefiles de ArcView, sont en voie de devenir des formats d échange courants. 5.4 Données d'attributs Le transcodage des données d attributs ne pose habituellement pas de problème étant donnée la simplicité des ces dernières. Le format texte simple peut même souvent être utilisé. Le format Access est maintenant très répandu et le format dbase (.dbf) sert encore parfois de format d échange. Le format ASCII est certainement le plus répandu. On retrouvera les deux possibilités suivantes : Format délimité Format fixe Département de géographie / Université du Québec à Montréal 74
76 5.5 Problèmes créés par les différences conceptuelles de la structure Il est important de comprendre que le transcodage ne fait que transformer la structure des fichiers. Il ne peut transformer le modèle des données. Ainsi, s il existe des différences conceptuelles importantes entre deux bases de données enregistrées dans des formats différents, un simple transcodage ne suffira pas à les rendre compatibles. 5.6 Évolution des standards de l industrie Étant donné le grand nombre de format en circulation à un certain moment (par exemple au début des années 90), et le peu d ouverture des logiciels de l époque, on a souhaité mettre sur pied des standards les plus universels possibles. On a malheureusement assisté pendant un certain temps à un foisonnement de standards et des affrontements sur ce plan. Aujourd hui, suite à la disparition de nombreuses compagnies de SIG par suite de consolidation du marché, le nombre de formats a décru. On ne retrouve plus par exemple les formats GeoVision, GenaMap, Atlas GIS, ces derniers logiciels ayant virtuellement disparu. D un autre côté, les logiciels restant sont eux-mêmes beaucoup plus ouverts. Finalement, les standards «persistants» sont plus facilement identifiables. On pense au STDS ou au VPF tiré de DIGEST par exemple. Toutefois, dans la pratique quotidienne, on utilise plus fréquemment l un ou l autre des formats natifs ou d échange des logiciels SIG que les formats standards eux-mêmes. Département de géographie / Université du Québec à Montréal 75
77 Chapitre 6 La compression des données 6.1 But et moyens de la compression de données Malgré l augmentation constante des capacités informatiques d enregistrement, la compression des données demeure d actualité et nécessaire dans de nombreux cas. Ceci découle de ce que les bases de données elles-mêmes croissent en volume à un rythme rapide. En particulier, l augmentation de la résolution des images satellites entraîne aujourd hui la création d images, ou de mosaïques d images qui occupent plusieurs gigaoctets, voire téraoctets. Par ailleurs, les transactions de données étant de plus en plus courantes sur Internet, et la bande passante de ce réseau étant limitée, on cherchera la plupart du temps à compresser les y données circulant. 6.2 Types de compression La compression de données implique que la représentation informatique des données soient modifiée. Ceci amène la plupart du temps une modification de la structure des données, non pas au niveau logique mais la plupart du temps au niveau physique. On peut classifier les méthodes de compression des données selon le mode de compression en deux grandes catégories : 1) celles qui ne font que modifier la représentation informatique, en se fondant notamment sur une approche statistique 2) celles qui modélisent autrement l information de manière à réduite la redondance. On peut également classifier les méthodes de compression selon qu elles sont exactes ou approximatives. Les premières permettent de recouvrer le fichier exactement tel qu il était avant compression, les secondes sacrifient quelque peu la qualité du fichier, ce qui fait que le fichier décompressé est dégradé par rapport à la version originale. Les données vectorielles et tabulaires peuvent être compressées uniquement de façon exacte alors que les données matricielles de type «image» (images, photos scannées, modèles altimétriques) peuvent être compressés selon les modes exacts ou approximatifs. Département de géographie / Université du Québec à Montréal 76
78 6.3 Compression statistique tout usage (par exemple ZIP) La compression basée sur les statistiques d occurrence des valeurs numériques contenues dans un fichier est la plus répandue. C est par exemple celle qui se retrouve dans WinZip et dans la plupart des compresseurs de ce type. On en doit le principe à Huffman du MIT, principe d ailleurs fort simple. On s'appuie habituellement sur les statistiques des valeurs retrouvées dans le fichier, c'est-àdire principalement la fréquence d'occurrence de chaque valeur. On modifie la représentation de façon à ce que les valeurs fréquentes soient représentées par un petit nombre de bits et inversement (un peu à l'instar du Code Morse). La première étape consiste à calculer la probabilité d'occurrence de chaque valeur dans le fichier (histogramme de fréquences). Soit quatre valeurs: Valeur P P cumulative X X X X On construit ensuite l'arbre binaire constitué à chaque niveau de la valeur la plus probable et le sous-arbre des valeurs restantes puis on bâtit les codes binaires en voyageant à travers l'arbre: Département de géographie / Université du Québec à Montréal 77
79 Les valeurs ainsi ré-exprimées sont globalement plus compactes car les plus fréquentes sont exprimées avec grande concision. Cette approche est d autant plus efficace que la redondance initiale est grande dans le fichier. 6.4 Compressions des données matricielles de type nominal Il est possible de compresser assez efficacement les données matricielles de type nominal vu le très haut niveau de redondance caractérisant ces données. Bien qu il soit possible de le faire selon une approche statistique, il peut être encore plus efficace de le faire selon une approche qui tire partie de l organisation des données. L approche la plus répandue se nomme «run length coding», qui pourrait se traduire par «encodage des longueurs de séries». L approche consiste à enregistrer la longueur, en nombre de pixels, des séries de valeurs identiques le long des lignes de la matrice. Par exemple, La série suivante : se codera 7,3, ce qui indique que la valeur 3 est répétée 7 fois dans une série. 6.5 Compression par ondelettes (JPEG, Mr SID, ECW) Les images numériques contiennent généralement une redondance d'information particulièrement élevée. Cette redondance découle de la ressemblance souvent forte entre les valeurs de pixels voisins. Cette ressemblance s'observe aussi à diverses échelles, par exemple de région en région voisine. En termes géostatistiques, on dit que le niveau d'autocorrélation des valeurs des pixels d'une image est relativement fort. On peut exploiter cette propriété afin de comprimer l'image. La méthode consiste à transformer la représentation "image" en représentation fréquentielle, c'est-à-dire en "fréquences spatiales" plus ou moins grandes. Les hautes fréquences se retrouvent dans des zones ou les valeurs varient rapidement de proche en proche, et vice versa. La méthode classique consiste à appliquer une transformée de Fourier bidimendionnelle à l'image. La compression JPEG "classique" par exemple utilise la transformée du cosinus, proche parente de la transformée de Fourier. Le principe est qu'une compression prononcée se limite à des fréquences spatiales plutôt faibles (réduisant ainsi les détails). Cela explique notamment les "vaguelette" observées près des arêtes des images compressées. Par ailleurs, la compression des images couleurs peut exploiter en plus la simplification des couleurs par une classification. On réduit le nombre de couleur en remplaçant les subtiles nuances par une couleur unique. On passe ainsi d'une représentation en 16,7 millions de couleurs à quelques centaines ou milliers, ce qui permet bien sûr d'économiser de l'espace. Département de géographie / Université du Québec à Montréal 78
80 La compression des images par transformée du cosinus et par réduction des couleurs peut être exacte ou approximative. Dans ce dernier cas, l'usager choisit un niveau de qualité, inversement proportionnel à la taille du fichier compressé. Les progrès de la discipline du traitement d'images ont permis une évolution de l'efficacité de la compression pour des niveau de qualité donnés. Ces progrès repose essentiellement sur la technique des ondelettes (wavelets). Celle-ci consiste à représenter les fréquences spatiales non pas en continu mais par fragments d'ondes, d'ou le nom. Ceci permet une représentation plus fidèle, parce que "sur mesure", et tout aussi compacte. On retrouve ce type de compression dans des programmes tels que ECW (ERMapper) et MrSid (Lizard Tech), deux produits spécialisés dans la compression d'images de télédétection. La compression par ondelettes s'applique aussi théoriquement aux modèles numériques d altitude. Par contre, on souhaitera habituellement pour ce type de fichier conserver l'information intacte (compression exacte). Dans ce cas, la compression n'est pas très efficace, une compression statistique pouvant s'avérer supérieure. La compression par ondelettes ne s'applique qu'aux fichiers matriciels prenant la forme d'images. Il va donc sans dire que les fichiers vectoriels ne peuvent faire l'objet de telles compressions. Les fichiers compressés, contrairement à leur version non compressée, contiennent une assez grande variété d'information : paramètres des ondelettes, paramètres couleur, métadonnées sur la taille de la matrice, etc. Ces données sont structurées selon un format qui n'est pas du domaine public. En fait, la méthode de compression est un secret industriel bien gardé. Ainsi, il n'est pas possible d'étudier ce type de structure pour des logiciels données mais seulement de manière générale. 6.6 Compression sur Internet Il est de plus en plus courant de permettre de consulter des données images sur Internet. Le problème majeur à résoudre sur le plan technologique découlait du volume habituellement très grand des données. La relative "lenteur" d'internet de permet pas en effet d'interagir dans une logique client serveur avec des fichiers très volumineux. La solution apportée consiste à transmettre des fichiers compressés et à les décompresser à l'aide d'un outil placé du côté client. Les fichiers compressés voyagent donc à une vitesse acceptable et sont visualisés, avec une perte de qualité tolérable, du côté client. Les décompresseurs sont généralement gratuits. Il se présentent sous la forme de plug-in. Les décompresseurs sont parfois également ajoutés aux SIG. Ils permettent ainsi d'enregistrer des images de forte taille sur des espaces disque réduit, et de visualiser les images presque comme si elles n'avait pas été compressées, c'est-à-dire avec une qualité acceptable, et à une vitesse (ralentie par l'opération de décompression) convenable. Département de géographie / Université du Québec à Montréal 79
81 Chapitre 7 Les systèmes de gestion de bases de données 7.1 Historique et utilité La gestion des données sur ordinateur s'est d'abord faite à partir de fichiers et de programmes sans recours à ce que nous appelons aujourd'hui des «systèmes de gestion de bases de données» (SGBD). Cette situation, qui prévalait au début des années soixante, entraînait un certain nombre de problèmes. Ainsi, lorsque la structure d'un fichier de données changeait, il fallait ré-écrire tous les programmes y faisant accès de manière à les adapter aux modifications. Le maintien de l'intégrité de l'ensemble (fichiers de données et programmes) était fastidieux et complexe. L'invention du système de gestion de bases de données permis de créer une couche intermédiaire entre les fichiers et les programmes ayant des fonctions spécifiques, de manière à ce que ces derniers n'aient plus à subir de modifications en fonction des modifications de structure des données. Cela avait également pour avantage de regrouper les fonctions en un logiciel intégré. Les SGBD ont évolué constamment depuis et se présentent maintenant avec une interface graphique qui facilite grandement l'interaction. Il ont aujourd'hui de nombreuses fonctions qui ont globalement pour rôle de faciliter la gestion des données. Les plus récents ajouts à leurs fonctionnalités consistent en des fonctions réseau permettant de gérer des bases de données distribuées et d'interagir avec des pages web. 7.2 Les composantes Les SGBD offrent en général les outils suivants : Création et édition de la structure des données Saisie et édition de données Création de vues Langage de requête Création de formulaires Création d'états Création de macros et langage de programmation Contrôle de l'intégrité des données Contrôle de la sécurité par privilèges d'accès Gestion multi-usagers Département de géographie / Université du Québec à Montréal 80
82 Nous verrons dans les prochaines sections certains de ces aspects. Nous aborderons dans d'autres chapitres des éléments complémentaires. 7.3 Requêtes et vues Les éléments qui suivent s'appliquent en particulier aux bases de données relationnelles, mais on trouve des équivalences du côté des bases de données objet également. Depuis longtemps, le SGBD relationnel permet d'effectuer des requête en SQL. Depuis quelques années toutefois, il est possible de formuler des requêtes en utilisant un langage graphique dont le but est de faciliter cette formulation. Bien qu'il soit utile pour des requêtes relativement simples, il devient parfois moins efficace pour des requêtes complexes, si on le compare au SQL. En effet, la représentation graphique de clauses imbriquées, d'union de requête, lorsque plusieurs jointures sont utilisé, se présente plutôt mal graphiquement et peut donner lieu à des ambiguités. Le langage SQL est dans ces cas parfaitement explicite. L'auteur est donc d'avis qu'il est préférable de s'habituer à formuler des requêtes en SQL plutôt qu'en utilisant le langage graphique. L'enregistrement de requêtes permet de créer ce qu'on appelle des "vues" ("view en SQL"). Les vues permettent d'enregistrer les structure et paramètres des requêtes, et non les tables-réponse. Ceci a pour effet de bien séparer le niveau "structure" du niveau "interface". Ainsi, les données distribuées en de multiples tables peuvent-elles être ré-assemblées par une requête à multiples jointures de manière à présenter à une certaine catégorie d'usagers une "vue" naturelle, ou cohérente, à l'usager. 7.4 Formulaires Les formulaires ont pour fonction de faciliter l'entrée, l'édition et la consultation des données. Ils améliorent grandement l'interface usager de par leur présentation aujourd'hui très conviviale. Les données saisies dans un formulaire sont acheminées vers les tables ou les vues liées à ce formulaire. Ceci permet non seulement de simplifier l'entrée des données, mais aussi de contrôler l'accès et de favoriser l'intégrité des données. Les éléments suivants peuvent en général être placés dans des formulaires : champs de donnée étiquetés cases à cocher pour les champs de type "logiques" boutons radio et listes pour les champs qualitatifs comportant peu d'options listes déroulantes pour les champs qualitatifs comportant de nombreuses options champs calculés sous-formulaires pour les relations de type plusieurs à plusieurs boutons d'actions associés à des macros images et divers éléments graphiques pour améliorer l'esthétique Département de géographie / Université du Québec à Montréal 81
83 7.5 Articulation des requêtes et formulaires L'articulation entre le niveau logique de base, c'est-à-dire la structure en tables, et l'interface usager, c'est-à-dire le formulaire, se fait souvent de la façon suivante : Tables - Vues - Formulaires Ainsi, les données des tables sont "restructurées" à travers les vues. Les champs d'une vues sont ensuite liés avec les champs d'un formulaire. Ceci donne l'entière liberté d'appliquer les règles de la troisième forme normale sans avoir à penser à l'interface usager, et l'entière liberté de concevoir l'interface usager sans être contraint par la structure des tables. Les liens transitifs des tables jusqu'aux formulaires sont bidirectionnels. D'abord, les données des tables sont acheminées jusqu'aux champs du formulaire par le biais (ou non) des vues. Également, les données du formulaires sont distribuées vers les tables concernées. En utilisant les fonctionnalités offertes par les formulaires, y compris le lancement d'opérations (actions, macros, programmes, etc.) par des boutons d'action situés sur le formulaire, on peut développer des interfaces usager sophistiquées en écrivant très peu de code. 7.6 États Les états ont pour fonction de présenter des bilans, des totaux, etc. à partir des données d'une base de données. Ils se présentent sous forme de liste, tableaux, etc. dont la structure est fixe. Les modifications apportées aux données entraîneront automatiquement des changements dans les totaux, etc. rapportés dans l'état. On retrouve en général les fonctions suivantes associées aux états : regroupements total moyenne Tout comme pour les formulaires, on peut relier un état à une vue plutôt que directement à une table. 7.7 Gestion de l intégrité des données L'intégrité des données peut être grandement améliorée par des mesures rendues possibles par les SGBD récents. D'abord, rappelons que l'intégrité référentielle est une propriété surveillée par le SGBD et non une caractéristique de la troisième forme normale. Département de géographie / Université du Québec à Montréal 82
84 Par ailleurs, le SGBD fait automatiquement des vérifications sur le type de données entrées. Par exemple, il vérifiera automatiquement que seuls des nombres soient entrés dans un champ numérique. On peut toutefois pousser plus loin les vérifications d'intégrité en déclarant des domaines précis pour certains champs. Ainsi par exemple, la taille d'une personne ne devrait pas dépasser 3 m (!). On demandera donc au SGBD de signaler tout dépassement numérique dans le champ "taille". Dans les cas des attributs qualitatifs, le domaine de l'attribut, s'il est bien défini, pourra être entré dans une liste. Cette liste sera ensuite utilisée lors de la saisie de données afin que seules les valeurs contenues dans cette liste puissent être entrées. La liste sera souvent enregistrée dans une table de consultation qui sera présentée sous forme de liste déroulante. On peut également faire varier le domaine d'un attribut en fonction de l'objet qu'il décrit. Par exemple, le domaine des adresses d'une rue, défini d'après les adresses minimum et maximum d'une rue, varie d'une rue à l'autre. Lors de la saisie d'adresse de bâtiments, on pourra s'assurer que le numéro civique d'un bâtiment donné fasse bien partie du domaine des adresses de la rue sur laquelle il se trouve. On peut implanter des règles d'intégrité encore plus poussées en ayant recours à des macros et programmes écrits par l'usager. 7.8 Gestion de la sécurité L'accès aux données constitue souvent un aspect crucial de la gestion des données, particulièrement dans un environnement ouvert. Il faut donc mettre en oeuvre des moyens permettant le contrôle des accès. Les permissions d'accès sont de plusieurs ordres : lecture ajout, effacement, modification modification de la structure Ces permissions d'accès peuvent être gérés selon plusieurs degrés de précision : toute la base de données table par table, champ par champ enregistrement par enregistrement Le contrôle de l'accès se fera par un numéro d'usager et un mot de passe associé à ce dernier. Le numéro d'usager identifie une personne alors que le mot de passe l'authentifie. Département de géographie / Université du Québec à Montréal 83
85 Chapitre 8 Les SIG multi-usagers 8.1 Principes généraux La gestion des bases de données à l'aide de SGBD multi-usagers Un SGBD peut-être mono- ou multi-usager. Il en va de même des SIG. Un SGDB ou SIG multi-usager permet l'accès simultané à plusieurs usagers. La simultanéité des accès, et le nombre possiblement élevé d'usagers pose un certain nombre de défis particuliers : éviter les interférences inter-usagers par le contrôle des transactions gestion serrée de la sécurité administration méticuleuse de la base de données l'assurance d'une fiabilité élevée, notamment par des méthodes de récupération On rencontre plusieurs architectures de SGBD multi-usager : Télétraitement Ce type de système est organisé de telle manière que tout le traitement s'effectue sur une seule machine, "l'ordinateur central". Aucun traitement réel n'est fait par la machine "terminal" (dumb terminal ou terminal "stupide"). Ces systèmes sont constitués des logiciels de télétraitement et de SGBD. Des PC pourront se connecter à de tels systèmes à l'aide d'un logiciel d'émulation de terminal. Client-serveur Il s'agit de l'architecture la plus courante aujourd'hui. Plusieurs ordinateurs "intelligents", les "clients" se connectent par réseau à un serveur. Les clients on une ou des applications (logiciels) qui ont des capacités de traitement. Les serveurs gèrent la base de données et répondent aux requêtes des clients en leur "servant" les données demandées. On retrouve souvent une base de donnée par serveur. Dans le cas de bases de données créées pour de grandes entreprises ou organismes d envergure (exemples : Gaz Métropolitain, Ville de Montréal), les bases de données seront distribuées sur plusieurs serveurs. Partage de fichiers Dans ce cas, le SGBD se trouve du côté client. Le serveur distribue des fichiers entiers aux clients, contrairement à l'architecture client-serveur ou seulement les données demandées sont transmises. La transmission de fichiers complets fait porter une charge plus lourde au réseau. Département de géographie / Université du Québec à Montréal 84
86 Systèmes distribués Une base de données unique est distribuée sur plusieurs ordinateurs. L'accès à cette base se fait par des clients. La vue client rend transparent le caractère distribué de la base de données, c'est-à-dire que l'usager du poste client n'est pas conscient qu'il transige avec une base physiquement morcelée mais voit plutôt un tout organisé et intègre. 8.2 Contrôle des transactions L'environnement multi-usager demande que les échanges entre les postes-usagers et le serveur soient organisés et structurés. On procède pour ce genre de système par division de ces échanges en unités logiques appelées "transactions". Une transaction comporte généralement plusieurs étapes. La gestion d'une transaction veut que toutes les étapes soient exécutées pour que la transaction soit "acceptée". Dans le cas contraire, aucune des étapes ne sera exécutée. Un exemple tiré de la vie quotidienne aidera à comprendre. Dans une transaction bancaire consistant à effectuer un virement de fonds au guichet automatique, une transaction typique consiste à effectuer les étapes suivantes : 1. Lire la bande magnétique de la carte client 2. Lire le numéro d'identification personnel entré au clavier 3. Lire le compte à débiter 4. Lire le compte à créditer 5. Lire le montant à virer 6. Vérifier le solde du compte à débiter 7. Si le solde le permet, 7.1) soustraire le montant du compte à débiter et 7.2) augmenter le compte à créditer de ce montant La transaction entraînera des modifications définitives à la base de données seulement lorsque l'ensemble des étapes aura été approuvé. En termes techniques, la transaction sera réalisée de manière définitive par un "COMMIT". En cas d erreur, d avortement ou d échec d autorisation, la base de données sera ramenée à son état initial par un "ROLLBACK". Il serait risqué d'effectuer les opérations une à la fois car si une interruption se produisait entre les étapes 7.1. et 7.2, le client de la banque perdrait le montant. La transaction est donc considérée comme l'unité logique indivisible. Par ailleurs, que se passerait-il si deux personnes tentaient en même temps d'accéder au même compte bancaire pour y effectuer au même instant des opérations? Il y a risque de perte d'intégrité de la base de données. En effet, le CPU du serveur effectue une étape à la fois. Ainsi, il se peut que Département de géographie / Université du Québec à Montréal 85
87 les étapes de deux transactions s'intercalent et entraînent ainsi des erreurs. Ceci mène au problème classique de "mise à jour perdue" (lost update). Par exemple : Transaction A Lecture du solde : 500$ Retrait de 100$ : =400 Commit (Solde = 400) Transaction B Lecture du solde : 500$ Retrait de 200$ : =300 Commit (Solde = 300) Le vrai solde devait évidemment être de 200$ ( ). Il est donc nécessaire d'utiliser des outils de contrôle des transactions. Ce contrôle s'exerce par le verrouillage des données. Ce dernier peut s'appliquer aux enregistrements, aux tables, ou à l'ensemble de la base de données. Plus l'unité verrouillée est fine, plus l'impact sur les autres transactions est petit, mais plus complexe est la gestion des transactions. Le verrouillage peut être : Exclusif Aucune autre transaction ne peut accéder aux éléments verrouillées Non-exclusif D'autres transactions peuvent lire l'élément verrouillé mais ne peuvent le modifier. Cette approche peut entraîner des "deadlock" : Transaction A Accès et verrouillage de la Table A Demande d'accès à la table B Transaction B Accès et verrouillage de la Table B Demande d'accès à la table A Pour prévenir ces situations, on peut demander aux usagers de déclarer à l'avance tous les éléments auxquels il faudra accéder dans une transaction. On peut aussi détecter automatiquement ce genre de situation et faire avorter une des deux transactions impliquées. Département de géographie / Université du Québec à Montréal 86
88 Le contrôle des transactions d'un SIG multi-usager apporte une complication supplémentaire. En effet, il peut être contre-productif de verrouiller une couche complète pour une transaction si cette couche couvre une vaste superficie et que la fréquence de transactions impliquant cette couche est élevée. Certains SIG multi-usagers procèdent donc par verrouillage local. La zone visée est verrouillée jusqu'à ce que la transaction soit complétée. On comprendra par ailleurs que dans un SIG opérant sur le principe de primitives partagées, on devra verrouiller aussi toutes les couches partageant des éléments avec la couche visée. Certaines des questions découlant de la gestion des transactions dans un environnement SIG multi-usager dans le cadre précis des logiciels ESRI seront abordées plus loin aux sections 8.4 et Protection et récupération des données L'environnement multi-usager impliquant normalement la dépendance d'un nombre possiblement grand d'usagers envers la base de données, il faudra s'assurer de protéger les données elles-mêmes en les mettant à l'abri des conséquences de pannes, bris, etc. La première précaution à prendre est l'archivage de la base de données (backup). La fréquence des archivages dépend de la fréquence des modifications de la base de données. Beaucoup de bases de données sont archivées à chaque soir. Il est fortement recommandé de conserver deux versions d'archives en tout temps. En effet, il arrive que l'on archive une version corrompue de la base en écrasant l antépénultième version. Si l'on constate le problème après l'archivage, on dispose d'une version active corrompue, et d'une archive corrompue, ce qui constitue normalement un problème grave et insurmontable! Par contre, si l'on avait pris soin de conserver une "avant dernière" version de la base de données, on peut alors se rabattre sur celle-ci, plus ancienne, mais fonctionnelle. À une échelle de temps plus fine, on utilisera les fichiers "LOG" pour "défaire" les changements ayant entraîné la corruption de la base de données, on pour refaire les mises à jours depuis le dernier archivage. L approche basée sur les «Redo Log files» de Oracle contribue à en faire un SGBD très fiable. 8.4 ArcSDE, un SIG multi-usager Vue d'ensemble ArcSDE est un produit ESRI permettant l'accès rapide à des bases de données volumineuses à de nombreux utilisateurs. Il repose sur la nouvelle structure de fichiers d'arcinfo 8, soit le geodatabase. Département de géographie / Université du Québec à Montréal 87
89 Cette structure a la particularité d'enregistrer la totalité des informations, y compris les vecteurs et matrices, sous forme de table relationelles. Ceci permet d'arrimer les applications ESRI (ArcInfo, ArcEditor, ArcView, ArcIMS) à des SGBD relationnels tels Oracle Informix IBM DB2 Microsoft SQL server Cette approche offre l'énorme avantage de décharger les concepteurs des applications SIG de la tâche de reproduire les principales fonctions offertes par les SGBD commerciaux. On peut ainsi profiter de tous les outils de ces derniers. ArcSDE agit alors comme "gateway", ou intermédiaire entre les applications "géographiques" et le SGBD. Il peut aussi agir comme serveur d'applications, c'est-à-dire qu'il permet d'alimenter en données spatiales des applications (programmes) variées. ArcSDE s'occupe de contrôler l'intégrité topologique des données. Il offre également une interface de programmation en C et Java et offre un ensemble de fonctions accessible au programmeur (API) : ArcObjects, contruit à partir du Microsoft Component Object Model (COM). Cet API est équipé d'un sous-système d'accès au données géospatiales compatible avec le consortium OpenGIS. Des dispositifs permettent d'associer des comportements aux éléments d'information et reproduisent ainsi certaines caractéristiques des SGBD orientés objet. Bien que le geodatabase puisse résider dans Access, ce qui se fait dans le cas mono-usager et pour des bases de données de petite et moyenne envergure, le recours à des SGBD tel Oracle permet de profiter des qualités d'un SGBD de cette envergure : fiabilité, haute capacité, rapidité, etc. Les bases de données qui ont des fonctions critiques comme celles supportant le système 911, doivent être gérées par des systèmes sans faille. Microsoft Access n'a pas été conçu pour de telles utilisations. Associé à ArcGIS, Access fonctionne bien pour des bases de données contenant jusqu'à environ 250,000 objets L'enregistrement des données L'enregistrement des tables d'attributs dans un SGBD lié à ArcSDE ne pose aucun problème puisqu'il s'agit du même type de table que celui qui forme les bases relationnelles. Par contre, l'enregistrement de données vectorielles est moins "naturel". Chaque objet vectoriel constitue un enregistrement. Une couche vectorielle est donc enregistrée dans une seule table. Les données vectorielles peuvent être tridimensionnelles. Le mode d'enregistrement dépend du SGBD utilisé. La plupart des SGBD n'offrent pas la possibilité d'enregistrer des données géométriques, mais certains, comme Oracle Spatial, le permettent. On retrouve essentiellement les options suivantes : Le "long raw" d'oracle accueillant le format "compressed binary" de ArcSDE, un type binaire de longueur variable. L'équivalent chez SQL server est appelé "Image". Département de géographie / Université du Québec à Montréal 88
90 Le type "Oracle Spatial normalized schema". Ce type enregistre les coordonnées dans une table dans laquelle chaque enregistrement contient l'identifiant de l'objet vectoriel et les champs X, Y, Z. L'identifiant fait référence à un enregistrement d'une autre table contenant les attributs. Cette approche se conforme au modèle géométrique normalisé défini par le standard "Simple Features Specifications for SQL". Le type "Oracle Spatial geometry type", une extension spatiale d'oracle par l'ajout d'un type de champ appelé "SDO_Geometry". Les champs de type "ST_Geometry" de Spatial DataBlade (Informix) et Spatial Extender (IBM DB2). Les données matricielles sont enregistrées de manière similaire L'indexation des données ArcSDE fonctionne selon le principe de la carte continue. Ainsi, les couches ne sont pas découpés en tuiles. Les données sont spatialement indexées selon la méthode des cellules régulières. Une table d'index est formée. Les objets ne sont pas découpés. Ceux qui chevauchent plus d'une cellule sont indexés dans deux cellules. On peut créer jusqu'à trois niveaux hiérarchiques de cellules d'indexation. Oracle Spatial et Informix possèdent leurs propres dispositifs d'indexation L'architecture générale ArcSDE peut se lier avec un SGBD de deux manières différentes : l'architecture trois tiers ou l'architecture deux tiers. La première implique un serveur d'application alors que la seconde recoure à des pilotes de connexion directe (direct connect drivers). Dans les deux cas, il s'agit d'une approche client-serveur reposant sur le protocoletcp/ip. Les applications clients sont ArcGIS, ArcEditor, ArcView (8) et ArcIMS. Dans la solution trois tiers, le serveur d'application ArcSDE réside au même endroit que la base de données. ArcSDE s'occupe de faire les recherches dans la base de données et renvoient les données correspondant à une requête à l'application client. Ceci demande que l'application client se connecte au serveur d'application ArcSDE, puis celui-ci au SGBD. ArcSDE utilise le "traitement collaboratif" afin de répartir le travail de traitement entre le serveur et le client de la façon la plus efficace possible. L'usager doit fournir son nom d'usager à ArcSDE qui l'utilise pour ouvrir une session avec le SGBD. Le contrôle de l'accès aux données se fait véritablement au niveau du SGBD. L'architecture deux tiers se veut plus simple. En effet, l'application client se connecte directement au SGBD. L'application client et ArcSDE client fonctionnent sur le même poste. Les fonctionnalités du serveur d'applications se retrouvent donc sur le poste client, ce qui libère le serveur sur lequel réside la base de données de ce fardeau. Département de géographie / Université du Québec à Montréal 89
91 8.5 Le contrôle des versions sous ArcInfo 8 (versioning) La chaîne de production d une compagnie et les besoins multi-usagers Une compagnie comprenant plusieurs employés devant pouvoir accéder simultanément à une géobase et dont les tâches de ces derniers s inscrit dans une chaîne de production se trouve confrontée au problème du contrôle des transactions sur des données spatiales Transactions courtes vs longues Plusieurs transactions sont de courtes durées. Par contre, certaines nécessitent plusieurs heures, voire plusieurs jours. C est le cas par exemple de la mise à jour cartographique. Il est impensable que des données soient verrouillées pendant plusieurs jours alors que d autres employés pourraient avoir besoin de ces données Modèle de concurrence Plusieurs stratégies de gestion de sessions de travail multiusager sont envisageables. ArcSDE 8 utilise un modèle de concurrence optimiste, c est-à-dire sans verrouillage. Ceci peut mener à des conflits mais des outils sont prévus pour y faire face. Le procédé utilisant des «versions» est résumé dans les lignes qui suivent. o Une version est une copie virtuelle de la base de données. o Plusieurs versions différentes peuvent co-exister. o Les modifications aux versions sont enregistrées sous forme de liste de modifications, elles n affectent pas la version par défaut. o Une version peut être créée à partir d une autre version. o Lorsque le travail est terminée, la version est envoyée (posted) et les conflits sont résolus. o Plusieurs des conflits peuvent être résolus automatiquement. o Les conflits plus complexes sont soumis aux usagers pour les résoudre. 8.6 La création d'une instance Oracle La gestion d'une base de données d'envergure ajoute une dimension à la structuration des données sous la forme de l'organisation générale du système, la gestion des fichiers, la distribution de la base de données sur plusieurs disques, etc. Il faudra aussi décider comment répartir les applications serveur, les segments de la base de données, le fichiers LOG, etc. sur différents disques. Le schéma annexé montre une exemple d'une base d'envergure SIG installée sur un "mégaordinateur". Elle utilise une solution ArcSDE ORACLE. Département de géographie / Université du Québec à Montréal 90
92 Département de géographie / Université du Québec à Montréal 91
93 Département de géographie / Université du Québec à Montréal 92
94 Chapitre 9 Les entrepôts de données 9.1 Définitions Il règne malheureusement une certaine confusion autour du terme d «entrepôt de données». Le terme ne devrait en effet désigner strictement une base de données agrégées non volatile issue principalement d une base de données transactionnelle. Cependant, certains l utilisent à tort pour désigner des «dépôt» de données. Dépôt de données (data depot) Un dépôt de données est un «lieu» où l on stocke un ensemble de bases de données indépendantes et de nature variée. L ensemble ne forme pas nécessairement un tout structuré et est entreposé en vrac. Les dépôts de données se présentent parfois sous forme de portails Internet. Entrepôt de données (data warehouse) Un entrepôt de données est donc un ensemble de données non volatiles et généralement agrégées, rassemblant des éléments selon un certain nombre de dimensions, à partir de sources pouvant être multiples, y compris les bases de données transactionnelles d entreprise, accessible à l usager à travers une interface simplifiée lui permettant de comprendre et d analyser aisément les données de manière à l appuyer dans la prise de décision. Marché de données Un marché de données est un entrepôt de données sectoriel, assujetti à une structure globale comprenant un entrepôt de données maître et plusieurs marchés de données. On utilise les marchés de données afin de distribuer des données agrégées pertinentes à chacun des sous-ensembles d un organisme : service, succursale, district, etc. Les marchés de données peuvent représenter des partitions de l entrepôt de données maître. Ils permettent de réduire le volume et la complexité des données distribués aux sous-ensembles d un organisme. La liste de dépôts de données qui suit sert à illustrer le concept de dépôt. Nous passons ensuite à la matière concernant les entrepôts sensu stricto. Geogratis : ce site distribue gratuitement des données géospatiales canadiennes. Les données cartographiques vectorielles sont offertes à des échelles variant entre 1:250,000 et 1:30,000,000 et ce, dans une variété de formats. (bilingue) Département de géographie / Université du Québec à Montréal 93
95 GéoConnexions : Portail de découverte (anciennement CEONet) : ce site est une voie d'accès privilégiée à l Infrastructure canadienne de données géospatiales. Il a été conçu et construit pour faciliter la découverte, l'évaluation et l'accès aux ressources géospatiales. Il offre, entre autre, un outil de recherche pour trouver des données (cartes, images satellitaires, publications et d'autres données géospatiales provenant d'organisations canadiennes ou internationales), des organisations (organisations canadiennes ou internationales offrant une expertise, des données ou des services géospatiaux) ou des services (services professionnels, services en ligne et des logiciels fournis par des organisations enregistrées à CEONet) reliés aux ressources géospatiales. (bilingue) The Geography Network : large regroupement de fournisseurs de données déterminé à rendre leur contenu géographique facilement disponible. Le réseau donne accès à plusieurs sites à travers le monde, permettant l'accès immédiat aux plus récentes cartes, données et services connexes. Ce portail du réseau géographique (Geography Network) vous permet de découvrir les données disponibles de même que de partager vos propres données géospatiales et vos cartes. (anglais). The GIS Data Depot : entrepôt de données géospatiales gratuites sur internet. (anglais) Principes et fonctions d un entrepôt de données Afin de définir plus précisément ce qu est un entrepôt de données, il est d abord utile de préciser que les systèmes d information géographique, et les SGBD en général sont des outils «transactionnels». Ces derniers permettent essentiellement la saisie, le stockage, la mise à jour, la sécurité et l intégrité des données. Ils servent à enregistrer de manière détaillée l information courante d un organisme, maintenue à jour par des transactions fréquentes, voire quotidiennes. Les archives de ces bases de données ne sont pas maintenues «en ligne», ce qui empêche que l on puisse les questionner pour fin d analyse. Les bases de données exploitées par des systèmes transactionnels sont hautement organisées, la plupart du temps normalisées, soit en troisième forme normale, soit selon une structure d objet standard. La normalisation entraîne une multiplication des tables et une «sur-division» de l information qui rend parfois pénible l analyse des données. Les systèmes transactionnels, bien qu il répondent adéquatement à la plupart des besoins de gestion des données (mise à jour, intégrité, sécurité, interrogation, etc.), ne sont pas nécessairement appropriés pour l extraction et l analyse des données. En effet, ces dernières opérations se révèlent complexes en obligeant l usager à rédiger des requêtes complexes. De plus, les analyses portant sur l évolution temporelle des données ne Département de géographie / Université du Québec à Montréal 94
96 peuvent se faire qu en désarchivant des versions antérieures de la base de données, ce qui n est pas une opération simple. De plus, dans les organismes d envergure, on retrouvera plusieurs bases de données distinctes, souvent incompatibles entre elles, et qu il est très difficile de fusionner de manière à les interroger globalement. Lorsque l information est utilisée dans un cadre d aide à la décision dynamique, qui demandent que puissent être rapidement inspecté l ensemble des données d un organisme, l approche «base de données» ne convient plus. Pour faire face à ce besoin de nature différente, on organisera les données sous forme d entrepôt de manière à ce que de vastes ensembles de données puissent être consultés et analysés rapidement et facilement. L entrepôt autorise l usager normal à consulter les données, mais ne lui permet de les modifier. Ceci est assurer par l octroi de droits de type «read only». Un entrepôt de données est normalement alimenté par des bases de données normalisées. Les données sources sont normalement transformées et intégrées avant d être entreposées. Elles seront la plupart du temps simplifiées par aggrégation. Elles sont augmentée périodiquement, mais en général moins fréquemment que celles des bases de données sous-jacentes. Le développement d un entrepôt de données est incrémental. L entrepôt de données constitue une entité distincte des bases de données transactionnelle d un organisme. Il n est pas utilisé pour gérer les données. Par contre, le même SGBD peut gérer la fois la base de données transactionnelle et l entrepôt de données. C est par exemple le cas de ORACLE9i. Les données seront questionnées et analysées en utilisant plusieurs moyens. En général, on cherchera à identifier des tendances dans le temps. Bien sûr, les géographes s intéresseront particulièrement aux patrons spatiaux et aux évolutions spatio-temporelles. Outils de requêtes Ceux-ci permettent à l usager d inspecter les données, de les résumer et de les analyser à partir d interfaces simples. On peut souvent utiliser le SQL ou des extensions du SQL pour interroger les données. Outils de fouille de données (data mining) La fouille de données consiste, au sens strict, en une analyse automatisée des données réalisée par des algorithmes d intelligence artificielle visant à déceler des relations entre des données contenues dans l entrepôt (co-occurrence, corrélation entre variables, reconnaissance de forme, etc.). Elle peut être aussi effectuée de manière supervisée. Outils de type OLAP (On-Line Analytical Processing). Département de géographie / Université du Québec à Montréal 95
97 Ces derniers permettent d inspecter et d analyser efficacement des données selon une approche multidimensionnelle dans laquelle les données dénormalisées sont pré-agrégées. 9.3 Structuration des données d un entrepôt Structuration au niveau macro Un entrepôt de données ressemble beaucoup, au point de vue structurel, à une base de données relationnelle. Il fonctionne selon les même principes. On peut la plupart du temps organiser et gérer les données d un entrepôt à l aide de SQL. L entrepôt de données est toutefois souvent plus étendu et plus ouvert que les bases de données parce qu il intègre des données externes. Au niveau macro, il comporte des données sources, un entrepôt central, des métadonnées, et peut alimenter des marchés de données. Les notions qui suivent s appliquent à ORACLE9i. Les principes d un entrepôt de données sont de toute manière très semblables chez la plupart des SGBDR. L entrepôt est géré par le même SGBD qui gère les données transactionnelles. Certains outils particuliers, comme les ROLLUP et CUBE s y ajoutent pour produire les structures et les analyses propres aux entrepôts de données. La figure qui suit donne un exemple fictif d une structure macro d un entrepôt. Département de géographie / Université du Québec à Montréal 96
98 Données sources Rôle d'évaluation Urbanisme Transactions Web Statistique Canada Outil de nettoyage des données Outil ETC Extraction Extraction de données Staging "Staging area" Outil de nettoyage des données Transformation et chargement Outils d'entrepôt de données Transformation et chargement Métadonnées centrales Outil de modélisation de données Entrepôt de données central Métadonnées locales Métadonnées locales Entrepôt central Métadonnées locales Marchés de données Marché de données Marché de données Accès aux données et analyse Les données sources sont constituées d une ou de plusieurs bases de données transactionnelles de l organisme, et possiblement de bases de données externes. Ces données sont volatiles dans le premier cas, et non intégrées dans le second. Il s agit donc d intégrer l ensemble des données, de les simplifier, et de produire une version non-volatile. Cette phase de restructuration fait appel à des outils d extraction, de transformation, et de chargement (ETC, en anglais Extraction, Transformation, and Loading ou ETL). On doit d abord extraire les données des bases sources. Cette étape implique que l on sélectionne une certaine partie des données. On peut déjà ici pratiquer une certaine simplification Département de géographie / Université du Québec à Montréal 97
99 des données, par exemple avec des fonctions de regroupement (GROUP BY accompagnés de totaux, moyennes, etc.). L étape de staging et l espace de staging (staging area) servent à vérifier l intégrité des données extraites et placées dans un espace de transition avant de les charger. On va ensuite transformer et charger les données dans l entrepôt, qui consiste lui-même en un ensemble de tables. Ici, la structure «micro» des données différera habituellement des structures relationnelles classique en ce qu elle devient multidimensionnelle. On peut encore à cette étape simplifier les données, les croiser, etc. Le chargement va peupler l entrepôt central et possiblement des marchés de données. Les usagers pourront alors accéder aux données de l entrepôt Structuration au niveau méso L entrepôt de données peut être partitionné pour optimiser les requêtes et le stockage. Les partition permettent aussi la rotation des données. Il peut par ailleurs s alimenter à partir de bases de données distribuées. Une partition de la base de données est un sous-ensemble de la base de données principale. On peut par exemple envisager une partition mensuelle de la table des transactions portant sur des volumes de bois récolté. Les partitions peuvent se faire d après des intervalles (range partitioning). C est le cas par exemple de la partition temporelle. Les partitions peuvent également être déterminées par des listes de valeurs (list partitioning), par exemple une partition d après les 3 premiers caractères du code postal (partition qui est ici de nature spatiale). On utilise alors l opération PARTITION dans une commande CREATE TABLE. Les partitions peuvent servir à faciliter les archivages. On suggère par exemple les partitions suivantes dans ce but : 1. Données actuelles 2. Données historiques 3. Données dimensionnelles (agrégées dans un entrepôt de données) Par ailleurs, des bases de données distinctes localisées sur des serveurs différents hébergés en divers lieux peuvent être liés. Cela permet d intégrer des données provenant de plusieurs sources sans pour autant avoir à exporter les données afin de les transférer. On peut ainsi créer un entrepôt de données sur un serveur alimenté par diverses bases de données sur d autres serveurs. On utilise à cette fin la commande CREATE DATABASE LINK. Département de géographie / Université du Québec à Montréal 98
100 9.3.3 Structuration au niveau micro Les entrepôts de données sont habituellement caractérisés, au niveau des tables de données, par une structure dimensionnelle (sous-entendu : multi-dimensionnelle). Notons que les tables normales sont unidimensionnelles. Chaque enregistrement énonce un fait. Très souvent un ou des champs de la table permettent de regrouper ou d ordonner ces faits selon une dimension à la fois. Une base de données dimensionnelle enregistre des faits classés ou agrégés selon plusieurs dimensions. Dans l exemple fictif qui suit, on enregistre des données de population en fonction de plusieurs classes d âge, en fonction de plusieurs intervalles de temps, et en fonction de plusieurs intervalles de distance par rapport au centre urbain le plus proche des unités spatiales dans lesquelles on mesure les effectifs de population. Il s agit d une analyse spatio-temporelle de la structure d âge. La figure qui suit n est qu une représentation graphique d une table à plusieurs dimensions. Les cellules de la table contiennent des nombre représentant des totaux d effectifs de population pour chaque croisement d intervalle. Voici un exemple réel tirée d une étude portant sur le nombre de véhicule à l heure, tel que mesurés sur plus de 900 stations de comptage, en fonction de l heure du jour et du jour de la semaine. On représente trois projections bidimensionnelles du nombre de véhicules. Département de géographie / Université du Québec à Montréal 99
101 Tiré de Les tables ainsi structurées se préparent à l aide d extensions de l opération GROUP BY. 9.4 Commandes utilisées pour la création d entrepôts de données Création de photographies On crée dans un entrepôt de données des tables dites non-volatiles. On les appelle ainsi car, contrairement aux tables transactionnelles (volatiles), leur contenu varie peu dans le temps. Il n est pas rare de voir des tables mise à jour une fois par mois. Certaines tables contenant des données historiques peuvent être créées une fois toute et ne plus être modifiées. Il est donc normalement exclu d utiliser des vues. Cela imposerait que des calculs (sommes, moyennes) soient ré-effectués chaque fois qu une nouvelle transaction vient modifier les données sources. Cela aussi ralentirait les analyses étant donnée que chaque opération sur une vue demande que l on relise les données sources et que l on effectue les jointures, etc. On utilise donc plutôt le photographie (snapshot). Depuis ORACLE 8, on a remplacé le mot snapshot par Materialized view. Les deux termes sont assez évocateurs. Le premier indique que l on «fige» les données. L autre qu il s agit d une vue qui au lieu d être enregistrée sous forme d énoncé SQL, est matérialisée sous forme de nouvelle table. On utilisera les commandes : CREATE MATERIALIZED VIEW ou CREATE SNAPSHOT Dans les énoncés SQL, on pourra joindre des champs de plusieurs tables et effectuer des regroupements. Département de géographie / Université du Québec à Montréal 100
102 Les clichés sont simples ou complexes. Dans le premier cas, il porte sur une seule table et ne comporte pas de regroupements. Le cliché complexe couvre tous les autres cas Fonction d agrégation étendues GROUP BY Le GROUP BY reste utilisé dans la préparation des entrepôts de données. Il est toutefois limité en dimensionalité. ROLLUP Le ROLLUP permet d effectuer des agrégation sur plusieurs niveaux par une seule instruction. Par exemple, on peut demander des totaux par année, par mois et par compagnie (nombre de dimension = 3) pour des ventes. À la fin de la commande SELECT dans laquelle on demande le calcul des totaux, on placera l instruction : GROUP BY ROLLUP (periode.annee, periode.mois, vente.cie) Noter que le résultat n est pas multidimensionnel, mais plutôt «déroulé». CUBE La fonction CUBE permet de calculer par exemple des totaux pour des combinaison de dimensions. Le résultat est réellement multidimensionnel. La fonction CUBE est celle qui permettrait de créer les données remplissant les cubes montrés dans les deux figures précédentes. Exemple : GROUP BY CUBE (periode.annee, periode.mois, vente.cie) Fonctions de rangement (ranking) On ajoute au ORDER BY les fonctions RANK et DENSE_RANK qui permettent non seulement de mettre en ordre (croissant ou décroissant) mais aussi d établir le rang (premier, deuxième, etc.). Les fonctions CUME_DIST et PERCENT_RANK permettent d établir la distribution cumulative exprimée de deux manières différentes. La fonction NTILE permet de calculer le percentile. Fonction d intervalle La fonction PARTITION peut être utilisée dans une fonction d agrégation afin d effectuer des agrégations pour des intervalles, par exemple des intervalles de temps, lorsque le temps est Département de géographie / Université du Québec à Montréal 101
103 exprimé en date.heure.minute.seconde, c est-à-dire de manière continue et non par compartiment (jour, mois, etc.). Fonctions statistiques Rappelons que SQL offre des fonctions statistiques qui peuvent être utilisées aux fins des analyses que l on veut effectuer. 9.5 Fouille de données (data mining) et OLAP Les outils de fouilles de données et d OLAP se développent rapidement. Ils dépassent en puissance d analyse les fonctions que nous avons présentées plus haut. Ils font de plus en plus appel à des algorithmes d intelligence artificielle. Il faut ajouter que des outils de visualisation doivent normalement être ajoutés aux SGBD et système OLAP. 9.6 Entrepôts de données et SIG Les entrepôt de données spatiaux se développent rapidement et font aujourd hui (2002) l objet de recherches intensives. Au départ, l on peut coupler un SIG à un SGBD équipé des fonctions d entrepôts de données, ce qui permet déjà une certaine approche spatialisée. L architecture permettant d enregistrer toutes les données d un SIG (attributs et objets géométriques) dans une base relationnelle, aide à combiner l OLAP au SIG. C est le cas par exemple du trio ArcGIS-ArcSDE-ORACLE9i. Par contre, pour faciliter les analyses spatiales, et pour tirer plein profit des possibilités qu offre cette combinaison, on cherche aujourd hui à intégrer de manière plus intime les outils offert par l un et l autre des systèmes (SIG et SGBDR). On parle ainsi aujourd hui de développement d approche d OLAP spatial, ou de «SOLAP». Département de géographie / Université du Québec à Montréal 102
104 Chapitre 10 Diffusion des données SIG sur Internet Référence principale : Gutierrez, D.D. 1999, Web Database Development, Prentice Hall Series on Microsoft Technologies, ISBN , 475 p Quelques exemples Avant d'examiner l'univers des solutions permettant de mettre en lien un client WWW avec une base de données résidant sur un serveur distant, il convient d'examiner quelques exemples afin d'illustrer l'interactivité qui constitue l'objectif premier de la diffusion des données sur Internet. Un service de recherche immobilier Recherche par adresse Visualisation et interrogation de données cartographiques avec ArcIMS 10.2 Les outils On retrouve actuellement sur le marché un certain nombre d outils permettant de servir en ligne des données géographiques ArcIMS MapObjects IMS MapX et MapXtreme de MapInfo Autodesk MapGuide Département de géographie / Université du Québec à Montréal 103
105 10.3 Liaison entre un client WWW et un serveur Les approches et outils de mise en lien de client WWW avec des bases de données sont récentes (les premières ayant fait leur apparition dans la première moitié de la décennie 90). L'évolution fulgurante du WWW rend le choix d'une technologie délicat car beaucoup d'outils deviennent caduques après un an d'existence. Il est donc prématuré de déclarer à ce stade qu'une stratégie particulière dominera les prochaines années. a) Common Gateway Interface (CGI) Un "gateway" contitue une interface entre le serveur WWW et la base de données. Image tirée de b) Application Programming Interface (API) ODBC OLE DB c) Scripts Javascript et Server side Javascript ou Live Wire VBscipt et Active Server Page (ASP) d) Serveur de base de données possédant des fonction WWW SQL Server de Microsoft possède par exemple un gateway ODBC le reliant à Internet Information Server appelé Internet Database Connector. e) Mise à jour périodique entre d'une base de données intégrée à une page WWW f) Classes spéciales d'un langage de développement WWW Java et JDBC (Java Database Connectivity) Les deux approches jugées les plus promettantes selon Gutierrez (1999) sont l'asp et Java. Département de géographie / Université du Québec à Montréal 104
106 10.4 Liaison entre une page web et une base de données Microsoft Access Composantes intervenant dans l'accès à distance à une base Access Fureteur Page ASP (HTML et VBScritp) Serveur Web Personnel (Personnel Web Server) OLE DB, ODBC et Jet database engine Département de géographie / Université du Québec à Montréal 105
107 Chapitre 11 Les bases de données orientées-objet Références Zeiler, M., Modeling our world, the ESRI guide to geodatabase design, ESRI Press. 199 p. Booch, G., Rumbaugh, J. et Jacobson, I., 2000 (1998 en angl.). Le guide de l utilisateur UML, Eyrolles, 534 p. Data Model Workgroup, 2000, Forestry data model, ESRI White papers, 31 p Présentation générale Survol de l approche objet en SIG On reconnaît depuis de nombreuses années la pertinence de l approche objet en systèmes d information géographique Plusieurs tentatives de développement de SIG objet (SIGO) peuvent être classifiés de la sorte : Systèmes expérimentaux (ajout de fonctions SIG à un SGBDO) tels GO 2 (circa 1990) Systèmes commerciaux conçu objet tels System 9 (circa 1990) Systèmes à grande échelle tels SmallWorld Évolution de systèmes géorelationnels et hybrides tels Geodatabase (2000) Le manque de maturité qui a caractérisé l approche objet au cours de sa gestation, combinée à sa complexité et les lacunes dans la mise en marché des SIGO explique le retard dans le déploiement de cette approche. Les progrès récents (UML), et la base très large de la clientèle de ESRI, laissent croire que le Geodatabase de ESRI pourrait connaître plus de succès que ses prédécesseurs Modélisation et structuration objet Approche générale Tout comme dans le cas des systèmes géorelationnels, la réalisation d un SIGO implique une phase de conception et une phase de structuration. Le langage UML (Unified Modeling Language) appuie la phase de modélisation. La structuration des données SIGO déterminée par un diagramme de classes UML est réalisée sur un système donné en traduisant les éléments et les relations du diagramme par les dispositifs appropriés (vecteurs, matrices, etc.) tels qu implantés dans une structure générale de type Geodatabase. Département de géographie / Université du Québec à Montréal 106
108 Approche géorelationnelle Approche objet Conception Schéma entité-relation Tables (géo-)relationnelles Structuration Diagramme de classes UML Classes (regroupements d objets de même type) Notion d objets et de classes Les (classes d ) entités sont remplacées par des classes d'objets Les instances d'entités (enregistrements) sont remplacés par des objets Une classe d'objets définit une structure de données et/ou de fonction Un objet peut être composé de données et de fonctions Limite de l approche entité-relation et relationnelle Pas de composition possible La filiation entre les entités ne peut être représentée Les entités et les méthodes qui leurs sont associées ne sont pas reliées Faible niveau d'abstraction Limites sémantiques Aperçu historique Des difficultés reliées à la programmation conventionnelle (nonobjet) ont mené à l'élaboration d'une nouvelle approche de programmation. L'enregistrement des objets permet la création de bases de données régies par les principes de structuration objet (on parle parfois "d'objets persistants"). On ensuite ensuite développé des SGBDO (Systèmes de Gestion de Bases de Données Objet) Principes généraux Objet Tiré de Un objet est composé: de données de traitements agissant sur ces données Département de géographie / Université du Québec à Montréal 107
109 Exemple: un compte bancaire peut être représenté par: un solde les opérations de dépôt et de retrait Les données sont nommées par des variables appelées variables d'instance. On appelle «état d'un objet» la valeur de ces variables d'instance. Les traitements sont décrits par des fonctions et des procédures que l'on appelle des méthodes. Classe Tiré de Une classe décrit des schémas d'objets. Elle définit les variables d'instance (par leur nom et leur type, éventuellement une valeur initiale) et les méthodes. Par exemple, les comptes bancaires décrits ci-dessus peuvent s'écrire dans la syntaxe java: class Compte{ int solde = 0; void depot (int n){ solde = solde + n; } void retrait (int n){ solde = solde - n; } void print (){ System.out.println(solde); } } Un compte peut être créé à partir de cette classe par la construction prédéfinie: new Compte(); On peut nommer l'objet créé en utilisant une variable déclarée préalablement. Compte martin; martin = new Compte(); Dans cette construction, new Compte() est l'appel à un opérateur appelé constructeur qui crée les objets de la classe Compte. On dit qu'un objet créé à partir d'une classe est une instance de cette classe: martin est une instance de Compte. Les méthodes sont appelées sur un objet et vont modifier son état. Par exemple: Département de géographie / Université du Québec à Montréal 108
110 martin.depot(500); martin.retrait(100); martin.print(); Encapsulation L'encapsulation consiste à regrouper les données et les méthodes qui agissent sur ces données en un objet intègre et indépendant. Par exemple, la classe polygone pourrait comprendre les données suivantes : l'identifiant la superficie le nombre de coordonnées X,Y la liste des coodonnées X,Y la couleur du trait le style du trait la couleur de remplissage le style de remplissage et les fonctions suivantes traçage du contour remplissage du polygone calcul du périmètre Ainsi, l'objet "sait" comment s'afficher et calculer son propre périmètre. L'objet est ainsi rendu intègre et "indépendant". Des modifications extérieures à l'objet ne l'affectent pas. Héritage et généralisation L'héritage permet de dériver des classes particulières à partir de classes plus générales de telle sorte que les premières héritent des propriétés des secondes tout en se voyant octroyées de nouvelles propriétés particulières. On pourrait donner comme exemple que la classe "Lac" pourrait hériter au moins une partie de ses propriétés de la classe "Polygone". À l'inverse, on peut montrer qu'une classe donnée constitue une généralisation d'un certain ensemble de sousclasses. Précisions sur l héritage Tiré de Département de géographie / Université du Québec à Montréal 109
111 Il est possible de créer une nouvelle classe en enrichissant une classe déjà existante. Cet enrichissement peut porter sur: les données: ajout de nouvelles variables d'instances les méthodes: ajout de nouvelles méthodes redéfinition de méthodes déjà présentes: elles gardent le même nom, mais le code est différent On appelle super-classe la classe que l'on souhaite enrichir et sous-classe la nouvelle classe enrichie. Exemple: on va définir les comptes rémunérés. Il faut ajouter le taux d'intérêt et le calcul des intérêts. class CompteRemunere extends Compte{ int taux = 5; // exprime en % void interet(){ solde = solde + ((solde * taux)/100); } }... CompteRemunere dupont = new CompteRemunere(); dupont.depot(1000); dupont.interet(); dupont.print();... Un objet créé à partir de la classe CompteRemunere possède aussi la variable solde et les méthodes de la classe Compte. Autre exemple: class CompteSecurise extends Compte{ void retrait(int n){ if (solde >= n) solde = solde - n; else{ System.out.print("provision insuffisante :"); print(); }; } }... Département de géographie / Université du Québec à Montréal 110
112 CompteSecurise durand = new CompteSecurise(); durand.depot(200); durand.retrait(300);... Les classes CompteRemunere et CompteSecurise héritent de la classe Compte. Codage Le codage se fait par la déclaration de classes qui deviennent des variables «permanentes». Des standard de modélisation objet comme UML (Universal Modelling Language) permettent la schématisation de la base de données préalable à la structuration C++. Exemple de définition de classes avec héritage (tiré de ) : #include <iostream.h> class A { private: int i; protected: char c; public: A() {i = -1; c = 'x'; d = 3.7;} }; double d; class B: public A { private: int j; public: B() {j = 1; d = 3.5;} double d; Département de géographie / Université du Québec à Montréal 111
113 }; class C: public B { private: int z; public: C() {z = 0; d = 3.3;} }; double d; int main() { } C c; cout << "C's d is " << c.d << endl; cout << "B's d is " << c.b::d << endl; cout << "A's d is " << c.a::d << endl; return 0; 11.3 Systèmes de gestion de bases de données objet Les systèmes de gestion de bases de données objet sont de plus en plus nombreux mais sont encore loin de supplanter les SGBD relationnels. En voici quelques-uns : Gemstone Objectivity Salient Corporation Toutes les applications ne bénéficient pas nécessairement des avantages procurés par les SGBDO, et risquent donc de souffrir de leur désavantages. Voici donc quelques facteurs présidant au choix d'un SGDBO. Département de géographie / Université du Québec à Montréal 112
114 11.4 Systèmes d information géographique objet SmallWorld SIG sur O2 Lecture sur le sujet Principes du Geodatabase d ESRI Limites du modèle géorelationnel en SIG Les éléments sont regroupés selon leur type (point, ligne, polygone) Ils ont un même comportement peu importe leur type (les lignes des rivières se comportent de la même façon que les lignes de métro) Ils ne peuvent être assemblés en objets multi-couches (par ex : échangeur) Les objets sont statiques (non-dynamiques), ils n ont pas de comportement défini Les objets n interagissent pas entre eux Bénéfices du Geodatabase L usager travaille avec des objets «intuitifs» Les éléments ont un contexte plus riche (action, interaction, validation, etc.) Les éléments peuvent être dynamiques Types de données du Géodatabase De manière générale, on distingue le «feature dataset» (essentiellement les éléments vectoriels) qui comprend les : «object classes» - classe d objets non-spatiaux «feature classes» - classes d objet spatiaux de même type et de même géométrie «relationships» - relations entre les objets «geometric networks» - réseaux géométrique «planar topologies» - topologies de surface les domaines (ensembles de valeurs d attributs) les règles de validation les matrices les TIN Les «locators», ou localisateurs Département de géographie / Université du Québec à Montréal 113
115 Perspectives sur les données Les données du Géodatabase peuvent être vues selon trois perspectives différentes : «tables relationnelles» «éléments simples» - correspond à la vue géorelationelle classique «objet» Note : l implantation des objets se fait dans des tables relationnelles 11.5 La modélisation objet dans le Geodatabase à l aide d UML Unified Modeling Language Modèle conceptuel d UML (le sous-ensemble s appliquant au Geodatabase apparaît en gras) Éléments Structurels Classe Interface Collaboration Cas d utilisation Classes actives Composant Nœud Comportementaux Interaction Automate à éléments finis Regroupements Paquetage Annotation Note Relations Dépendance Généralisation Association Agrégation Navigabilité Visibilité Qualification Spécificateur d interface Composition Classes-association Contraintes Département de géographie / Université du Québec à Montréal 114
116 Réalisation Diagrammes De classes D objets De cas d utilisation De séquence Collaboration D état-transition D activités De composants De déploiement Les types de classes (Zeiler, 2000, p. 19) Abstract class = classe abstraite / Classe qui ne peut être instanciée directement Creatable class = classe concrète / classe qui peut être instanciée directement Instantiable class = (?) classe dépendante / classe dont les objets ne peuvent être créés que par des objets d une autre classe Les types de relations (Zeiler, 2000, p ) Association (l équivalent de la relation dans un schéma entité-relation), Booch et al, p 68. Les multiplicités (l équivalent des cardinalités) s écrivent : 1 * (minimum de 1, maximum indéterminé) Généralisation («type inheritance» dans le langage d ESRI) «est une relation entre un élément général (appelé super-classe ou mère) et un élément dérivé de celui-ci, mais plus spécifique (désigné par le terme sous-classe ou fille).» (selon Booch et al., 2000, p. 66) Parfois appelé relation «estune-sorte-de». Dépendance («instantiation» dans le langage d ESRI) : «établit qu un changement de spécification d un élément [ ] peut en affecter un autre qui l utilise [ ], mais que l inverse n est pas nécessairement vrai. (selon Booch et al., 2000, p. 65) Agrégation = relation tout-partie Composition = agrégation dans laquelle «les parties dont la multiplicité n est pas fixée peuvent être créées après le composite, mais elles vivent et meurent avec lui.» (selon Booch et al, 2000, p. 157). 3.4 Exemple p , 114, 146 Encapsulation et objets actifs dans le Geodatabase Les objets peuvent avoir un comportement, c est-à-dire que l on peut en quelque sorte programmer leur réaction à des «événements» Un exemple d application de UML-Geodatabase en foresterie (présenté en classe) Département de géographie / Université du Québec à Montréal 115
CONCEPTION Support de cours n 3 DE BASES DE DONNEES
CONCEPTION Support de cours n 3 DE BASES DE DONNEES Auteur: Raymonde RICHARD PRCE UBO PARTIE III. - LA DESCRIPTION LOGIQUE ET PHYSIQUE DES DONNEES... 2 A. Les concepts du modèle relationnel de données...
Glossaire. base de données géographiques Voir géodatabase (GDB).
Glossaire analyse Processus d identification d une question ou d un problème à résoudre, de modélisation de ce problème, de recherche des résultats de modélisation, d interprétation des résultats, d élaboration
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
Didacticiel de mise à jour Web
Didacticiel de mise à jour Web Copyright 1995-2012 Esri All rights reserved. Table of Contents Didacticiel : Création d'une application de mise à jour Web.................. 0 Copyright 1995-2012 Esri.
modélisation solide et dessin technique
CHAPITRE 1 modélisation solide et dessin technique Les sciences graphiques regroupent un ensemble de techniques graphiques utilisées quotidiennement par les ingénieurs pour exprimer des idées, concevoir
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
Université de Bangui. Modélisons en UML
Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et
INTRODUCTION GENERALE...1 LA CONNEXION ODBC :...1. CONNEXION AU TRAVERS D EXCEL(tm)...6. LOGICIEL QUANTUM GIS (Qgis)... 10
PROGRAMME RÉGIONAL DE RENFORCEMENT DE LA COLLECTE DES DONNÉES STATISTIQUES DES PECHES DANS LES ÉTATS MEMBRES ET DE CREATION D UNE BASE DE DONNÉES REGIONALE Manuel de formation TABLE DES MATIERES INTRODUCTION
LE MODELE CONCEPTUEL DE DONNEES
LE MODELE CONCEPTUEL DE DONNEES Principe : A partir d'un cahier des charges, concevoir de manière visuelle les différents liens qui existent entre les différentes données. Les différentes étapes de réalisation.
Utiliser Access ou Excel pour gérer vos données
Page 1 of 5 Microsoft Office Access Utiliser Access ou Excel pour gérer vos données S'applique à : Microsoft Office Access 2007 Masquer tout Les programmes de feuilles de calcul automatisées, tels que
Modélisation conceptuelle des données Responsable: Dominique Schneuwly, Regis Caloz
Geographic Information Technology Training Alliance (GITTA) presents: Modélisation conceptuelle des données Responsable: Dominique Schneuwly, Regis Caloz Table des matières 1. Modélisation conceptuelle
PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées
PRODIGE V3 Manuel utilisateurs Consultation des métadonnées Pour plus d'information sur le dispositif : à remplir par chaque site éventuellement 2 PRODIGE V3 : Consultation des métadonnées SOMMAIRE 1.
Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation
Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des
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
COMMUNICATEUR BLISS COMMANDE PAR UN SENSEUR DE POSITION DE L'OEIL
COMMUNICATEUR BLISS COMMANDE PAR UN SENSEUR DE POSITION DE L'OEIL J. TICHON(1) (2), J.-M. TOULOTTE(1), G. TREHOU (1), H. DE ROP (2) 1. INTRODUCTION Notre objectif est de réaliser des systèmes de communication
Architecture d'entreprise : Guide Pratique de l'architecture Logique
Guides Pratiques Objecteering Architecture d'entreprise : Guide Pratique de l'architecture Logique Auteur : Version : 1.0 Copyright : Softeam Equipe Conseil Softeam Supervisée par Philippe Desfray Softeam
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
OASIS www.oasis-open.org/committees/xacml/docs/docs.shtml Date de publication
Statut du Committee Working Draft document Titre XACML Language Proposal, version 0.8 (XACML : XML Access Control Markup Language) Langage de balisage du contrôle d'accès Mot clé Attestation et sécurité
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
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
Qu est-ce que ArcGIS?
2 Qu est-ce que ArcGIS? LE SIG ÉVOLUE Depuis de nombreuses années, la technologie SIG améliore la communication, la collaboration et la prise de décision, la gestion des ressources et des infrastructures,
Comprendre Merise et la modélisation des données
Comprendre Merise et la modélisation des données Tables des matières Avant-propos 1- Introduction 1-1 Principes fondateurs 1-2 Bases conceptuelles 1-3 Place de Merise dans le cycle de développement informatique
A. Définition et formalisme
Les cardinalités et les différents types d'associations I. Les cardinalités A. Définition et formalisme Les cardinalités sont des couples de valeur que l'on trouve entre chaque entité et ses associations
Introduction aux Bases de Données
Licence 3 Géographie Aménagement NHUC5548 Introduction aux Bases de Données Le cas des BD relationnelles Concepts, méthodes et applications JP ANTONI / Y FLETY 1 Logistique et autres fonctionnements Cours
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...
Dans cette définition, il y a trois notions clés: documents, requête, pertinence.
Introduction à la RI 1. Définition Un système de recherche d'information (RI) est un système qui permet de retrouver les documents pertinents à une requête d'utilisateur, à partir d'une base de documents
Les bases de données Page 1 / 8
Les bases de données Page 1 / 8 Sommaire 1 Définitions... 1 2 Historique... 2 2.1 L'organisation en fichier... 2 2.2 L'apparition des SGBD... 2 2.3 Les SGBD relationnels... 3 2.4 Les bases de données objet...
Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml
OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire
1. LA GESTION DES BASES DE DONNEES RELATIONNELLES
Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de
Entrepôt de données 1. Introduction
Entrepôt de données 1 (data warehouse) Introduction 1 Présentation Le concept d entrepôt de données a été formalisé pour la première fois en 1990 par Bill Inmon. Il s agissait de constituer une base de
Conception des bases de données : Modèle Entité-Association
Conception des bases de données : Modèle Entité-Association La modélisation d un problème, c est-à-dire le passage du monde réel à sa représentation informatique, se définit en plusieurs étapes pour parvenir
Communiqué de Lancement
Direction du Marketing Produits Sage - Division Mid Market Communiqué de Lancement Rapprochement Bancaire 1000 Produit : Rapprochement Bancaire 1000 Bases de Données : Oracle - MS/SQL Server Microsoft
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
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
TD : Codage des images
TD : Codage des images Les navigateurs Web (Netscape, IE, Mozilla ) prennent en charge les contenus textuels (au format HTML) ainsi que les images fixes (GIF, JPG, PNG) ou animée (GIF animée). Comment
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
PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées
PRODIGE V3 Manuel utilisateurs Consultation des métadonnées Pour plus d'information sur le dispositif : à remplir par chaque site éventuellement 2 PRODIGE V3 : Consultation des métadonnées SOMMAIRE 1.
Les diagrammes de modélisation
L approche Orientée Objet et UML 1 Plan du cours Introduction au Génie Logiciel L approche Orientée Objet et Notation UML Les diagrammes de modélisation Relations entre les différents diagrammes De l analyse
Didacticiel du service cartographique en cache
Didacticiel du service cartographique en cache Copyright 1995-2012 Esri All rights reserved. Table of Contents Didacticiel : Création d'un service de carte mis en cache................... 3 Copyright 1995-2012
CHAPITRE VIII : Les circuits avec résistances ohmiques
CHAPITRE VIII : Les circuits avec résistances ohmiques VIII. 1 Ce chapitre porte sur les courants et les différences de potentiel dans les circuits. VIII.1 : Les résistances en série et en parallèle On
MEDIAplus elearning. version 6.6
MEDIAplus elearning version 6.6 L'interface d administration MEDIAplus Sommaire 1. L'interface d administration MEDIAplus... 5 2. Principes de l administration MEDIAplus... 8 2.1. Organisations et administrateurs...
Conception d'applications de base de données ios plus rapides Guide Pratique FileMaker
Conception d'applications de base de données ios plus rapides Guide Pratique FileMaker Table des Matières Introduction... 3 Conception de modèles... 3 Conception de bases de données... 5 Conception pour
BANQUES DE DONNÉES PÉDAGOGIQUES
223 Daniel BURET, Jean-Claude BLANCHARD. HISTORIQUE L'EPI a entrepris en 1989 de créer des bases d'énoncés mathématiques destinées aux enseignants pour la production de documents et accompagnées d'un outil
Modélisation des données
Modélisation des données Le modèle Entité/Association Le MCD ou modèle Entité/Association est un modèle chargé de représenter sous forme graphique les informations manipulées par le système (l entreprise)
Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS
Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS Mémento Ouvrir TI-Nspire CAS. Voici la barre d outils : L insertion d une page, d une activité, d une page où l application est choisie, pourra
Chapitre I : le langage UML et le processus unifié
I. Introduction Les méthodes d analyse orientées objet sont initialement issues des milieux industriels. La préoccupation dominante de leurs auteurs est le génie logiciel, c est-àdire les principes et
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
Généralités sur le Langage Java et éléments syntaxiques.
Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...
Mémo d'utilisation de BD Dico1.6
Mémo d'utilisation de BD Dico1.6 L'application BDDico a été développée par la Section Cadastre et Géomatique de la RCJU. Son utilisation demeure réservée aux personnes autorisées. Les demandes d'utilisation
GOL-502 Industrie de services. Travaux Pratique / Devoir #7
GOL-502 Industrie de services Travaux Pratique / Devoir #7 Version 2012 Modélisation à l'aide du langage UML 1) Diagramme de cas d'utilisation 2) Diagramme de classes 3) Diagramme de séquence 4) Diagramme
Adobe Illustrator Logiciel de dessin vectoriel et de Cartographie Assistée par Ordinateur
Adobe Illustrator Logiciel de dessin vectoriel et de Cartographie Assistée par Ordinateur I- Ouverture d une nouvelle feuille de travail Fichier / Nouveau (ou ctrl + N) Indiquer dans la fenêtre qui s ouvre
Gestion des documents associés
Gestion des documents associés Gestion des documents associés 1 Introduction 1.1 1.2 Introduction 4 Principe des deux modes de gestion des documents 5 2 Les pièces jointes ArcGIS 2.1 2.2 2.3 2.4 2.5 2.6
Le modèle de données
Le modèle de données Introduction : Une fois que l étude des besoins est complétée, deux points importants sont à retenir : Les données du système étudié Les traitements effectués par le système documentaire.
Dossier I Découverte de Base d Open Office
ETUDE D UN SYSTEME DE GESTION DE BASE DE DONNEES RELATIONNELLES Définition : Un SGBD est un logiciel de gestion des données fournissant des méthodes d accès aux informations. Un SGBDR permet de décrire
Module d introduction Comment réaliser vos propres cartes avec ArcGIS Online
Module d introduction Comment réaliser vos propres cartes avec ArcGIS Online Table des matières 1 Commencer avec ArcGis Online... 2 2 Créer des cartes I (utiliser les cartes disponibles /les services de
MEGA ITSM Accelerator. Guide de Démarrage
MEGA ITSM Accelerator Guide de Démarrage MEGA 2009 SP4 1ère édition (juin 2010) Les informations contenues dans ce document pourront faire l objet de modifications sans préavis et ne sauraient en aucune
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),
SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM
SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM Copyright TECH 2012 Technext - 8, avenue Saint Jean - 06400 CANNES Société - TECHNEXT France - Tel : (+ 33) 6 09 87 62 92 - Fax :
Sommaire. Les lotissements à partir du 1er mars 2012. Février 2012. Caractéristiques d un lotissement...2. Constitue un lotissement...
Les lotissements à partir du 1er mars 2012 Février 2012 Sommaire Caractéristiques d un lotissement...2 Constitue un lotissement...2 Ne constitue pas un lotissement...2 Les procédures applicables et leur
Conception, architecture et urbanisation des systèmes d information
Conception, architecture et urbanisation des systèmes d information S. Servigne Maître de Conférences, LIRIS, INSA-Lyon, F-69621 Villeurbanne Cedex e-mail: [email protected] 1. Introduction
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
1. Introduction...2. 2. Création d'une requête...2
1. Introduction...2 2. Création d'une requête...2 3. Définition des critères de sélection...5 3.1 Opérateurs...5 3.2 Les Fonctions...6 3.3 Plusieurs critères portant sur des champs différents...7 3.4 Requête
Formats d images. 1 Introduction
Formats d images 1 Introduction Lorsque nous utilisons un ordinateur ou un smartphone l écran constitue un élément principal de l interaction avec la machine. Les images sont donc au cœur de l utilisation
2 Grad Info Soir Langage C++ Juin 2007. Projet BANQUE
2 Grad Info Soir Langage C++ Juin 2007 Projet BANQUE 1. Explications L'examen comprend un projet à réaliser à domicile et à documenter : - structure des données, - objets utilisés, - relations de dépendance
PHPWEBSITE -Tutoriel image
PHPWEBSITE -Tutoriel image La capture des images depuis le web pour mon site. L optimisation d images pour le web, 1 Préparer des images pour le Web A. Généralités 1. Les trois formats d'images sur le
Infolettre #18 : Les graphiques avec Excel 2010
Infolettre #18 : Les graphiques avec Excel 2010 Table des matières Introduction... 1 Hourra! Le retour du double-clic... 1 Modifier le graphique... 4 Onglet Création... 4 L onglet Disposition... 7 Onglet
Exercices de dénombrement
Exercices de dénombrement Exercice En turbo Pascal, un entier relatif (type integer) est codé sur 6 bits. Cela signifie que l'on réserve 6 cases mémoires contenant des "0" ou des "" pour écrire un entier.
Présentation du module Base de données spatio-temporelles
Présentation du module Base de données spatio-temporelles S. Lèbre [email protected] Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes
Analyse,, Conception des Systèmes Informatiques
Analyse,, Conception des Systèmes Informatiques Méthode Analyse Conception Introduction à UML Génie logiciel Définition «Ensemble de méthodes, techniques et outils pour la production et la maintenance
Matérialiser les données d une BdD : créer une carte de densité de points par maillage
Matérialiser les données d une BdD : créer une carte de densité de points par maillage «Cet outil permet de créer un maillage régulier de polygones (carrés, rectangles ou nids d'abeille) à partir des entités
swisstlm 3D Version 1.3 Publication 2015 Généralités sur swisstlm 3D
Département fédéral de la défense, de la protection de la population et des sports DDPS Office fédéral de topographie swisstopo swisstlm 3D Version 1.3 Publication 2015 Généralités sur swisstlm 3D Le modèle
SOMMAIRE. Travailler avec les requêtes... 3
Access Les requêtes SOMMAIRE Travailler avec les requêtes... 3 A) Créer une requête sélection en mode QBE... 3 B) Exécuter une requête à partir du mode Modifier (QBE)... 3 C) Passer du mode Feuille de
TP SIN Traitement d image
TP SIN Traitement d image Pré requis (l élève doit savoir): - Utiliser un ordinateur Objectif terminale : L élève doit être capable de reconnaître un format d image et d expliquer les différents types
La Clé informatique. Formation Excel XP Aide-mémoire
La Clé informatique Formation Excel XP Aide-mémoire Septembre 2005 Table des matières Qu est-ce que le logiciel Microsoft Excel?... 3 Classeur... 4 Cellule... 5 Barre d outil dans Excel...6 Fonctions habituelles
1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5
1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases
Configuration et optimisation d'arcgis Server Gaëtan LAVENU ESRI France Sylvain BARD-MAÏER ESRI France
Configuration et optimisation d'arcgis Server Gaëtan LAVENU ESRI France Sylvain BARD-MAÏER ESRI France UC 2007 Tech Sessions 1 Plan de la présentation Introduction Organiser et gérer ses données Concevoir
IFT2255 : Génie logiciel
IFT2255 : Génie logiciel Chapitre 6 - Analyse orientée objets Section 1. Introduction à UML Julie Vachon et Houari Sahraoui 6.1. Introduction à UML 1. Vers une approche orientée objet 2. Introduction ti
MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»
MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE» Du cours Modélisation Semi -Formelle de Système d Information Du Professeur Jean-Pierre GIRAUDIN Décembre. 2002 1 Table de matière Partie 1...2 1.1
LE PROBLEME DU PLUS COURT CHEMIN
LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs
L espace de travail de Photoshop
L espace de travail de Photoshop 1 Au cours de cette leçon, vous apprendrez à : ouvrir les fichiers Photoshop ; sélectionner et employer certains des outils dans le panneau Outils ; définir les options
Thème 5. Proposition d'une activité d'exploration élève : Micro-trottoir «Qu'est-ce qu'une entreprise?»
Thème 5. Proposition d'une activité d'exploration élève : Micro-trottoir «Qu'est-ce qu'une entreprise?» Propriétés Description Intitulé court Proposition d'une activité d'exploration élève de type Micro-trottoir
Traitement de texte : Quelques rappels de quelques notions de base
Traitement de texte : Quelques rappels de quelques notions de base 1 Quelques rappels sur le fonctionnement du clavier Voici quelques rappels, ou quelques appels (selon un de mes profs, quelque chose qui
PRÉSENTATION DES QUESTIONS DE LA FEUILLE DE LOGEMENT
PRÉSENTATION DES QUESTIONS DE LA FEUILLE DE LOGEMENT Chacune des questions de la feuille de logement fait l'objet d'une fiche recto-verso. Ces fiches ont vocation à être mises en ligne sur le site web
Introduction : présentation de la Business Intelligence
Les exemples cités tout au long de cet ouvrage sont téléchargeables à l'adresse suivante : http://www.editions-eni.fr Saisissez la référence ENI de l'ouvrage RI3WXIBUSO dans la zone de recherche et validez.
Formateur : Jackie DAÖN
Active Directory Stage personnes ressources réseau en établissement janvier 2005 Formateur : Jackie DAÖN Médiapôle de Guyancourt Lycée de Villaroy 2 rue Eugène Viollet Le Duc BP31 78041 GUYANCOURT Cedex
= 1 si n = m& où n et m sont souvent des indices entiers, par exemple, n, m = 0, 1, 2, 3, 4... En fait,! n m
1 épartement de Physique, Université Laval, Québec Pierre Amiot, 1. La fonction delta et certaines de ses utilisations. Clientèle Ce texte est destiné aux physiciens, ingénieurs et autres scientifiques.
Modélisation de bases de données : Le modèle relationnel
Modélisation de bases de données : Le modèle relationnel Rappel chapitre 1 C est quoi un modèle? Type de modèle : Modèle hiérarchique Modèle réseau Modèle objet Modèle relationnel Cours BD Dr REZEG K 1
claroline classroom online
de la plate-forme libre d'apprentissage en ligne Claroline 1.4 Manuel Révision du manuel: 06/2003 Créé le 07/09/2003 12:02 Page 1 Table des matières 1) INTRODUCTION...3 2) AFFICHER LA PAGE DE DEMARRAGE...3
INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX
TABLE DES MATIERES Livret Utilisateur Excel 2007 Niveau 2 INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX... 4 Les tableaux croisés dynamiques... 4 Création d un tableau croisé... 5 Comparer des
Algorithme. Table des matières
1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............
1. Cliquez sur dans le coin supérieur gauche de l'écran 2. Sélectionnez la Langue de l'interface désirée 3. Cliquez sur
NOTIFICATIONS GUIDE Le module Notifications permet de retrouver des notifications en utilisant les champs spécifiques de la base de données du Registre central des notifications (RCN). Il comporte une
3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes
PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason
LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE
LA PHYSIQUE DES MATERIAUX Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE Pr. A. Belayachi Université Mohammed V Agdal Faculté des Sciences Rabat Département de Physique - L.P.M [email protected] 1 1.Le réseau
Systèmes d information et bases de données (niveau 1)
Systèmes d information et bases de données (niveau 1) Cours N 1 Violaine Prince Plan du cours 1. Bibliographie 2. Introduction aux bases de données 3. Les modèles 1. Hiérarchique 2. Réseau 3. Relationnel
Module d échange de données INTERLIS v1.0 GeoConcept Manuel d'utilisation
Module d échange de données INTERLIS v1.0 GeoConcept Manuel d'utilisation Interlis V1.0 - GC version 5.0 Table des matières TABLE DES MATIERES...1 1. INTRODUCTION...2 1.1 OBJECTIF...2 1.2 PRINCIPE...2
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.........................
CPLN 20/08/2009 MBO Service ICT et Pédagogie
La clé USB Présentation De première vue, une clé USB est un simple "morceau de plastique". Hors, elle est très utile et de plus en plus utilisée. Elle permet de stocker des fichiers (et dossiers) tout
1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5
1. Introduction... 2 2. Création d'une macro autonome... 2 3. Exécuter la macro pas à pas... 5 4. Modifier une macro... 5 5. Création d'une macro associée à un formulaire... 6 6. Exécuter des actions en
Bases de données. Chapitre 1. Introduction
Références : Bases de données Pierre Wolper Email : [email protected] URL : http : //www.montefiore.ulg.ac.be/~pw/ http : //www.montefiore.ulg.ac.be/ ~pw/cours/bd.html Henry F. Korth, Abraham Silberschatz,
