the data access layer creates a new entity in alternative table 17 as illustrated in fig1 as step 1204 the entity is constructed of a data string which includes predetermined data portions for a uniquely generated data key i e an alternative id step 1206 if the inserted alternative is a base root alternative step 1208 then a u201c parent id u201d will be set to nil as illustrated in step 1210 otherwise the parent id will be set to the alternative id of the selected parent 1212 an indirection link to a data source is then inserted into the data step 1214 an entity in the alternative record table is thus created for each element in the system these entities will point to the newly created alternative using its alternative id and to each element in the system using an appropriate element id alternative deletion is an inverse process to its creation i e insertion the user selects an alternative to be deleted the data access layer will first verify that the alternative can be deleted specifically an alternative may be deleted if is not referenced by any scenario and it does not share data with another inherited alternatives an alternative that shares its data with other alternatives or is referenced by scenarios cannot be deleted until all children alternatives and scenario references are first deleted if the alternative to be.