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

Transcription

Le système de bases de données du futur
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.
BPI
and Workflow
Integration
Services
Analysis
Services
Document
and Portal
Reporting
Services
RDBMS
Dynamical
Applications
FILE
XML
OLAP
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é.

Documents pareils