TutorChase logo
Login
AQA A-Level Computer Science

19.3.2 Steps of Normalisation (1NF to 3NF)

Normalisation is the step-by-step process of refining a database structure to minimise redundancy and dependency. It organises data into logical units to enhance consistency and efficiency.

What is normalisation?

Normalisation is a systematic method of organising data in a relational database to reduce data redundancy and improve data integrity. The process involves dividing large tables into smaller, more manageable ones and defining relationships between them. Each stage of this process is known as a normal form, and the most commonly applied are:

  • First Normal Form (1NF)

  • Second Normal Form (2NF)

  • Third Normal Form (3NF)

Each normal form addresses specific issues with data structure, and the aim is to make the data more efficient to manage while preserving its logical meaning.

Key terminology

Before discussing the steps of normalisation, it's essential to understand the key terms used in the process:

  • Attribute: A named column in a table that holds values for a particular property of the entity. For example, StudentName, StudentID, or Course.

  • Primary key: A field or combination of fields that uniquely identifies each record in a table. For instance, StudentID may be a primary key in a Students table.

Take your grades to the next level!

UPGRADING TO PREMIUM UNLOCKS
AI Tutor
AI-powered study assistant
instant feedback and guidance
Predicted Papers
Examiner-style predicted papers
based on recent exam trends
Practice Questions
All exam practice questions
by topic for each subject
Study Notes
All detailed revision notes
written by expert teachers
Cheat Sheets
Quick revision summaries
perfect for last-minute review
Past Papers
Complete collection
of practice and past exam papers
Email
Password
Confirm Password
Already have an account?

Practice Questions

FAQ

Not always. While 3NF provides strong theoretical benefits like reducing redundancy and improving data consistency, there are trade-offs when applying it in real-world systems. Highly normalised databases involve more tables and thus require more joins during queries. This can lead to performance overhead, especially in read-heavy applications where speed is critical. For example, retrieving all customer order details from multiple related tables in a fully normalised schema may require complex joins that slow down query execution. In practice, database designers may choose to denormalise selectively, storing some redundant data to optimise performance and reduce the need for joins. Denormalisation is also common in data warehousing environments where rapid analytical queries are prioritised over strict consistency. Therefore, while 3NF is important for data integrity and logical structure, practical considerations such as performance and simplicity may lead to alternative approaches depending on the context and system requirements.

To determine whether a dependency is partial or transitive in a complex relation, start by clearly identifying the primary key. If the primary key is composite (consisting of multiple attributes), evaluate whether each non-key attribute depends on the full composite key. If a non-key attribute relies on only part of the composite key, it is a partial dependency, which violates 2NF. After removing partial dependencies and achieving 2NF, analyse the remaining non-key attributes. If any non-key attribute is functionally dependent on another non-key attribute rather than directly on the primary key, it is a transitive dependency, which violates 3NF. A dependency is transitive if A → B and B → C, meaning C depends on A through B. It helps to draw dependency diagrams or use a dependency matrix to trace how attributes relate. This approach is especially useful in relations with many attributes where identifying indirect relationships is not always straightforward.

If a relation violates multiple normal forms—such as 1NF, 2NF, and 3NF—then you must address the violations in order, starting with the lowest form. Begin by converting the relation to 1NF, ensuring that all attributes contain only atomic values and removing repeating groups. Next, examine the structure for partial dependencies—if the primary key is composite, check whether each non-key attribute depends on the entire key. Decompose the relation to eliminate these, achieving 2NF. Finally, check for transitive dependencies among non-key attributes. If found, further decompose to ensure each non-key attribute depends directly on the primary key, thus reaching 3NF. It’s essential to follow this progression because a relation must satisfy one normal form before the next can be properly applied. Skipping steps or addressing higher-level forms first may lead to incomplete decomposition, missed anomalies, or incorrect relational structure. Each step lays the foundation for the next.

Normalisation significantly reduces the risk of insert, update, and delete anomalies by organising data so that each fact is stored in only one place. In an unnormalised or poorly normalised database, insert anomalies occur when a new record cannot be added due to missing data in other fields—for example, being unable to add a new course without also entering a student. Update anomalies arise when the same piece of data is stored in multiple places, requiring changes in multiple records—like updating a course name in several student records. Delete anomalies occur when deleting one piece of data unintentionally removes other important data—such as deleting a student record that also contains unique course information. By progressing to 3NF, each table contains only related data, and dependencies are well defined, so data can be inserted, updated, or deleted independently without unintended side effects. This improves consistency and ensures integrity across the entire database.

Yes, a relation with a single-attribute primary key can be in both 2NF and 3NF, and it typically satisfies 2NF by default. Since 2NF is specifically concerned with eliminating partial dependencies—where a non-key attribute depends on only part of a composite primary key—having a single-attribute key means partial dependencies cannot exist. Therefore, the relation is automatically in 2NF. However, being in 2NF does not guarantee 3NF. You must still check for transitive dependencies to ensure 3NF is met. For instance, if a table has a primary key EmployeeID and includes attributes like EmployeeName, DepartmentID, and DepartmentName, DepartmentName may transitively depend on EmployeeID through DepartmentID. To bring the relation into 3NF, you must separate these dependencies into different tables. In summary, single-attribute primary keys remove the need to consider 2NF, but 3NF still requires examining non-key-to-non-key dependencies and restructuring where necessary.

Hire a tutor

Please fill out the form and we'll find a tutor for you.

1/2
Your details
Alternatively contact us via
WhatsApp, Phone Call, or Email