Re: Can Sybase and Oracle RDBs be designed in non first normal form? i.e. multivalues
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