SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Normalization
Re-edited by:
Oum Saokosal
Master of Engineering in Information
Systems,
Jeonju University, South Korea
012-252-752
oum_saokosal@yahoo.com
Normalization
Normalization: the process of converting
complex data structures into simple, stable
data structures.
The main idea is to avoid duplication of large
data.
Why normalization?
 The relation derived from the user view or data
store will most likely be unnormalized.
 The problem usually happens when an existing
system uses unstructured file, e.g. in MS Excel.
The Three Steps of
Normalization
The standard normalization has more
than three steps:
 First Normal Form (1NF)
 Second Normal Form (2NF)
 Third Normal Form (3NF)
 Boyce-Codd Normal Form (BCNF)
 Fourth Normal Form (4NF)
 Fifth Normal Form (5NF)
 Domain/Key Normal Form (DKNF)
However, only three steps (1NF, 2NF,
3NF) are sufficient for normalization.
I. First Normal Form (1NF)
The official qualifications for 1NF are:
1. Each attribute must have a unique name.
2. Each attribute must have a single value.
3. Row cannot be duplicated.
4. There is no repeating groups.
Additional:
1. Choose a primary key. The primary key
can be an attribute or combined attributes.
Name DOB Course Payment
Sok 11/5/1990 IT 450 Dollars
Sao 4/4/1989 Mgt 400 Dollars
Chan 7/7/1991 IT Mgt IT: 450 Dollars
Mgt: 400 Dollars
Sok 11/5/1990 Mgt 400 Dollars
Sao 4/4/1989 Tour 1) 200 Dollars
2) 200 Dollars
1. Each attribute has unique name -> Good
2. The Payment has multi data type (currency & string) -> Bad
3. All rows are not duplicated -> Good
4. The Course and Payment have repeating groups -> Bad
Name DOB Course Payment ($)
Sok 11/5/1990 IT 450
Sao 4/4/1989 Mgt 400
Chan 7/7/1991 IT 450
Chan 7/7/1991 Mgt 400
Sok 11/5/1990 Mgt 400
Sao 4/4/1989 Tour 200
Sao 4/4/1989 Tour 200
All correct?
Name? No. Name has duplicated values.
Or DOB, or Course or Payment? No. Each one has duplicated values.
Name and DOB? No. They still have duplicated values.
Name and DOB and Course? No. Still duplicated.
Combine all attribute? Still no. The last two rows are duplicated.
So what else we can do?
Of course, there is a way. Add a new attribute to be a
primary key. So let’s call it ID.
Not yet. Choose a primary key.
ID Name DOB Course Payment
1 Sok 11/5/1990 IT 450
2 Sao 4/4/1989 Mgt 400
3 Chan 7/7/1991 IT 450
4 Chan 7/7/1991 Mgt 400
5 Sok 11/5/1990 Mgt 300
6 Sao 4/4/1989 Tour 200
7 Sao 4/4/1989 Tour 200
Now it is completely in 1NF.
Next, check it if it is not in 2NF.
II. Second Normal Form (2NF)
The official qualifications for 2NF are:
1. A table is already in 1NF.
2. All nonkey attributes are fully dependent
on the primary key.
All partial dependencies are removed and
placed in another table.
CourseID Semester Num Student Course Name
IT101 2013-1 25 Database
IT101 2013-2 25 Database
IT102 2013-1 30 Web Prog
IT102 2013-2 35 Web Prog
IT103 2014-1 20 Networking
Assume you have a table below contain a primary (CourseID + Semester):
Primary Key
The Course Name depends on only CourseID, a part of the primary key
not the whole primary (CourseID + Semester).It’s called partial dependency.
Solution:
Remove CourseID and Course Name together
to create a new table.
CourseID Course Name
IT101 Database
IT101 Database
IT102 Web Prog
IT102 Web Prog
IT103 Networking
Semester
Done?
Oh no, it is still not in 1NF yet.
You have to remove the repeating
groups too.
CourseID Course Name
IT101 Database
IT102 Web Prog
IT103 Networking
CourseID Semester Num Student
IT101 2013-1 25
IT101 2013-2 25
IT102 2013-1 30
IT102 2013-2 35
IT103 2014-1 20
1
M
III. Third Normal Form (3NF)
The official qualifications for 3NF are:
1. A table is already in 2NF.
2. Nonprimary key attributes do not depend
on other nonprimary key attributes (i.e. no
transitive dependencies)
All transitive dependencies are removed and
placed in another table.
StudyID Course Name Teacher Name Teacher Tel
1 Database Sok Piseth 012 123 456
2 Database Sao Kanha 0977 322 111
3 Web Prog Chan Veasna 012 412 333
4 Web Prog Chan Veasna 012 412 333
5 Networking Pou Sambath 077 545 221
Assume you have a table below contain a primary (StudyID):
Primary Key
The Teacher Tel is a nonkey attribute, and
the Teacher Name is also a nonkey atttribute.
But Teacher Tel depends on Teacher Name.
It is called transitive dependency.
Solution:
Remove Teacher Name and Teacher Tel together
to create a new table.
Teacher Name Teacher Tel
Sok Piseth 012 123 456
Sao Kanha 0977 322 111
Chan Veasna 012 412 333
Chan Veasna 012 412 333
Pou Sambath 077 545 221
Done?
Oh no, it is still not in 1NF yet.
So you have to remove
the repeating groups,
and add a primary key.
Teacher Name Teacher Tel
Sok Piseth 012 123 456
Sao Kanha 0977 322 111
Chan Veasna 012 412 333
Pou Sambath 077 545 221
Note about primary key:
- In theory, you can choose
Teacher Name to be a primary key.
- But in practice, you should add
Teacher ID as the primary key.
T.ID Teacher Name Teacher Tel
T1 Sok Piseth 012 123 456
T2 Sao Kanha 0977 322 111
T3 Chan Veasna 012 412 333
T4 Pou Sambath 077 545 221
StudyID Course Name T.ID
1 Database T1
2 Database T2
3 Web Prog T3
4 Web Prog T3
5 Networking T4
M
1
ID Name DOB Course Payment
1 Sok 11/5/1990 IT 450
2 Sao 4/4/1989 Mgt 400
3 Chan 7/7/1991 IT 450
4 Chan 7/7/1991 Mgt 400
5 Sok 11/5/1990 Mgt 300
6 Sao 4/4/1989 Tour 200
7 Sao 4/4/1989 Tour 200
What about this table?
In case of the above table, there is no 2NF because the primary key
is only one attribute, not the combined attributes.
Therefore, you can skip 2NF and move to 3NF.
In 3NF, you must remove transitive dependency.
Both Name and DOB does not depend on ID. So remove them.
Both Course and Payment does not depend on ID. So remove them.
ID Name DOB
S1 Sok 11/5/1990
S2 Chan 7/7/1991
S3 Sao 4/4/1989
CourseID Course
C1 IT
C2 Mgt
C3 Tour
Student Course
Payment
PID SID Course Payment
1 S1 C1 $450
2 S3 C2 $400
3 S2 C3 $450
4 S2 C2 $400
5 S1 C2 $300
6 S2 C3 $200
7 S2 C3 $200
1
M
1
M
Student Course
PaymentM N
PaymentID Payment
For the Payment table, it is not done yet.
It is a relationship between Student and Course.
Stop at 3NF
The most commonly used normal forms:
 First Normal Form (1NF)
 Second Normal Form (2NF)
 Third Normal Form (3NF)
