This document discusses Spring Data and its approach to providing a consistent programming model for both relational and non-relational data stores. Spring Data includes multiple subprojects that support various data access technologies like JPA, JDBC, MongoDB and Neo4J. It aims to utilize Spring Framework features like dependency injection and aspect-oriented programming to abstract away differences between data store implementations and provide a common set of interfaces. The key abstractions it introduces are repositories, domain object mapping and templates to simplify data access workflows across different data technologies.