14-day MaxScale Trial: Explore the latest version of our advanced database proxy!
Start Trial
LogoLogo
CtrlK
Download MariaDBContact Us
  • Home
  • MariaDB Platform
  • Server
  • MaxScale
  • ColumnStore
  • Galera Cluster
  • Connectors
  • Tools
  • Release Notes
  • General Resources
  • About
    • About MariaDB Documentation
      • Contributing Documentation
      • Documentation Style Guide
      • Reporting Documentation Issues
      • About Links
    • About MariaDB
    • Contact Us
  • Community
    • Joining the Community
    • MariaDB Community
      • Bug Tracking
        • Reporting Software Bugs
        • Bug Processing
        • Security Bug Fixing
        • Building MariaDB Server for Debugging
        • Extracting Entries from the Binary Log
        • Profiling Memory Usage
      • Legal Documents
        • MariaDB Contributor Agreement
        • MariaDB Contributor Agreement FAQ
      • Frequently Asked Questions
        • MariaDB Community Server
        • The mariadb-backup Tool
        • Community Questions
          • How Can I Contribute to MariaDB?
        • DBA Questions
        • Developer Questions
          • How can a VBA Application Connect to MariaDB?
          • How can I Learn about Developing MariaDB?
          • How many JOIN Clauses are Allowed in a Query?
          • Remote connection work but often get error HY000/2002 connection timed out
          • Tools Available for Developing on the MariaDB Code
          • Where is the table_cache in MariaDB?
          • Why is ORDER BY in a FROM Subquery Ignored?
        • General Questions
          • Does the Password Prompt Appear Before or After Establishing a Connection?
          • What is the Goal of MariaDB?
          • Why is the Software Called MariaDB?
        • High Availability Questions
        • Licensing Questions
          • Licensing FAQ
          • MariaDB Licenses
        • MariaDB Software Questions
          • What is MariaDB?
          • What is MariaDB's Release Policy and Schedule?
          • What will be in MariaDB version X?
          • When will MariaDB version X be released?
        • Migrating to MariaDB Questions
          • How can I Import Only a Table's Structure?
          • How do I migrate a MySQL database to Amazon RDS?
          • Red Hat 6 Process Limit a Errors
        • Public Questions
        • Support Questions
          • Getting Help With MariaDB
        • Supported Software & Features
    • Contributing & Participating
      • Contributing Code
      • Contributing to the MariaDB Project
      • MariaDB Public FTP Server
      • Sponsoring the MariaDB Project
      • Log of MariaDB Contributions
      • Google Summer of Code
        • Google Summer of Code 2025
        • Google Summer of Code 2024
        • Google Summer of Code 2023
        • Google Summer of Code 2022
        • Google Summer of Code 2021
        • Google Summer of Code 2020
        • Google Summer of Code 2019
        • Google Summer of Code 2018
        • Google Summer of Code 2017
        • Google Summer of Code 2016
        • Google Summer of Code 2015
        • Google Summer of Code 2014
        • Google Summer of Code 2013
      • Google Season of Docs
        • Google Season of Docs 2019
        • Google Season of Docs 2020
  • Product Development
    • MariaDB Quality Development Rules
    • Uploading Package to PPA
    • Debugging MariaDB
      • Compiling MariaDB for Debugging
      • Creating a Trace File
      • Debugging a Running Server (on Linux)
      • Debugging MariaDB With a Debugger
      • Debugging Memory Usage
      • Enabling Core Dumps
      • How to Produce a Full Stack Trace for mariadbd
      • How to Use procmon to Trace mysqld.exe Filesystem Access
      • Limitations/Differences with a MariaDB Server Compiled for Debugging
    • MariaDB Development
      • MariaDB Server Roadmap
      • Quality Assurance
        • Code Coverage
        • Code Coverage with dgcov
        • Optimizer Quality
        • QA - Aria Recovery
        • QA Metrics
        • QA Tests
        • QA Tools
        • Random Query Generator Tests
        • RQG Extensions for MariaDB
        • Worklog Quality Checklist Template
        • Benchmarks and Long Running Tests
          • Benchmark Results
            • sysbench v0.5 - Single Five Minute Runs on T500 Laptop
            • sysbench v0.5 - Three Times Five Minutes Runs on work with 5.1.42
            • sysbench v0.5 - 3x Five Minute Runs on work with 5.2-wl86
            • sysbench v0.5 - 3x Five Minute Runs on work with 5.1 vs. 5.2-wl86
            • sysbench v0.5 - 3x 15 Minute Runs on perro with 5.2-wl86 a
            • sysbench v0.5 - 3x 15 Minute Runs on perro with 5.2-wl86 b
            • Select Random Ranges and Select Random Point
            • Sysbench Results
            • sysbench v0.5 - Single Five Minute Runs on perro
            • sysbench v0.5 - Single Five Minute Runs on work
            • Threadpool Benchmarks
          • Benchmarks
            • Benchmark Builds
            • Benchmarking Aria
            • DBT3 Automation Scripts
            • DBT3 Benchmark Results InnoDB
            • DBT3 Benchmark Results MyISAM
            • DBT3 Example Preparation Time
            • MariaDB 5.3 - Asynchronous I/O on Windows with InnoDB
            • MariaDB 5.3/MySQL 5.5 Windows performance patches
            • mariadb-tools
            • Performance of MEMORY Tables
            • Recommended Settings for Benchmarks
            • RQG Performance Comparisons
            • run-sql-bench.pl
            • Segmented Key Cache Performance
            • sysbench Benchmark Setup
        • InnoDB Upgrade Tests
          • 10.0.32 Release Upgrade Tests
          • 10.0.34 Release Upgrade Tests
          • 10.0.36 Release Upgrade Tests
          • 10.1.22 Pre-release Upgrade Tests
          • 10.1.25 Release Upgrade Tests
          • 10.1.26 Release Upgrade Tests
          • 10.1.30 Release Upgrade Tests
          • 10.1.32 Release Upgrade Tests
          • 10.1.36 Release Upgrade Tests
          • 10.2.12 Release Upgrade Tests
          • 10.2.13 Release Upgrade Tests
          • 10.2.14 Release Upgrade Tests
          • 10.2.17 Release Upgrade Tests
          • 10.2.18 Release Upgrade Tests
          • 10.2.5 Pre-release Upgrade Tests
          • 10.2.7 Release Upgrade Tests
          • 10.3.10 Release Upgrade Tests
          • 10.3.3-beta Release Upgrade Tests
          • 10.3.4-beta Release Upgrade Tests
          • 10.3.5-gamma Release Upgrade Tests
          • 10.3.6-gamma Release Upgrade Tests
          • 10.3.9 Release Upgrade Tests
        • QA Datasets
          • DBT-3 Dataset
          • DBT-3 Queries
          • OpenStreetMap Dataset
          • osmdb06.sql
      • MariaDB Development Tools
        • Jira - Status and Transition Definitions
        • Jira - Project Planning and Tracking
        • Profiling with Linux perf tool
        • Worklog
        • Buildbot
          • About Buildbot
          • Branch Protection Using Buildbot
          • Buildbot Database Schema
          • Buildbot Development
          • Buildbot ToDo
          • Package Testing with Buildbot and KVM
          • Buildbot runvm
          • Buildbot Setup
            • Buildbot Setup for MacOSX
            • buildbot-setup-buildbot-setup-for-windows
            • Buildbot Setup Notes
            • Buildbot Setup for BSD
            • Buildbot Setup for Solaris Sparc
            • Buildbot Setup for Solaris x86
            • Buildbot Setup for Ubuntu-Debian
            • Buildbot Setup for VM host
            • How do I setup a Buildbot build slave?
            • Buildbot Setup for Virtual Machines
              • Buildbot Setup for Virtual Machines - FreeBSD 9.2
              • Buildbot Setup for Virtual Machines - General Principles
              • Buildbot Setup for Virtual Machines - Additional Steps
                • Install Cassandra on Fulltest VMs
                • Install cmake on build VMs
                • Installing correct libraries for PAM and readline
                • Installing the Boost library needed for the OQGraph storage engine
                • Installing VM images for testing .deb upgrade between versions
                • Resizing a Virtual Machine Image
                • Update Debian 4 mirrors for Buildbot VMs
              • Buildbot Setup for Virtual Machines - Debian
                • Buildbot Setup for Virtual Machines - Debian 4 amd64
                • Buildbot Setup for Virtual Machines - Debian 4 i386
                • Buildbot Setup for Virtual Machines - Debian 5 amd64
                • Buildbot Setup for Virtual Machines - Debian 5 i386
                • Buildbot Setup for Virtual Machines - Debian 6 amd64
                • Buildbot Setup for Virtual Machines - Debian 6 i386
                • Buildbot Setup for Virtual Machines - Debian 7 "wheezy"
              • Buildbot Setup for Virtual Machines - Red Hat
                • Buildbot Setup for Virtual Machines - Centos 5 amd64
                • Buildbot Setup for Virtual Machines - CentOS 5 i386
                • Buildbot Setup for Virtual Machines - CentOS 6.2
                • Buildbot Setup for Virtual Machines - Fedora 16
                • Buildbot Setup for Virtual Machines - Fedora 17
                • Buildbot Setup for Virtual Machines - Fedora 18
                • Buildbot Setup for Virtual Machines - Fedora 19
                • Buildbot Setup for Virtual Machines - Fedora 20
                • Buildbot Setup for Virtual Machines - Red Hat 6 x86
              • Buildbot Setup for Virtual Machines - Ubuntu
                • Buildbot Setup for Virtual Machines - Ubuntu 10.04 (alpha), i386 and amd64
                • Buildbot Setup for Virtual Machines - Ubuntu 10.10 "maverick"
                • Buildbot Setup for Virtual Machines - Ubuntu 11.04 "natty"
                • Buildbot Setup for Virtual Machines - Ubuntu 11.10 "oneiric"
                • Buildbot Setup for Virtual Machines - Ubuntu 12.04 "precise"
                • Buildbot Setup for Virtual Machines - Ubuntu 12.10 "quantal"
                • Buildbot Setup for Virtual Machines - Ubuntu 13.04 "raring"
                • Buildbot Setup for Virtual Machines - Ubuntu 13.10 "saucy"
                • Buildbot Setup for Virtual Machines - Ubuntu 14.04 "trusty"
                • Buildbot Setup for Virtual Machines - Ubuntu 8.04, 8.10, and 9.10
                • Buildbot Setup for Virtual Machines - Ubuntu 9.04 amd64
                • Buildbot Setup for Virtual Machines - Ubuntu 9.04 i386
        • Using Git with MariaDB
          • Configuring Git to Send Commit Notices
          • Using Git
      • Working with GitHub
      • Debugging
        • Checking MariaDB
        • MariaDB Crashes
        • MariaDB Error Messages
        • Memory is Leaking
    • MariaDB Internals
      • Writing Plugins for MariaDB
      • Encryption Plugin API
      • Information Schema plugins: SHOW and FLUSH statements
      • Password Validation Plugin API
      • Merging into MariaDB
        • Creating a New Merge Tree
        • Merging from MySQL (obsolete)
        • Merging New XtraDB Releases (obsolete)
        • Merging TokuDB (obsolete)
        • Merging with a Merge Tree
      • Query Optimizer
        • Block-Based Join Algorithms
        • Condition Selectivity Computation Internals
        • Extended Keys
        • MIN/MAX optimization
        • Notes When an Index Cannot Be Used
        • Optimizer Debugging With GDB
        • Optimizer Development
        • optimizer_max_sel_arg_weight
        • Range Optimizer
        • The Optimizer Cost Model from MariaDB 11.0
        • Optimizer Trace
          • Basic Optimizer Trace Example
          • How to Collect Large Optimizer Traces
          • Optimizer Trace for Developers
          • Optimizer Trace Guide
          • Optimizer Trace Overview
          • Optimizer Trace Resources
      • MariaDB Source Code Internals
        • Stored Procedure Internals
        • MariaDB Memory Usage
          • Connect Memory Usage
      • Using MariaDB with Your Programs (API)
        • Progress Reporting
        • libMariaDB
        • libmysqld
          • Embedded MariaDB Interface
          • The mariadb-test and mariadb-test-embedded Programs
        • Non-Blocking Client Library
          • About Non-blocking Operation in the Client Library
          • Non-blocking API Reference
          • Using the Non-blocking Library
  • Additional Resources
    • Customer Stories
    • Blogs
  • Books
  • Database Theory
    • ACID: Concurrency Control with Transactions
    • Exploring Early Database Models
    • Introduction to Relational Databases
    • Relational Databases: Basic Terms
    • Relational Databases: Foreign Keys
    • Relational Databases: Table Keys
    • Relational Databases: Views
    • Understanding the Hierarchical Database Model
    • Understanding the Network Database Model
    • Understanding the Relational Database Model
    • Database Design
      • Database Design Example Phase 1: Analysis
      • Database Design Example Phase 2: Design
      • Database Design Example Phase 3: Implementation
      • Database Design Example Phases 4-6: Testing, Operation and Maintenance
      • Database Design: Overview
      • Database Design Phase 1: Analysis
      • Database Design Phase 2: Conceptual Design
      • Database Design Phase 2: Logical and Physical Design
      • Database Design Phase 3: Implementation
      • Database Design Phase 4: Testing
      • Database Design Phase 5: Operation
      • Database Design Phase 6: Maintenance
      • Database Lifecycle
    • Database Normalization
      • Database Normalization: 1st Normal Form
      • Database Normalization: 2nd Normal Form
      • Database Normalization: 3rd Normal Form
      • Database Normalization: 4th Normal Form
      • Database Normalization: 5th Normal Form and Beyond
      • Database Normalization: Boyce-Codd Normal Form
      • Database Normalization Overview
      • Understanding Denormalization
  • Events
  • Quickstart Guides
  • Support
  • Tutorials
  • Videos
  • White Papers
  • Distributions Including MariaDB
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
Export as PDF
  1. Database Theory

Database Normalization

This section introduces you to a powerful tool for designing databases, normalization

Database Normalization: 1st Normal FormDatabase Normalization: 2nd Normal FormDatabase Normalization: 3rd Normal FormDatabase Normalization: 4th Normal FormDatabase Normalization: 5th Normal Form and BeyondDatabase Normalization: Boyce-Codd Normal FormDatabase Normalization OverviewUnderstanding Denormalization
PreviousDatabase LifecycleNextDatabase Normalization: 1st Normal Form

Last updated 2 months ago

Was this helpful?

LogoLogo

Products

  • Enterprise Platform
  • Community Server
  • Download MariaDB
  • Pricing

Support

  • Customer Login
  • Technical Support
  • Remote DBA
  • Professional Services

Resources

  • MariaDB Blog
  • Webinars
  • Customer Stories
  • MariaDB Events
  • Documentation
  • Developer Hub

Company

  • About MariaDB
  • Newsroom
  • Leadership
  • MariaDB Careers
  • Legal
  • Privacy Policy

© 2025 MariaDB. All rights reserved.

This site uses cookies to deliver its service and to analyze traffic. By browsing this site, you accept the privacy policy.