ArangoDB : Réussir avec une base de données multivaluée

La manipulation de structures de base de données diverses introduit souvent une complexité significative dans l’architecture du système, surtout lorsque plusieurs instances de base de données sont requises. Cette fragmentation peut compliquer les opérations, augmenter les coûts et réduire l’efficacité. Les bases de données multimodèles telles que ArangoDB fournissent une solution unifiée pour relever ces défis. Elles simplifient l’architecture et rationalisent la gestion des données en prenant en charge plusieurs modèles de données – clé-valeur, document et graphe – au sein d’une seule instance de base de données.

Contrairement aux bases de données relationnelles, les bases de données NoSQL ne respectent pas de norme universelle comme le SQL. Au lieu de cela, elles sont catégorisées en fonction de leur structure de stockage. Parmi les types populaires, on trouve :

  • Clé-valeur : Ressemblant à une Map en Java ou à un dictionnaire Python, cette structure récupère des valeurs entières en tant que BLOB à l’aide d’une clé.
  • Colonnes larges : Similaire à la clé-valeur mais divise les valeurs en colonnes, offrant une récupération de données plus granulaire.
  • Document : Structuré comme JSON ou XML, ce type offre une plus grande souplesse de requête.
  • Graphe : Permet la modélisation et l’interrogation de relations complexes en représentant des entités et leurs connexions.

Une base de données multimodèle combine ces capacités dans un seul système. Par exemple, ArangoDB prend en charge les modèles clé-valeur, document et graphe, éliminant le besoin de bases de données séparées.

Cet article démontre comment utiliser ArangoDB pour explorer les modèles clé-valeur et document dans les applications Java en utilisant Jakarta NoSQL.

Configuration d’ArangoDB

Pour commencer avec ArangoDB, Docker fournit un moyen simple de gérer les services tiers. En exécutant la commande suivante, vous pouvez configurer une instance ArangoDB facilement :

Shell

 

Exploration des données clé-valeur

Les bases de données clé-valeur sont idéales pour des modèles de données simples. Créons une application d’exemple pour gérer des données d’aéroport en utilisant les capacités clé-valeur d’ArangoDB. L’entité Airport inclura deux champs : code (ID) et name.

Java

 

Avec l’entité définie, vous pouvez utiliser KeyValueTemplate pour interagir avec la base de données. Dans ce tutoriel, nous explorerons davantage la capacité Jakarta NoSQL au-delà des annotations en utilisant Eclipse JNoSQL ; vous pouvez créer le référentiel une fois qu’Eclipse JNoSQL implémente et prend en charge Jakarta Data.

Java

 

Ce programme génère un enregistrement aléatoire d’aéroport, l’insère dans la base de données et le récupère. Si vous exécutez localement, vous pouvez vérifier les valeurs dans la base de données en utilisant votre navigateur avec l’URL :

http://localhost:8529/_db/airport/_admin/aardvark/index.html#collections

Travailler avec les données de document

Jakarta NoSQL propose des fonctionnalités riches pour travailler avec des bases de données de documents, y compris le support de l’héritage et de la modélisation des données hiérarchiques. Alors que les bases de données NoSQL ne prennent généralement pas en charge ces fonctionnalités de manière inhérente, Jakarta NoSQL comble ce fossé avec son API. Utilisons Jakarta NoSQL avec ArangoDB pour gérer les données des fournisseurs de cloud, y compris deux spécialisations : Amazon Web Services (AWS) et Azure.

Jakarta NoSQL utilise les annotations @DiscriminatorColumn, @DiscriminatorValue et @Inheritance pour gérer l’héritage dans les bases de données de documents. 

  • L’annotation @DiscriminatorColumn spécifie le champ utilisé pour identifier un type d’entité dans le document de la base de données. 
  • L’annotation @DiscriminatorValue définit la valeur spécifique pour chaque sous-classe, garantissant qu’elles sont correctement identifiées.
  • L’annotation @Inheritance indique que la hiérarchie de classes sera mappée dans la base de données.

Tout d’abord, définissons la classe de base pour les fournisseurs de cloud :

Java

 

Ensuite, nous introduisons les classes spécialisées de fournisseurs de cloud. Ces exemples montrent comment Jakarta NoSQL utilise les annotations @DiscriminatorValue pour distinguer entre différents types de documents. Chaque spécialisation — AWS et Azure — hérite de la classe de base CloudProvider, tout en définissant des attributs uniques à chaque fournisseur. De plus, des méthodes de fabrique (of) sont fournies pour générer des données d’exemple à des fins de démonstration.

AWSCloudProvider

Java

 

FournisseurCloudAzure

Java

 

Enfin, voyons comment utiliser le DocumentTemplate pour interagir avec la base de données. Ce code démontre la création d’instances de fournisseurs AWS et Azure, leur insertion dans la base de données et leur récupération. L’implémentation s’appuie sur l’API Jakarta NoSQL pour gérer la persistance des données, garantissant que l’héritage et la logique de discriminateur sont appliqués de manière transparente lors du stockage et de la récupération.

Java

 

Conclusion

Les capacités multimodèles d’ArangoDB en font un choix polyvalent pour les applications modernes. La combinaison de modèles clé-valeur et de documents dans une seule base de données simplifie votre architecture de données tout en conservant la flexibilité. Avec Jakarta NoSQL, l’intégration d’ArangoDB dans les applications Java devient fluide, tirant parti d’annotations et de paradigmes de programmation familiers.

Pour le code complet, visitez le Dépôt GitHub.

Source:
https://dzone.com/articles/arangodb-success-through-multivalue-database