Database design is one of the most important factors contributing to the performance of an application. Consequently, how well the database is designed is of utmost importance. Database design is all about efficiently organizing data based on product workflows, future roadmap, and expected usage patterns. The output of a database design exercise is a data model. A data model represents all the objects, entities, attributes, relationships, and constraints in the system.