Le système de bases de données du futur

10.8.2006

Le système de bases de données du futur
Que nous apportent les nouvelles versions d'IBM DB2, Microsoft SQL Server, MySQL et Oracle RDBMS ? Pour comprendre le développement actuel des systèmes d'information, il est utile de se pencher quelques instants sur le passé. Au tout début de l'ère informatique, il s'agissait pour l'essentiel de calculs complexes ou « Number crunching ». C'était l'époque des mathématiques, pour ainsi dire. À la fin des années soixante arriva un premier changement de paradigme : grâce à un nouveau type de logiciel, la gestion de bases de données, il fut possible de stocker puis de rappeler à tout moment des informations, quelles qu'elles soient. L'ère de l'information était née. Dans les années quatre-vingt dix, on prit conscience qu'un second changement de paradigme était nécessaire afin de pouvoir exploiter au maximum les données stockées. On établit des relations entre des fragments de données existants afin d'en déduire de nouvelles connaissances, au lieu de se limiter à rappeler des données déjà présentes. On atteint donc l'ère du savoir. Aujourd'hui, nous stockons des quantités de données encore plus volumineuses qu'il y a dix ans. Cependant, afin de pouvoir en tirer toute l'utilité, nous devons développer et approfondir les techniques telles que l'extraction des connaissances à partir des données (Data Mining). Nous devons compresser les données et les présenter de façon à pouvoir les consulter rapidement. Il est clair que les systèmes de bases de données ne jouent plus un rôle dominant, comme c'était le cas il y a encore quelques années. Malgré tout, ils constituent actuellement la base de nos activités. C'est pourquoi il est indispensable de connaître et de pouvoir juger leurs principales fonctionnalités. Entendez par là des fonctionnalités qu'un « grand » système de gestion de bases de données relationnelles de notre ère doit pouvoir offrir, et non des fonctions de bases rendues aujourd'hui disponibles par n'importe quel système de gestion d'adresses.

Intégration des données
Afin de pouvoir exploiter les informations existantes et d'en tirer de nouvelles connaissances, une seule base de données s'avère généralement insuffisante. Pourquoi ? Parce qu'une base de données classique se limite la plupart du temps à un domaine spécifique de l'entreprise. Nous devons donc être en mesure d'intégrer tous ces différents domaines. Dans l'ensemble, il existe trois possibilités. La première consiste à copier physiquement les données des bases de données source dans une base de données centrale spécialement utilisée pour l'obtention de connaissances. Une telle base de données est communément désignée par le terme « entrepôt de données » ou « Data Warehouse ». Le transfert des données s'effectue dans le cadre d'un processus d’extraction-transformation-chargement (ETL ou Extraction, Transformation, Loading en anglais). L'avantage principal réside ici dans la cohérence des données dans le système récepteur, laquelle peut être sécurisée au cours du processus de chargement, de même que dans la rapidité de l'accès aux informations au niveau de l'acquisition des connaissances à partir des données intégrées, indépendamment du système source. On note par contre l'inconvénient de la duplication des données et la dépendance vis-à-vis d'un processus de chargement périodique, qui rend impossible l'accès en temps réel aux données de base.