Highest normalization is not always desirable
 More JOINS are required
 Affect data retrieval performance/high response
time
 For most business database design purposes, 3NF is
as high as we need to go in normalization process
Normalization in Real-World
When you newly create a table in a database
tool, e.g. MS Access, SQL Server, MySQL, or
Oracle, you won’t need all the steps.
The mentioned tools help you to overcome the
1NF already.
The 2NF happens when the primary key is
combine attributes, e.g. StudentName + DOB.
But to do so is unpractical.
Mostly, you only use 3NF. Because it can
remove all transitive dependency.
Functional Dependency
A Bit More About Theory
Functional Dependencies
20
An important concept associated with
normalization is functional dependency
which describes the relationship between
attributes.
Functional Dependencies
21
Functional dependency can be divided
into two types:
 Full functional dependency/Partial
dependency (PD)
• Will be used to transform 1NF  2NF
 Transitive dependency (TD)
• Will be used to transform 2NF  3NF
Functional Dependencies
22
Multivalued Attributes (or repeating groups): non-
key attributes or groups of non-key attributes the
values of which are not uniquely identified by
(directly or indirectly) (not functionally dependent on)
the value of the Primary Key (or its part).
1st row
2nd row
Relational Schema
STUDENT(Stud_ID, Name, (Course_ID, Units))
Functional Dependencies
23
Partial Dependency – when an non-key attribute is
determined by a part, but not the whole, of a
COMPOSITE primary key (The Primary Key must be a
Composite Key).
Cust_ID → Name
Functional Dependencies
24
Transitive Dependency – when a non-key attribute
determines another non-key attribute.
Dept_ID → Dept_Name
Functional Dependencies
25
 Consider a relation with attributes A and B, where attribute B is
functionally depends on attribute A. Let say an A is a PK of R.
 To describe the relationship between attributes A and B is to say
