Robert Martin's excellent Agile Software Development book has a neat case study that builds a fairly complex payroll system entirely with data provided by
unit tests. At the end, it is left to the reader to imagine a mapping to some database. Reading this was a profound experience to me, proving you can focus entirely on the object model and defer the database design to the end. Very cool.
It's tempting to say data models and object models can be or should be similar or even identical. Most modelling concepts (except inheritance) map fairly well between them and there are tools to generate
Java objects from DDL. But if you think about your objects primarily as data structures you'll wind up with a very different design compared to thinking of them as behaviors with hidden data. The latter is likely to be much better OO. The former is common in stateless web apps with functional decomposition designs that just happen written in OO languages.