C'est le fait de ne pas accéder aux tables directement.
En gros tu passes par des vues et stored proc.
Ça évite de devoir changer ton appli quand tu changes la DB.
En théorie c'est une bonne idée, en général c'est mal appliqué et c'est le foutoir avec des vues de vues de vues et une perte de control sur le schéma.