that “A functionally determines B”.
A B
B is functionally
depends on A
R(A,B)
A  B
Functional Dependencies
26
When a functional dependency exist, the attribute or
group of attributes on the left-handed side of the
arrow is called determinant.
Determinant:
Refers to the attributes, or a group of attributes, on the
left handed side of the arrow of a functional dependency.
A B
A functionally
determines B
staffNO sName position salary branchNo
S21 Johan Manager 3000 B005
S37 Ana Assistant 1200 B003
S14 Daud Supervisor 1800 B003
S9 Mary Assistant 900 B007
S5 Siti Manager 2400 B003
S41 Jani Assistant 900 B005
branchNO bAddress
B005 123, Kepong
B007 456, Nilai
B003 789, PTP
27
staff
branch
Functional Dependencies
Determinant
Functional Dependencies
28
Consider the attributes staffNO and position of the
staff relation.
For a specific staffNO (S21), we can determine the
position of that member of staff as Manager.
staffNO functionally determines position.
Staff number (S21) Position (manager)
staffNO position
position is functionally
depends on staffNO
Functional Dependencies
29
However the next figure illustrate that the opposite is
not true, as position does not functionally
determines staffNO.
A member of staff holds one position; however, they
maybe several members of staff with the same
position.
Position(manager)
staff number (S21)
staff number (S5)
position staffNO
staffNO does not functionally
depends on position
Partial Dependencies:
Full functional dependency indicates that if A and B are
attributes of a relation, B is fully functionally dependent on
A, if B is functionally dependent on A, but not on any proper
subset of A.
30
staff(staffNO,sName,position,salary,branchNO)
staffNO, staffName  branchNO
True!!! each value of (staffNO, sName) is associated with
a single value of branchNO.
however, branchNO is also functionally dependent
on staffNO.
Functional Dependencies
Transitive Dependencies:
31
staff(staffNO,sName,position,salary,*branchNO)
branch(branchNO,bAddress)
staffNO  sName,position,salary,branchNO,bAddress
branchNO  bAddress
True for transitive dependency!!!  branchNO → bAddress
exists on staffNO via branchNO
Functional Dependencies
Normalization Process
32
 Formal technique for analyzing relations based on their Primary Key
(or candidate keys) and functional dependencies.
 The technique executed as a series of steps (stage). Each step
corresponds to a specific normal form, that have specific
characteristic.
 As normalization proceeds, the relations become progressively more
restricted (stronger) in format and also less vulnerable to anomalies.
Data Redundancies
0NF/UNF
1NF
2NF
3NF
33
Normalization Process
2NF
3NF
UNF
1)Repeat Group
2)PK is not defined
1NF
1)Remove Repeat Group
2)Defined PK  composite PK consist of attributes
Test for partial dependency
If (exist)
(1 Table)
Test for transitive dependency
If (exist)
(1 or 2 Tables)
(2 or 3 Tables)
(more then 1 table)
(3 or 4 Tables)
(a b …. TD) 1
(a  ……. TD) 2
(b  ….… TD) 3
(a, b  x, y)
(a c, d)
(b  z)
(c  d)
Normalization Process Relation/Table Format
-Have repeating group
-PK not defined
-No repeating group
-PK defined
-Test partial dependency
-No repeating group
-PK defined
-No partial dependency
-Test transitive dependency
-No repeating group
-PK defined
-No partial dependency
-No transitive dependency
End of Chapter
Re-edited by:
Oum Saokosal
Master of Engineering in Information
Systems,
Jeonju University, South Korea
012-252-752
oum_saokosal@yahoo.com

Weitere ähnliche Inhalte

Was ist angesagt? (20)

Normalization in DBMS
Normalization in DBMSNormalization in DBMS
Normalization in DBMS
 
Database design & Normalization (1NF, 2NF, 3NF)
Database design & Normalization (1NF, 2NF, 3NF)Database design & Normalization (1NF, 2NF, 3NF)
Database design & Normalization (1NF, 2NF, 3NF)
 
Lecture 04 normalization
Lecture 04 normalization Lecture 04 normalization
Lecture 04 normalization
 
Normalization PRESENTATION
Normalization PRESENTATIONNormalization PRESENTATION
Normalization PRESENTATION
 
Normalization
NormalizationNormalization
Normalization
 
Database Normalization
Database NormalizationDatabase Normalization
Database Normalization
 
Normalization
NormalizationNormalization
Normalization
 
Fifth normal form
Fifth normal formFifth normal form
Fifth normal form
 
database Normalization
database Normalizationdatabase Normalization
database Normalization
 
Entity relationship diagram - Concept on normalization
Entity relationship diagram - Concept on normalizationEntity relationship diagram - Concept on normalization
Entity relationship diagram - Concept on normalization
 
Functional dependency
Functional dependencyFunctional dependency
Functional dependency
 
Normalization 1 nf,2nf,3nf,bcnf
Normalization 1 nf,2nf,3nf,bcnf Normalization 1 nf,2nf,3nf,bcnf
Normalization 1 nf,2nf,3nf,bcnf
 
Bcnf
BcnfBcnf
Bcnf
 
Heaps
HeapsHeaps
Heaps
 
Relational Algebra & Calculus
Relational Algebra & CalculusRelational Algebra & Calculus
Relational Algebra & Calculus
 
Normalization
NormalizationNormalization
Normalization
 
