GNU/Linux Magazine Hors-série N°
Numéro
67

MySQL et bases de données

Temporalité
Juillet/Août 2013
Image v3
MySQL et Bases de données
Article mis en avant

Résumé

De nombreuses applications que nous utilisons quotidiennement stockent des informations dans des bases de données. Nous savons donc intuitivement à quoi elles servent... Mais avant d'en utiliser une, il serait bon de savoir exactement ce que signifie les termes « base de données ».

Dans ce numéro...


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.

Magazines précédents

Apache, le guide complet
GNU/Linux-Magazine Hors-série N°66
Apache, le guide complet
Python avancé
GNU/Linux-Magazine Hors-série N°65
Python avancé
Apprenez à programmer en Go !
GNU/Linux-Magazine Hors-série N°63
Apprenez à programmer en Go !
Ne quittez plus vos serveurs des yeux !
GNU/Linux-Magazine Hors-série N°62
Ne quittez plus vos serveurs des yeux !
Créez vos applications Android comme un pro !
GNU/Linux-Magazine Hors-série N°61
Créez vos applications Android comme un pro !

Les derniers articles Premiums

Les derniers articles Premium

Bash des temps modernes

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Les scripts Shell, et Bash spécifiquement, demeurent un standard, de facto, de notre industrie. Ils forment un composant primordial de toute distribution Linux, mais c’est aussi un outil de prédilection pour implémenter de nombreuses tâches d’automatisation, en particulier dans le « Cloud », par eux-mêmes ou conjointement à des solutions telles que Ansible. Pour toutes ces raisons et bien d’autres encore, savoir les concevoir de manière robuste et idempotente est crucial.

Présentation de Kafka Connect

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Un cluster Apache Kafka est déjà, à lui seul, une puissante infrastructure pour faire de l’event streaming… Et si nous pouvions, d’un coup de baguette magique, lui permettre de consommer des informations issues de systèmes de données plus traditionnels, tels que les bases de données ? C’est là qu’intervient Kafka Connect, un autre composant de l’écosystème du projet.

Le combo gagnant de la virtualisation : QEMU et KVM

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

C’est un fait : la virtualisation est partout ! Que ce soit pour la flexibilité des systèmes ou bien leur sécurité, l’adoption de la virtualisation augmente dans toutes les organisations depuis des années. Dans cet article, nous allons nous focaliser sur deux technologies : QEMU et KVM. En combinant les deux, il est possible de créer des environnements de virtualisation très robustes.

Brève introduction pratique à ZFS

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Il est grand temps de passer à un système de fichiers plus robuste et performant : ZFS. Avec ses fonctionnalités avancées, il assure une intégrité des données inégalée et simplifie la gestion des volumes de stockage. Il permet aussi de faire des snapshots, des clones, et de la déduplication, il est donc la solution idéale pour les environnements de stockage critiques. Découvrons ensemble pourquoi ZFS est LE choix incontournable pour l'avenir du stockage de données.

Body