Re: Can Sybase and Oracle RDBs be designed in non first normal form? i.e. multivalues

From: Ken Shirey <kshirey_at_spindle.net>
Date: 1996/11/15
Message-ID: <328C294C.2663_at_spindle.net>#1/1


Dan and Clare McLaughlin wrote:
>
> Hi All,
>
> I hope someone out there can resolve a debate I am having with my boss.
>
> The debate started when we were discussing the Pick (Universe) database
>
> which we are running our legacy application on (and thankfully moving
>
> away from). As some of you may know, the Pick/Universe database supports
>
> "multi-values" in fields. In other words the database is not in first
>
> normal form. During the discussion I stated that a Sybase or Oracle
>
> database would never be designed using multi-values. I worked briefly
>
> with a Sybase database in my previous job and as far as I could tell
>
> this could not be done. My boss claims that you might want to use
>
> multi-values in a relational database to de-normalize and improve
>
> performance. I am new to this job and was really shocked when I first
>
> saw "multi-values" in a so called "relational" Pick/Universe database.
>
> In school I was trained on the merits of relational databases and how to
>
> de-nornmalize to improve performance, but I thought all relational
>
> databases were at least in first normal form. Is a Pick/Universe
>
> database really relational? Can Sybase and Oracle databases be designed
>
> using multivalues? I appreciate any comments concerning this.
>
> Thanks
>
> Dan

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Dan:

Even if you could find a way (and I think the Oracle Multidimensional Server might do it...) and are inclined to insert mulitple values into one field, you might be better off in the housekeeping or food-service industries. :-)

Imagine RETRIEVAL of these values:

SQL>  select substr(that,1,12) bad,
             substr(that,18,7) design,
             decode(substr(that,56,1),'T','Found','Not Found')
      from   my_screwed_up_table
      where  upper(substr(that,122,30) in (
               'AWFUL PERFORMANCE',
               'NO INDEXES USED IN SUBSTRING PREDICATIONS',
               'TOO HARD TO PROGRAM'       );

  ***  This will use a full table scan to retrieve any row 
  • because even if THAT were indexed, we're not predicating
  • on the first characters in the field.

SQL> desc my_screwed_up_table     

     column		datatype	null?
     ------------------ --------------- -----
      keycol		number(5)	 N
      that		char(1000)       Y

What's in this table, anyway? Can't tell from here...

Yuck!!

You're right about the definition of RELATIONAL, and about the importance of First Normal Form.

Dr. Codd would have a field day with your boss... Received on Fri Nov 15 1996 - 00:00:00 CET

Original text of this message