Normalization in SQL | Edureka
Normalization in SQL | EdurekaNormalization in SQL | Edureka
Normalization in SQL | Edureka
 
Dbms anomalies
Dbms anomaliesDbms anomalies
Dbms anomalies
 
Database language
Database languageDatabase language
Database language
 
Database Normalization by Dr. Kamal Gulati
Database Normalization by Dr. Kamal GulatiDatabase Normalization by Dr. Kamal Gulati
Database Normalization by Dr. Kamal Gulati
 

Ähnlich wie Database Concept - Normalization (1NF, 2NF, 3NF)

Normalization in Database Management System.pptx
Normalization in Database Management System.pptxNormalization in Database Management System.pptx
Normalization in Database Management System.pptxRoshni814224
 
Normmmalizzarion.ppt
Normmmalizzarion.pptNormmmalizzarion.ppt
Normmmalizzarion.pptDeependra35
 
Presentation on Normalization.pptx
Presentation on Normalization.pptxPresentation on Normalization.pptx
Presentation on Normalization.pptxkshipra sony
 
IT6701-Information Management Unit 1
IT6701-Information Management Unit 1IT6701-Information Management Unit 1
IT6701-Information Management Unit 1SIMONTHOMAS S
 
Lecture8 Normalization Aggarwal
Lecture8 Normalization AggarwalLecture8 Normalization Aggarwal
Lecture8 Normalization Aggarwalanerudhbalaji
 
Normalization and three normal forms.pptx
Normalization and three normal forms.pptxNormalization and three normal forms.pptx
Normalization and three normal forms.pptxZoha681526
 
Normalization_BCA_
Normalization_BCA_Normalization_BCA_
Normalization_BCA_Bhavini Shah
 
Ibps it officer exam capsule by affairs cloud
Ibps it officer exam capsule by affairs cloudIbps it officer exam capsule by affairs cloud
Ibps it officer exam capsule by affairs cloudaffairs cloud
 
Ibps it officer exam capsule by affairs cloud
Ibps it officer exam capsule by affairs cloudIbps it officer exam capsule by affairs cloud
Ibps it officer exam capsule by affairs cloudaffairs cloud
 
Normalization in Database
Normalization in DatabaseNormalization in Database
Normalization in DatabaseA. S. M. Shafi
 
Relational database intro for marketers
Relational database intro for marketersRelational database intro for marketers
Relational database intro for marketersSteve Finlay
 
data Normalization.pdf
data Normalization.pdfdata Normalization.pdf
data Normalization.pdfBijayNag1
 

Ähnlich wie Database Concept - Normalization (1NF, 2NF, 3NF) (20)

Chapter5.pptx
Chapter5.pptxChapter5.pptx
Chapter5.pptx
 
Normalization in Database Management System.pptx
Normalization in Database Management System.pptxNormalization in Database Management System.pptx
Normalization in Database Management System.pptx
 
Normmmalizzarion.ppt
Normmmalizzarion.pptNormmmalizzarion.ppt
Normmmalizzarion.ppt
 
Normalization
NormalizationNormalization
Normalization
 
Presentation on Normalization.pptx
Presentation on Normalization.pptxPresentation on Normalization.pptx
Presentation on Normalization.pptx
 
IT6701-Information Management Unit 1
IT6701-Information Management Unit 1IT6701-Information Management Unit 1
IT6701-Information Management Unit 1
 
Database normalisation
Database normalisationDatabase normalisation
Database normalisation
 
Lecture8 Normalization Aggarwal
Lecture8 Normalization AggarwalLecture8 Normalization Aggarwal
Lecture8 Normalization Aggarwal
 
Database normalisation
Database normalisationDatabase normalisation
Database normalisation
 
Normalization and three normal forms.pptx
Normalization and three normal forms.pptxNormalization and three normal forms.pptx
Normalization and three normal forms.pptx
 
Chapter 3 ( PART 2 ).pptx
Chapter 3 ( PART 2 ).pptxChapter 3 ( PART 2 ).pptx
Chapter 3 ( PART 2 ).pptx
 
Sql Server 2000
Sql Server 2000Sql Server 2000
Sql Server 2000
 
Normalization_BCA_
Normalization_BCA_Normalization_BCA_
Normalization_BCA_
 
Ibps it officer exam capsule by affairs cloud
Ibps it officer exam capsule by affairs cloudIbps it officer exam capsule by affairs cloud
Ibps it officer exam capsule by affairs cloud
 
Ibps it officer exam capsule by affairs cloud
Ibps it officer exam capsule by affairs cloudIbps it officer exam capsule by affairs cloud
Ibps it officer exam capsule by affairs cloud
 
Normalization in Database
Normalization in DatabaseNormalization in Database
Normalization in Database
 
Relational database intro for marketers
Relational database intro for marketersRelational database intro for marketers
Relational database intro for marketers
 
Normalization in database
Normalization in databaseNormalization in database
Normalization in database
 
