Relational databases and object oriented languages have very different paradigms. Identity and relationships have distinct implementations. And the difficulty of creating and navigating data varies, both conceptually and performance-wise.
Speed bumps pop up when transferring data from a relational database to an object oriented model. It's tempting to let ORMs (e.g. Doctrine) hide this "object hydration" problem. Then one day, performance starts mattering. This talk will explore several solutions to the problem, and when to use them.