Splitting Tables

We know that we can dissect a table into parts (creating new tables). But this is done with a solid set of reason. What may these valid reasons be?
  1. We wanted to optimize spaces by separating fields that a less commonly field up to those that are always filled-up. This is specially if these fields less commonly field up are many.
  2. We notice fields that are only applicable to a specific set of records, and there are other fields that are only applicable to other set of records. In this, we can create a separate table containing the applicable fields for one set of records and another table for the fields applicable to another set of records. This is called specialization/generalization
  3. We wanted to reduce redundancy. This is called normalization
  4. We wanted a field to have a controlled value set. This is called mechanisms for domain constraints.
  5. A field is a multi-valued field, and each multi-valued data is atomically important to affect other possible records. This is called data flattening.
See book: Database Systems (Connoly and Begg), Chapter 3