Normalization is a database design technique
which organizes tables in a manner that
reduces redundancy and dependency of data.
It divides larger tables to smaller tables and
links them using relationships.
During modification if any of the row missed
out if any of the data would not get updated
It will lead to inconsistent data hence data
redundancy also leads to inconsistency in
data, as a result of updation anomaly.
Functional dependency
Fully functional dependency
Partial dependency
Transitive dependency
Multi-valued dependency
Trivial functional dependency
Non-Trivial functional dependency
Lossy decomposition
Non-Lossy decomposition(Lossless)
In simple words Normalization is a systematic way of
ensuring that a database structure is suitable for general-
purpose querying and free of certain undesirable
characteristics—insertion, update, and deletion anomalies—
that could lead to a loss of data integrity.
the goal of data normalization is to reduce data redundancy,
an important consideration for application developers
because it is incredibly difficult to stores objects in a
relational database that maintains the same information in
several places.
Database normalization is the process of
restructuring a relational database in
accordance with a series of so-called
normal forms in order to reduce data
redundancy and improve data integrity.
Normalization is conceptually cleaner and
easier to maintain and change as your needs
change.
ALL other attributes depends upon student_id
or subject_id except total_marks,total_marks
depends upon exam_name which is not a part
of primary key.
When there is an attribute in a table which
depends on some non-prime attribute and
not on prime attribute ,which is termed as
Transitive dependency.
AS total_marks depends upon exam_name
which is a non-prime attribute.
How to make the table satisfy BCNF?
Not used practically.
A relation is in 5 NF if it is in 4NF and not having
any join dependency and joining is lossless.
Join dependency exists if we decompose a
relation R into R1, R2--- Rn and later on if we try
to join R1, R2---Rn back in any order, we will not
be able to get the exact R relation.
Lossless means there should be no loss of tuples
and there should be no extra tuples also.