Search code examples
databasedatabase-designdependenciesaxiomdatabase-theory

Dependency Theory


I have:

U-> PT….. 1 

Q-> SU……2 

etc...

in using the reflexivity axiom can I then say

Q-> S , Q-> U
Q-> PT

I trying to ask how this axiom works using the example above.


Solution

  • To derive

    Q->S
    Q->U
    

    from

    Q->SU
    

    I'd use the decomposition rule, not the reflexivity axiom. Then I'd apply the transitivity axiom to Q->U, U->PT to derive Q->PT.

    If you're asking what the reflexivity axiom means, it means

    If Y is a subset of X, then X->Y.

    In your example, it looks like you might be trying to say that

    SU is a subset of Q, therefore Q->S and Q->U. 
    

    But it's not given that SU is a subset of Q. To make sure you get this point, Q->SU doesn't mean SU is a subset of Q.

    For example, if you're in the military, your last name and blood type (among other things) are functionally dependent on your service number. Let's let the service number attribute be represented by "S", last name by "L", and blood type by "B". Then

    S->LB
    

    But neither "last name" nor "blood type" are subsets of "service number".

    On the other hand, let's imagine that you're given this to start with.

    U->PT
    Q->SU
    Q = {SUV} (New information!)
    

    Since Q={SUV}, {S} is a subset of {SUV}, and {U} is a subset of {SUV}, then you can apply the reflexivity axiom to derive

    Q->S (or SUV->S)
    Q->U (or SUV->U)
    

    But that axiom only applies in this example because you're given Q={SUV}.