中文网站
  Advanced Search
Read the latest Blogs from IT professionals in the field. Read and write community created documents. Need IT help? Ask our staff. Connect with your peers. Check our Tech Shop for posters, books and software tools. Home

7.3.4 Database Systems: Comparison of BCNF and 3NF

1. We have seen BCNF and 3NF.

  • It is always possible to obtain a 3NF design without sacri cing lossless-join or dependency preservation.
  • If we do not eliminate all transitive dependencies, we may need to use null values to represent some of the meaningful relationships.
  • Repetition of information occurs.

2. These problems can be illustrated with Banker-schema.

  • As banker-name ! bname , we may want to express relationships between a banker and his or her branch.
  • Figure 7.4 shows how we must either have a corresponding value for customer name, or include a null.
  • Repetition of information also occurs.
  • Every occurrence of the banker's name must be accompanied by the branch name.

3. If we must choose between BCNF and dependency preservation, it is generally better to opt for 3NF.

  • If we cannot check for dependency preservation eciently, we either pay a high price in system performance or risk the integrity of the data.
    cname banker-name bname

    Bill

    Tom

    Mary

    null

    John

    John

    John

    Tim

    SFU

    SFU

    SFU

    Austin

    Figure 7.4: An instance of Banker-schema.

  • The limited amount of redundancy in 3NF is then a lesser evil.

4. To summarize, our goal for a relational database design is

  • BCNF.
  • Lossless-join.
  • Dependency-preservation.

5. If we cannot achieve this, we accept

  • 3NF
  • Lossless-join.
  • Dependency-preservation.

6. A final point: there is a price to pay for decomposition. When we decompose a relation, we have to use natural joins or Cartesian products to put the pieces back together. This takes computational time.

Database System Structure: