View Single Post
  #2 (permalink)  
Old March 25th, 2008, 10:01 PM
dparsons dparsons is offline
Wrox Author
Points: 13,255, Level: 49
Points: 13,255, Level: 49 Points: 13,255, Level: 49 Points: 13,255, Level: 49
Activity: 0%
Activity: 0% Activity: 0% Activity: 0%
Join Date: Oct 2005
Location: Ohio, USA
Posts: 4,104
Thanks: 1
Thanked 64 Times in 64 Posts
Send a message via AIM to dparsons

Yes I would say tblSongs is in 3NF since both SongTitle and ArtistID don't rely on one another to be related to SongID.

Now if you were to add a forth column in there, say albumnTitle, this would break 3NF because albumnTitle would become dependant on SongID but only because it is related to an artist which is then in turn related to a SongID.

First I would say no, your customer table is not in 3NF because the value of City relies on who the person is which in turn relates the value to CustID so your assumption is correct, you would need to break out a table for city. I can't speak for an academic but normally what I do is break a "Person" table out into at least 3 tables:

Personal Information (Name, SSN, DOB)
AddressInformation(Shipping Information & Billing Information) <--Each address would be 1 row within the table
ContactInformation(PhoneNumbers, Email, etc)

Also I will normally have ancilliary lookup tables for States, Gender, etc.

Make sense?

================================================== =========
Read this if you want to know how to get a correct reply for your question:
================================================== =========
.: Wrox Technical Editor / Author :.
Wrox Books 24 x 7
================================================== =========
Reply With Quote