Guideline: Designing Data Migration Subsystems
This guideline outlines how to design Data Migration software.
Relationships
Main Description

Introduction

If there is existing data to be migrated, it may be necessary to design software to do the conversion/migration. The data to be migrated is identified by Task: Specify Data Migration in the Work Product: Data Migration Specification.

The software to do the data migration is commonly identified as one or more subsystems, often with dependencies on subsystems that define the source data and the target databases.

The design of data migration subsystems is similar to that described in Task: Subsystem Design. Additional considerations specific to data migration include:

Migration Suites

The need to cope with differing hardware and software environments is an important consideration when designing data migration software, particularly automated migrations where the data to be migrated exists in one environment (or possibly several) and needs to be migrated/converted into a completely different environment.

Different hardware, operating systems, and data management software can all create challenges, and relatively simple conversion processes may have to be implemented as suites of four or five (or more) programs to cope with changes in the environment. In this case, the sequence of the execution of the migration processes is very important since there may be multiple files to be converted into one or more files, and there may be interdependencies where one program in the conversion requires data from a previous one.

Reuse of Components

A further consideration is the use or reuse of components from the standard system as part of the conversion system. System utility programs or programs from the existing production system should be utilized whenever possible to help minimize development time for conversion modules. It is also sometimes possible to provide conversion facilities by adding features to standard system components. When conversion involves manual input of converted data into the new system, this input should, if possible, be performed using the standard facilities of the new system. The objective is to avoid duplication of work and possible inconsistencies caused by an alternative method of data entry.

Performance

Migration may involve large volumes of data with consequent implications for performance. Even if data migration is performed infrequently, poor performance may be a concern. For example, poor performance could slow down testing and validation of the converted data, especially if there are failures part way through the conversion process, requiring correction and re-execution.

Operational Procedures

It is important to specify the operational procedures to be followed during the migration process, including both manual data maintenance steps and steps for executing migration software. Even if the migration procedures have a limited life span, it is important that they are documented in sufficient detail to be performed. A good procedure identifies the sequence of steps, who performs each step, how to validate the results, and what follow-up tasks are required.