
Un SGBD matriciel est un système de gestion de bases de données (SGBD) prenant en charge les tableaux (également appelés données raster ou cubes de données ). Ces données sont constituées d'ensembles homogènes d'éléments (souvent appelés pixels , voxels , etc.) disposés sur une grille régulière à une, deux ou plusieurs dimensions. Les tableaux sont fréquemment utilisés pour représenter des données issues de capteurs, de simulations, d'images ou de statistiques. Ces tableaux correspondent généralement à des volumes importants de données (Big Data) , avec des objets individuels atteignant fréquemment le téraoctet, voire le pétaoctet ; par exemple, les archives d'observation de la Terre et de l'espace augmentent aujourd'hui de plusieurs téraoctets par jour. Les bases de données matricielles visent à offrir un stockage et une récupération flexibles et évolutifs pour ce type d'information.
des systèmes de bases de données classiques qui gèrent les ensembles, les SGBD de type tableau offrent un stockage et une manipulation flexibles et évolutifs de tableaux de taille (conceptuellement) illimitée. En pratique, les tableaux n'étant jamais utilisés seuls, ce modèle est généralement intégré à un modèle de données global, tel que le modèle relationnel. Certains systèmes implémentent les tableaux par analogie avec les tables, d'autres les introduisent comme un type d'attribut supplémentaire.La gestion des tableaux de données exige des techniques novatrices, notamment parce que les tuples et objets de bases de données classiques tiennent généralement sur une seule page de base de données ( une unité d'accès disque sur le serveur, typiquement de 4 Ko ), tandis que les objets de tableaux peuvent facilement s'étendre sur plusieurs supports. La principale fonction du gestionnaire de stockage de tableaux est d'assurer un accès rapide aux grands tableaux et sous-tableaux. À cette fin, lors de l'insertion, les tableaux sont partitionnés en « tuiles » ou blocs de taille appropriée, qui servent ensuite d'unités d'accès lors de l'évaluation des requêtes.des langages de requêtes permettant un accès déclaratif à ces tableaux, autorisant leur création, leur manipulation, leur recherche et leur suppression. À l'instar du SQL , par exemple , des expressions d'une complexité arbitraire peuvent être construites à partir d'un ensemble d'opérations matricielles de base. Du fait des extensions apportées au modèle de données et de requêtes, les SGBD matriciels sont parfois classés dans la catégorie NoSQL , au sens de « pas seulement SQL ». L'optimisation et la parallélisation des requêtes sont essentielles pour garantir la scalabilité ; de fait, de nombreux opérateurs matriciels se prêtent bien à l'évaluation parallèle, en traitant chaque élément sur des nœuds ou cœurs distincts.
Les principaux domaines d'application des SGBD matriciels comprennent les sciences de la Terre, de l'espace, de la vie et sociales, ainsi que les applications commerciales associées (telles que l'exploration d'hydrocarbures dans l'industrie et l'OLAP dans le commerce). La diversité des données rencontrées est observable, par exemple, dans les données géographiques où l'on trouve des séries temporelles de capteurs environnementaux 1D, des images satellites 2D, des séries temporelles d'images 3D x/y/t et des données géophysiques x/y/z, ainsi que des données climatiques et océaniques 4D x/y/z/t.
Historique et situation
Le modèle de données relationnel , actuellement dominant, ne prend pas directement en charge le paradigme des tableaux au même titre que les ensembles et les tuples. La norme ISO SQL mentionne un type d'attribut à valeurs de tableau, mais celui-ci est unidimensionnel, quasiment sans prise en charge opérationnelle et inutilisable pour les domaines d'application des SGBD de type tableau. Une autre option consiste à utiliser les BLOB (« objets binaires volumineux »), équivalents à des fichiers : des chaînes d'octets de longueur (conceptuellement) illimitée, mais là encore sans aucune fonctionnalité de langage de requête, comme la sélection multidimensionnelle.
Les premiers travaux significatifs visant à aller au-delà des BLOB ont été réalisés avec PICDMS. Ce système offre le précurseur d'un langage de requête de tableau 2D, bien qu'encore procédural et sans support de stockage approprié.
Baumann a publié un premier langage de requêtes déclaratif adapté aux données multidimensionnelles et doté d'une sémantique algébrique , accompagné d'une architecture évolutive. Marathe et Salem ont présenté un autre langage de bases de données matricielles, limité à la 2D. Libkin et al. ont réalisé des travaux théoriques fondamentaux ; dans leur modèle, appelé NCRA, ils étendent un calcul relationnel imbriqué aux tableaux multidimensionnels ; parmi leurs résultats figurent d'importantes contributions à l'analyse de la complexité des requêtes matricielles. Mennis et al. ont publié une algèbre de cartes, adaptée aux données raster spatiales 2D et 3D.
En matière d'implémentations de SGBD matriciels, le système Rasdaman possède la plus longue expérience de gestion des tableaux nD avec une prise en charge complète des requêtes. Oracle GeoRaster propose un stockage par blocs de cartes raster 2D, mais sans intégration SQL. TerraLib est un logiciel SIG open source qui étend la technologie des SGBD objet-relationnels pour gérer les types de données spatio-temporelles ; bien que principalement axé sur les données vectorielles, il prend également en charge les rasters. Depuis la version 2.0, PostGIS intègre la prise en charge des rasters 2D ; une fonction spécifique offre des fonctionnalités de requête raster déclaratives. SciQL est un langage de requête matriciel en cours d'intégration au SGBD MonetDB . SciDB est une initiative plus récente visant à établir la prise en charge des bases de données matricielles. À l'instar de SciQL, les tableaux y sont considérés comme équivalents aux tables, et non comme un nouveau type d'attribut comme dans Rasdaman et PostGIS.
Dans le cas particulier des données éparses , les cubes de données OLAP sont une solution éprouvée ; ils stockent les valeurs des cellules ainsi que leur emplacement – une technique de compression efficace compte tenu du faible nombre d’emplacements contenant des informations pertinentes – et fonctionnent avec SQL. Cette technique n’étant pas adaptée aux données denses, les bases de données classiques ne sont plus utilisées aujourd’hui pour les données denses, telles que les images satellites, où la plupart des cellules contiennent des informations utiles ; on privilégie plutôt les implémentations propriétaires ad hoc pour la gestion des données scientifiques et dans des situations similaires. C’est là que les SGBD matriciels peuvent apporter une contribution précieuse.qu'Oracle GeoRaster , PostGIS 2.0 et Rasdaman , de nombreuses questions de recherche restent en suspens, notamment la conception et la formalisation des langages de requêtes, l'optimisation des requêtes, la parallélisation et le traitement distribué , ainsi que les problèmes de scalabilité en général. Par ailleurs, les communautés scientifiques semblent encore réticentes à adopter la technologie des bases de données matricielles et ont tendance à privilégier les technologies propriétaires et spécialisées.
Concepts
Lors de l'ajout de tableaux aux bases de données, tous les aspects de la conception de la base de données doivent être repensés , allant de la modélisation conceptuelle (comme les opérateurs appropriés) à la gestion du stockage (comme la gestion des tableaux couvrant plusieurs supports) en passant par le traitement des requêtes (comme les stratégies de traitement efficaces).XGA ), et V peut prendre la forme {0..255} pour des images en niveaux de gris 8 bits et {0..255} × {0..255} × {0..255} pour des images RGB standard .
Conformément aux bonnes pratiques en matière de bases de données, un langage de requêtes sur les tableaux doit être déclaratif et sûr lors de son évaluation. L'itération sur un tableau étant au cœur du traitement des tableaux, la déclarativité repose essentiellement sur cet aspect. Il est donc impératif que, conceptuellement, toutes les cellules soient inspectées simultanément ; autrement dit, la requête n'impose aucune séquence d'itération explicite sur les cellules du tableau lors de son évaluation. La sécurité de l'évaluation est garantie lorsque chaque requête se termine après un nombre fini d'étapes (en temps fini) ; là encore, éviter les boucles et la récursivité permet d'y parvenir. Par ailleurs, éviter les boucles explicites ouvre la voie à de nombreuses optimisations.L'algèbre et le langage de requêtes de Rasdaman , qui définissent un langage d'expression sur un ensemble minimal de primitives de tableaux, peuvent servir d'exemple pour les opérateurs de requêtes sur les tableaux . Nous commencerons par les opérateurs de base génériques, puis présenterons les cas particuliers courants et les raccourcis.
L' opérateur marray crée un tableau sur une étendue de domaine donnée et initialise ses cellules :