La seconde approche correspond à l'accès aux données dans les systèmes sources selon les besoins, ou en d'autres termes : l'intégration des données via une couche logicielle, et non au moyen de copies physiques. L'avantage : les données n'existent qu'en un exemplaire et les problèmes de synchronisation sont ainsi supprimés. L'inconvénient : l'interdépendance entre les systèmes est plus importante, l'accès aux données est ralenti et la cohérence des données sur plusieurs systèmes est de manière générale difficile à maintenir. La réplication des données constitue la troisième possibilité, qui représente un compromis entre les deux premières stratégies et réunit les points forts des deux approches. Les données n'existent qu'en un exemplaire, mais sont quand même physiquement réparties pour permettre un accès rapide. Cependant, ce système de réplication est bien entendu beaucoup plus complexe à mettre en place et à exploiter (on n'a jamais rien sans rien !) Système hybride de stockage des données Au début de l'ère informatique, on n'enregistrait que des chiffres, ou au mieux, des chaînes de caractères (dont la taille était limitée) dans nos systèmes de bases de données. Ces temps sont définitivement révolus. Les systèmes de bases de données d'aujourd'hui doivent être en mesure d'enregistrer des données structurées (chiffres, chaînes de caractères, articles) et des données non structurées du point de vue du format de stockage (documents texte, images, documents son, informations géographiques) et d'y accéder en recherchant des contenus définis. Il est important de souligner que, concernant les systèmes de stockage spécialisés (par exemple pour les dépôts de documents ou informations géographiques), le langage d'interrogation supérieur doit aussi pouvoir « regarder » dans ces éléments et ne peut pas se contenter de transmettre une grande chaîne binaire à l'application en lui imposant l'essentiel du travail. Étant donné qu'un fabricant ne peut jamais prévoir tous les besoins en matière de stockage, il doit être possible de mettre sur place des sous-systèmes de stockage particuliers et de les intégrer au langage d'interrogation. Disponibilité, performances et évolutivité La mondialisation des marchés de même que le nombre croissant de services B2C (Business to Customer) qui, le plus souvent, doivent également pouvoir être utilisés sur des dispositifs mobiles, entraînent des exigences toutes autres en matière de disponibilité : il ne doit pas y avoir de temps mort ! Néanmoins, ici, la notion de disponibilité ne signifie pas simplement que le système est accessible, mais qu'il met également le service à disposition de manière acceptable au niveau des performances. Les internautes abandonnent la plupart du temps les sites mettant trop de temps à répondre. C'est pour cela que des systèmes non performants sont équivalents à des systèmes non accessibles. Le nombre d'utilisateurs étant en croissance constante, la quantité de données stockées double pratiquement d'une année sur l'autre. Aujourd'hui, les bases de données de plus d'un téraoctet ne constituent plus une rareté et seront monnaie courante d'ici quelques années. Dans ce domaine, l'évolutivité est primordiale. Sans évolutivité du système au niveau de la quantité de données, une nouvelle fonction ne pouvant être exploitée que sur des systèmes de gestion d'adresses de petite taille

n'a aucune valeur. Par système, on n'entend ici pas uniquement la base de données, mais l'ensemble de l'application et de l'infrastructure. Les trois principales exigences pour les bases de données à l'avenir : Intégration des données Système hybride de stockage des données Disponibilité allant de pair avec un haut niveau de performance et d'évolutivité Au-delà de la technique Avant de rentrer dans les détails de chacun des produits, nous devons encore étudier quelques aspects au moins aussi importants pour le succès de l'implémentation d'un système d'information que les fonctionnalités techniques particulières. Ainsi, par exemple, le service d'assistance d'un fabricant ne doit pas seulement réagir au plus vite, mais il doit également faire preuve d'une certaine qualité. Les produits devenant toujours plus complexes, il est de plus en plus difficile pour les fabricants de répondre aux besoins des clients, ne serait-ce qu'au niveau des dépenses en formation. Le problème reste cependant le même pour les clients euxmêmes. Il existe aujourd'hui de plus en plus de spécialisations, citons par exemple les experts en haute disponibilité ou en sauvegarde/récupération. La maîtrise et la connaissance approfondie de l'ensemble du produit, possible il y a encore dix ans, est depuis longtemps devenue totalement illusoire : aujourd'hui, le développement de nouvelles fonctionnalités évolue plus vite que la simplification des fonctionnalités existantes ! Il est intéressant de remarquer que les trois grands fabricants de bases de données ont préparé une version entièrement gratuite de leur produit phare (même pour une utilisation à des fins commerciales !). Ces trois versions ne partagent pas uniquement l'utilisation du terme « Express » dans leurs noms de produit. Les limitations sont également comparables. L'intention devrait également être la même, à savoir : face aux exigences croissantes, appâter les utilisateurs pour qu'ils achètent la version payante. Ces versions « Express » soulignent l'existence de plusieurs bases de données et ainsi l'importance des possibilités d'intégration des données, détaillées au début de l'article.

