Object Relational Mappers are evil (a meditation)

Ben Finney ben+python at benfinney.id.au
Tue Oct 6 05:32:28 CEST 2009


Paul Rubin <http://phr.cx@NOSPAM.invalid> writes:

> Steve Holden <steve at holdenweb.com> writes:
> > It seems to me that the biggest sin in databases is a failure to use
> > rigorous design techniques. If somebody doesn't understand relational
> > theory
>
> Where does one find out about this? I've somehow managed to avoid it
> for an awfully long time, but it begins to look useful. Thanks.

Wikipedia's article <URL:http://en.wikipedia.org/wiki/Relational_model>
and at the original Wiki <URL:http://c2.com/cgi/wiki?RelationalModel> are
good introductions to the concepts of the topic.

The works of C. J. Date, especially (in my view) “Database In Depth”
<URL:http://en.wikipedia.org/wiki/Special:BookSources/0596100124> and
the further reading recommended at the Wikipedia article
<URL:http://en.wikipedia.org/wiki/Relational_model#Further_reading>
<URL:http://en.wikipedia.org/wiki/Special:BookSources/0321197844>
<URL:http://en.wikipedia.org/wiki/Special:BookSources/0201709287>, are
solid groundings in the topic for programming practitioners.

In learning about the relational model, you'll inevitably learn that SQL
is rather flawed in its implementation of that model. Nevertheless, it
turns out to be the best (largely because most widespread) language for
describing a relational database, *if* used with knowledge of the
relational model to avoid those implementation flaws.

-- 
 \     “As scarce as truth is, the supply has always been in excess of |
  `\                                       the demand.” —Josh Billings |
_o__)                                                                  |
Ben Finney



More information about the Python-list mailing list