Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 32

First Normal Form (1NF) Requirements

Recommended resources

Hello! In our last lesson, we explored functional dependencies, which describe how attributes within a table relate to one another. We learned to identify when one attribute's value uniquely determines another's (e.g., StudentID → StudentName).

This lesson builds directly on that foundation as we begin the process of normalization. We will focus on the first major milestone: First Normal Form (1NF). By the end of this session, you will be able to state the specific requirements a table must meet to be considered in 1NF. This is the essential first step in creating a clean, efficient, and well-structured database.

1. The Core Idea of 1NF: Atomicity

The central principle of First Normal Form is atomicity. An attribute is atomic if its values are indivisible. In practical terms, this means that each cell in your table should hold only one, single piece of information. You cannot have lists, repeating groups, or composite data stuffed into a single field.

A table that meets this and a few other basic criteria is said to be in 1NF. The image below provides a great visual summary of the requirements and shows a clear violation of the atomicity rule.

Database Normalization - First Normal Form (1NF) Requirements and Example
This image lists the key requirements for 1NF and highlights a common violation: placing multiple phone numbers in a single cell, which breaks the rule that fields must be atomic.

2. The Four Rules of First Normal Form

For a table to be in 1NF, it must satisfy four main conditions. While some of these might seem like common sense given your IT background, formally stating them is crucial for the structured process of normalization.

A table is in 1NF if it meets the following criteria:

  1. Each column must contain only atomic (single) values. This is the most important rule. A column like Subjects cannot contain "Math, Science, History" in a single cell.
  2. All values in a column must be of the same domain. This means a column designed for dates should only contain dates, not a mix of dates and names.
  3. Each column must have a unique name. This is fundamental for being able to reference columns without ambiguity.
  4. The order in which data is stored (either rows or columns) does not matter. This is an inherent property of the relational model, which sees tables as sets of data.

To see these rules explained with a clear example, please watch the following video.

First Normal Form (1NF) | Database Normalization | DBMS

This video, "First Normal Form (1NF) | Database Normalization | DBMS" by Studytonight with Abhishek, clearly breaks down the rules and shows how to handle a common violation.

First, watch the segment that explains the four rules of 1NF. Then, see how these rules are applied in a practical example, where a multi-valued 'Subject' column is resolved.

As the video demonstrates, the most common violation of 1NF is having multi-valued attributes. The solution is to create separate rows for each value, even if it means repeating other information in the row.


3. Identifying 1NF Violations

Let's practice identifying violations. Consider the following table designed to store information about projects and the employees assigned to them.

ProjectID ProjectName Employees (ID, Name) Deadlines
P101 Web App (E1, Alice), (E3, Charlie) 2024-10-15, 2024-11-30
P102 Mobile App (E2, Bob) 2024-12-01
P103 DB Migration (E1, Alice), (E2, Bob) 2025-01-20, 2025-02-15

Which columns in this table violate the rules of 1NF? Take a moment to think about it before checking the explanation below.

Click here for the solution and explanation

Two columns in this table violate the atomicity rule of 1NF:

  1. Employees (ID, Name): This column is not atomic for two reasons. First, it contains a list of multiple employees (e.g., for project P101). Second, each entry within that list is itself composite, containing both an ID and a Name. A single cell should not hold this structured, multi-part information.

  2. Deadlines: This column also violates 1NF because it contains a list of multiple dates in a single cell for projects P101 and P103.

To bring this table into 1NF, we would need to restructure it to ensure every cell holds only a single value. The image below illustrates exactly this kind of transformation.

Conversion to First Normal Form (1NF)
This image shows how a table with a multi-valued attribute (STUD_PHONE) is converted to 1NF. The repeating phone numbers are placed in separate rows, ensuring each cell contains a single, atomic value.

For a final reinforcement of these concepts, the following article provides a concise summary of 1NF criteria and common violations.

What is First Normal Form (1NF) in DBMS? Explained with Examples

This article from Codecademy offers clear, to-the-point definitions in its FAQ section.

Please read the "Frequently asked questions" section at the end of the article. Focus on the answers to these two questions: "How do you know if a table is in first normal form?" "What are common 1NF violations?"


Conclusion

In this lesson, we have defined the first, fundamental level of database normalization. Achieving 1NF cleans up the most basic structural problems in a table, setting the stage for more advanced normalization.

Key Takeaways:

  • A table is in First Normal Form (1NF) if it adheres to four main rules.
  • The most critical rule is that all attributes must be atomic, meaning each cell can only contain a single, indivisible value.
  • Common violations include storing lists of items (e.g., multiple phone numbers) or composite data (e.g., a full address) in a single field.
  • 1NF is the necessary foundation upon which Second and Third Normal Forms are built.

Now that you can identify the requirements for 1NF and spot violations, our next lesson will focus on the practical steps. We will learn how to formally convert an unnormalized table into 1NF by removing repeating groups and resolving multi-valued attributes.