Search code examples
databasenormalizationdatabase-normalization

Learning Relational Normalization could someone clear this up for me?


I have been reading up on this topic for certain piece of work but still this notation doesn't make sense to me

Relation R(A,B,C,D,E,F,G,H) with the following functional dependencies:
Fd1: A → BCD
Fd2: AD → E
Fd3: EFG → H
Fd4: F → GH

Could someone briefly explain what this mean or let me know if there is a guide to this somewhere ? Thank you in advance!


Solution

  • R(A,B,C,D,E,F,G,H) refers to a relation and its constituent fields (A-H).

    A functional dependency (notated A -> B) means that for a single value of A there is one and only one value of B.

    In a case like this: A -> BCD it means that for a single value of A there is one and only one tuple of values BCD. A tuple is just a combination of fields.

    So, let's look at some example data to see what is and is not a functional dependency:

    A  |  B  |  C  |  D  |  E
    =========================
    1  |  a  |  2  |  b  |  3
    -------------------------
    2  |  a  |  3  |  c  |  4
    -------------------------
    3  |  a  |  4  |  d  |  5
    

    From the very rudimentary table above, we can deduce the following:

    1. A --> B IS a functional dependency because for each value of A there is one and only one value of B.
    2. On the other hand, B --> A is NOT a functional dependency because there are multiple possible values of A (1,2,3) for a single value of B ("a").
    3. The same two conclusions above apply to all other columns with respect to column B, as well as tuples consisting of columns A,C,D, and E.

    Hopefully that helps. If you update your question with more specifics I can address other problems in understanding that you may be having.