Compte tenu de la taille considérable des tableaux dans les applications scientifiques et techniques, et de la complexité fréquente des requêtes, l'optimisation est essentielle pour garantir l'efficacité de ces requêtes. La parallélisation matérielle et logicielle peut être mise en œuvre. À titre d'exemple d'optimisation heuristique, la règle suivante illustre ce principe : « la valeur maximale d'un tableau résultant de l'addition cellule par cellule de deux images d'entrée est équivalente à l'addition des valeurs maximales de chaque tableau d'entrée ». En remplaçant la variante de gauche par l'expression de droite, le coût passe de trois parcours de tableau (coûteux) à deux parcours et une opération scalaire (peu coûteuse) (voir figure, qui utilise la norme de requête SQL/MDA).
Domaines d'application
Dans la plupart des cas où un phénomène est échantillonné ou simulé, on obtient un ensemble de données rasterisées, facilement stockables, récupérables et transmissibles sous forme de tableau. Ces données sont généralement enrichies de métadonnées les décrivant plus en détail ; par exemple, une imagerie géoréférencée comporte sa position géographique et le système de coordonnées de référence utilisé.
Voici quelques exemples de domaines représentatifs dans lesquels sont traitées des données de tableaux multidimensionnels à grande échelle :
- Sciences de la Terre : géodésie/cartographie, télédétection , géologie, océanographie, hydrologie, sciences de l’atmosphère, sciences de la cryosphère
- Sciences spatiales : sciences planétaires, astrophysique (observations par télescopes optiques et radio, simulations cosmologiques)
- Sciences de la vie : données génétiques, microscopie confocale, tomodensitométrie
- Sciences sociales : cubes de données statistiques
- Secteur d'activité : OLAP, entreposage de données
Ce ne sont là que des exemples ; de manière générale, les tableaux représentent fréquemment des données de capteurs, de simulation, d’images et de statistiques. De plus en plus de dimensions spatiales et temporelles sont combinées à des axes abstraits , tels que les ventes et les produits ; le modèle de couverture de l’Open Geospatial Consortium (OGC) est un exemple où de tels axes abstraits sont explicitement prévus .
Standardisation
De nombreuses communautés ont établi des formats d'échange de données, tels que HDF , NetCDF et TIFF . Dans le domaine des sciences de la Terre, OPeNDAP , une architecture et un protocole de transport de données, fait figure de standard de facto. Bien qu'il ne s'agisse pas d'une spécification de base de données, il offre des composantes essentielles qui caractérisent un système de base de données, comme un modèle conceptuel et des implémentations client/serveur.
Un langage de requête raster géo déclaratif, le Web Coverage Processing Service (WCPS), a été normalisé par l' Open Geospatial Consortium (OGC).
En juin 2014, l’ISO/IEC JTC1 SC32 WG3, qui gère la norme de base de données SQL, a décidé d’ajouter la prise en charge des tableaux multidimensionnels à SQL en tant que nouveau type de colonne , en s’appuyant sur la prise en charge initiale des tableaux disponible depuis la version 2003 de SQL . La nouvelle norme, adoptée à l’automne 2018, est nommée ISO 9075 SQL Partie 15 : MDA (Tableaux multidimensionnels) .