[AccessD] On DB Bloat, Bad DB Design, and various

Jim Lawrence (AccessD) accessd at shaw.ca
Tue May 25 22:36:24 CDT 2004


Hi Arthur:

Sorry in advanced for being long winded but some answers take a while to
explain.

Normalizing a database actual decreases it's performance while improving
it's data consistency by removing redundancy. Beyond a certain point the
performance hit becomes too much, there is no longer significant improvement
to data integrity and that is where a qualified Database designer can
carefully de-normalize the database. It is a careful balancing act of
performance versus consistency.

I understand there are a series mathematical algorisms that can be used
calculate the theoritical relationship between these two apparently opposing
forces. I do not have immediate access to this set of formulas but have sent
an email to a systems-engineer friend of mine and I can pass the information
along, if anyone is interested. Some of the members the list probably have
access to the 'math' as well. I have a book called 'Structured Systems
Analysis' written by Chris Gane and Trish Saron, that I used in a
night-school course, up at the University, a 'number' of years ago and it
provided a very good over-view of data, database design and the issues
around data management.

Of the five basic levels of Normalization I have never gone beyond three, in
a real application. A number of years ago a systems company won the contract
and moved the provinces medical data into an Oracle DB. The resultant system
was purist dream. Unfortunately, when the data was ported the system ground
to a halt. On-line transactions would take up to fifteen minutes and I heard
some reports would take up to four days. My understanding is that the design
was normalized down to level 5. The whole design had to be rebuilt and it
was; de-normalized back to level 3.

Here is a data example that is not normalized but became the method of
choice because of it's performance.

Given: A table named Staff. Some of the staff are management, supervisors or
a regular staff member. What design would give the fastest results?
1. Create two tables one for staff members and another joined table for
staff-ranking. When extracting the staff and relationships build a SQL
statement that joins the two tables and process same.
2. Add all personnel into the same table and add a field and key for
staff-ranking. When extracting the staff from the table build a SQL
statement that makes two copies of the table, joins one to the other and
then process same.
3. Add an extra field to the staff table that hold the staff ranking number.
When extracting the staff from table the SQL uses one table.

Even though the method used in number 3 does not result in a normalized
table the performance gain is substantial and apparently increases
exponentially, relational to any other design structures, when large numbers
of staff were added...say Ministry wide.

There is a lot of math and case studies that support a balanced position
when doing database design.

I hope this gives you something to think about.
Jim

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Arthur Fuller
Sent: Monday, May 24, 2004 7:51 PM
To: 'Access Developers discussion and problem solving'
Subject: RE: [AccessD] On DB Bloat, Bad DB Design, and various


I have never yet seen a case where denormalization is correct, except in
OLAP apps, which are fundamentally different that OLTP apps. I have been
overruled by higher-ups on this point several times, and never once been
convinced of their correctness. Show me a case in an OLTP app where
denormalization is correct, and demonstrate why it is correct as opposed
to the "logically correct" model.

Arthur

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Lawrence
(AccessD)
Sent: Monday, May 24, 2004 3:24 PM
To: Access Developers discussion and problem solving
Subject: RE: [AccessD] On DB Bloat, Bad DB Design, and various

When a database has been completely normalized then to improve the
performance, the DB has to be 'carefully' de-normalized. This is where
the art comes in, like tuning a guitar.

There are many photographers out there who claim to be professional. It
is not enough to simply know all the rules of composition, design and
colour. There is an indefinable property that makes a photographer a
master of their craft. Their ability to interpret what they see and
produce can is not fully qualified; if it could be we would all be
Masters.

The same is true with programming and database design.

IMHO
Jim


--
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com




More information about the AccessD mailing list