The main purpose of building a process repository is to maximize code reuse especially as a data centric product line. All the products come from this line will have reasonable percentage of similarity in between, before deciding the structure of our repository. We start defining a model for a data application, this model includes all identities that should exist into any custom application. Any database application will have a main menu which contains all the necessary choices which represents the elementary jobs of the application, any of these choices will be chosen by the application user to raise his need to start this job, in most cases the application will respond to the user with a dialogue through which the user will define typically what he would like to do, and then the application will start executing the required job for the user. In a sentence any database application will be consisted of a menu with choices and number of dialogues each elementary job of an application will map to certain activity in the user business, as the function of the application is to let user automate their business. We can categorize the elementary jobs inside any data baseapplication into three main categories:
 
 
Basic Data

A business basic data is the collection of objects that have a relation between each other to establish business. For instance if we are talking about objects like Store - Product – Supplier & Customer, these collections of objects create a trading business. We call this object a basic data object because usually it will be defined to the application one time, also when you define a customer to the application you define it one time. The same thing for Supplier &Product.
Transaction Data      
Any business has daily actions which express the business activity. This action is another collection of objects that represent the business daily activities. Example of these objects is invoices, payments, etc.
Reports Data  
Usually any business needs to analyze its data to know its current situation and sometimes needs to review the history of actions that is yield to the current situation. The report object is a collection of objects that define current status or review for a business solution, for example the current due payments or the current outstanding.
       
 
 
The previous tree diagram shows how a data base application for a small trading business will be constituted from a menu containing choices, each of them will activate a dialogue that will help the user to do a job through the application. Any of these dialogues will have similar fields of data entry that the user will fill, and same commands through which the user will fire actions. Finally we ended up with four identities that constitute any data base application.
Menu
A number of choices represent the application elementary jobs.
Object
Define a piece of data inside the application this piece express the full details & actions of an elementary job.
Field
Define the smallest part of the application data and represent a part of an object.
Action
A Defined activity that can be fired against object. According to the previous explanation of a data base application nature, we build our repository to store these four types ofidentities to be available for reuse in any new application. This new application will use some of these identities and also will add another new ones which will be available for future applications.