Traditionally in OOP, we use design patterns and complex layers of objects to structure access to the database. In DOP, we prefer to represent data fetched from the database with generic data collections, namely, lists of maps, where fields in the maps correspond to database column values. As we’ll see throughout the chapter, the fact that fields inside a map are accessible dynamically via their names allows us to use the same generic code for different data entities.
In this chapter, we’ll illustrate the application of data-oriented principles when accessing data from a relational database. Basic knowledge of relational database and SQL query syntax (like SELECT, AS, WHERE, and INNER JOIN) is assumed. This approach can be easily adapted to NoSQL databases.