I cannot find a structure that complements an OOP approach that encapsulates the implementation of the database
Seems like you're describing the Object-relational impedance mismatch.
There are number of things that are supposed to solve this OODBMS, ORM tools, a hosthost of data access tools.
I think the fact that there's so many solutions leads me to believe that One True Solution™ doesn't exist.
So you can pick any direction you like secure in the knowledge that some people will hate it and some will love it.