Re: Proposal: 6NF

From: Hugo Kornelis <hugo_at_perFact.REMOVETHIS.info.INVALID>
Date: Fri, 13 Oct 2006 00:43:14 +0200
Message-ID: <stgti212s0avfdnnd6oj8a8n102fn7jqf5_at_4ax.com>


On Wed, 11 Oct 2006 10:01:20 GMT, Brian Selzer wrote:

>
>"David Portas" <REMOVE_BEFORE_REPLYING_dportas_at_acm.org> wrote in message
>news:1160133403.293728.245040_at_m73g2000cwd.googlegroups.com...
>> Brian Selzer wrote:
>>>
>>> I agree. If the physical models are identical, then the performance
>>> would
>>> be similar. But common sense argues against the idea that the physical
>>> models should be identical. If {i, a, b} and {i, a}, {i, b} are
>>> equivalent,
>>> then since i, a and b are of the same types, it would take at least 1/3
>>> extra storage in separate tables because each i would occur twice.
>>>
>>
>> That is pure speculation. When I said identical I meant precisely that.
>> The only difference is in the metadata. There is no reason at all to
>> store any values of i twice. Why should there be? If it is the same key
>> value of the same type then it seems perfectly sensible to store it
>> only once regardless of how many relations it appears in.
>>
>
>Regardless of whether you store the actual value or a pointer to a value,
>the storage required would be at least 1/3 more, because either you have
>three values or pointers per tuple or four values or pointers per pair of
>corresponding tuples. There is no speculation involved, just simple
>mathematics.

Hi Brian,

You're overlooking something. In an RDBMS, physical storage is seperated from logical model. If {i, a, b} is equivalent to {i, a}, {i, b}, then the storage engine could choose to use the exact same physical model for both logical models. Hence no difference at all in storage requirements.

>> If you want to speculate some more then consider that only two bits of
>> metadata may need to be added per tuple, which is presumably exactly
>> the same as would be used to support nullable columns.
>>
>
>I'm not sure I follow. By two bits of metadata, do you mean two pointers?

The storage engine must store, somehow and somewhere, how the physical representation chosen maps to the logical model requested by the designer. That information is metadata. And since it's stored on a "per-table" rather than a "per-row" level, the exact amount of metadata is completely irrelevant when compared to the amount of bytes used for storing the user data.

Best, Hugo Received on Fri Oct 13 2006 - 00:43:14 CEST

Original text of this message