A necessary evil.

Since databases usually only speak SQL, a language that is not very nice to use, there have been many attempts at creating translation layers between database models and normal programming language constructs.