L’abstraction des données permet aux développeurs et aux administrateurs d’afficher uniquement les données nécessaires aux utilisateurs frontaux, car ils n’ont pas besoin d’avoir accès à un silos de données entier. L’abstraction est utilisée dans plusieurs domaines du développement logiciel, et la couche de données d’une application sépare la base de données de l’interface utilisateur. L’objectif est de tirer parti d’une meilleure évolutivité et de moins de remaniement lors des changements d’infrastructure.
Qu’est-ce qu’un SGBD ?
Un système de gestion de base de données (DBMS) est un outil utilisé comme interface entre un utilisateur et les données brutes stockées. À l’aide d’un SGBD, les administrateurs peuvent afficher les données stockées dans une base de données, mettre à jour ou insérer de nouvelles données et exécuter des requêtes pour récupérer les données. Les administrateurs peuvent également gérer des éléments de base de données tels que des procédures stockées, des déclencheurs, des tables, des index et d’autres objets. Un SGBD est souvent utilisé pour créer la base de données et la gérer ultérieurement.
MySQL est un exemple de SGBD. MySQL est une base de données relationnelle, de sorte que les administrateurs utilisent le SGBD pour afficher les objets de la base de données, créer des tables ou interroger des données. Une application utilise le SGBD pour interroger des données ou ajouter des données à la base de données. Comme MySQL est une base de données relationnelle, les données sont stockées dans des tables avec des contraintes sur chaque colonne pour contrôler le type de données stockées.
MongoDB est un autre exemple de SGBD. MongoDB est une base de données open source NoSQL qui stocke des données non structurées. Les données sont stockées dans des documents, et les administrateurs peuvent stocker n’importe quel nombre et type d’éléments dans le document. Les administrateurs utilisent le SGBD MongoDB pour gérer la structure de la base de données, et les applications l’utilisent pour interroger et ajouter des données.
Qu’est-ce qu’une abstraction de données ?
L’abstraction des données est une fonction logique dans une application pour séparer les données brutes du front-end. En termes simples, la couche de données gère la connexion à la base de données et l’interroge depuis le front-end. L’abstraction des données permet à l’application front-end d’interroger les données, quel que soit l’endroit où elles sont stockées. Les développeurs peuvent ensuite échanger des bases de données back-end sans remanier de grandes sections de leur code pour se connecter et travailler avec un nouveau moteur de base de données.
Par exemple, supposons que vous utilisiez MongoDB en cours de développement jusqu’à ce que vous puissiez déterminer le type de données avec lequel vous devez travailler. Vous souhaitez ensuite utiliser MySQL en production. La couche d’abstraction des données gère la connexion à la base de données et les requêtes depuis MongoDB et MySQL sans affecter la base de code frontale. Les utilisateurs n’ont pas connaissance des modifications apportées aux moteurs de base de données, mais peuvent toujours obtenir les informations dont ils ont besoin.
Niveaux d’abstraction des données
L’abstraction des données est un terme générique qui traite différents aspects de la gestion des données. Lorsque les développeurs créent une application et travaillent avec les administrateurs, il existe trois niveaux d’abstraction : physique, logique et de visualisation. Voici une brève explication de ces niveaux :
- Niveau physique/interne : Ce niveau englobe l’infrastructure qui héberge la base de données, y compris les informations réseau pour le serveur et l’emplacement du serveur. Par exemple, les composants physiques peuvent être une VM cloud avec un processeur de niveau moyen et des ressources de mémoire.
- Niveau logique/conceptuel : La couche logique est le code utilisé pour se connecter à la couche physique. Il contient la logique des connexions, des requêtes et de la gestion des erreurs. Les couches logiques peuvent inclure du code pour se connecter à plusieurs bases de données en fonction des facteurs d’entrée.
- Vue/niveau externe : L’application frontale permet aux utilisateurs de visualiser les données. Ce niveau d’abstraction est le plus éloigné de l’emplacement de stockage des données brutes, mais il formate et présente les données à la visionneuse afin qu’elles puissent être utiles.
Architectures de bases de données multi-niveaux
Les couches d’abstraction peuvent être des couches logiques intégrées à votre application, mais elles peuvent également être situées sur des ressources physiquement différentes. L’abstraction à plusieurs niveaux a pour but de faciliter l’évolution d’une seule couche sans affecter les autres. L’architecture multi-niveaux est également appelée « architecture N-tier », où les administrateurs peuvent choisir d’avoir plusieurs niveaux pour chaque composant de l’application.
Il est courant d’avoir trois niveaux dans une architecture à plusieurs niveaux : présentation, données et application. Voici une brève description de ces niveaux :
- Niveau de données : Ce niveau stocke les données et exécute le moteur de base de données. Il peut être installé sur un serveur bare bones dédié ou sur une machine virtuelle. Les bases de données peuvent également fonctionner en clusters dans un data warehouse avec des pipelines de données complexes, selon le scénario d’utilisation.
- Niveau d’application : Ce niveau gère l’application. Par exemple, si le front-end est une application Web personnalisée, un serveur Web stocke les fichiers d’application et les exécute. Les utilisateurs se connectent à ce serveur pour exécuter l’application.
- Niveau de présentation : Le niveau de présentation se distingue du niveau d’application, même s’il semble similaire. Les niveaux d’application disposent de la base de code et de la logique d’application, tandis que le niveau de présentation correspond à ce que voit l’utilisateur. Dans une application Web, le niveau de présentation est le CSS et le HTML utilisés pour formater et afficher le code d’application à l’utilisateur.
Quels sont les avantages de l’abstraction des données ?
La séparation des couches de données de l’application front-end permet une évolutivité granulaire des ressources. Les modifications apportées à la couche de données n’affecteraient pas non plus le front-end, de sorte que l’abstraction des données limite le remaniement du code lorsqu’un autre moteur de base de données est utilisé ou que le niveau de données change d’emplacement.
Par exemple, supposons que votre organisation décide de déplacer la base de données vers le cloud depuis des sites sur site. Seule la couche de données doit être modifiée et aucune modification du code applicatif frontal n’est nécessaire. Les administrateurs peuvent faire évoluer les ressources pour la couche de données sans avoir à faire évoluer les ressources pour la couche applicative si cela n’est pas nécessaire.
Conclusion
Dans une application d’entreprise, disposer d’une couche d’abstraction des données pour se connecter à votre SGBD vous permet d’évoluer vers le haut ou vers le bas. Vous pouvez également apporter des modifications à l’architecture du niveau de données dans votre architecture, sans modifier le code de votre base de code. Vous pouvez utiliser plusieurs moteurs de base de données ou déplacer votre base de données vers un nouvel emplacement sans trop de frais généraux.
Lorsque vous planifiez votre architecture d’abstraction de données, consultez Pure Storage ® FlashArray™ pour un stockage unifié en mode bloc et fichier. Pour le stockage dans le cloud, consultez le stockage en mode bloc dans le cloud de Pure Storage.