Database Normalization

Introduction
This is meant to be a very brief tutorial aimed at beginners who want to get a
conceptual grasp on the database normalization process. I find it very difficult to
visualize these concepts using words alone, so I shall rely as much as possible
upon pictures and diagrams.
To demonstrate the main principles involved, we will take the classic example of
an Invoice and level it to the Third Normal Form. We will also construct an Entity
Relationship Diagram (ERD) of the database as we go.
Important Note: This is not a description of how you would actually design and
implement a database. The sample database screenshots are not meant to be
taken literally, but merely as visual aids to show how the raw data gets shuffled
about as the table structure becomes increasingly normalized.
Purists and academics may not be interested in this treatment. I will not cover
issues such as the benefits and drawbacks of normalization. For those who wish
to pursue the matter in greater depth, a list of references for further reading is
provided at the end.
For the most part, the first three normal forms are common sense. When people
sit down to design a database, they often already have a partially-normalized
structure in mind—normalization is a natural way of perceiving relationships
between data and no special skill in mathematics or set theory is required.
In fact, it usually takes quite a bit of work to de-normalize a database (that is,
remove the natural efficient relationships that a normalized data structure
provides). Denormalization is a fairly common task, but it is beyond the scope of
this presentation.
To begin: First, memorize the 3 normal forms so that you can recite them in your
sleep. The meaning will become clear as we go. Just memorize them for now:
1. No repeating elements or groups of elements
2. No partial dependencies on a concatenated key
3. No dependencies on non-key attributes
Share
Related Documents
  1. [Free] DTM Data Comparer : compare 2 database (2845)
  2. [Ebook] Beginning Database Design: From Novice to Professional (4504)
  3. Database normalization concept for Performance testing (787)
  4. Database Interview Questions (109 Questions) (3674)
  5. SQL Server Performance Testing articles (1617)
  6. Organizing testing checklists (1471)
  7. What is Test Data ? Why is it Important? (1918)
  8. Performance load testing for database Using Apache JMeter (2660)
  9. Database Test (873)
  10. Database Testing Interview Questions (2744)
  11. Database Testing (1437)
  12. What Types of Database Questions are Asked in Interview for Testing Positions? – Testing Q&A Series (2063)
  13. LOAD TESTING ACCELERATOR FOR ORACLE DATABASE (1894)
  14. Test data driven (TDD) (1521)
  15. Looking for resources for Upgrade Testing of MySQL? (1037)
  16. [Free] DB Sanity : erifying data consistency and correctness of application (1548)
  17. Data warehouse testing - practical approch (2404)
  18. [Paid] Datamaker Data Design : Test Data Tool (1182)
  19. [Ebook] The Data Warehouse ETL Toolkit (7909)
  20. [Ebook] Mastering Oracle SQL (3671)