IBM DB2
IBM a annoncé la version 9 sous le nom de code « Viper » pour les environnements décentralisés − Linux, Unix, Windows. Celle-ci sera disponible cette année au cours du deuxième semestre. L'intégration complète d'une base de données XML nati ve dans la base de données centrale est placée au premier plan de la version « Viper ». Ceci permet d'attribuer des données au type de données XML nouvellement créé et de les classer avec les données relationnelles dans la même base de données. Cela se produit sans que les documents XML ne doivent auparavant être divisés ou convertis en grands objets (LOB ou Large Objects).

Pour pouvoir travailler sur les structures de types hiérarchique et relationnel, on peut accéder à celles-ci au moyen de SQL, d'XQuery ou des nouvelles fonctions SQL/XML. Grâce à ce nouveau type de données, il est possible d'indexer chaque tag XML quel qu'il soit au sein d'une structure XML, ce qui s'avère une fois de plus très bénéfique au niveau des processus de recherche. Les quantités de données toujours plus importantes ont donné suite à l'implémentation de deux fonctions supplémentaires, qui font depuis longtemps partie de la version DB2 pour z/OS. Grâce au partitionnement par intervalles (Range Partitioning), les limites d'évolutivité, par exemple en ce qui concerne la taille maximale des tables, ont été repoussées de manière significative. À tra vers la compression des données, on compte sur une meilleure utilisation de l'emplacement de mémoire de même que sur une amélioration considérable des performances au niveau de la charge E/S. La tendance à l'automatisation, initiée dans la version précédente, persiste. Le concept de gestion automatique des ressources a été développé et amélioré. Ce qui est nouveau, c'est la présence d'un « Self Tuning Memory Manager » (gestionnaire de mémoire à autoréglage), lequel adapte les besoins en mémoire de travail à l'utilisation actuelle du serveur de bases de données. Au niveau des plates-formes, on prévoit que DB2 restera résolument présent sur l'ordinateur central dans un avenir proche. Au niveau des environnements décentralisés, cela peut signifier le besoin de passer d'Unix à Linux. En ce qui concerne l'architecture du système d'exploitation, nous nous orientons clairement vers une architecture 64 bits.

Pour ceux qui utilisent Windows comme système d'exploitation, le fait que plusieurs instances et/ou versions de correctifs différentes puissent maintenant être exécutées en parallèle présente un avantage certain. La désinstallation d'un correctif devrait également pouvoir être possible, de la même manière que sous Unix. Pour la prise en charge de développement d'applications, le « DB2 Developer Workbench » (outil d'interface utilisateur du développeur) basé sur Eclipse est intégré. Cet outil remplace l'ancien « DB2 Development Center » (centre de développement). Points communs entre toutes les éditions : elles partagent toutes les mêmes interfaces de programmation (API), fonctionnent avec le même langage SQL et sont soumises au même type de déploiement. Avec ses divers projets Open Source, IBM reste concentré sur la prise en charge des produits Microsoft (par exemple Visual Studio 2005). Parallèlement, on s'attend également à quelques innovations dans le domaine de l'intégration des données. Ces nouveautés seront intégrées au moyen d'IBM WebSphere Information Integrator. Base de données XML native Stockage de quantités de données plus importantes et augmentation simultanée des capacités d'auto-gestion Double fonctionnalité au niveau des environnements de développement : basés sur Open Source et Microsoft Processus d'intégration délocalisé et pris en charge par la gamme de produits Websphere

Microsoft SQL Server
La vision de Microsoft dans le domaine des données peut être résumée par la maxime « Your Data, An y Place, Any Time » (« Vos données, à tout moment, où que vous soyez »). Cette vision correspond en de nombreux points aux tendances générales décrites plus haut. Microsoft considère qu'une action est particulièrement nécessaire dans les domaines suivants : haute disponibilité, exploitation automatique, intégration de formats de données et services de données les plus variés et contrôle de bout en bout. Les nouvelles fonctions présentées ci-dessous devraient être disponibles au cours des 24-36 prochains mois. SQL Server 2005 offre déjà aujourd'hui de nombreuses possibilités pour exploiter de façon efficace de grandes quantités de données et assurer la disponibilité de la base de données. Parmi ces possibilités, on retrouve par exemple les groupes de fichiers, partitions, mise en miroir de bases de données, cluster de basculement, clichés instantanés de bases de données et réplication. Afin d'améliorer encore davantage la disponibilité des services de données, il est nécessaire que les systèmes puissent rapidement reconnaître les erreurs et ainsi réagir de manière autonome. Microsoft travaille avec insistance sur les fonctions d'auto-réglage, d'organisation automatique et de maintenance automatique de SQL Server. Outre l'amélioration de la disponibilité, le but consiste également à continuer l'optimisation du coût total de possession (Total Cost of Ownership - TCO). Au niveau de l'intégration de services et formats de données de toutes sortes, Microsoft considère non seulement la base de données mais aussi l'intégralité de la

plate-forme de données, y compris ADO.NET, comme agent de liaison entre les couches de données et d'application. Grâce à la nouvelle technologie d'accès aux données LINQ, les limites des différentes représentations de données s'estompent. Il est ainsi possible d'accéder aux divers types de données (données relationnelles, objets, XML, etc.) avec un modèle de programmation unitaire.

Integration Services Analysis Services Reporting Services
RDBMS

BPI and Workflow Document and Portal Dynamical Applications
OLAP

FILE

XML

Vos données, où que vous soyez et à n'importe quel moment
Le « bus » de données d'entité ainsi créé constitue la base des applications à venir appelées « applications dynamiques ». Celles-ci se caractérisent par leurs hautes capacités d'adaptation aux fluctuations des besoins de l'entreprise. Microsoft part du principe que ces applications ne sont pas toujours connectées au réseau et propose en conséquence plusieurs possibilités pour le traitement des données en local. De même que SQL Server Express Edition, SQL Server Everywhere arrivera également bientôt sur le marché. SQL Server Everywhere nécessite encore moins de ressources locales que les autres versions de SQL Server. Grâce à ADO.NET et LINQ, la programmation reste cependant la même du point de vue de l'application et offre des possibilités de réplications et de synchronisation. Cette version est avant tout conçue pour que les données puissent être conservées sur le client, permettant une exploitation hors connexion. Le domaine de la Business Intelligence de SQL Server sera davantage développé. Microsoft a en vue tout l'arsenal, de la base de données relationnelle aux services d’analyse (Analysis Services) en passant par l'application client (Excel, outils de développement). Options relatives à la haute disponibilité des données et services L'accent est mis sur l'auto-réglage et l'auto-régénération Capacités hors connexion et adaptation aux besoins en mémoire les plus variés via le bus de données d'entité Vision globale d'une application, du client au serveur de bases de données

