Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: A normalisation issue

Re: A normalisation issue

From: Karsten Farrell <kfarrell_at_belgariad.com>
Date: Mon, 11 Aug 2003 16:26:45 GMT
Message-ID: <MPG.19a1639666491f59989835@news.la.sbcglobal.net>


Hi Stratos, thanks for writing this:
> Hello,
> I want to ask you a question about normalisation.
> I have got a long table with 8 fields(mandatory) that always store a
> value, and 20 fields(optional) than can either get a NULL or non-NULL
> value.
>
> Is it better to split this table up into two tables, one having all
> the
> mandatory fields and the other one having all the optional fields? Or
> is
> it fine to leave this table as it is?
> Thank you.
>

Advantages to keeping in one table:
* The data architects on your team will applaud your grasp of their subject area. It's rare that you need to create a 1:1 relationship in your physical database.
* Your developers will appreciate not having to issue 2 select statements every time.
* You'll be taking advantage of Oracle's built-in architecture for handling a mixture of mandatory and optional columns.

Advantages to splitting:
* If most/all your optional fields are "large" varchar2 columns that start out holding just a few bytes each, then later a bulk load dumps 4000 bytes into each ... well, you'll get row chaining (not a good thing). * Sometimes, though admittedly only rarely, you can justify splitting data off in a 1:1 for security reasons.

My recommendation:
Keep them in one table. I have many, many tables in the situation that you describe, with a mixture of mandatory and optional columns. Oracle works very nicely in this mixed environment.

-- 
[:%s/Karsten Farrell/Oracle DBA/g]
Received on Mon Aug 11 2003 - 11:26:45 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US