Re: Question re: Practical Issues in Database Management

From: Joe Thurbon <usenet_at_thurbon.com>
Date: Sun, 25 Mar 2007 21:48:52 GMT
Message-ID: <87CNh.1665$M.1590_at_news-server.bigpond.net.au>


mAsterdam wrote:
> Joe Thurbon wrote:

>> TroyK wrote:
>>> Joe Thurbon wrote:
>>
>> [...]
>>
>>>> "A MVD between two columns exists when sets of values in one column are
>>>> each associated with values in another column"
>>>>
>>>> and 4th normal form is defined as
>>>>
>>>> "If no MVDs exist between columns, then a table is in 4th normal form"
>>>>
>>>> Even assuming that 'no MVDs' is shorthand for 'no MVDs that are not 
>>>> also
>>>> FDs' these definition would mean that the table,
>>>>
>>>> EMP#  ACTIVITY
>>>> ==============
>>>> 130      DEBUG
>>>> 130      SUPPORT
>>>>
>>>> would not be in 4th normal form. (Since, it's clear that there is a set
>>>> of values {DEBUG, SUPPORT} that is functionally dependant on EMP#. The
>>>> caption of the example on page 138 says that the above table is in 4th
>>>> normal form (as do all other definitions I've read).
>>>
>>> But the set of values is not, in fact, functionally determined by emp
>>> #.
>>
>> I disagree (he says, with trepidation).
>>
>> Although I may be abusing the term functionally dependent - I'd 
>> welcome correction if I am. Note above that I said there is a _set_ of 
>> values, and I meant that that set is functionally dependant on EMP#, 
>> not that ACTIVITY was functionally dependent on EMP#.

>
> The representation
>
>> EMP#  ACTIVITY
>> ==============
>> 130      DEBUG
>> 130      SUPPORT

>
> doesn't capture that subtlety. It suggests ACTIVITY
> as atomic, not SET_OF_ACTIVITIES.
>
>> I thought that the general notion of dependency was (informally) along 
>> the lines of:
>>
>> "B is dependent on A if, every time I am told a value for A, I can 
>> observe the world and determine the value of B."

>
> Either you are making the same mistake as I or we are both right :-)
>
>> For functional dependencies, (A -> B), B is a 'simple value'. For 
>> multivalues dependencies, (A ->> B), B is a set of values, and for 
>> join dependencies, I'll have to keep reading and see if my analogy 
>> falls over.

>
> http://www.almaden.ibm.com/cs/people/fagin/tods77.pdf

Thanks for the pointer.

>

>> As an aside, for a table in 3NF, for exmaple.
>>
>> TABLE   A    B
>>        ===  ---
>>         1    1
>>         2    1
>>         3    2
>>
>> Is it right to say that
>>
>> A -> B
>>
>> and
>>
>> B ->> A
>>
>> And if not, why not?

>
> Maybe, maybe not. Again, your notation suggests no.
> Reconsider what your notation does and does not convey.
>

Just to be clear, the notation isn't mine. I just repeated it from "Practical Issues" (e.g. page 196). I think that B ->> A is intended only convey that for each B, there are several A's associated with it.

> Googling for "population diagram" (by far the most
> important data analysis tool according to Nijssen)
> did not give me what I was looking for (a good tutorial
> example), but there were some interesting articles, e.g.
>
> http://www.inconcept.com/jcm/June2000/becker.html

Thanks, I'll look into it.

Cheers,
Joe Received on Sun Mar 25 2007 - 23:48:52 CEST

Original text of this message