Repository or database?
Most information static and can be described a priori, so the schema is also static and compiled.
Update to the schema is infrequent, and controlled by a group of DB Administrators.
Data stored is atomic and fixed-length (e.g. strings and numbers).
Small number of entity types, with large numbers of instances of each type. Often only simple, fixed relationships between entity types exist.
Initially loaded with large amount of data. Slow, constant rate of data growth.
Single-valued data items, which are updated in place.
Transactions are short, atomic, and can be used as the basis for concurrent data access.
- Software Engineering Database
- Continuous evolution of information — data about the environment itself (tools, methods, etc.), and the products being developed.
- Change to the schema is expected and frequent. Many users will need to change the schema.
- Data stored is atomic, but also structured. Could be graphical data, design documents, programs, and so on. Also, data items may be large and complex, and of variable length.
- Many entity types, with fewer instances of each type. Complex relationships may exist between entity types, and new relationships may be created.
- Less data initially loaded. Rapid growth of database (both of structure and contents), which slows down after completion of design phase.
- Versions of data items are vital. Dependence on versions, and relationships between versions must be explicitly recorded.
- Long-lived transactions (>hours) which may leave the database inconsistent for long periods. Cannot be conveniently used as locking units.