• + 1 comment

    This is my process of identifying the normal forms:

    Tables:
    customer(name,addr,MEMBERNO)
    movie(DESCRIPTION,director,serialno)
    borrow(memberno,DATE,SERIALNO)
    
    Determinants:
    memberno -> name,addr
    description -> director,serialno
    serialno,date -> memberno
    serialno -> description
    serialno -> director
    name,addr -> memberno
    
    CKs:
    memberno is CK
    description is CK
    serialno,date is CK
    serialno -> description,director (so serialno is CK)
    name,addr is CK
    

    For 2NF, non-prime attributes must be dependent on CK:

    movie.director: depends on description (is CK) or serialno (is CK)
    borrow.memberno: depends on serialno,date (is CK)
    

    It is in 2NF.

    For 3NF, non-prime attributes must be directly dependent on CK, not transitively dependent:

    movie.director: depends on serialno, then depends on description (is CK)
    

    It is NOT in 3NF.