In trying to understand the correlation between program objects and data in tables (here:[OO program and SQL database](https://stackoverflow.com/questions/1149877/oo-program-and-sql-database)), which I still don't really understand, a strong difference of opinion was revealed over whether it's ok to use a SQL db to store data for an OO program. 

1. For a new programmer, is it ok/recommended, or not?
2. If not, is the alternative to an OO program a procedural program?

Also I don't understand **[Object-relational impedance mismatch](http://en.wikipedia.org/wiki/Object-relational_impedance_mismatch)**, which is what people *mean* when they say that it's "not OK to use an SQL DB to store data for an OO program": can someone summarize it, or is there a simple example that illustrates it?