French

Seconde partie d'une série de quatre articles

Vers la première partie ->

Dans l'article précédent, nous avons décrit brièvement les principes d'une migration d'IMS vers une base relationnelle (SQL). Dans ce nouvel article, nous allons décrire comment l'on peut faire la rétro-ingénierie de la structure de l'ancienne base de données et comment concevoir la nouvelle base de données.

La migration des données est décomposée en trois phases :

  • rétro-ingénierie de la structure de l'ancienne base de données

  • conception de la nouvelle base de données

  • migration des données proprement dite

Nous allons aborder en détail les 2 premières phases ci-dessous :

Rétro-ingénierie

La rétro-ingénierie de l'ancienne base de données est le processus mis en œuvre pour documenter la structure de la base de données de façon la plus précise et la plus complète possible. Cette documentation doit être suffisante pour permettre à un développeur de développer ou de maintenir une application utilisant cette base de données. C'est-à-dire qu'elle doit au moins contenir pour chaque enregistrement la liste de ses champs (avec leur longueur et leur type), les clés d'accès, les identifiants, les clés de tri; ainsi que les liens qui existent entre les différents enregistrements. 

La difficulté, lors de la rétro-ingénierie d'une base de données IMS, est que ces informations sont dispersées à différents endroits. Les DBD (DataBase description) contiennent le nom, la longueur des segments ainsi que les relations « père - fils » entre les segments. Seuls les champs servant de clés d'accès doivent être déclarés (uniquement leur nom et leur longueur). La déclaration des autres champs est facultative. La décomposition plus précise des enregistrements est définie dans les programmes utilisant la base de données. Un même enregistrement peut avoir plusieurs décompositions différentes.

Rever a développé différents outils facilitant la rétro-ingénierie des bases de données IMS :

  • Extracteur de DBD : analyse un ou plusieurs DBD pour modéliser les enregistrements dans le référentiel de DB-MAIN

migration schema 1

  • Extracteur de « copy » COBOL : analyse un copy COBOL pour modéliser la ou les variable(s) déclarée(s) dans le référentiel de DB-MAIN
  • Extracteur de fichier « include » PL1 : analyse un include PL1 pour modéliser la ou les variable(s) déclarée(s) dans le référentiel de DB-MAIN

migration schema 2

  • Intégration de schéma : les DBD et les Copy / Include sont différentes sources d'information qui décrivent la même base de données. Cet outil permet d'intégrer ces différents modèles en un seul (le même segment est définit dans un DBD et dans un copy ou un include)

migration schema 3

L'utilisation de ces différents outils permet de retrouver un modèle complet et précis de la base de données.


 

Conception de la nouvelle base de données

Lors de cette étape, la nouvelle base de données (SQL) va être dérivée à partir du modèle retrouvé à l'étape précédente.

Le modèle de la base de données IMS contient des structures qu'il est impossible de représenter en SQL, elles doivent être transformées en constructions équivalentes. Les liens père-fils doivent être transformés en contraintes référentielles (foreign key). Les champs multi-valués (des tableaux de valeurs) doivent être transformés en une suite de colonnes ou bien sous forme de tables, etc.

DB-MAIN propose un ensemble de transformations permettant de passer du modèle IMS à un modèle relationnel. Il est également possible d'automatiser partiellement cette transformation. Une automatisation complète est impossible, car certains choix faits lors de la transformation vont influencer la lisibilité et les performances de la nouvelle base de données. Par exemple, si la base de données IMS contient un champ multi-valué (un tableau), il existe trois transformations possibles :

  • Création d'une table pour représenter les éléments du tableau : produit une base de données normalisée, lisible, facilement consultable et évolutive (on peut facilement modifier le nombre d'éléments dans le tableau). Par contre les performances seront dégradées, car il faudra faire une jointure entre deux tables pour reconstituer l'enregistrement IMS.
  • Création d'une colonne pour représenter chaque élément du tableau : produit une base de données efficace mais dont la structure est moins claire (surtout si le tableau contient beaucoup d'éléments).
  • Création d'une grande colonne dans laquelle les différents éléments sont concaténés : produit une base de données efficace mais moins facile à consulter (il faut décomposer la colonne pour retrouver les différents éléments).

Comme le montre cet exemple, la conception de la base de données est une phase très importante, car elle va déterminer la performance et la lisibilité de la nouvelle base de données.


 

Dans la troisième partie de cet article, nous aborderons plus en détail la migration des données en elle-mêmes.

 

Lexique des acronymes :

  • IMS = Information Management System
  • SQL = Structured Query Language
  • Cobol = Common Business-Oriented Language
  • PL1 = Programming Language number 1
  • DBD = Database Description
  • SGBD = Système de Gestion de Base de Données

En savoir plus ? DB-Main est un outil de modélisation et d'architecture de données. Historiquement développé au sein du laboratoire d'ingénierie des bases de données de l'UNamurRever continue à l'améliorer pour aider les développeurs et les analystes dans la plupart des processus d'ingénierie des données.

Mots clés: 

Auteur(s): 

Jean Henrard