Database
 sql >> Base de données >  >> RDS >> Database

Conception de base de données

Je pratique les techniques de bases de données agiles depuis une vingtaine d'années maintenant. Mon utilisation de ces techniques n'a pas commencé comme un plan établi; il a plutôt évolué au fil du temps au fur et à mesure que je consultais sur divers projets. Il était logique de rechercher des moyens de travailler plus rapidement et avec une plus grande interaction avec les clients.

Je peux penser à au moins trois types de techniques de bases de données agiles :

  • Modélisation des données
  • Développement d'un entrepôt de données
  • Rétro-ingénierie de base de données

Modélisation agile des données

Beaucoup pensent que la modélisation des données est une tâche laborieuse. Mais cela ne doit pas être le cas. Vous pouvez sortir la modélisation des données de l'arrière-boutique et la faire devant un client. Vous pourriez penser que les clients seraient rebutés par le gore technique, mais ils ne le sont pas. Le personnel d'entreprise a une passion pour son travail et une vision de l'endroit où il veut aller. Ils sont ravis d'avoir l'informatique comme facilitateur plutôt que comme obstacle.

Pour la modélisation agile des données, un développeur doit effectuer les opérations suivantes :

  • Maîtriser les concepts de modélisation de données et un outil de modélisation de données
  • Procurez-vous une foule amicale pour vos premières fois. Vous devez essayer vos techniques auprès d'un public attentif jusqu'à ce que vous gagniez en confiance.
  • Avoir au moins un champion de l'entreprise dans l'audience :quelqu'un qui recevra le résultat de votre travail, quelqu'un qui comprend profondément l'entreprise et aidera les autres à parvenir à un consensus.
  • Avoir un projet solide avec un objectif clair et une justification commerciale

Grâce à la modélisation agile des données, les développeurs travaillent rapidement et fournissent des révisions de modèle fréquentes. Je préfère que les séances de modélisation de données ne durent pas plus de deux heures. Ces sessions sont intenses, tout le monde se débattant autour d'idées. Après deux heures, les participants auront besoin de repos. Vous aurez également besoin de temps pour nettoyer le modèle et rattraper la documentation.

Les techniques agiles s'appliquent à toutes les facettes de la modélisation des données, y compris les systèmes opérationnels quotidiens, les entrepôts de données, les modèles de données de référence et les modèles de données d'entreprise.

Techniques de développement d'entrepôts de données agiles

Les techniques agiles sont également importantes lorsque vous construisez un entrepôt de données. Plus précisément, il y a deux domaines dans lesquels nous avons appliqué ces techniques au développement d'entrepôts.

Le premier est la mise en scène des données . C'est une bonne pratique d'utiliser des tables intermédiaires intermédiaires pour protéger l'entrepôt proprement dit des sources opérationnelles. Les tables intermédiaires dupliquent les données opérationnelles et ajoutent des métadonnées telles que le système source, la date de traitement, l'horodatage effectif et l'horodatage d'expiration. Actuellement, la plupart des développeurs traitent les données intermédiaires avec un code ETL personnalisé. (ETL est l'acronyme de Extract, Transform et Load.) Il existe au moins un outil (A2B Data) qui automatise la création et le remplissage des schémas de table intermédiaire.

Nous utilisons également des techniques agiles pour améliorer le traitement des données d'entrepôt . Pour cela, nous privilégions un mélange d'ETL et de SQL. ETL est utilisé pour les tables principales avec une logique complexe, tandis que SQL est utilisé pour les tables périphériques - et il y en a beaucoup dans un entrepôt typique. Il est environ 10 fois plus rapide d'écrire du SQL que de l'ETL. Le code SQL est également plus facile à faire évoluer et à tester. Raisonnablement, vous pouvez vous attendre à remplacer ETL par SQL pour environ la moitié des tables; le montant exact dépend de la complexité de l'entrepôt et de vos compétences en SQL.

Ces améliorations réduisent la quantité de code ETL à écrire tout en le déployant là où il est le plus précieux :pour les grands ensembles de données avec plusieurs sources à intégrer et à traiter.

Agilité dans l'ingénierie inverse des bases de données

Nous utilisons également des techniques agiles lors de la rétro-ingénierie. L'ingénierie inverse prend une conception existante et fonctionne à rebours pour déduire l'intention logique sous-jacente. La rétro-ingénierie de base de données peut avoir diverses motivations. Vous passez peut-être d'une plate-forme de base de données à une autre. Ou vous essayez peut-être de mieux comprendre le modèle à des fins de maintenance. Ou vous essayez peut-être de récupérer des exigences implicites dans un schéma pour qu'elles soient prises en compte par un nouveau logiciel.

Nous commençons généralement par analyser le schéma existant. Un schéma est souvent disponible et c'est quelque chose que nous pouvons étudier rapidement. Nous pouvons compléter cela avec d'autres ressources, telles que la documentation, les données et les conversations des développeurs.

Un outil de modélisation des données est une ressource importante pour l'étude du schéma. La plupart des outils peuvent importer le schéma SQL afin que vous puissiez voir les tables et comment elles se connectent. Souvent, cela suffit pour une analyse de rétro-ingénierie.

Techniques de bases de données agiles :les plats à emporter

Le développement agile est un sujet populaire qui a plusieurs implications pour les bases de données. Une approche agile est utile pour la modélisation des données, le développement d'un entrepôt de données et la rétro-ingénierie des bases de données.

Michael Blaha est un consultant et formateur spécialisé dans la conception, l'architecture, la modélisation, la conception et l'optimisation de bases de données. Il a travaillé avec des dizaines d'organisations à travers le monde. Le Dr Blaha est l'auteur de sept brevets américains, de sept livres, de nombreux articles et de deux cours vidéo. Sa publication la plus récente est Agile Data Warehouse Design cours vidéo de O'Reilly. Il a obtenu son doctorat de l'Université de Washington à St. Louis et est un ancien élève de GE Global Research à Schenectady, New York. Vous pouvez trouver plus d'informations sur son profil LinkedIn ou sur superdataguy.com.