Apps should not break every time the DBA adds an index or moves data to a new disk. The three-schema architecture splits the database into what a user sees, the logical tables, and the physical storage, so each layer can change without disturbing the others. This is where the idea of data independence comes from. Do not confuse the external level with separate tables: it is usually views over the same conceptual schema, and "which independence is harder?" is a favourite viva question.