Read the full article below (in Italian):


The larger your database, the higher the possibility of data repetition and inaccuracies that compromise the results you pull from the database. Normalization in DBMS exists to counteract those problems by helping you to create more uniform databases in which redundancies are less likely to occur.
Mastering normalization is a key skill in DBMS for the simple fact that an error-strewn database is of no use to an organization. For example, a retailer that has to deal with a database that has multiple entries for phone numbers and email addresses is a retailer that can’t see as effectively as one that has a simple route to the customer. Let’s look at normalization in DBMS and how it helps you to create a more organized database.
The Concept of Normalization
Grab a pack of playing cards and throw them onto the floor. Now, pick up the “Jack of Hearts.” It’s a tough task because the cards are strewn all over the place. Some are facing down and there’s no rhyme, reason, or pattern to how the cards lie, meaning you’re going to have to check every card individually to find the one you want.
That little experiment shows you how critical organization is, even with a small set of “data.” It also highlights the importance of normalization in DBMS. Through normalization, you implement organizational controls using a set of principles designed to achieve the following:
- Eliminate redundancy – Lower (or eliminate) occurrences of data repeating across different tables, or inside individual tables, in your DBMS.
- Minimize data anomalies – Better organization makes it easier to spot datasets that don’t fit the “norm,” meaning fewer anomalies.
- Improve data integrity – More accurate data comes from normalization controls. Database users can feel more confident in their results because they know that the controls ensure integrity.
The Process of Normalization
If normalization in DBMS is all about organization, it stands to reason that they would be a set process to follow when normalizing your tables and database:
- Decompose your tables – Break every table down into its various parts, which may lead to you creating several tables out of one. Through decomposition, you separate different datasets, eliminate inconsistencies, and set the stage for creating relationships and dependencies between tables.
- Identify functional dependencies – An attribute in one table may be dependent on another to exist. For example, a “Customer ID” number in a retailer’s “Customer” table is functionally dependent on the “Customer Name” field because the ID can’t exist without the customer. Identifying these types of dependencies ensures you don’t end up with empty records (such as a record with a “Customer ID” and no customer attached to it).
- Apply normalization rules – Once you’re broken down your table and identified the functional dependencies, you apply relevant normalization rules. You’ll use Normal Forms to do this, with the six highlighted below each having its own rules, structures, and use cases.
Normal Forms in DBMS
There isn’t a “single” way to achieve normalization in DBMS because every database (and the tables it contains) is different. Instead, there are six normal forms you may use, with each having its own rules that you need to understand to figure out which to apply.
First Normal Form (1NF)
If a relation can’t contain multiple values, it’s in 1NF. In other words, each attribute in the table can only contain a single (called “atomic”) value.
Example
If a retailer wants to store the details of its customers, it may have attributes in its table like “Customer Name,” “Phone Number,” and “Email Address.” By applying 1NF to this table, you ensure that the attributes that could contain multiple entries (“Phone Number” and “Email Address”) only contain one, making contacting that customer much simpler.
Second Normal Form (2NF)
A table that’s in 2NF is in 1NF, with the additional condition that none of its non-prime attributes depend on a subset of candidate keys within the table.
Example
Let’s say an employer wants to create a table that contains information about an employee, the skills they have, and their age. An employee may have multiple skills, leading to multiple records for the same employee in the table, with each denoting a skill while the ID number and age of the employee repeat for each record.
In this table, you’ve achieved 1NF because each attribute has an atomic value. However, the employee’s age is dependent on the employee ID number. To achieve 2NF, you’d break this table down into two tables. The first will contain the employee’s ID number and age, with that ID number linking to a second table that lists each of the skills associated with the employee.
Third Normal Form (3NF)
In 3NF, the table you have must already be in 2NF form, with the added rule of removing the transitive functional dependency of the non-prime attribute of any super key. Transitive functional dependency occurs if the dependency is the result of a pair of functional dependencies. For example, the relationship between A and C is a transitive dependency if A depends on B, B depends on C, but B doesn’t depend on A.
Example
Let’s say a school creates a “Students” table with the following attributes:
- Student ID
- Name
- Zip Code
- State
- City
- District
In this case, the “State,” “District,” and “City” attributes all depend on the “Zip Code” attribute. That “Zip” attribute depends on the “Student ID” attribute, making “State,” “District,” and “City” all transitively depending on “Student ID.”
To resolve this problem, you’d create a pair of tables – “Student” and “Student Zip.” The “Student” table contains the “Student ID,” “Name,” and “Zip Code” attributes, with that “Zip Code” attribute being the primary key of a “Student Zip” table that contains the rest of the attributes and links to the “Student” table.
Boyce-Codd Normal Form (BCNF)
Often referred to as 3.5NF, BCNF is a stricter version of 3NF. So, this normalization in DBMS rule occurs if your table is in 3NF, and for every functional dependence between two fields (i.e., A -> B), A is the super key of your table.
Example
Sticking with the school example, every student in a school has multiple classes. The school has a table with the following fields:
- Student ID
- Nationality
- Class
- Class Type
- Number of Students in Class
You have several functional dependencies here:
- Student ID -> Nationality
- Class -> Number of Students in Class, Class Type
As a result, both the “Student ID” and “Class” attributes are candidate keys but can’t serve as keys alone. To achieve BCNF normalization, you’d break the above table into three – “Student Nationality,” “Student Class,” and “Class Mapping,” allowing “Student ID” and “Class” to serve as primary keys in their own tables.
Fourth Normal Form (4NF)
In 4NF, the database must meet the requirements of BCNF, in addition to containing no more than a single multivalued dependency. It’s often used in academic circles, as there’s little use for 4NF elsewhere.
Example
Let’s say a college has a table containing the following fields:
- College Course
- Lecturer
- Recommended Book
Each of these attributes is independent of the others, meaning each can change without affecting the others. For example, the college could change the lecturer of a course without altering the recommended reading or the course’s name. As such, the existence of the course depends on both the “Lecturer” and “Recommended Book” attributes, creating a multivalued dependency. If a DBMS has more than one of these types of dependencies, it’s a candidate for 4NF normalization.
Fifth Normal Form (5NF)
If your table is in 4NF, has no join dependencies, and all joining is lossless, it’s in 5NF. Think of this as the final form when it comes to normalization in DBMS, as you’ve broken your table down so much that you’ve made redundancy impossible.
Example
A college may have a table that tells them which lecturers teach certain subjects during which semesters, creating the following attributes:
- Subject
- Lecturer Name
- Semester
Let’s say one of the lecturers teaches both “Physics” and “Math” for “Semester 1,” but doesn’t teach “Math” for Semester 2. That means you need to combine all of the fields in this table to get an accurate dataset, leading to redundancy. Add a third semester to the mix, especially if that semester has no defined courses or lecturers, and you have to join dependencies.
The 5NF solution is to break this table down into three tables:
- Table 1 – Contains the “Semester” and “Subject” attributes to show which subjects are taught in each semester.
- Table 2 – Contains the “Subject” and “Lecturer Name” attributes to show which lecturers teach a subject.
- Table 3 – Contains the “Semester” and “Lecturer Name” attributes so you can see which lecturers teach during which semesters.
Benefits of Normalization in DBMS
With normalization in DBMS being so much work, you need to know the following benefits to show that it’s worth your effort:
- Improved database efficiency
- Better data consistency
- Easier database maintenance
- Simpler query processing
- Better access controls, resulting in superior security
Limitations and Trade-Offs of Normalization
Normalization in DBMS does have some drawbacks, though these are trade-offs that you accept for the above benefits:
- The larger your database gets, the more demands it places on system performance.
- Breaking tables down leads to complexity.
- You have to find a balance between normalization and denormalization to ensure your tables make sense.
Practical Tips for Mastering Normalization Techniques
Getting normalization in DBMS is hard, especially when you start feeling like you’re dividing tables into so many small tables that you’re losing track of the database. These tips help you apply normalization correctly:
- Understand the database requirements – Your database exists for you to extract data from it, so knowing what you’ll need to extract indicates whether you need to normalize tables or not.
- Document all functional dependencies – Every functional dependence that exists in your database makes the table in which it exists a candidate for normalization. Identify each dependency and document it so you know whether you need to break the table down.
- Use software and tools – You’re not alone when poring through your database. There are plenty of tools available that help you to identify functional dependencies. Many make normalization suggestions, with some even being able to carry out those suggestions for you.
- Review and refine – Every database evolves alongside its users, so continued refining is needed to identify new functional dependencies (and opportunities for normalization).
- Collaborate with other professionals – A different set of eyes on a database may reveal dependencies and normalization opportunities that you don’t see.
Make Normalization Your New Norm
Normalization may seem needlessly complex, but it serves the crucial role of making the data you extract from your database more refined, accurate, and free of repetition. Mastering normalization in DBMS puts you in the perfect position to create the complex databases many organizations need in a Big Data world. Experiment with the different “normal forms” described in this article as each application of the techniques (even for simple tables) helps you get to grips with normalization.
Related posts

