After going through logical modeling of databases, we usually get a normalized database. In real environment and specially in Web-based system normalized database usually not give us optimum performance. Next step before creating a physical schema/scripts data modeler demoralize the database. It is a reverse process of normalization and object of this process is to get best performance from the database. Demoralization is one of the key reason for having two separate Logical and Physical Models.

Following are key strategies for demoralization,

  • Duplicated Non-key columns (Copying non-key columns in other tables to avoid joining source table in a query)
  • Horizontal Table Splits (Partition very large table data into multiple tables with same structure for reducing indexes size)
  • Vertical Table Splits (Divide different set of columns into multiple tables with same primary key for quick updates)