Les articles de GNU/Linux Magazine Hors-Série N°67

Le modèle relationnel est le plus connu et le plus utilisé. Il a été décrit en 1970, en pleine explosion des besoins de stockage d'informations, par Edgar Codd, pour séparer la représentation logique des données de leur organisation physique.
Le modèle relationnel n'est pas le seul modèle existant. Nous avons mentionné précédemment le modèle objet comme faisant partie de la troisième génération de systèmes de gestion de bases de données, mais il en existe bien d'autres. Présentation succincte de quatre modèles « exotiques » : le modèle objet, le modèle déductif, le modèle hiérarchique et le modèle réseau.
À l'époque du Far West et de la ruée vers l'or, les chercheurs d'or se précipitaient sur les filons aurifères. Il y avait ceux qui ne trouvaient rien, étaient ruinés et ceux qui trouvaient quelques petites pépites. C'était la majorité des prospecteurs. Toutefois, pour quelques-uns, c'était le jackpot. Le Data mining, c'est la ruée vers l'or transposée aux données. De nos jours, les entreprises, les administrations, les chercheurs sont inondés de données. À titre d'exemple, si l'on regarde le domaine de la bio-informatique, de 2004 à 2013, donc en moins de dix ans, on est passé de 57 à 4142 génomes bactériens séquencés [1], soit une augmentation de 7266% représentant des To et des To de données. Je ne rentrerai pas ici dans le débat sur l'aspect qualitatif des données (est-ce qu'il vaut mieux avoir peu de données de très bonne qualité, ou beaucoup de données possédant un fort taux d'erreur ?), je m'arrêterai sur un simple fait : il y a trop de données pour pouvoir toutes les analyser manuellement. C'est là que va intervenir le Data mining.
Vous avez certainement dû entendre parler de Merise ou UML, mais ne savez peut-être pas à quoi correspondent ces termes, ni comment les utiliser ? Dans cet article, nous découvrirons les principes fondamentaux de la méthode Merise permettant de réfléchir à la conception d'une base de données.
Devoir utiliser un Oracle coûtant un bras, voire deux, en licences et autant en équipement serveur n'est pas une obligation, même lorsque l'on veut mettre en place de gros systèmes. Il y a en effet plusieurs systèmes de base de données libres plus que performants. Nous allons vous les présenter dans cet article.
Nous avons vu que grâce à des méthodes telles que Merise nous pouvions réfléchir au schéma de notre base de données en suivant trois phases correspondant aux trois modèles : MCD, MLD et MPD. Ce formalisme a été utilisé par des éditeurs de logiciels permettant d'interagir avec les systèmes de gestion de bases de données. Les outils qu'ils nous proposent permettent de créer simplement un schéma de base de données et de l'appliquer pour donner naissance à une base de données. Dans cet article, nous nous concentrerons sur deux outils disponibles pour les deux plus gros systèmes de gestion de bases de données libres : MySQL (ou MariaDB) et PostgreSQL. Pour MySQL (ou MariaDB), il s'agit de MySQL Workbench et pour PostgreSQL, il s'agit de SQL Power Architect. Si vous avez besoin d'installer l'un ou l'autre de ces systèmes de gestion de bases de données, vous pouvez vous reporter à l'article précédent portant sur les SGBD libres. Nous considérerons ici que vous disposez d'une installation fonctionnelle de ces systèmes.
SQL est un langage normalisé, donc indépendant des systèmes de gestion de bases de données. Il permet d'interagir avec les bases sous la forme de requêtes qui seront, à peu de différences près, écrites de la même manière quel que soit le SGBD choisi. Ce langage représente donc le cœur de la communication avec les SGBD et il est important de bien le maîtriser.
Certaines problématiques sont difficilement résolubles avec des bases de données classiques de type relationnelles. Dans ces situations spéciales, il peut être utile de changer de paradigme en ce qui concerne la gestion des données et d'essayer ce que certains pourraient appeler « une solution de la dernière chance », le NoSQL.
Le langage Python, qui dispose de milliers de modules permettant d'étendre ses possibilités, propose bien sûr des modules pour accéder à différents systèmes de gestion de bases de données. Dans cet article, nous allons étudier des modules permettant d'accéder à un SGBD PostgreSQL, MySQL/MariaDB, ou encore SQLite. Vous verrez que, comme d'habitude avec Python, cela ne représente pas une grande difficulté. Pour finir, nous découvrirons un aperçu de ce qu'est un ORM (Object-Relational Mapping) avec le module SQLAlchemy.
En C aussi on peut travailler avec des bases de données, et contrairement à ce que l'on pourrait penser, ce n'est pas si compliqué : chaque système de gestion de base de données propose une API qui facilite la communication entre le programme et la base. Dans cet article, nous reprendrons notre sempiternel exemple consistant à afficher la liste des articles de la table Article stockée dans la base siteMarchand. Nous testerons trois API pour communiquer avec trois SGBD différents : PostgreSQL, MySQL, puis SQLite.
Comme avec tout langage standard, les bases de données peuvent être utilisées depuis un code Java, plus ou moins simplement... En Java, on utilise une API standard pour accéder à tous les SGBD. Il s'agit de JDBC pour Java DataBase Connectivity. L'avantage de cette solution est l'intégration native dans Java SE.