Re: A Normalization Question
Date: 18 Jul 2004 12:03:29 -0700
Message-ID: <4b45d3ad.0407181103.3bbc0f47_at_posting.google.com>
> You continue to confuse the physical and logical. Storing the string "Brown"
> more than one time is physically redundant, not logically.
It is you who continue to confuse the physical and logical. It is you who is having difficulty understanding that strings and symbols can and are be represented at the logical layer in my examples and discussions. In general, RM implemenation only allows user to enter logical data, which includes symbols and strings. Data entered in Sql Server or Oracle is at the logical layer, and that includes symbols and strings. Why do you keep insisting that RM's implementations are allowing users to enter non-logical data? Please explain how to determine which layer user-entered data in a RM db belongs to?
> Storing the string "Brown" more than one time is physically redundant, not
> logically. The word has a different meaning in each context. What you are
> doing is the equivalent of this:
The three string 'brown' are logically redundant. They do name three different things which are not redundant. www.xdb2.com/Example/ThingsNamedBrown.asp shows how multiple things can be named by a single string 'brown'. Changing the string 'brown' has a gobal effect. Changing the name of a thing (ie person), has the effect of unrelating it from 'brown' and re-relating to new string (ie 'browne') without effecting existing relationships.
> Even if you migrate this notion to the world of computers, it is still not
> as efficient as existing means (E.g., an index and table).
XDb1 has no tables or indexes (as in RM) yet its solution for generating common ancestor reports for any hierarchy running on a 233 Mhz Pocket PC is nearly twice as fast as that of a non-normalized, non-generic Sql Server 2000 solution running on a 1,300 MHz desktop. Please post your more efficient solution in prior thread titled "Common Ancestor Report". Below are measurements made thus far using RM solutions that aren't as generic or normalized as XDb1's.
Small Report Generation Summary (provided by Hugo)
Solution Time(ms) Platform Notes
-------------- -------- ----------------- -------------------------- RM#1 SqlSrvr2K 14.3 1.3 Ghz PC Unnormalized, non-generic RM#2 SqlSrvr2K 11.0 1.3 Ghz PC Unnormalized, non-generic XDb1 4.4.7 16 1.3 Ghz PC Debug ver, norm and gener
Small Report Generation Summary (provided by Neo)
Solution Time(ms) Platform Notes
------------- -------- ----------------- -------------------------- RM#1 SqlSrvr7 65.0 500 Mhz Server Unnormalized, non-generic RM#2 SqlSrvr7 68.9 500 Mhz Server Unnormalized, non-generic XDb1 4.5.7 1.632 500 Mhz Server Normalized, generic XDb1 4.5.9 6.561 233 MHz PocketPC Normalized, generic
Large Report (28,940 rows) Generation Summary (provided by Neo) 200 Goat Hierarchy (5 generations x 40 goats/generation, each goat having two parents, except 1st gen).
Solution Time(sec) Platform Notes
------------- -------- ----------------- -------------------------- RM#5 SqlSrvr7 40.5 500 Mhz Server Unnormalized, non-generic XDb1 4.5.7 2.9 500 Mhz Server Normalized, generic XDb1 4.5.9 16.971 233 Mhz PocketPC Normalized, generic
Larger Report (276,620 rows) Generation Summary (provided by Neo). 400 Goat Hierarchy (10 gen x 40 goats/gen),
Solution Time(ms) Platform Notes
------------- -------- ----------------- -------------------------- RM#5 SqlSrvr7 105 min 500 Mhz Srvr, NT Avg of 2 runs, UnNrm,UnGen XDb1 4.5.10 44 min 500 Mhz Srvr, NT Avg of 2 runs, Norm, gener XDb1 4.5.10 57 min 450 Mhz PC, 98 1 run, Normalized, genericXDb1 4.5.10 195 min 233 Mhz PocketPC 1 run, Normalized, generic
Note: SQL Server scripts are available from website. Received on Sun Jul 18 2004 - 21:03:29 CEST