In the analysis phase, we detail the information that needs to be persistent, and in the design phase, it is time to decide on a persistence mechanism. We can make objects persistent by using flash ROM, by writing to a simple file system, by creating our own B-tree or by utilizing a commercial database management system.
If we decide to use a DBMS, we must decide whether to use a relational database management system (RDBMS) or an object database management system (ODBMS). The ODBMS has the advantage that we will not need to transform our objects into tables and back again, but with the cost that ODBMS systems are not as mature, and therefore not as robust as RDMS systems.
These are important early architectural decisions that we'll have to revisit in greater detail as we work further on the design of the system. In many ways, the decision about which type of database system to use will be dictated both by our emerging understanding of the relative complexity (or simplicity) of the system, and also by the number of classes we design and the complexity of their interactions.
The decisions about the persistence mechanism we should use and the details of how we'll implement persistence will be captured in the logical view. This will include the details of transaction management, record locking, database synchronization and data integrity.