Data abstraction is a programming technique that simplifies complex data structures by providing a clear separation between the interface and implementation details. This allows developers to manipulate data through defined methods without needing to understand the underlying complexities, promoting modularity and code maintainability.