Results 1 to 10 of 10
  1. #1
    Join Date
    Oct 2009
    Posts
    4

    Yet another request for help on Normalization.

    Hello there. After a period of banging my head against the desk, I'm hoping someone can give me some pointers on my problem.

    I'll start by stating immediately that this is part of an assignment for college. I, of course, don't want the complete answer, just some direction please. Basically, am I heading in the right direction?

    I have to normalize the data to 3NF and whilst I was confident of my answer initially, I find myself stuck at assigning a foreign key to the groups that contain repeating information.

    I will attach a diagram of the table, and the postion that I am stuck at.

    Basically, would my choice of foreign key for the 2nd repeating group be appropriate, or is there indeed only one group of attributes that repeat. (albeit, a large group)

    Thanks in advance
    Attached Thumbnails Attached Thumbnails Normalization Question.JPG  

  2. #2
    Join Date
    Jun 2007
    Location
    London
    Posts
    2,527
    Here's a few hints to get you on your way:
    • What's the difference between the account field and the customer fields?
    • Does the price relate to the order or to some sort of item?
    • Is the delivery person a field or a thing?
    • If data can be worked out by totalling up other data then we calculate it rather than store it again.

  3. #3
    Join Date
    Mar 2009
    Location
    Sydney, Australia
    Posts
    258
    Ohforf

    Actually you are doing well, you're moving too fast and jumping ahead (which is quite logical, most capable IT types can produce 3NF in the first attempt). I would not try to identify FKs until you reach 3NF. So you have to slow down and do one NF at a time (if that is what is required), or just produce 3NF and ensure that it is correct within itself.

    The Order containing and AccountId, and the Account containing an OrderId cannot be correct; choose one or the other and proceed from there.

    I think (I am not sure) the purpose of this particular exercise in your course is for you to identify the entities that are implied but not identified at 0NF. So identify them and their attributes, upon which the identified 0NF attributes are dependent. Get the repeating groups abstracted out, so they are no longer repeating.

    BTW, I have no idea why in 2009, colleges still teach this in character/text form and not in visual form. The human mind is much better at dealing with pictures, and the end result (the data model ) is a diagram, not table definition scripts. If you are visual, just draw the tables out.
    Last edited by Derek Asirvadem; 11-09-09 at 21:45.
    Regards
    Derek Asirvadem (Formerly DerekA)
    Information Architect / Senior Sybase DBA
    Copyright 2009 Software Gems Pty Ltd

    I answer questions from the Original Poster only. If you have a genuine question, as the moderators have requested, start a new thread.

    http://www.softwaregems.com.au

  4. #4
    Join Date
    Nov 2002
    Location
    Jersey
    Posts
    10,322
    Brett
    8-)

    It's a Great Day for America everybody!

    dbforums Yak CorralRadio 'Rita
    dbForums Member List
    I'm Good Once as I ever was

    The physical order of data in a database has no meaning.

  5. #5
    Join Date
    Oct 2009
    Posts
    4
    Thank you for you replies. More food for thought

    To respond to something Derek said - The question I was given was to "Identify the attributes for a bottom up model. Normalise the database to 3NF." There was a paper record of a clients business (a newsagents) and it was from there that the attributes should be deriven.

  6. #6
    Join Date
    Mar 2009
    Location
    Sydney, Australia
    Posts
    258
    Ohforf
    Brett's link is one of the better "cheat sheets" out there on the web (and there are more bad ones than good). However, all of them, even the good ones, use horrendous examples, it is hard for a newcomer to learn from them. Kent's cheat sheet is incomplete, but that matter for you because it is "fine" up to 3NF.

    If you are doing bottom up, then start properly (your starting point is incorrect). List every paper record, and every field, explicit or implicit. You will have twice the fields you have listed in 0NF. Forget about columns.

    (And of course my post 3 does not apply.)
    Last edited by Derek Asirvadem; 11-11-09 at 09:44.
    Regards
    Derek Asirvadem (Formerly DerekA)
    Information Architect / Senior Sybase DBA
    Copyright 2009 Software Gems Pty Ltd

    I answer questions from the Original Poster only. If you have a genuine question, as the moderators have requested, start a new thread.

    http://www.softwaregems.com.au

  7. #7
    Join Date
    Oct 2009
    Posts
    4
    Thanks to everyone who replied.

    After several re-thinks, the course work has been submitted and I'm awaiting grading.

  8. #8
    Join Date
    Oct 2009
    Posts
    4
    - Update -

    Just to say thanks for you help. Finally got the graded assignment returned and was awarded a very healthy 'B'

    After the post mortem with my lecturer, I found that if I had paid more attention to detail, I would have received an 'A'.

    Always check and re-check your work people!

  9. #9
    Join Date
    Feb 2004
    Location
    In front of the computer
    Posts
    15,579
    Thanks for coming back to let us know how things turned out! Even though I wasn't involved in the original discussion, it is good to know that you ended up with an answer you could live with and better still that you learned some new things in the process.

    -PatP
    In theory, theory and practice are identical. In practice, theory and practice are unrelated.

  10. #10
    Join Date
    Jun 2007
    Location
    London
    Posts
    2,527
    Even better to know that us seasoned professionals working together on a college assignment are quite capable of achieving a 'B'

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •