Re: Nearest Common Ancestor Report (XDb1's $1000 Challenge)

From: Neo <neo55592_at_hotmail.com>
Date: 18 May 2004 16:47:48 -0700
Message-ID: <4b45d3ad.0405181547.73a72cb1_at_posting.google.com>


> > The ... statements creates the RM equivalent of the following:
> > T_Name
> > ID Symbo1 Sym2 Sym3 Sym4 .........
> > -- ------ ---- ---- ----
> > . ->J ->o ->h ->n
> > . ->M ->a ->r ->y
> > . ->8 ->0
>
> I would not call this "table" relational. It violates 1NF.

The above description of table T_Name was a simplification. Each thing in XDb1 can have any number of names including none. Each name (ie "John Smith", "Mary Smith") can be composed of any number of composite symbols (ie "John", "Mary", "Smith"). Each composite symbol is composed of any number of atomics symbols (ie 0-9, a-z, A-Z, etc). As you correctly pointed, the composite symbols might be modelled more appropriately as follows:

T_CompSymbol
ID Name
-- -----
. ->Smith

T_CompSymbol_AtomicSymbol_Map
CSymID ASymID Order

------- ------ ----
->Smith ->S    1
->Smith ->m    2
->Smith ->i    3
->Smith ->t    4
->Smith ->h    5

T_AtomicSymobl
ID Sym
-- ---

.  a
.  b
.  c

> If I did have the desire (which I don't have) to break down names
> and values into individual letters and digits, I'd at least use a
> design without repeating groups.

When a user enter "john smith isa person", XDb1 normalizes that data down to atomic symbols, without "repeating groups". Received on Wed May 19 2004 - 01:47:48 CEST

Original text of this message