Normalization
NormalizationNormalization
Normalization
 
data Normalization.pdf
data Normalization.pdfdata Normalization.pdf
data Normalization.pdf
 

Mehr von Oum Saokosal

Database Concept - ERD Mapping to MS Access
Database Concept - ERD Mapping to MS AccessDatabase Concept - ERD Mapping to MS Access
Database Concept - ERD Mapping to MS AccessOum Saokosal
 
Java Programming - Introduction to Abstract Class
Java Programming - Introduction to Abstract ClassJava Programming - Introduction to Abstract Class
Java Programming - Introduction to Abstract ClassOum Saokosal
 
Java Programming - Polymorphism
Java Programming - PolymorphismJava Programming - Polymorphism
Java Programming - PolymorphismOum Saokosal
 
Java Programming - Inheritance
Java Programming - InheritanceJava Programming - Inheritance
Java Programming - InheritanceOum Saokosal
 
Java Programming - Abstract Class and Interface
Java Programming - Abstract Class and InterfaceJava Programming - Abstract Class and Interface
Java Programming - Abstract Class and InterfaceOum Saokosal
 
Objected-Oriented Programming with Java
Objected-Oriented Programming with JavaObjected-Oriented Programming with Java
Objected-Oriented Programming with JavaOum Saokosal
 
12. Android Basic Google Map
12. Android Basic Google Map12. Android Basic Google Map
12. Android Basic Google MapOum Saokosal
 
11.1 Android with HTML
11.1 Android with HTML11.1 Android with HTML
11.1 Android with HTMLOum Saokosal
 
10.3 Android Video
10.3 Android Video10.3 Android Video
10.3 Android VideoOum Saokosal
 
10.2 Android Audio with SD Card
10.2 Android Audio with SD Card10.2 Android Audio with SD Card
10.2 Android Audio with SD CardOum Saokosal
 
10.1. Android Audio
10.1. Android Audio10.1. Android Audio
10.1. Android AudioOum Saokosal
 
09.1. Android - Local Database (Sqlite)
09.1. Android - Local Database (Sqlite)09.1. Android - Local Database (Sqlite)
09.1. Android - Local Database (Sqlite)Oum Saokosal
 
08.1. Android How to Use Intent (explicit)
08.1. Android How to Use Intent (explicit)08.1. Android How to Use Intent (explicit)
08.1. Android How to Use Intent (explicit)Oum Saokosal
 
07.4. Android Basic Simple Browser (WebView)
07.4. Android Basic Simple Browser (WebView)07.4. Android Basic Simple Browser (WebView)
07.4. Android Basic Simple Browser (WebView)Oum Saokosal
 
07.3. Android Alert message, List, Dropdown, and Auto Complete
07.3. Android Alert message, List, Dropdown, and Auto Complete07.3. Android Alert message, List, Dropdown, and Auto Complete
07.3. Android Alert message, List, Dropdown, and Auto CompleteOum Saokosal
 
07.1. Android Even Handling
07.1. Android Even Handling07.1. Android Even Handling
07.1. Android Even HandlingOum Saokosal
 
06. Android Basic Widget and Container
06. Android Basic Widget and Container06. Android Basic Widget and Container
06. Android Basic Widget and ContainerOum Saokosal
 
More on Application Structure
More on Application StructureMore on Application Structure
More on Application StructureOum Saokosal
 
04. Review OOP with Java
04. Review OOP with Java04. Review OOP with Java
04. Review OOP with JavaOum Saokosal
 
Basic Understanding of Android XML
Basic Understanding of Android XMLBasic Understanding of Android XML
Basic Understanding of Android XMLOum Saokosal
 

Mehr von Oum Saokosal (20)

Database Concept - ERD Mapping to MS Access
Database Concept - ERD Mapping to MS AccessDatabase Concept - ERD Mapping to MS Access
Database Concept - ERD Mapping to MS Access
 
Java Programming - Introduction to Abstract Class
Java Programming - Introduction to Abstract ClassJava Programming - Introduction to Abstract Class
Java Programming - Introduction to Abstract Class
 
Java Programming - Polymorphism
Java Programming - PolymorphismJava Programming - Polymorphism
Java Programming - Polymorphism
 
Java Programming - Inheritance
Java Programming - InheritanceJava Programming - Inheritance
Java Programming - Inheritance
 
Java Programming - Abstract Class and Interface
Java Programming - Abstract Class and InterfaceJava Programming - Abstract Class and Interface
Java Programming - Abstract Class and Interface
 
Objected-Oriented Programming with Java
Objected-Oriented Programming with JavaObjected-Oriented Programming with Java
Objected-Oriented Programming with Java
 
12. Android Basic Google Map
12. Android Basic Google Map12. Android Basic Google Map
12. Android Basic Google Map
 
11.1 Android with HTML
11.1 Android with HTML11.1 Android with HTML
11.1 Android with HTML
 
