# Application Database Design ## Overview of design process characterize the data needs of prospective database users - discuss functional / non-functional requirements with [domain experts (if exists)](https://softwareengineering.stackexchange.com/questions/339656) or users who know part of the domain. #### Conceptual-design phase Collected requirements -> select a data model -> a set of relational schemas. Requirement ? - describe data and relationships aligned with business decision - what attributes to capture in each type of entities - how to group attributes to an entity How to translate ? -> [Entity-Relationship Model](https://hackmd.io/LCzkGjMuStGSgzI3_gfq2A?view), and [Normalization](https://hackmd.io/xklMfiTsRFq9VO5tj_QI5w?view) #### Logical-design phase translate the conceptual schemas to system-specific database tables ([DDL](https://en.wikipedia.org/wiki/Data_definition_language) part in SQL) #### Physical-design phase Enable features in the specific database in the dev / production environment. - file organization, data structures for records or indices, query optimization, etc. ###### tags: `database`