Loading ...
Sorry, an error occurred while loading the content.

Re: [agileDatabases] Is there actual disagreement on what 1NF, 2NF, and 3NF mean?

Expand Messages
  • David Portas
    ... Hi Dana, Normal Forms are mathematical concepts that were originally formulated in mathematical terms. So precision is hard to achieve using natural
    Message 1 of 31 , Aug 7, 2009
    • 0 Attachment
      2009/8/7 dananrg <dananrg@...>:
      >
      >
      > I've been reading Agile Database Techniques (great book), but I am perplexed
      > about Scott's definitions of Normal Forms. I'm not sure I understand them
      > myself after all these years, as I see conflicting definitions from
      > different authors. I feel I understand them well enough to design great
      > tables, but perhaps not as well as I should understand relational theory.
      >

      Hi Dana,

      Normal Forms are mathematical concepts that were originally formulated
      in mathematical terms. So precision is hard to achieve using natural
      language and that's why such definitions vary. Good theory books
      ("Foundations of Databases" by Abiteboul et al is one of the best of
      those) use lots of math to achieve precision but are tough going for
      those not used to reading mathematical proofs. Unfortunately many of
      the attempts at plain language descriptions of database principles
      online or in print are of extremely poor quality. This is not a
      criticism of Scott or his book. I haven't read his book so I can't
      comment on it. I am saying that it's a good thing to be selective
      about what you read.

      Two of the very best middle of the road books on database theory
      (sound, well written, not too much math) are Fabian Pascal's
      "Practical Issues in Database Management" and Chris Date's
      "Introduction to Database Systems". The latter has often been used for
      college and university courses. The best online source I know is Hugh
      Darwen's site (www.thethirdmanifesto.com) and its mailing list. Chris
      Date's book the "Relational Database Dictionary" has very concise and
      readable explanations of the type you are looking for.

      Without going into great details I would also suggest you try to get
      Boyce Codd Normal Form and 5NF first. BCNF is the refinement of
      functional dependency normalization of which 2NF and 3NF are just
      weaker, less useful and arguably harder to explain versions. In fact
      BCNF is often mistaken for 3NF! 3NF is only interesting because of
      some special cases where it is dependency-preserving and BCNF is not.
      5NF is important because it solves join-dependency related problems.

      David
    • Scott Ambler
      ... ... I d bring that up a level to be How do you model stuff? where data is one of many issues included in stuff . - Scott Scott W. Ambler Chief
      Message 31 of 31 , Aug 17, 2009
      • 0 Attachment
        --- On Fri, 8/14/09, Dawn Wolthuis <dwolt@...> wrote:

        <snip>
        >
        > They need to learn the valuable lesson that Scott mentioned
        > here: How
        > do you model data? It depends.

        I'd bring that up a level to be "How do you model stuff?" where data is one of many issues included in "stuff".

        - Scott
        Scott W. Ambler
        Chief Methodologist/Agile, IBM Rational
        Agile at Scale blog: http://www.ibm.com/developerworks/blogs/page/ambler
        Follow me on Twitter: http://twitter.com/scottwambler




        __________________________________________________________________
        The new Internet Explorer® 8 - Faster, safer, easier. Optimized for Yahoo! Get it Now for Free! at http://downloads.yahoo.com/ca/internetexplorer/
      Your message has been successfully submitted and would be delivered to recipients shortly.