10.3 Android Video
10.3 Android Video10.3 Android Video
10.3 Android Video
 
10.2 Android Audio with SD Card
10.2 Android Audio with SD Card10.2 Android Audio with SD Card
10.2 Android Audio with SD Card
 
10.1. Android Audio
10.1. Android Audio10.1. Android Audio
10.1. Android Audio
 
09.1. Android - Local Database (Sqlite)
09.1. Android - Local Database (Sqlite)09.1. Android - Local Database (Sqlite)
09.1. Android - Local Database (Sqlite)
 
08.1. Android How to Use Intent (explicit)
08.1. Android How to Use Intent (explicit)08.1. Android How to Use Intent (explicit)
08.1. Android How to Use Intent (explicit)
 
07.4. Android Basic Simple Browser (WebView)
07.4. Android Basic Simple Browser (WebView)07.4. Android Basic Simple Browser (WebView)
07.4. Android Basic Simple Browser (WebView)
 
07.3. Android Alert message, List, Dropdown, and Auto Complete
07.3. Android Alert message, List, Dropdown, and Auto Complete07.3. Android Alert message, List, Dropdown, and Auto Complete
07.3. Android Alert message, List, Dropdown, and Auto Complete
 
07.1. Android Even Handling
07.1. Android Even Handling07.1. Android Even Handling
07.1. Android Even Handling
 
06. Android Basic Widget and Container
06. Android Basic Widget and Container06. Android Basic Widget and Container
06. Android Basic Widget and Container
 
More on Application Structure
More on Application StructureMore on Application Structure
More on Application Structure
 
04. Review OOP with Java
04. Review OOP with Java04. Review OOP with Java
04. Review OOP with Java
 
Basic Understanding of Android XML
Basic Understanding of Android XMLBasic Understanding of Android XML
Basic Understanding of Android XML
 

Kürzlich hochgeladen

Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
The byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxThe byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxShobhayan Kirtania
 

Kürzlich hochgeladen (20)

Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
The byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxThe byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptx
 

Database Concept - Normalization (1NF, 2NF, 3NF)

  • 1. Normalization Re-edited by: Oum Saokosal Master of Engineering in Information Systems, Jeonju University, South Korea 012-252-752 oum_saokosal@yahoo.com
  • 2. Normalization Normalization: the process of converting complex data structures into simple, stable data structures. The main idea is to avoid duplication of large data. Why normalization?  The relation derived from the user view or data store will most likely be unnormalized.  The problem usually happens when an existing system uses unstructured file, e.g. in MS Excel.
  • 3. The Three Steps of Normalization The standard normalization has more than three steps:  First Normal Form (1NF)  Second Normal Form (2NF)  Third Normal Form (3NF)  Boyce-Codd Normal Form (BCNF)  Fourth Normal Form (4NF)  Fifth Normal Form (5NF)  Domain/Key Normal Form (DKNF) However, only three steps (1NF, 2NF, 3NF) are sufficient for normalization.
  • 4. I. First Normal Form (1NF) The official qualifications for 1NF are: 1. Each attribute must have a unique name. 2. Each attribute must have a single value. 3. Row cannot be duplicated. 4. There is no repeating groups. Additional: 1. Choose a primary key. The primary key can be an attribute or combined attributes.
  • 5. Name DOB Course Payment Sok 11/5/1990 IT 450 Dollars Sao 4/4/1989 Mgt 400 Dollars Chan 7/7/1991 IT Mgt IT: 450 Dollars Mgt: 400 Dollars Sok 11/5/1990 Mgt 400 Dollars Sao 4/4/1989 Tour 1) 200 Dollars 2) 200 Dollars 1. Each attribute has unique name -> Good 2. The Payment has multi data type (currency & string) -> Bad 3. All rows are not duplicated -> Good 4. The Course and Payment have repeating groups -> Bad
  • 6. Name DOB Course Payment ($) Sok 11/5/1990 IT 450 Sao 4/4/1989 Mgt 400 Chan 7/7/1991 IT 450 Chan 7/7/1991 Mgt 400 Sok 11/5/1990 Mgt 400 Sao 4/4/1989 Tour 200 Sao 4/4/1989 Tour 200 All correct? Name? No. Name has duplicated values. Or DOB, or Course or Payment? No. Each one has duplicated values. Name and DOB? No. They still have duplicated values. Name and DOB and Course? No. Still duplicated. Combine all attribute? Still no. The last two rows are duplicated. So what else we can do? Of course, there is a way. Add a new attribute to be a primary key. So let’s call it ID. Not yet. Choose a primary key.
  • 7. ID Name DOB Course Payment 1 Sok 11/5/1990 IT 450 2 Sao 4/4/1989 Mgt 400 3 Chan 7/7/1991 IT 450 4 Chan 7/7/1991 Mgt 400 5 Sok 11/5/1990 Mgt 300 6 Sao 4/4/1989 Tour 200 7 Sao 4/4/1989 Tour 200 Now it is completely in 1NF. Next, check it if it is not in 2NF.
  • 8. II. Second Normal Form (2NF) The official qualifications for 2NF are: 1. A table is already in 1NF. 2. All nonkey attributes are fully dependent on the primary key. All partial dependencies are removed and placed in another table.
  • 9. CourseID Semester Num Student Course Name IT101 2013-1 25 Database IT101 2013-2 25 Database IT102 2013-1 30 Web Prog IT102 2013-2 35 Web Prog IT103 2014-1 20 Networking Assume you have a table below contain a primary (CourseID + Semester): Primary Key The Course Name depends on only CourseID, a part of the primary key not the whole primary (CourseID + Semester).It’s called partial dependency. Solution: Remove CourseID and Course Name together to create a new table.
  • 10. CourseID Course Name IT101 Database IT101 Database IT102 Web Prog IT102 Web Prog IT103 Networking Semester Done? Oh no, it is still not in 1NF yet. You have to remove the repeating groups too. CourseID Course Name IT101 Database IT102 Web Prog IT103 Networking CourseID Semester Num Student IT101 2013-1 25 IT101 2013-2 25 IT102 2013-1 30 IT102 2013-2 35 IT103 2014-1 20 1 M
  • 11. III. Third Normal Form (3NF) The official qualifications for 3NF are: 1. A table is already in 2NF. 2. Nonprimary key attributes do not depend on other nonprimary key attributes (i.e. no transitive dependencies) All transitive dependencies are removed and placed in another table.
  • 12. StudyID Course Name Teacher Name Teacher Tel 1 Database Sok Piseth 012 123 456 2 Database Sao Kanha 0977 322 111 3 Web Prog Chan Veasna 012 412 333 4 Web Prog Chan Veasna 012 412 333 5 Networking Pou Sambath 077 545 221 Assume you have a table below contain a primary (StudyID): Primary Key The Teacher Tel is a nonkey attribute, and the Teacher Name is also a nonkey atttribute. But Teacher Tel depends on Teacher Name. It is called transitive dependency. Solution: Remove Teacher Name and Teacher Tel together to create a new table.
  • 13. Teacher Name Teacher Tel Sok Piseth 012 123 456 Sao Kanha 0977 322 111 Chan Veasna 012 412 333 Chan Veasna 012 412 333 Pou Sambath 077 545 221 Done? Oh no, it is still not in 1NF yet. So you have to remove the repeating groups, and add a primary key. Teacher Name Teacher Tel Sok Piseth 012 123 456 Sao Kanha 0977 322 111 Chan Veasna 012 412 333 Pou Sambath 077 545 221 Note about primary key: - In theory, you can choose Teacher Name to be a primary key. - But in practice, you should add Teacher ID as the primary key. T.ID Teacher Name Teacher Tel T1 Sok Piseth 012 123 456 T2 Sao Kanha 0977 322 111 T3 Chan Veasna 012 412 333 T4 Pou Sambath 077 545 221 StudyID Course Name T.ID 1 Database T1 2 Database T2 3 Web Prog T3 4 Web Prog T3 5 Networking T4 M 1
  • 14. ID Name DOB Course Payment 1 Sok 11/5/1990 IT 450 2 Sao 4/4/1989 Mgt 400 3 Chan 7/7/1991 IT 450 4 Chan 7/7/1991 Mgt 400 5 Sok 11/5/1990 Mgt 300 6 Sao 4/4/1989 Tour 200 7 Sao 4/4/1989 Tour 200 What about this table? In case of the above table, there is no 2NF because the primary key is only one attribute, not the combined attributes. Therefore, you can skip 2NF and move to 3NF. In 3NF, you must remove transitive dependency. Both Name and DOB does not depend on ID. So remove them. Both Course and Payment does not depend on ID. So remove them.
  • 15. ID Name DOB S1 Sok 11/5/1990 S2 Chan 7/7/1991 S3 Sao 4/4/1989 CourseID Course C1 IT C2 Mgt C3 Tour Student Course Payment PID SID Course Payment 1 S1 C1 $450 2 S3 C2 $400 3 S2 C3 $450 4 S2 C2 $400 5 S1 C2 $300 6 S2 C3 $200 7 S2 C3 $200 1 M 1 M
  • 16. Student Course PaymentM N PaymentID Payment For the Payment table, it is not done yet. It is a relationship between Student and Course.
  • 17. Stop at 3NF The most commonly used normal forms:  First Normal Form (1NF)  Second Normal Form (2NF)  Third Normal Form (3NF) Highest normalization is not always desirable  More JOINS are required  Affect data retrieval performance/high response time  For most business database design purposes, 3NF is as high as we need to go in normalization process
  • 18. Normalization in Real-World When you newly create a table in a database tool, e.g. MS Access, SQL Server, MySQL, or Oracle, you won’t need all the steps. The mentioned tools help you to overcome the 1NF already. The 2NF happens when the primary key is combine attributes, e.g. StudentName + DOB. But to do so is unpractical. Mostly, you only use 3NF. Because it can remove all transitive dependency.
  • 19. Functional Dependency A Bit More About Theory
  • 20. Functional Dependencies 20 An important concept associated with normalization is functional dependency which describes the relationship between attributes.
  • 21. Functional Dependencies 21 Functional dependency can be divided into two types:  Full functional dependency/Partial dependency (PD) • Will be used to transform 1NF  2NF  Transitive dependency (TD) • Will be used to transform 2NF  3NF
  • 22. Functional Dependencies 22 Multivalued Attributes (or repeating groups): non- key attributes or groups of non-key attributes the values of which are not uniquely identified by (directly or indirectly) (not functionally dependent on) the value of the Primary Key (or its part). 1st row 2nd row Relational Schema STUDENT(Stud_ID, Name, (Course_ID, Units))
  • 23. Functional Dependencies 23 Partial Dependency – when an non-key attribute is determined by a part, but not the whole, of a COMPOSITE primary key (The Primary Key must be a Composite Key). Cust_ID → Name
  • 24. Functional Dependencies 24 Transitive Dependency – when a non-key attribute determines another non-key attribute. Dept_ID → Dept_Name
  • 25. Functional Dependencies 25  Consider a relation with attributes A and B, where attribute B is functionally depends on attribute A. Let say an A is a PK of R.  To describe the relationship between attributes A and B is to say that “A functionally determines B”. A B B is functionally depends on A R(A,B) A  B
  • 26. Functional Dependencies 26 When a functional dependency exist, the attribute or group of attributes on the left-handed side of the arrow is called determinant. Determinant: Refers to the attributes, or a group of attributes, on the left handed side of the arrow of a functional dependency. A B A functionally determines B
  • 27. staffNO sName position salary branchNo S21 Johan Manager 3000 B005 S37 Ana Assistant 1200 B003 S14 Daud Supervisor 1800 B003 S9 Mary Assistant 900 B007 S5 Siti Manager 2400 B003 S41 Jani Assistant 900 B005 branchNO bAddress B005 123, Kepong B007 456, Nilai B003 789, PTP 27 staff branch Functional Dependencies Determinant
  • 28. Functional Dependencies 28 Consider the attributes staffNO and position of the staff relation. For a specific staffNO (S21), we can determine the position of that member of staff as Manager. staffNO functionally determines position. Staff number (S21) Position (manager) staffNO position position is functionally depends on staffNO
  • 29. Functional Dependencies 29 However the next figure illustrate that the opposite is not true, as position does not functionally determines staffNO. A member of staff holds one position; however, they maybe several members of staff with the same position. Position(manager) staff number (S21) staff number (S5) position staffNO staffNO does not functionally depends on position
  • 30. Partial Dependencies: Full functional dependency indicates that if A and B are attributes of a relation, B is fully functionally dependent on A, if B is functionally dependent on A, but not on any proper subset of A. 30 staff(staffNO,sName,position,salary,branchNO) staffNO, staffName  branchNO True!!! each value of (staffNO, sName) is associated with a single value of branchNO. however, branchNO is also functionally dependent on staffNO. Functional Dependencies
  • 31. Transitive Dependencies: 31 staff(staffNO,sName,position,salary,*branchNO) branch(branchNO,bAddress) staffNO  sName,position,salary,branchNO,bAddress branchNO  bAddress True for transitive dependency!!!  branchNO → bAddress exists on staffNO via branchNO Functional Dependencies
  • 32. Normalization Process 32  Formal technique for analyzing relations based on their Primary Key (or candidate keys) and functional dependencies.  The technique executed as a series of steps (stage). Each step corresponds to a specific normal form, that have specific characteristic.  As normalization proceeds, the relations become progressively more restricted (stronger) in format and also less vulnerable to anomalies. Data Redundancies 0NF/UNF 1NF 2NF 3NF
  • 33. 33 Normalization Process 2NF 3NF UNF 1)Repeat Group 2)PK is not defined 1NF 1)Remove Repeat Group 2)Defined PK  composite PK consist of attributes Test for partial dependency If (exist) (1 Table) Test for transitive dependency If (exist) (1 or 2 Tables) (2 or 3 Tables) (more then 1 table) (3 or 4 Tables) (a b …. TD) 1 (a  ……. TD) 2 (b  ….… TD) 3 (a, b  x, y) (a c, d) (b  z) (c  d) Normalization Process Relation/Table Format -Have repeating group -PK not defined -No repeating group -PK defined -Test partial dependency -No repeating group -PK defined -No partial dependency -Test transitive dependency -No repeating group -PK defined -No partial dependency -No transitive dependency
  • 34. End of Chapter Re-edited by: Oum Saokosal Master of Engineering in Information Systems, Jeonju University, South Korea 012-252-752 oum_saokosal@yahoo.com