Search code examples
database-normalization3nfthird-normal-form

Need guidance with making data conform with 3NF


I am currently working on a database assignment and for some reason I am struggling with this one basic question.

Customer(cus_ID(underlined), name, address, mobile_phone)

Please explain why these attributes are not in 3NF What would you do to the customer entity to comply with 3NF?

I know that the name address can have multiple fields such as surname, forename which would then be dependant on the cus_ID. The cus_ID would then be italicised in the new name entity.

Am I on the right track? I feel confused with this question although I have completed the more detailed ones.

Any help will be appreciated

Thanks all Ben


Solution

  • Why would your Customer entity NOT be a 3NF?

    • A customer might have multiple addresses
    • A customer might have multiple contact details ... and they are again probably independent from an address

    In such cases ...

    • Customer (CustID*, ShortName)
    • CustAddress ((CustID, AddrID)* Address, ZIP, State, *CountryID)
    • CustContact ((CustID, ContID)*, *ContactType, ContactValue)

    ... may help better normalizing your model.