Re: Why is database integrity so impopular ?

From: Daniel Pitts <newsgroup.spamfilter_at_virtualinfinity.net>
Date: Mon, 06 Oct 2008 10:51:02 -0700
Message-ID: <48ea4f97$0$8831$7836cce5_at_newsrazor.net>


eric.bouchardlefebvre_at_gmail.com wrote:
> Hello,
>
> When time comes to build transactional databases (as opposed to data
> wharehouses), I belong to the school that STRONGLY believe in
> normalizing data with high integrity mechanisms. I know all the
> performance cons but IMHO, pros largely overwhelme.
>
> It amazes me, though, how many systems rely on the application to
> manage data integrity. I work as IT director for a large-size
> manufacturer and *none* of our applications use integrity. And I am
> talking here of ERP and other mission-critical systems.
>
> In fact, I had rarely open a database properly normalized and
> inforced ... and I have been working with databases for over 10 years,
> mostly in sectors where lack of integrity can result in dramatic
> consequences.
>
> What is wrong with modern DB design approaches? And what's the point
> of using a big relational DB without the benefits of integrity and
> normalization?
>
> Thank you,
> EBL
I think that part of the problem is DB design and Application design are really different types of abstraction. For application programmers, dealing with DB constraints is tedious.

The truth is that whenever your "Application" calls for persistence, it is no longer just an "Application"; it has become a "System". System design is a higher level abstraction.

Moving from Application design to System design is /almost/ a natural progression, and many engineers traverse the barrier without ever realizing and without learning the other aspects of System design. This includes learning proper DB design.

I admit that I fell into that category for some time. My background has been Application design, but I've started to appreciate the concept of constraints at ever level of the System. I even sometimes wish that the DB could do more validation than it does, even if it makes things a little more "tedious". In this case, tedious just means the hard problem is already solved.

-- 
Daniel Pitts' Tech Blog: <http://virtualinfinity.net/wordpress/>
Received on Mon Oct 06 2008 - 19:51:02 CEST

Original text of this message