Dans un monde où la gestion des données devient cruciale pour les entreprises, l’innovation technologique repousse constamment les limites. Parmi les avancées prometteuses, la Blockchain et le Data Vault 2.0 se distinguent. Elles redéfinissent les paradigmes traditionnels de l’entreposage et de la sécurité des données.
La Blockchain, avec sa structure décentralisée et immuable, offre une transparence et une sécurité sans précédent. De son côté, le Data Vault 2.0 propose une méthodologie robuste pour la modélisation des données. Cela permet une flexibilité et une évolutivité accrues. Cependant, l’intégration de ces deux technologies, bien que potentiellement révolutionnaire, présente des défis uniques.
Cette série d’articles explore en profondeur les synergies possibles entre la Blockchain et le Data Vault 2.0. Elle met en lumière les complexités inhérentes à leur implémentation conjointe. La série est structurée en plusieurs parties. Elle aborde successivement les problématiques techniques, les considérations de sécurité et de performance. Elle explore également les opportunités d’innovation offertes par cette convergence technologique. Chaque partie se concentre sur un aspect spécifique de cette intégration. Cela permet une compréhension exhaustive et nuancée des enjeux et des solutions potentielles.
Préparez vous à plonger dans un univers où la gestion des données rencontre l’avant-garde technologique. Cela ouvre la voie à de nouvelles possibilités pour l’avenir de l’information.
Nous utilisons des blockchains privées et permissionnées dans cette série d’article .
Mettre en place un entrepôt de données pour une entreprise sur une Blockchain publique n’a pas de sens. Il est important de le préciser pour éviter toute confusion.
Introduction Data Vault 2.0
La méthodologie Data Vault 2.0 est une approche moderne de modélisation de données. Elle vise à répondre aux défis des environnements de données complexes. Cette méthode est adaptée aux contextes en constante évolution.
Introduction Blockchain privée et permissionnée
La technologie Blockchain privée et permissionnée est une variante de la blockchain. Elle est conçue pour des environnements où la confidentialité est primordiale. Le contrôle d’accès et l’efficacité sont également des priorités dans ces contextes.
Voici un résumé des avantages et objectifs de cette technologie :
Objectifs et avantages des Blockchains Privées et Permissionnées :
- Confidentialité : Garantir que seules les parties autorisées accèdent aux données et aux transactions. C’est crucial pour les entreprises manipulant des informations sensibles.
- Contrôle d’Accès : Permettre aux organisations de définir et de gérer les participants au réseau. Déterminer quelles actions chaque participant est autorisé à effectuer.
- Efficacité : Optimiser les performances du réseau plus rapides et moins coûteux que ceux des blockchains publiques.
- Conformité Réglementaire : Faciliter le respect des réglementations en matière de protection des données et de sécurité. Mettre en place des contrôles d’accès stricts et assurer une traçabilité complète.
- Collaboration Inter-entreprises : Encourager la collaboration entre plusieurs organisations. Offrir une plateforme sécurisée et transparente pour le partage de données et la gestion des transactions.
En résumé, la blockchain privée et permissionnée offre non seulement une solution sécurisée, mais aussi efficace et personnalisable.
Elle est idéale pour les entreprises. Celles-ci peuvent tirer parti de la technologie blockchain tout en gardant le contrôle sur l’accès aux données. De plus, elles assurent la confidentialité des informations.
Contrat intelligent
Les contrats intelligents sont des accords auto exécutables avec des termes codés directement. Ils opèrent sur des plateformes décentralisées telles que Quorum ou Ethereum, utilisant principalement le langage Solidity pour leur développement.
Principaux éléments des contrats intelligents :
- Variables d’état : Données enregistrées sur la blockchain.
- Fonctions : Logique pour modifier l’état.
- Événements : Journaux pour suivre les actions hors chaîne.
Implémentation du modèle Data Vault en Blockchain
Découvrons comment créer les entités d’une modélisation Data Vault 2.0 dans un contrat intelligent développé en Solidity. Pour illustrer nos explications, nous nous appuyons sur l’exemple de la base de données « demodb-bookings » : https://postgrespro.com/docs/postgrespro/12/demodb-bookings

Nous utilisons le modèle de l’article suivant : « Practical Introduction to Data Vault Modeling ».
Le dépôt associé est disponible ici : https://github.com/nshcode/data-vault-modeling/tree/main.

En prenant le modèle entité relation pour la gestion des sièges dans les avions :


Comment créer les entités DataVault (Hub, Sat et Link) dans un contrat intelligent :
Les Hubs Aircraft et Seat :
struct h_aircraft {
bytes32 hk_aircraft;
string aircraft_code;
uint256 load_date_ts;
string record_source;
}
struct h_seat{
bytes32 hk_seat;
string aircraft_code;
string seat_no;
uint256 load_date_ts;
string record_source;
}
Le link entre les entités :
struct l_aircraft_seat{
bytes32 lhk_aircraft_seat;
bytes32 hk_aircraft;
bytes32 hk_seat;
uint256 load_date_ts;
string record_source;
}
Les satellites : où se trouvent les données descriptives :
struct s_seat{
bytes32 hk_seat;
uint256 load_date_ts;
string fare_conditions;
string record_source;
}
struct s_aircraft{
bytes32 hk_aircraft;
uint256 load_date_ts;
string model;
uint range;
string record_source;
}
Nous disposons maintenant des structures de données nécessaires. Pour stocker ces entités, il est nécessaire de créer des collections :
mapping (bytes32 => h_aircraft) map_h_aircrafts;
bytes32[] _h_aircrafts;
mapping (bytes32 => h_seat) map_h_seats;
bytes32[] _h_seats;
mapping (bytes32 => l_aircraft_seat) map_l_aircraft_seats;
bytes32[] _l_aircraft_seat;
mapping (bytes32 => s_aircraft) map_s_aircrafts;
bytes32[] _s_aircrafts;
mapping (bytes32 => s_seat) map_s_seats;
bytes32[] _s_seats;
Ici, il est important de d’expliquer les collections :
Premièrement, nous définissons une collection de type mapping.
mapping (bytes32 => h_aircraft) map_h_aircrafts;
Un mapping en Solidity est une structure de données qui fonctionne comme une table de correspondance.
Les mappings offrent un accès rapide aux données via des clés uniques, mais ne permettent pas d’itérer sur les clés ou de connaître leur nombre. Les arrays, en revanche, permettent de stocker des collections ordonnées et d’itérer facilement, mais peuvent être coûteux pour les opérations d’ajout ou de suppression.
Associer un array pour les clés avec un mapping est important car cela permet de bénéficier de l’accès rapide du mapping tout en conservant la possibilité d’itérer sur les clés grâce à l’array, optimisant ainsi la gestion des données.
bytes32[] _h_aircrafts;
Dans notre prochain article, nous verrons comment alimenter la blockchain grâce aux fonctions.
