-
- Normalization is a process of organizing data in a database so that it is free from redundancy and dependency.
- It helps to eliminate data inconsistencies and anomalies, thereby improving data integrity. Normalization is a
- set of rules or guidelines to design a database schema in such a way that it avoids data duplication, data
- redundancy, and data inconsistency.
-
+
+
+ Your browser doesn't support the features required by impress.js, so you are presented with
+ a simplified
+ version of this presentation.
-
-
-
-
-
-
-
-
username
-
level
-
rank
-
inventory
-
-
-
-
-
prombery87
-
7.75
-
Advanced
-
1 sword, 4 rings
-
-
-
wheed1997
-
Almost 7
-
Intermediate
-
18 copper coins
-
-
-
-
-
-
-
-
-
Insertion anomalies
-
-
- There are circumstances in which certain facts cannot be recorded at all.
-
+
+ For the best experience please use the latest Chrome, Safari or Firefox browser.
-
-
-
-
-
-
username
-
level
-
rank
-
inventory
-
-
-
-
-
prombery87
-
7.75
-
Advanced
-
1 sword, 4 rings
-
-
-
wheed1997
-
Almost 7
-
Intermediate
-
18 copper coins
-
-
-
acen1999
-
1
-
Beginner
-
-
-
-
-
-
- When a new player acen1999 join the game, they have nothing in their inventory.
- Therefore, the details of any player who have at least one item can be recorded, but a newly game member
- who has no items cannot be recorded, except by setting the inventory to null.
-
-
-
Update anomalies
-
-
- The same information can be expressed on multiple rows; therefore updates to
- the relation may result in logical inconsistencies.
-
-
-
-
-
-
-
-
username
-
level
-
rank
-
inventory
-
-
-
-
-
prombery87
-
7.75
-
Advanced
-
1 sword, 4 rings
-
-
-
acen1999
-
- 1
- 1
-
-
Beginner
-
- 1 wizard hat
- 1 wizard hat
-
-
-
-
wheed1997
-
- Almost 7
- Greater than 7
-
-
- Intermediate
- Intermediate
-
-
18 copper coins
-
-
-
acen1999
-
- 1
- 2
-
-
Beginner
-
- 1 wizard hat
- 1 wizard hat, 1 robe
-
-
-
-
-
-
- The same information can be expressed on multiple rows, therefore updates to the relation may result in
- logical inconsistencies. If the wheed1997 increase their level, when the
- rank should be updated as well. But if the update is only partial successful, then the
- relation is left in an inconsistent state. Specifically. the relation provides conflicting information
- on "level -- rank" for "wheed1997" player, and on "inventory" and "level" for "acen1999".
-
-
+
+
-
-
Deletion anomalies
-
-
- Under certain circumstances, the deletion of data representing certain facts
- necessitates the deletion of data representing completely different facts.
-
-
-
-
-
-
-
-
username
-
level
-
rank
-
inventory
-
-
-
-
-
prombery87
-
7.75
-
Advanced
-
1 sword, 4 rings
-
-
-
wheed1997
-
Almost 7
-
Intermediate
-
18 copper coins
-
-
-
acen1999
-
1
-
Beginner
-
1 wizard hat, 1 robe
-
-
-
-
-
- If a player looses their items completely, the record must be deleted, unless the inventory
- field is set to null. This leads to the loosing all other information about a player.
-
-
+
+
Database Normalization
+
+
+
+
+ Normalization is a process of organizing data in a database so that it is free from redundancy and
+ dependency.
+ It helps to eliminate data inconsistencies and anomalies, thereby improving data integrity.
+ Normalization is a set of rules or guidelines to design a database schema in such a way that it avoids
+ data
+ duplication, data redundancy, and data inconsistency.
+
+
+
+
+
+
+
Player Info
+
+
+
name
+
level
+
rating
+
inventory
+
+
+
+
+
prombery87
+
7.75
+
Advanced
+
1 sword, 4 rings
+
+
+
wheed1997
+
Almost 7
+
Intermediate
+
18 copper coins
+
+
+
+
+
+
+
Insertion anomalies
+
+
+ There are circumstances in which certain facts cannot be recorded at all.
+
+
+
+
+
+
Player Info
+
+
+
name
+
level
+
rating
+
inventory
+
+
+
+
+
prombery87
+
7.75
+
Advanced
+
1 sword, 4 rings
+
+
+
wheed1997
+
Almost 7
+
Intermediate
+
18 copper coins
+
+
+
acen1997
+
1
+
Beginner
+
+
+
+
+
+
+ When a new player acen1999 join the game, they have nothing in their inventory.
+ Therefore, the details of any player who have at least one item can be recorded, but a newly game member
+ who has no items cannot be recorded, except by setting the inventory to null.
+
+
+
+
Update anomalies
+
+
+ The same information can be expressed on multiple rows;
+ therefore updates to the relation may result in logical inconsistencies.
+
+
+
+
+
+
Player Info
+
+
+
name
+
level
+
rating
+
inventory
+
+
+
+
+
prombery87
+
7.75
+
Advanced
+
1 sword, 4 rings
+
+
+
acen1997
+
+ 1
+ 1
+
+
Beginner
+
1 robe, 1 wizard hat
+
+
+
wheed1997
+
Almost 7
+
Intermediate
+
18 copper coins
+
+
+
acen1997
+
+ 2
+ 1
+
+
Beginner
+
1 robe, 1 wizard hat
+
+
+
+
+
+ The same information can be expressed on multiple rows, therefore updates to the relation may result in
+ logical inconsistencies. If the wheed1997 increase their level, when the
+ rank should be updated as well. But if the update is only partial successful, then the
+ relation is left in an inconsistent state. Specifically. the relation provides conflicting information
+ on "level -- rank" for "wheed1997" player, and on "inventory" and "level" for "acen1999".
+
+
+
+
Deletion anomalies
+
+
+ Under certain circumstances, the deletion of data representing certain facts
+ necessitates the deletion of data representing completely different facts.
+
+
+
+
+
+
Player Info
+
+
+
name
+
level
+
rating
+
inventory
+
+
+
+
+
prombery87
+
7.75
+
Advanced
+
1 sword, 4 rings
+
+
+
wheed1997
+
Almost 7
+
Intermediate
+
18 copper coins
+
+
+
acen1997
+
1
+
Beginner
+
1 robe, 1 wizard hat
+
+
+
+
+
+ If a player looses their items completely, the record must be deleted, unless the inventory
+ field is set to null. This leads to the loosing all other information about a player.
+
+
+
+
+ First
+ normal form
+
+
+
Requirements
+
+
+ Row order should not be used to convey information.
+
+
+ Data types should not be mixed within the same column.
+ (and the RDBMS won't let you do it anyway)
+
+
+ Tables should have their primary keys.
+
+
+ Repeating groups should be eliminated.
+
+
+
+
+
+
+
+
Player Info
+
+
+
name
+
level
+
rating
+
inventory
+
+
+
+
+
prombery87
+
+ 7.75
+ 7
+
+
Advanced
+
1 sword, 4 rings
+
+
+
wheed1997
+
+
+ 6
+
+
Intermediate
+
18 copper coins
+
+
+
+
+
+
+
Player Info
+
+
+
name
+
level
+
rating
+
inventory
+
+
+
+
+
prombery87
+
7
+
Advanced
+
+ 1 sword, 4 rings
+ 1 sword
+
+
+
+
wheed1997
+
6
+
Intermediate
+
18 copper coins
+
+
+
prombery87
+
7
+
Advanced
+
4 rings
+
+
+
+
+
+
+
+
+
Player Inventory
+
+
+
name
+
level
+
rating
+
item_type
+
item_quantity
+
+
+
+
+
prombery87
+
7
+
Advanced
+
sword
+
1
+
+
+
prombery87
+
7
+
Advanced
+
ring
+
4
+
+
+
wheed1997
+
6
+
Intermediate
+
copper coin
+
18
+
+
+
acen1997
+
1
+
Beginner
+
robe
+
1
+
+
+
acen1997
+
1
+
Beginner
+
wizard hat
+
1
+
+
+
+
+
+
+
+
+ Row order should not be used to convey information.
+
+
+
+ Data types should not be mixed within the same column.
+
+
+
+ Tables should have their primary keys.
+
+
+
+ Repeating groups should be eliminated.
+
+
+
+
+
+
+ Second
+ normal form
+
+
+
Requirements
+
+
+ Each non-key attribute must depend on the entire primary key.
+
+
+
+
+
+
+
+
Player Inventory
+
+
+
name
+
level
+
rating
+
item_type
+
item_quantity
+
+
+
+
+
prombery87
+
7
+
Advanced
+
sword
+
1
+
+
+
prombery87
+
7
+
Advanced
+
ring
+
4
+
+
+
wheed1997
+
6
+
Intermediate
+
copper coin
+
18
+
+
+
acen1997
+
1
+
Beginner
+
robe
+
1
+
+
+
acen1997
+
1
+
Beginner
+
wizard hat
+
1
+
+
+
+
+
+
+
+
+
Player Inventory
+
+
+
name
+
item_type
+
item_quantity
+
+
+
+
+
prombery87
+
sword
+
1
+
+
+
prombery87
+
ring
+
4
+
+
+
wheed1997
+
copper coin
+
18
+
+
+
acen1997
+
robe
+
1
+
+
+
acen1997
+
wizard hat
+
1
+
+
+
+
+
Player Level
+
+
+
name
+
level
+
rating
+
+
+
+
+
prombery87
+
7
+
Advanced
+
+
+
wheed1997
+
6
+
Intermediate
+
+
+
acen1997
+
1
+
Beginner
+
+
+
+
+
+
+
+
+ Each non-key attribute must depend on the entire primary key.
+
+
+
+
+
+
+ Third
+ normal form
+
+
+
Requirements
+
+
+ Every non-key attribute in a table should depend on the key, the whole key, and nothing but the key.
+
+
+
+
+
+
+
+
Player Level
+
+
+
name
+
level
+
rating
+
+
+
+
+
prombery87
+
7
+
Advanced
+
+
+
wheed1997
+
6
+
Intermediate
+
+
+
acen1997
+
1
+
Beginner
+
+
+
+
+
+
+
+
+
Player Level
+
+
+
name
+
level
+
+
+
+
+
prombery87
+
7
+
+
+
wheed1997
+
6
+
+
+
acen1997
+
1
+
+
+
+
+
Level Ranking
+
+
+
level
+
rating
+
+
+
+
+
1
+
Beginner
+
+
+
2
+
Beginner
+
+
+
3
+
Beginner
+
+
+
4
+
Intermediate
+
+
+
5
+
Intermediate
+
+
+
6
+
Intermediate
+
+
+
7
+
Advanced
+
+
+
8
+
Advanced
+
+
+
9
+
Advanced
+
+
+
+
+
+
+
+
+ Every non-key attribute in a table should depend on the key, the whole key, and nothing but the key.
+
+
+
-
-
-
First normal form
-
-
Requirements
-
-
- Row order should not be used to convey information.
-
-
- Data types should not be mixed within the same column.
- (and the RDBMS won't let you do it anyway)
-
-
- Tables should have their primary keys.
-
-
- Repeating groups should be eliminated.
-
-
-
-
+
+
-
-
-
-
Player Level
-
-
-
username
-
level
-
-
-
-
-
prombery87
-
7.75
-
-
-
wheed1997
-
Almost 7
-
-
-
acen1999
-
1
-
-
-
-
-
Player Level
-
-
-
username
-
level
-
-
-
-
-
prombery87
-
7
-
-
-
wheed1997
-
6
-
-
-
acen1999
-
1
-
-
-
-
-
-
-
No mixed data types
-
-
-
No mixed data types
-
-
-
-
-
-
-
-
Player Inventory
-
-
-
username
-
inventory
-
-
-
-
-
prombery87
-
1 sword, 4 rings
-
-
-
wheed1997
-
18 copper coins
-
-
-
acen1999
-
1 wizard hat, 1 robe
-
-
-
-
-
Player Inventory
-
-
-
username
-
item_type
-
item_quantity
-
-
-
-
-
prombery87
-
sword
-
1
-
-
-
prombery87
-
ring
-
4
-
-
-
wheed1997
-
copper coin
-
18
-
-
-
acen1999
-
wizard hat
-
1
-
-
-
acen1999
-
robe
-
1
-
-
-
-
-
-
-
No mixed data types
-
No repeating groups
-
-
-
No mixed data types
-
No repeating groups
-
-
-
-
-
-
-
-
Player Inventory
-
-
-
username
-
item_type
-
item_quantity
-
-
-
-
-
prombery87
-
sword
-
1
-
-
-
prombery87
-
ring
-
4
-
-
-
wheed1997
-
copper coin
-
18
-
-
-
acen1999
-
wizard hat
-
1
-
-
-
acen1999
-
robe
-
1
-
-
-
-
-
-
-
Primary key applied
-
No mixed data types
-
No repeating groups
-
-
-
-
-
-
-
-
-
-
Second normal form
-
-
Requirements
-
-
- Each non-key attribute must depend on the entire primary key.
-
-
-
-
-
-
-
-
-
-
-
username
-
item_type
-
item_quantity
-
level
-
rank
-
-
-
-
-
prombery87
-
sword
-
1
-
7
-
Advanced
-
-
-
prombery87
-
ring
-
4
-
7
-
Advanced
-
-
-
wheed1997
-
copper coin
-
18
-
6
-
Intermediate
-
-
-
acen1999
-
wizard hat
-
1
-
1
-
Beginner
-
-
-
acen1999
-
robe
-
1
-
1
-
Beginner
-
-
-
-
-
-
-
- { name, item_type } <-- { item_quantity }
-
-
- { name } <-- { level }
-
-
-
-
-
-
-
-
-
Player Inventory
-
-
-
username
-
item_type
-
item_quantity
-
-
-
-
-
prombery87
-
sword
-
1
-
-
-
prombery87
-
ring
-
4
-
-
-
wheed1997
-
copper coin
-
1
-
-
-
acen1999
-
wizard hat
-
1
-
-
-
acen1999
-
robe
-
1
-
-
-
-
-
Player Level
-
-
-
username
-
level
-
rank
-
-
-
-
-
prombery87
-
7
-
Advanced
-
-
-
wheed1997
-
6
-
Intermediate
-
-
-
acen1999
-
1
-
Beginner
-
-
-
-
-
-
-
- { username, item_type } <-- { item_quantity }
-
-
- { username } <-- { level }
-
-
-
-
-
-
-
-
-
-
-
Third normal form
-
-
Requirements
-
-
- Every non-key attribute in a table should depend on the key, the whole key, and nothing but the key.
-