MySQL
MySQL met l'accent sur l'intégration des données. On peut ainsi exporter des tableaux dans des fichiers indépendamment de l'éditeur de logiciels, ce qui facilite le processus de chargement dans d'autres systèmes. La procédure est bien entendu également possible dans le sens inverse : on peut de la même manière lire des données dans la base de données directement à partir de fichiers CSV (générés par exemple par Excel). En restant dans l'univers MySQL, grâce à cette forme de stockage orientée vers les fichiers, on peut sans difficulté copier des tableaux d'un système de bases de données à un autre. Pour ceux qui souhaitent pouvoir utiliser des fonctions avancées telles que les fonctionnalités nécessaires à la Business Intelligence, les produits du projet Open Source Pentaho sont disponibles. En ce qui concerne le stockage de structures de données complexes, MySQL n'est pas aussi performant que d'autres systèmes de gestion de bases de données relationnelles. En revanche, MySQL permet de spécifier le schéma de codage d'une chaîne de caractères et le mode de comparaison de pratiquement tous les degrés de granularité au niveau du serveur, de la base de données, du tableau ou de l'attribut. Une fonction qui s'avère extrêmement utile lors de l'utilisation d'applications multilangages. Outre le stockage des types de données scalaires conventionnels, MySQL prend également en charge le stockage de grands objets binaires (LOB ou large binary objects), recherche en texte intégral et types de données spatiales pour les systèmes d'informations géographiques. Dans le domaine de la haute disponibilité, plusieurs options sont possibles. La réplication permet le pointage de systèmes auxiliaires au moyen de la transmission de commandes SQL, concept ne nécessitant qu'un trafic minimum entre les bases de données. MySQL Cluster au contraire est une véritable solution active/active, dans laquelle plusieurs nœuds disposent de données dupliquées pour les clients. À l'inverse de l'approche du disque partagé, MySQL Cluster est une application où rien n'est partagé (Shared Nothing Architecture) et qui assure la haute disponibilité des données et des services selon la méthode choisie par MySQL. De plus, le cluster peut être employé pour répondre aux exigences en termes d'évolutivité. L'approche d'évolutivité de MySQL se base donc sur le principe de déploiement horizontal « Scale Out » (beaucoup de petits serveurs au lieu d'ordinateurs SMP volumineux). Dans la version actuelle (version 5.0) demeure cependant le problème du besoin d'une nouvelle répartition des données existantes lors de l'ajout de nouveaux nœuds. Afin que chacun des nœuds dispose de suffisamment de mémoire principale, également en cas de grandes quantités de données, les systèmes de 64 bits sont impératifs. En tant que produit Open Source, il n'existe pour MySQL aucune version gratuite aux fonctionnalités limitées. La palette de fonctions complète est gratuite. En ce qui concerne l'assistance, MySQL, comme tous les projets Open Source, offre un service d'assistance gratuit par l'intermédiaire de forums de discussion sur Internet. Il est cependant également possible de conclure des contrats d'assistance professionnels payants et d'obtenir un niveau d'assistance d'excellente qualité, une expérience positive, que les fabricants de SGDB relationnels traditionnels ne peuvent pas toujours offrir. Architecture ouverte pour l'exportation et l'importation de données

Prise en charge complète multi-langages, de traitement de données géographiques et de recherche de texte Technologie de clusters, amélioration de la disponibilité des données et des services et réponse aux exigences en termes d'évolutivité

