Other Design Issues
There are several additional issues to consider during design:
Historical data. Some applications require past data; for others, the current data suffices. Versions are a related issue. Versions are alternative values for an entity that apply under various conditions, such as during hypothetical calculations or design studies. Few databases support versions and historical data.
Secondary aspects of data. Some applications require attribute value metadata such as units of measure, data accuracy, data source, and date of last update. Secondary data describes application data rather than being the actual data. Conventional databases ignore secondary data; if it is important, you must plan some workaround.
Basic database features. You must elicit requirements for security, multiuser access, and recovery.
Distribution. You must decide whether the data should be available at multiple sites. Replication may be needed to achieve performance and reliability objectives. With replication, there must be synchronization policies for multiple copies of the same data.
Strategy for nulls. You may use the null value supported by the database, or designate a special value to denote null. It is easier to use the null logic from the database, but the standard logic for nulls does not always suffice.