Outils de stockage de données : objets persistants et non persistants | Mendix

Passer au contenu principal

Stockage de données

Comment définir les données dans Mendix?

In Mendix, vous définissez vos besoins en données à l'aide de modèles de domaine. Chaque module de votre projet d'application peut avoir son propre modèle de domaine, qui se compose d'une ou de plusieurs entités. Ces entités peuvent être persistantes ou non persistantes et contiennent un ou plusieurs objets.

Les objets persistants sont stockés dans une base de données et Mendix crée automatiquement des tables pour stocker vos entités dans la base de données. Pour chaque objet, un enregistrement est inséré dans la table. Les entités non persistantes ne vivent en mémoire que pendant la durée d'une session utilisateur.

Pour chaque entité, vous pouvez définir les attributs et le type de données que les attributs doivent contenir. Vous pouvez également définir des règles de sécurité, qui peut voir quelles données et des règles de validation. Une règle de validation spécifie les valeurs autorisées pour un attribut.

Lorsque vous démarrez ou redéployez votre application, Mendix crée automatiquement des tables de base de données pour stocker vos données. Lorsque vous effectuez un redéploiement, toutes les tables de votre application sont automatiquement modifiées selon les besoins et les données sont migrées vers les nouvelles structures de table.

Quelle est la différence entre les objets persistants et non persistants ?

Les objets persistants sont stockés dans une base de données, ce qui vous permet d'utiliser vos données dans plusieurs sessions et entre plusieurs utilisateurs. Cependant, étant donné que les entités non persistantes ne vivent en mémoire que pendant la durée d'une session utilisateur, ces entités ne peuvent pas être partagées entre les utilisateurs ou entre les sessions utilisateur.

Les entités non persistantes sont principalement utilisées pour les calculs où vous ne souhaitez pas stocker tous les résultats intermédiaires, ou pour stocker temporairement des données extraites de systèmes externes via différents moyens d'intégration.

Comment fonctionne le mappage objet-relationnel dans Mendix?

Mendix Le mappage objet-relationnel (ORM) gère tous les aspects de la gestion de votre base de données, de vos besoins en données modélisées au stockage et à la récupération techniques avec les systèmes de bases de données relationnelles les plus populaires. L'objectif principal de Mendix L'ORM vise à éliminer la nécessité pour les utilisateurs de réfléchir aux aspects techniques de la base de données, comme la manière de créer et de modifier des tables ou d'accéder aux données et de les mettre à jour.

Langage de définition de données

Mendix ORM commence par une phase de langage de définition de données (DDL) lors du déploiement de votre application, qui créera automatiquement les structures de base de données correctes en fonction des besoins en données de votre entreprise au fur et à mesure que vous les modélisez dans vos modèles de domaine.

La structure de base de données créée comprendra des tables, des types de données, des associations, des contraintes pertinentes et même l'héritage.

Il est important de noter que chaque fois que vous apportez des modifications à vos applications, les tables de base de données sous-jacentes seront automatiquement mises à jour en conséquence. Vos données seront également migrées.

En gérant à la fois la création de tables et la migration de données, le Mendix La plateforme vous aide à livrer rapidement des applications. Vous n'avez pas à gérer vous-même le schéma de la base de données. Il est tout aussi important que pour la plupart des migrations (par exemple, le changement de nom d'attribut ou le changement de type), Mendix automatise également la migration des données.

Dans un environnement de cloud privé ou lors d'un déploiement sur site, vous avez la possibilité de gérer vous-même la base de données. Dans ce cas, vous pouvez utiliser le SQL généré par Mendix comme point de départ, puis transmettez-le à votre administrateur de base de données afin qu'il puisse s'assurer que la base de données est créée comme requis.

La phase de migration des données peut également migrer des données d'un Mendix application vers une autre sur différents fournisseurs de bases de données. Cela peut être utile si vous souhaitez migrer d'un environnement local vers un cloud ou d'un cloud vers un autre cloud. Pour plus de détails, voir Comment migrer votre Mendix Base de données dans le Mendix Guide pratique de Studio Pro.

Récupération de données

Mendix propose plusieurs façons de spécifier les données que vous souhaitez récupérer :

  • Mendix Studio Pro propose des moyens visuels pour spécifier vos besoins de requête
  • Pour récupérer des objets spécifiques ou un ensemble d'objets associés, vous pouvez utiliser des expressions XPath
  • Pour les besoins de reporting (où l'agrégation et la jonction de plusieurs entités en un seul ensemble de résultats sont importantes), Mendix propose des requêtes OQL

Sous le capot, toutes les récupérations sont d’abord traduites en XPath, puis en OQL, et enfin en instructions SQL spécifiques à la base de données.

Lors de la récupération des données, Mendix ORM effectue les étapes suivantes pour vous :

  1. Traduit votre requête XPath en une requête OQL.
  2. Inclut des exigences de récupération supplémentaires (par exemple, sur des objets associés qui sont également nécessaires à vos pages).
  3. Applique les règles de sécurité telles que définies sur vos entités.
  4. Mappe vos entités aux tables de bases de données techniques.
  5. Mappe les attributs de votre entité aux colonnes du tableau.
  6. Optimise les instructions OQL requises.
  7. Traduit l'instruction OQL en instructions SQL spécifiques à la base de données.
  8. Récupère les enregistrements de la base de données.

Comme vous pouvez le voir, Mendix ORM applique un certain nombre d'optimisations de performances qui sont loin d'être triviales. En raison du modèle d'application, Mendix La plateforme peut déterminer qu'il est plus efficace d'interroger les enregistrements de base de données associés en une seule fois.

Récupération de données

Mendix propose plusieurs façons de spécifier les données que vous souhaitez récupérer :

  • Dans la plupart des cas, Mendix La plateforme déterminera la requête appropriée en fonction des entités utilisées dans vos pages. Par exemple, le tri, le filtrage et la pagination seront appliqués automatiquement.
  • Mendix Studio Pro propose des moyens visuels pour spécifier vos besoins de requête. Par exemple, lorsque vous utilisez une entité, vous pouvez utiliser un filtre pour spécifier les données que vous souhaitez inclure.
  • Pour récupérer des objets spécifiques ou un ensemble d’objets associés, vous pouvez utiliser des expressions XPath.
  • Les requêtes plus complexes, comme les agrégations et les jointures, sont traitées via des entités de vue. Ces entités peuvent être utilisées de la même manière que les entités classiques dans vos pages, votre logique et vos API, mais vous permettent de définir une requête pour spécifier les données à fournir.
  • Pour les besoins de reporting (où l'agrégation et la jonction de plusieurs entités en un seul ensemble de résultats sont importantes), Mendix propose des requêtes OQL et des entités de vue.

Sous le capot, toutes les récupérations sont d’abord traduites en XPath, puis en OQL, et enfin en instructions SQL spécifiques à la base de données.

Lors de la récupération des données, Mendix ORM effectue les étapes suivantes pour vous :

  1. Traduisez votre requête XPath en une requête OQL.
  2. Incluez des exigences de récupération supplémentaires (par exemple, sur des objets associés qui sont également nécessaires à vos pages).
  3. Appliquez les règles de sécurité telles que définies sur vos entités.
  4. Mappez vos entités aux tables de bases de données techniques.
  5. Mappez les attributs de votre entité aux colonnes du tableau.
  6. Optimisez les instructions OQL requises.
  7. Traduisez l’instruction OQL en instructions SQL spécifiques à la base de données.
  8. Récupérer les enregistrements de la base de données.

Comme vous pouvez le voir, Mendix ORM applique un certain nombre d'optimisations de performances qui sont loin d'être triviales. En raison du modèle d'application, Mendix La plateforme peut déterminer qu'il est plus efficace d'interroger les enregistrements de base de données associés en une seule fois.

Comment puis-je simplifier la récupération de données complexes avec Mendix?

In MendixLa récupération de données via les entités de vue est composable. Cela signifie que vous pouvez créer des requêtes complexes en combinant plusieurs requêtes plus simples. Cela est similaire à la création d'une logique complexe en combinant plusieurs microflux dans un microflux plus grand, ou de pages complexes en combinant plusieurs extraits.

Les entités de vue peuvent récupérer des données d'autres entités de vue de la même manière que les entités persistantes. Par exemple, une entité de vue peut renvoyer toutes les commandes du locataire actuel, tandis qu'une autre peut agréger les objets renvoyés par mois ou par trimestre. Cela permet non seulement de composer des requêtes à partir de blocs de construction, mais aussi de faciliter la réutilisation.

Lors de l'utilisation d'une entité de vue, par exemple comme source d'une grille de données sur une page, le Mendix la plateforme combinera toutes les entités de vue individuelles dans une seule requête de base de données, permettant ainsi à la base de données d'optimiser son exécution en utilisant toutes les statistiques et index dont elle dispose.

Comment puis-je utiliser une procédure stockée avec Mendix?

Utilisation d'une procédure stockée dans Mendix Cela dépend de l'endroit où se trouvent vos données.

Si vous souhaitez utiliser une procédure stockée dans la base de données de votre Mendix application, vous pouvez utiliser le Mendix API Java. Pour plus d'informations, voir Comment utiliser l'API Java dans le Mendix Guide pratique de Studio Pro. Et pour plus de détails sur l'exécution d'instructions SQL sur votre Mendix base de données d'application utilisant JDBC, voir Stockage de données exécuterAvecConnexion.

Si vous utilisez une base de données externe, vous pouvez utiliser le Connecteur de base de données externe.

L'appel de procédures stockées est particulièrement pertinent si vous construisez sur la base d'une base de données existante. Dans ce domaine, il existe de nombreux systèmes de gestion de bases de données relationnelles Oracle (SGBDR). Connecteur de base de données disponible dans le Mendix Marketplace fournit un support pour les fonctionnalités souvent présentes dans les bases de données Oracle héritées, telles que les API de table créées avec des procédures stockées et des packages PL/SQL, des curseurs de référence et des types définis par l'utilisateur.

Comment La Mendix Gérer la gestion des transactions ?

Chaque demande adressée au Mendix L'exécution démarre automatiquement une nouvelle transaction. Une fois la requête terminée avec succès, la transaction est validée avec toutes les données associées. En cas d'erreur, toutes les modifications de données sont annulées par défaut. Vous avez la possibilité de fournir une logique de gestion des erreurs personnalisée pour modifier ce comportement par défaut.

Dans le microflux suivant, un gestionnaire d'erreurs personnalisé est défini. Lorsque le Changer L'activité échoue, toutes les modifications apportées à la base de données sont annulées. Le gestionnaire d'erreurs définit ce que vous voulez faire avec la transaction : vous pouvez annuler tout ce qui s'est passé dans le microflow, ou vous pouvez compenser le problème et continuer. Dans cet exemple, un message de journal est généré, après quoi le microflow se termine par une erreur. Le microflow appelant peut alors décider comment gérer cela.

À quoi servent les bases de données Mendix Soutien?

A Mendix L'application peut par défaut être déployée sur plusieurs serveurs de base de données différents. Tant que vous n'incluez pas de code spécifique à la base de données, vous pouvez changer de fournisseur de base de données à tout moment.

L'espace Mendix La plate-forme prend en charge les serveurs de base de données répertoriés dans le Bases de données l'article de Configuration requise.

Choisissez votre langue