Data design is the first design activity, which results in a less complex, modular, and efficient program structure. The information domain model developed during the analysis phase is transformed into data structures needed for implementing the software. The data objects, attributes, and relationships depicted in entity-relationship diagrams and the information stored in the data dictionary provide a base for data design activity. During the data design process, data types are specified along with the integrity rules required for the data. For specifying and designing efficient data structures, some principles should be followed. These principles are listed below.
- The data structures needed for implementing the software as well as the operations that can be applied to them should be identified.
- A data dictionary should be developed to depict how different data objects interact with each other and what constraints are to be imposed on the elements of data structure.
- Stepwise refinement should be used in the data design process and detailed design decisions should be made later in the process.
- Only those modules that need to access data stored in a data structure directly should be aware of the representation of the data structure.
- A library containing the set of useful data structures along with the operations that can be performed on them should be maintained.
- The language used for developing the system should support abstract data types.