Oracle Database
Dans la version actuelle, 10g Release 2, Oracle peut se baser sur une longue tradition de l'intégration des données et renforce de façon conséquente sa vision du calcul en réseau, ou « Grid Computing ». Les données peuvent être intégrées physiquement, que ce soit en copiant les fichiers de base de données au niveau du système d'exploitation et les éléments qui s'y rattachent dans le système de bases de données cible, que ce soit par le chargement en parallèle à partir d'un format de stockage spécial grâce à la technologie Data Pump (également possible entre bases de données) ou que ce soit par le chargement (pouvant également être effectué en parallèle) à partir de fichiers textes indépendamment de l'éditeur de logiciels, lesquels peuvent être traités comme des tables depuis la base de données (ce qu'on appelle les tables externes). L'approche partagée est prise en charge par accès SQL via des liens de bases de données, également sur les systèmes de bases de données d'autres éditeurs grâce à des passerelles spéciales. Le compromis entre les deux approches (c'est-à-dire la réplication des données) existe depuis longtemps et est éprouvé. Il est cependant actuellement en phase d'amélioration et sera bientôt remplacé par le concept Streams. Le système hybride de stockage des données est depuis des années une fonction standard chez Oracle. D'une part, cette procédure est prise en charge par des moteurs spéciaux et extensions de langages d'interrogation. D'autre part, de nouveaux besoins tels que le dépôt de documents XML sont implémentés à l'aide des développements de relations d'objets. Ainsi, ce n'est pas uniquement la fonction en soi qui est proposée, mais également son exploitation performante. Dans le cadre de ces développements, Oracle reste autant que possible conforme aux normes internationales, afin de pouvoir abandonner les solutions insulaires. Oracle a su développer son produit phare de haute disponibilité, Real Application Clusters, qui est passé du statut de simple produit HA à celui d'outil d'évolutivité. Par ailleurs, on a pris conscience qu'un service à haute disponibilité nécessite également des données à haute disponibilité. Ainsi, la prise en charge de bases de données de secours (standby) avec l'option Data Guard intégrée à été perfectionnée, à tel point que pratiquement toutes les situations désastreuses imaginables peuvent être rattrapées. Les systèmes multiprocesseurs composés de douzaines de processeurs ne constituent plus un obstacle pour Oracle et ses requêtes exécutables en parallèle. Avec le matériel correspondant et une application correctement développée, une base de données Oracle atteint sans problème l'échelle des téraoctets. Oracle n'est pas le premier éditeur de logiciels à avoir introduit sur le marché une version Express gratuite, mais n'est pas non plus le dernier. Dans le cadre de l'assistance, on s'efforce d'améliorer la qualité et de la maintenir à un haut niveau. En ce qui concerne la version gratuite Express, on tente également d'orienter les utilisateurs vers la communauté Open Source et de développer l'assistance sur Internet par forums de discussions.

Intégration des données avec les « Transportable Tablespaces », la technologie Data Pump et la réplication des données via la solution Streams Prise en charge de moteurs de stockage et de langages d'interrogation pour fichiers XML, fichiers texte, données géographiques, fichiers vidéo, image et son, et boîte à outils d'implémentation de moteurs de stockage spécifiques aux clients Haute disponibilité des données et des services intégrée ou en option ; évolutivité dans le domaine des éléments de plus d'un téraoctet

Conclusion
L'article a mis en évidence les défis auxquels les systèmes de gestion de bases de données relationnelles doivent faire face et les solutions que les éditeurs de logiciels proposent pour relever ces défis. On peut aujourd'hui affirmer sans hésitation que la complexité des SGDB relationnels (bien que ceux-ci ne se trouvent plus au centre du développement) évolue plus rapidement que la mise à disposition de techniques de simplification. Nous sommes tous impatients de savoir ce qu'il en adviendra ! Si vous souhaitez recevoir de plus amples informations sur les bases de données et applications analogues, consultez le site : http://www.trivadis.com

Auteurs
Christian Antognini est consultant senior et partenaire chez Trivadis SA à Zurich. Ses domaines de spécialisation sont le tuning, l'intégration des données et les architectures d'applications.

Dr. Martin Wunderli est consultant principal et partenaire chez Trivadis SA à Zurich. Ses domaines de spécialisation sont la haute disponibilité d'Oracle et la sauvegarde/récupération.

Yann Neuhaus est consultant senior chez Tri vadis SA à Bâle. Ses domaines de spécialisation sont la haute disponibilité des systèmes Oracle et MySQL.

Meinrad Weiss est consultant principal et partenaire chez Trivadis SA à Zurich et directeur régional MSDN pour la Suisse. Ses domaines de spécialisation sont les projets SQL Server Business Intelligence et les architectures d'applications .NET. Urs Meier est consultant principal et partenaire chez Trivadis SA à Zurich. Ses domaines de spécialisation sont les conceptions d'applications pouvant être adaptées à diverses technologies et plates-formes.

Stefan Buess est consultant chez Tri vadis SA à Zurich. Ses domaines de spécialisation se concentrent sur les architectures multiniveaux basées sur DB2 et Websphere dans un environnement décentralisé.

Sign up to vote on this title
UsefulNot useful