📃
Julianne's Knowledge Base
  • README
  • Home
    • Computer Science and Programming
      • Data Structures
        • Array
        • Binary Heap
        • Binary Tree
        • Deque
        • Dynamic Array
        • Graph
        • Hash Table
        • Linked List
        • Queue
        • Stack
      • Databases
        • Database Normalization
      • Networking
        • IP Protocol
        • Network Devices
        • OSI Model and TCP/IP
        • Ethernet LAN Switching
        • IPv4 Addressing
        • Sockets
      • Operating Systems
        • UNIX Operating Systems
          • Fundamentals
            • Virtualization
              • CPU Virtualization
              • Processes
            • Processes
          • xv6
      • Software Development
        • General Tips
        • My Goals as a Software Developer
        • Programming Languages
          • C
            • Memory Management in C
          • C++
            • I/O in C++
            • Iterators
            • Memory Management in C++
          • Javascript/TypeScript
            • Inheritance
            • React
            • Useful Libraries
          • Python
        • Tools
          • GDB
          • Git
    • Cooking
      • Diet and Nutrition
      • Recipes
    • Languages
      • Japanese
        • Grammar
        • Numbers and Counting
    • Productivity
      • Getting Things Done (GTD)
      • My GTD Trigger List
      • My Personal Knowledge Management System
      • Obsidian
        • Plugins
        • Using Obsidian
Powered by GitBook
On this page
  • Objectives
  • Side-Effects in Non-Normalized Databases
  • Links
  1. Home
  2. Computer Science and Programming
  3. Databases

Database Normalization

Normalization is the process of structuring a relational database in accordance with a series of "normal forms". This is to reduce data redundancy and improve data integrity.

Objectives

The objectives of normalization beyond First Normal Form are as follows: 1) Remove undesirable insertion, update, and deletion dependencies. 2) Reduce the need for restructuring the collection of relations when new types of data are introduced. 3) Make the relational model more informative to users. 4) Make the collection of relations neutral to the query statistics, where these stats are liable to change as time goes by.

A fully normalized database allows its structure to be extended to accomodate new types of data without changing existing structure too much.

Note that normal forms beyond 4NF are purely of academic interest; the problems they exist to solve rarely occur in practice.

Side-Effects in Non-Normalized Databases

  • Update Anomalies

    • The same information can be expressed on multiple rows, so updates may result in logical inconsistencies.

    • Example: an employee having two different addresses listed because there are multiple records for them.

  • Insertion Anomalies

    • When certain facts cannot be recorded at all.

    • Example: Not being able to add a new faculty member who hasn't been assigned a course yet.

  • Deletion Anomalies

    • Deletion of data representing certain facts necessitates the deletion of data representing different facts.

    • Example: If a faculty member temporary ceases to be assigned to any courses, we must delete all the records where they appear, effectively deleting the faculty member.

Links

PreviousDatabasesNextNetworking

Last updated 5 years ago

Wikipedia: Database Normalization