Modélisation d'une base de données avec SQL Power Architect#
Date de publication initiale : 15 juillet 2010
Dans le cadre de mon activité professionnelle, j'avais besoin de modéliser une base de données et d'importer des données d'une base access (base gaspar) vers une base PostgreSQL. Plutôt que de faire tout cela à la main, j'ai cherché à optimiser et surtout automatiser au maximum les différentes opérations. Je me suis donc penché sur les différentes solutions existantes et je vous livre mes impressions. Il existe très certainement des équivalents propriétaires aux différentes applications que nous allons présenter ci-dessous, mais nous avons fait le choix de privilégier au maximum (intégralement) les logiciels OpenSource.
Modélisation de la base#
Durant cette étape, la problématique était double. Tout d'abord, faire de la rétro-ingénierie à partir de la base Gaspar existante et ainsi m'éviter de créer manuellement toutes les tables et les relations. Ensuite, trouver un logiciel qui me permette de modéliser efficacement ma base de données et qui soit également capable de se connecter à un SGBD afin d'intégrer directement mon schéma.
Rétro-ingénierie#
Petit aparté avant d'entrer dans le vif du sujet. Comme je l'ai précisé en introduction, mon format de données en entrée était au format DBF (access). Impossible donc pour moi de le lire directement. Il me fallait donc trouver une solution afin de m'éviter le fastidieux travail de recopie de la base Access. Mon objectif était de trouver un applicatif me permettant d'extraire automatiquement le schéma de ma base Access et qui en plus fonctionne sur Linux. Mission impossible me direz-vous ? En fait non, il existe une suite d'utilitaires1 regroupés sous le nom de MDBTools qui vous permet de manipuler et d'exporter vos données stockées au format Access. Quelques lignes de commandes plus tard, je me retrouve avec un fichier SQL que je peux directement importer dans un SGBD et avoir ainsi toute la structure de la base. Passons maintenant à la modélisation de la base.
Pour les amoureux du python, vous pouvez utiliser ce script qui vous permettra de passer d'une base Access à un fichier SQL intégrable dans votre SGBD. Néanmoins, celui-ci ne gère pas (encore) les index ainsi que les clés primaires.
Modélisation#
Il existe de nombreux logiciels permettant de modéliser une base de données. Néanmoins, très peu sont Open Source et surtout rares sont ceux qui sont réellement complets au niveau fonctionnalités.
Pour cela, quatre logiciels ont été passés au banc d'essai :
- Dia et l'extension tedia2sql
- Druid
- DBDesigner4
- Architect
Afin de compléter cette liste nous indiquons également d'autres logiciels que nous avons trouvé mais que nous n'avons pas essayé :
Tous ont leurs avantages, mais c'est Architect qui a eu ma préférence. J'avais commencé à travailler avec dia mais si ce logiciel est idéal pour des schémas UML, il faut avouer qu'il y a encore du travail pour la modélisation de bases de données. En plus, il ne permettait pas l'import automatique du schéma généré dans le SGBD de mon choix.
Edité par la compagnie québécoise SQL Power, Architect fait partie de leur gamme de logiciels orientés Buisness Intelligence (BI). Comme nous l'avons déjà souligné, celui-ci permet de modéliser votre base et de générer automatiquement le schéma dans le SGBD de votre choix (MySQL, PostgreSQL, Oracle...). Mais ce n'est pas tout, car vous pouvez aussi créer les métadonnées pour les outils d'extraction, de transformation et de chargement (ETL) ou encore de "designer" votre cube au format Mondrian.
Passons maintenant au design proprement dit. Si vous avez bien suivi ce billet, vous vous rappelez que nous avions préalablement créé un schéma de la base Access. Je n'ai plus alors qu'à créer une connexion vers ce schéma et à glisser/déposer les tables qui m'intéressent pour créer l'organisation que je souhaite. Enfin, reste l'étape de l'import vers le SGBD de mon choix. Une fois ma connexion créée, il me suffit de la sélectionner et mon modèle est alors automatiquement généré vers la base cible. Magique non ?
Comme vous l'avez surement constaté, nous avons été emballés par Architect. Pour toutes les personnes travaillant de près ou de loin dans le milieu des bases de données, ce logiciel fait partie de ceux qu'il est obligatoire de posséder. C'est un vrai plaisir de pouvoir créer graphiquement son schéma sans se soucier des particularités de tel ou tel SGBD.
Auteur·ice#
Arnaud VANDECASTEELE#
Bien qu'issu à l'origine d'un parcours universitaire (doctorat et post-doc), j'ai finalement tenté l'aventure entrepreunariale au travers de Geolab.
Mes principaux centres d'intêrets dans le domaine de la géomatique portent sur les logiciels Open Source et plus particulièrement QGIS.
J'aime également le développement informatique avec une forte préférence à tout ce qui se passe côté serveur (base de données, traitements, etc.). Côté techno, mes choix se portent habituellement sur du (Geo)Django et PostgreSQL/PostGIS.
Pendant mon temps libre, vous me trouverez un GPS à la main afin de contribuer à OpenStreetMap ou sur un tatami en train de pratiquer le Jiu-Jitsu Brésilien.
Si vous êtes intéressé par l'un ou tous ces sujets, n'hésitez pas à me contacter !
-
mdb-export, mdb-schema, mdb-tables ↩
Commentaires
Une version minimale de la syntaxe markdown est acceptée pour la mise en forme des commentaires.
Propulsé par Isso.
Ce contenu est sous licence Creative Commons BY-NC-SA 4.0 International