Source:
- Agenda Digitale, published on June 16th, 2025
By Lokesh Vij, Professor of Cloud Computing Infrastructure, Cloud Development, Cloud Computing Automation and Ops and Cloud Data Stacks at OPIT – Open Institute of Technology
NIST identifies five key characteristics of cloud computing: on-demand self-service, network access, resource pooling, elasticity, and metered service. These pillars explain the success of the global cloud market of 912 billion in 2025

You’ve probably seen two of the most recent popular social media trends. The first is creating and posting your personalized action figure version of yourself, complete with personalized accessories, from a yoga mat to your favorite musical instrument. There is also the Studio Ghibli trend, which creates an image of you in the style of a character from one of the animation studio’s popular films.
Both of these are possible thanks to OpenAI’s GPT-4o-powered image generator. But what are you risking when you upload a picture to generate this kind of content? More than you might imagine, according to Tom Vazdar, chair of cybersecurity at the Open Institute of Technology (OPIT), in a recent interview with Wired. Let’s take a closer look at the risks and how this issue ties into the issue of responsible artificial intelligence.
Uploading Your Image
To get a personalized image of yourself back from ChatGPT, you need to upload an actual photo, or potentially multiple images, and tell ChatGPT what you want. But in addition to using your image to generate content for you, OpenAI could also be using your willingly submitted image to help train its AI model. Vazdar, who is also CEO and AI & Cybersecurity Strategist at Riskoria and a board member for the Croatian AI Association, says that this kind of content is “a gold mine for training generative models,” but you have limited power over how that image is integrated into their training strategy.
Plus, you are uploading much more than just an image of yourself. Vazdar reminds us that we are handing over “an entire bundle of metadata.” This includes the EXIF data attached to the image, such as exactly when and where the photo was taken. And your photo may have more content in it than you imagine, with the background – including people, landmarks, and objects – also able to be tied to that time and place.
In addition to this, OpenAI also collects data about the device that you are using to engage with the platform, and, according to Vazdar, “There’s also behavioral data, such as what you typed, what kind of image you asked for, how you interacted with the interface and the frequency of those actions.”
After all that, OpenAI knows a lot about you, and soon, so could their AI model, because it is studying you.
How OpenAI Uses Your Data
OpenAI claims that they did not orchestrate these social media trends simply to get training data for their AI, and that’s almost certainly true. But they also aren’t denying that access to that freely uploaded data is a bonus. As Vazdar points out, “This trend, whether by design or a convenient opportunity, is providing the company with massive volumes of fresh, high-quality facial data from diverse age groups, ethnicities, and geographies.”
OpenAI isn’t the only company using your data to train its AI. Meta recently updated its privacy policy to allow the company to use your personal information on Meta-related services, such as Facebook, Instagram, and WhatsApp, to train its AI. While it is possible to opt-out, Meta isn’t advertising that fact or making it easy, which means that most users are sharing their data by default.
You can also control what happens with your data when using ChatGPT. Again, while not well publicized, you can use ChatGPT’s self-service tools to access, export, and delete your personal information, and opt out of having your content used to improve OpenAI’s model. Nevertheless, even if you choose these options, it is still worth it to strip data like location and time from images before uploading them and to consider the privacy of any images, including people and objects in the background, before sharing.
Are Data Protection Laws Keeping Up?
OpenAI and Meta need to provide these kinds of opt-outs due to data protection laws, such as GDPR in the EU and the UK. GDPR gives you the right to access or delete your data, and the use of biometric data requires your explicit consent. However, your photo only becomes biometric data when it is processed using a specific technical measure that allows for the unique identification of an individual.
But just because ChatGPT is not using this technology, doesn’t mean that ChatGPT can’t learn a lot about you from your images.
AI and Ethics Concerns
But you might wonder, “Isn’t it a good thing that AI is being trained using a diverse range of photos?” After all, there have been widespread reports in the past of AI struggling to recognize black faces because they have been trained mostly on white faces. Similarly, there have been reports of bias within AI due to the information it receives. Doesn’t sharing from a wide range of users help combat that? Yes, but there is so much more that could be done with that data without your knowledge or consent.
One of the biggest risks is that the data can be manipulated for marketing purposes, not just to get you to buy products, but also potentially to manipulate behavior. Take, for instance, the Cambridge Analytica scandal, which saw AI used to manipulate voters and the proliferation of deepfakes sharing false news.
Vazdar believes that AI should be used to promote human freedom and autonomy, not threaten it. It should be something that benefits humanity in the broadest possible sense, and not just those with the power to develop and profit from AI.
Responsible Artificial Intelligence
OPIT’s Master’s in Responsible AI combines technical expertise with a focus on the ethical implications of AI, diving into questions such as this one. Focusing on real-world applications, the course considers sustainable AI, environmental impact, ethical considerations, and social responsibility.
Completed over three or four 13-week terms, it starts with a foundation in technical artificial intelligence and then moves on to advanced AI applications. Students finish with a Capstone project, which sees them apply what they have learned to real-world problems.
Have questions?
Visit our FAQ page or get in touch with us!
Write us at +39 335 576 0263
Get in touch at hello@opit.com
Talk to one of our Study Advisors
We are international
We can speak in: