Review of Normalization (1NF to BCNF)

Normalization
การตรวจสอบความถู กต้องของการออกแบบระบบฐานข้อมู ล
้
้ า
ต้องมีขบวนการการตรวจสอบอย่างเป็ นขันตอน
เราเรียกขบวนการนี ว่
Normalization.
Normalization is a formal method involved with a series of test
to help database designer to be able to identify the optimal grouping
of attributes for each relation in the relational schema. Normalization
can be applied to individual relations so that database can be
normalized to a specific form to prevent the possible occurrence of
update anomaly.
Data Redundancy and Update Anomalies
วัคถุประสงค์หลักของการออกแบบระบบฐานข้อมูลคือ การจัดกลุ่ม attributes
ในแต่ละรีเลชันเพื
่ อ่ ลดความซ้าซ้อนของข้อมูล ซึง่ ส่งผลถึงการประหยัดเนื้อทีใ่ นการจัดเก็บ
ฐานข้อมูลด้วย
รีเลชันที
่ ม่ ขี อ้ มูลซ้าซ้อนมาก ก่อปั ญหา UPDATE ANOMALIES ซึง่ แบ่ง
ออกเป็ น 3 ประเภทคือ
Insertion anomalies
Deletion Anomalies
Modification Anomalies
Insertion Anomalies
Deletion Anomalies
Modification Anomalies
Insertion Anomalies
To insert the details of new members of staff into the
Staff_Branch relation, we must include the details of the branch
at which the staff are to be located.
Deletion Anomalies
If we delete a row from the Staff_Branch relation that
represents the last member of staff located at a branch, the details
about that branch are also lost from the database.
Modification Anomalies
If we want to change the value of one of the attributes of a
particular branch in the Staff_Branch relation, we must update the
rows of all staff located at that branch. If this modification is not
carried out on all the appropriate rows of the Staff_Branch relation, the
data base will become inconsistent.
Staff_Branch Relation
Staff_No
SName
SAddress
Position
Salary
Branch_No
BAddress
Tel_No
SL21
John White
19 Taylor St, London
Manager
30000
B5
22 Dear Rd,London
02-704-8109
SG37
Ann Beech
81 George St, Glasgow
Snr Asst
12000
B3
163 Main St,Glasgow
02-953-8018
SG14
David Ford
63 Ashby St, Glasgow
Deputy
18000
B3
163 Main St,Glasgow
02-255-8128
SA9
Mary Howe
2 Elm Pl, Aberdeen
Assistant
9000
B7
16 Argyll St, Aberde
02-775-4995
SG5
Susan Brand
5 Gt Western Rd, Glas
Manager
24000
B3
163 Main St,Glasgow
02-987-1234
SL41
Julie Lee
28 Malvern St,Kilburn
Assistant
9000
B5
22 Dear Rd,London
02-342-5616
Snew1
Julie Lee
Yupin
New
228Ngamvongvan,BKK
Malvern St,Kilburn
Assistant
Snr
Mgr
9000
22000
B3
163 Main St,Glasgow
02-255-8128
NULL
NULL
NULL
NULL
NULL
B8
16 Lake Show
02-221-8128
Delete Anomalies
Staff_Branch Relation
Staff_No
SName
SAddress
Position
Salary
Branch_No
BAddress
Tel_No
SL21
John White
19 Taylor St, London
Manager
30000
B5
22 Dear Rd,London
02-704-8109
SG37
Ann Beech
81 George St, Glasgow
Snr Asst
12000
B3
163 Main St,Glasgow
02-953-8018
SG14
David Ford
63 Ashby St, Glasgow
Deputy
18000
B3
163 Main St,Glasgow
02-255-8128
SA9
Mary Howe
2 Elm Pl, Aberdeen
Assistant
9000
B7
16 Argyll St, Aberde
02-775-4995
SG5
Susan Brand
5 Gt Western Rd, Glas
Manager
24000
B3
163 Main St,Glasgow
02-987-1234
SL41
Julie Lee
28 Malvern St,Kilburn
Assistant
9000
B5
22 Dear Rd,London
02-342-5616
Modification Anomalies
Staff_Branch Relation
Staff_No
SName
SAddress
Position
Salary
Branch_No
BAddress
Tel_No
SL21
John White
19 Taylor St, London
Manager
30000
B5
22 Dear Rd,London
02-704-8109
SG37
Ann Beech
81 George St, Glasgow
Snr Asst
12000
B3
163 Main St,Glasgow
02-953-8018
SG14
David Ford
63 Ashby St, Glasgow
Deputy
18000
B3
163 Main St,Glasgow
02-255-8128
SA9
Mary Howe
2 Elm Pl, Aberdeen
Assistant
9000
B7
16 Argyll St, Aberde
02-775-4995
SG5
Susan Brand
5 Gt Western Rd, Glas
Manager
24000
B3
163 Main St,Glasgow
02-987-1234
SL41
Julie Lee
28 Malvern St,Kilburn
Assistant
9000
B5
22 Dear Rd,London
02-342-5616
Functional Dependencies
One of the main concepts associated with normalization
is functional dependency, which describes the relationship
between attributes.
นิยามของกฎเกณฑ์ ของการขึน้ ต่ อกัน
(Definition of Functional Dependency)
ระบุไว้วา่ สมมุติให้ B เป็ นแอตทริ บิวตัวหนึ่ง และ A แอตทริ บิวอีกตัว
หนึ่ง ( A อาจเป็ นเซ็ตของแอตทริ บิวก็ได้) เรากล่าวว่า B เป็ นฟังก์ชนั่ การขึ้นอยู่
กับ A (denoted A  B) ก็ต่อเมื่อค่าของ A สามารถใช้ในการเลือก
(determine) ค่าของ B ได้เพียง 1 ค่าเสมอ
สัญญลักษณ์การขึ้นต่อกัน (A  B) อ่านได้ดงี นี้
B มีฟังก์ชนการขึ
ั่
น้ อยูก่ บั A
หรือ A มีฟังก์ชนในการเลื
ั่
อก B
หรือ B ขึน้ กับ A
Functional Dependencies อนุญาตให้ผใู้ ช้ระบุกฏเกณฑ์การขึน้ ต่อกัน
ด้วย attribute ทีไ่ ม่ได้เป็ น candidate key ได้ เช่น
   (โดยที่  ไม่ได้เป็ น candidate key)
สาหรับทุก ๆ แถวในรีเลชัน่ r หากแถวใดทีม่ คี า่ ในแอตทริบวิ  เหมือนกัน ระบบต้อง
รับประกันว่า ในบรรดาแถวเหล่านัน้ ต้องมีคา่ ของแอตทริบวิ  ทีเ่ หมือนกันด้วย กล่าวคือ
ถ้า
   holds on R
ดังนัน้ ถ้า
t1[] = t2[]
ระบบต้องรับประกันว่า t1[] = t2[]
Given a relation R, attribute y of R is dependent on attribute x
of R if and only if whenever two tuples of R agree on their x-value,
they must necessarily agree on their y-value.
A
B is functionally
dependent on A
B
When a functional dependency exists, the attribute or group
Of attributes on the left-hand side of the arrow is called the
determinant.
Position is functionally
Staff_No
Position
dependent on Staff_No
SL21
Position
System Engineer
Staff_No is not functionally
dependent on Position
System Engineer
Staff_No
SL21
SG5
Staff_No  SName, Saddress, Position, Salary, Branch_No
Branch_No  BAddress, Tel_No
BAddress  Branch_No
Normalization is a formal method involved with a series of test to help
database designer to be able to identify the optimal grouping of
attributes for each relation in the relational schema.
Unnormalized Form
1st Normal Form
2nd Normal Form
The process of normalization is a formal
method that identifies relations based on
primary key (or candidate keys in the
case of BCNF the functional dependencies
among their attributes.
3rd Normal Form
Boyce-Codd Normal Form
Normalization can be applied to individual relations so that
database can be normalized to a specific form to prevent the possible
occurrence of update anomaly.
Relationships of Normal Forms
1NF
2NF
3NF/BCNF
4NF
5NF
Higher
DKNF
Normal
forms
Case Study
The DreamHome company manages property on behalf of the owners, and as part of this service, the
company takes care of the property’s rental. To simplify this example, we assume that a customer rents
a given property only once, and cannot rent more than one property at any one time.
Unnormalized form (UNF) : A table that contains one or more repeating groups.
Customer_Rental Relation
Custome_No
CName
Property_No
PAddress
Rent
RentStart
RentFinish
Owner_No
OName
CR76
John Kay
PG4
6 Lawrence St,
350
1-Jul-94
31-Aug-96
CO40
Tina Murphy
PG16
5 Norwar Dr
450
1-Sep-96
1-Sep-98
CO93
Tony Shaw
PG4
6 Lawrence St,
350
1-Sep-92
10-Jan-94
CO40
Tina Murphy
PG36
2 Manor Rd,
375
10-Oct-94
1-Dec-95
CO93
Tony Shaw
PG16
5 Norwar Dr
450
1-Jan-96
10-Aug-96
CO93
Tony Shaw
CR56
Aline
Stewart
A repeating group is an attribute or group of attributes within a table that occurs with multiple values
for a single occurrence of the key attribute (s) for that table. The term key refers to the attribute (s)
That uniquely identify each row within the unnormalized table.
First normal form (1NF) : A relation in which the intersection of each row and column
contains one and only one value.
Customer_Rental Relation
Custome_No
Property_No
CName
PAddress
Rent
RentStart
RentFinish
Owner_No
OName
CR76
PG4
John Kay
6 Lawrence St,
350
1-jul-94
31-Aug-96
CO40
Tina Murphy
CR76
PG16
John Kay
5 Norwar Dr
450
1-Sep-98
1-Sep-98
CO93
Tony Shaw
CR56
PG4
Aline Stew
6 Lawrence St,
350
10-Jun-94
10-Jun-94
CO40
Tina Murphy
CR56
PG36
Aline Stew
2 Manor Rd,
375
1-Dec-95
1-Dec-95
CO93
Tony Shaw
CR56
PG16
Aline Stew
5 Norwar Dr
450
10-Aug-96
10-Aug-96
CO93
Tony Shaw
For the relational data model, it is important to recognize that it is only first
normal form(1NF) that is critical in creating appropriate relations. All the subsequent
normal forms are optional. However, to avoid the update anomalies, it is recommended that
we proceed to at least 3NF.
Set of the Functional Dependency of Customer_Rental relation
fd1
Customer_No, Property_No  RentStart, RentFinish
fd2
Customer_No  CName
fd3
Property_No  PAddress, Rent, Owner_No, OName
fd4
Owner_No  OName
fd5
Customer_No, RentStart  Property_No, PAddress, RentFinish,
Rent, Owner, OName
(Candidate key)
fd6
Property_No, RentStart  Customer_No, CName, RentFinish (Candidate key)
(Primary key)
(Partial dependency)
(Partial dependency)
(Transitive dependency)
Customer_No
Property_No
CName
PAddress
RentStart
RentFinish
Rent
Owner_No
OName
(Primary key)
fd1
fd2
(Partial dependency)
(Partial dependency)
fd3
fd6
(Transitive dependency)
fd5
(Candidate key)
fd6
(Candidate key)
Second Normal Form (2NF) :
A relation that is in the first normal form and every non-primary key attribute is
fully functionally dependent on the primary key.
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.
ถ้า B เป็ น Non-Key attribute ซึง่ มีฟังก์ชนการขึ
ั่
น้ ต่อกันอยูก่ บั ส่วนใดส่วนหนึ่งของคียห์ ลัก เราจะเรียกว่า B
partial dependence on A. Partial dependency ต้องถูกขจัดออกโดยการแยก ออกไปตัง้ เป็ นตารางใหม่ เพือ่ ให้
Non-Key attribute ตัวนี้ fully dependent on คียห์ ลัก
Customer_No
Property_No
CName
PAddress
RentStart
RentFinish
Rent
Owner_No
OName
(Primary key)
fd1
fd2
(Partial dependency)
fd3
(Partial dependency)
Customer (Customer_No, CName)
Rental (Customer_No, Property_No, RentStart, RentFinish)
Property_Owner (Property_No, PAddress, Rent, Owner_No, OName)
Rental Relation
Customer Relation
Customer_No
Property_No
RentStart
RentFinish
John Kay
CR76
PG14
1-Jul-94
31-Aug-96
Aline Stewart
CR766
PG16
1-Sep-96
1-Sep-98
CR56
PG4
1-Sep-92
10-Jun-94
CR56
PG36
10-Oct-94 1-Dec-95
CR56
PG16
1-Jan-96
Customer_No
CName
CR76
CR56
Property-Owner Relation
Property_No
PAddress
Rent
Owner_No
OName
PG14
6 Lawrence St,
350
CO40
Tina Murphy
PG16
5 Norwar Dr
450
CO93
Tony Shaw
PG36
2 Manor Rd,
375
CO93
Tony Shaw
10-Aug-96
2NF applies to relations with composite keys, that is, relations with a primary key composed of two
or more attributes. A relation with a single attribute primary key is automatically in at least 2NF.
Transitive dependency
Customer (Customer_No, CName)
Rental
(Customer_No, Property_No, RentStart, RentFinish)
Property_Owner (Property_No, PAddress, Rent, Owner_No, OName)
Transitive dependency
Property-Owner Relation
Property_No
PAddress
Rent
Owner_No
OName
PG14
6 Lawrence St,
350
CO40
Tina Murphy
PG16
5 Norwar Dr
450
CO93
Tony Shaw
PG36
2 Manor Rd,
375
CO93
Tony Shaw
Customer Relation
Rental Relation
Customer_No
CName
Customer_No
Property_No
RentStart
RentFinish
CR76
John Kay
CR76
PG14
1-Jul-94
31-Aug-96
CR56
Aline Stewart
CR766
PG16
1-Sep-96
1-Sep-98
CR56
PG4
1-Sep-92
10-Jun-94
CR56
PG36
10-Oct-94 1-Dec-95
CR56
PG16
1-Jan-96
10-Aug-96
Transitive dependency : A condition where A, B, and C are attributes of a relation such that
if A  B and B  C, then C is transitively dependent on A via B
(provided that A is not functionally dependent on B or C).
Definition of Third Normal Form:
A relation that is in first and second normal form, and in which no non-primary key attribute
is transitively dependent on the primary key.
Customer (Customer_No, CName)
Rental
(Customer_No, Property_No, RentStart, RentFinish)
Property_Owner (Property_No, PAddress, Rent, Owner_No, OName)
Property-for-Rent Relation
Owner Relation
Property_No
PAddress
Rent
Owner_No
Owner_No
OName
PG14
6 Lawrence St,
350
CO40
C040
Tina Murphy
PG16
5 Norwar Dr
450
CO93
Co93
Tony Shaw
PG36
2 Manor Rd,
375
CO93
Customer_Rental Relation
Custome_No
Property_No
CName
PAddress
Rent
RentStart
RentFinish
Owner_No
OName
CR76
PG4
John Kay
6 Lawrence St,
350
1-jul-94
31-Aug-96
CO40
Tina Murphy
CR76
PG16
John Kay
5 Norwar Dr
450
1-Sep-98
1-Sep-98
CO93
Tony Shaw
CR56
PG4
Aline Stew
6 Lawrence St,
350
10-Jun-94
10-Jun-94
CO40
Tina Murphy
CR56
PG36
Aline Stew
2 Manor Rd,
375
1-Dec-95
1-Dec-95
CO93
Tony Shaw
CR56
PG16
Aline Stew
5 Norwar Dr
450
10-Aug-96
10-Aug-96
CO93
Tony Shaw
Customer (Customer_No, CName)
Rental
(Customer_No, Property_No, RentStart, RentFinish)
Property (Property_No, PAddress, Rent, Owner_No)
Owner (Owner_No, Oname)
Customer_Rental
1NF
Property_Owner
Customer
Rental
Property_for_Rent
2NF
Owner
3NF
Rental Relation
Customer_No
Property_No
RentStart
RentFinish
CR76
PG14
1-Jul-94
31-Aug-96
CR766
PG16
1-Sep-96
1-Sep-98
CR56
PG4
1-Sep-92
10-Jun-94
CR56
PG36
10-Oct-94 1-Dec-95
CR56
PG16
1-Jan-96
Customer Relation
Customer_No
CName
CR76
John Kay
CR56
Aline Stewart
Property-Owner Relation
10-Aug-96
Property_No
PAddress
Rent
Owner_No
Owner Relation
PG14
6 Lawrence St,
350
CO40
Owner_No OName
PG16
5 Norwar Dr
450
CO93
CO40
Tina Murphy
PG36
2 Manor Rd,
375
CO93
CO93
Tony Shaw
From 3NF to Boyce-Codd Normal Form (BCNF)
BCNF is based on functional dependencies that take into account all candidate
keys in a relation. For a relation with only one candidate key, 3NF and BCNF are
equivalent.
The difference between 3NF and BCNF is that for a functional dependency
AB, 3NF allows this dependency in a relation if B is a primary-key attribute and A is
not a candidate key. Whereas, BCNF insists that for this dependency to remain in a
relation, A must be a candidate key. Therefore, BCNF is a stronger form of 3NF, such
every relation in BCNF is also in 3NF.
Boyce-Codd :
normal form (BCNF)
A relation is in BCNF if and only if every determinant is
a candidate key.
Violation of BCNF is quite rare, since it may only happen under specific
conditions. The potential to violate BCNF may occur in relation that
• contains two (or more) composite candidate keys and
• which overlap, that is share at least one attribute in common
Case Study
In this example, Client_Interview relation is presented. It contains details of
the arrangements for interviews of clients by members of staff of the DreamHome
company. The members of staff involved in interviewing clients are allocated to a
specific room on the day of interview. However, a room may be allocated to several
members of staff as required throughout a working day. A client is only interviewed once
on a given date, but may be requested to attend further interviews at later dates. This
relation has three candidate keys:
(Client_No, Interview_Date),
(Staff_No, Interview_Date, Interview_Time), and
(Room_No, Interview_Date, Interview_Time).
Therefore the Client_Interview relation has three composite candidate keys, which
overlap by sharing the common attribute Interview_Date. We select
Client_No, Interview_Date) to act as the primary key for this relation.
Client_Interview (Client_No, Inverview_Date, Interview_Time, Staff_No, Room_No)
The Client_Interview relation has the following functional dependencies :
Client_No, Interview_Date  Interview_Time, Staff_No,
Room_No
(Primary key)
Fd2
Staff_No, Interview_Date, Interview_Time  Client_No
(Candidate key)
Fd3
Room_No, Interview_Date, Interview_Time  Staff_No, Client_No (Candidate key)
Fd4
Staff_No, Interview_Date  Room_No
Fd1
Client_No
Interview_Date Interview_Time Staff_No
Room_No
CR76
13-May-98
10:30
SG5
G101
CR56
13-May-98
12:00
SG5
G101
CR74
13-May-98
12:00
SG37
G102
CR56
1-Jul-98
10:30
SG5
G102
Client_Interview Relation
Interview (Client_No, Interview-Date, Interview_Time, Staff_No)
Staff_Room (Staff_No, Interview-Date, Room_No)
Interview Relation
Client_No
Interview_Date Interview_Time Staff_No
CR76
13-May-98
10:30
SG5
CR56
13-May-98
12:00
SG5
CR74
13-May-98
12:00
SG37
CR56
1-Jul-98
10:30
SG5
Staff_Room Relation
Staff_No
Interview_Date Room_No
SG5
13-May-98
G101
SG37
13-May-98
G102
SG5
1-Jul-98
G102
Review of Normalization (1NF to BCNF)
The DreamHome company manages property on behalf of the owners, and as
part of this service the company undertakes regular inspections of the property by
members of staff. When staff are required to undertake these inspections, they are
allocated a company car for use on the day of the inspections. However, a car may be
allocated to several members of staff, as required throughout the working day. A
member of staff may inspect several properties on a given date, but a property is
only inspected once on a given date.
Property_Inspection Relation
Property_No
PAddress
IDate
ITime
Comments
Staff_No
SName
Car_Reg
PG4
6 Lawrence St,
18-Oct-96
10:00
Need to replace crockery
SG37
Ann Beech
M231 JGR
22-Apr-97
09:00
In good order
SG14
David Ford
M533 HDR
1-Oct-98
12:00
Damp rot in bathroom
SG14
David Ford
N721 HFR
22-Apr-96
13:00
Replace room carpet
SG14
David Ford
M533 HDR
24-Oct-97
14:00
Good condition
SG37
Ann Beech
N721 HFR
PG16
5 Norwar Dr
Property_Inspection (Property_No, PAddress, IDate, ITime, Comments, Staff_No, SName, OName)
1NF : Property_Inspection Relation
Property_No
IDate
ITime
PAddress
Comments
Staff_No
SName
Car_Reg
PG4
18-Oct-96
10:00
6 Lawrence St,
Need to replace crockery
SG37
Ann Beech
M231 JGR
PG4
22-Apr-97
09:00
6 Lawrence St,
In good order
SG14
David Ford
M533 HDR
PG4
1-Oct-98
12:00
6 Lawrence St,
Damp rot in bathroom
SG14
David Ford
N721 HFR
PG16
22-Apr-96
13:00
5 Norwar Dr
Replace room carpet
SG14
David Ford
M533 HDR
PG16
24-Oct-97
14:00
5 Norwar Dr
Good condition
SG37
Ann Beech
N721 HFR
Property_Inspection (Property_No, IDate, ITime, PAddress, Comments, Staff_No, SName, OName)
Property_No
IDate
ITime
PAddress
Comments
Staff_No
SName
Car_Reg
FD1
FD2
FD3
(Primary key)
(Partial dependency)
(Transitive dependency)
FD4
FD5
FD6
(Candidate key)
(Candidate key)
Property_No
IDate
ITime
PAddress
Comments
Staff_No
SName
Car_Reg
FD1
(Primary key)
(Partial dependency)
FD2
Remove Partial dependency (decompose the relation) to obtain 2NF
Property Relation
Property_No
PAddress
PG4
6 Lawrence St,
PG16
5 Norwar Dr
Property_Inspection Relation
Property_No
IDate
ITime
Comments
Staff_No
SName
Car_Reg
PG4
18-Oct-96
10:00
Need to replace crockery
SG37
Ann Beech
M231 JGR
PG4
22-Apr-97
09:00
In good order
SG14
David Ford
M533 HDR
PG4
1-Oct-98
12:00
Damp rot in bathroom
SG14
David Ford
N721 HFR
PG16
22-Apr-96
13:00
Replace room carpet
SG14
David Ford
M533 HDR
PG16
24-Oct-97
14:00
Good condition
SG37
Ann Beech
N721 HFR
Property Relation (Property_No, PAddress)
Property_No
PAddress
PG4
6 Lawrence St,
PG16
5 Norwar Dr
Property_Inspection Relation
Property_No
IDate
ITime
Comments
Staff_No
SName
Car_Reg
FD1
FD3
(Primary key)
(Transitive dependency)
FD4
(Candidate key)
FD5
FD6
(Candidate key)
Property Relation
Property_No
PAddress
PG4
6 Lawrence St,
PG16
5 Norwar Dr
Remove Transitive dependency (decompose the relation) to obtain 3NF
Staff Relation
Staff_No
SName
SG37
Ann Beech
SG14
David Ford
Property_Inspection Relation
Property_No
IDate
ITime
Comments
Staff_No
Car_Reg
PG4
18-Oct-96
10:00
Need to replace crockery
SG37
M231 JGR
PG4
22-Apr-97
09:00
In good order
SG14
M533 HDR
PG4
1-Oct-98
12:00
Damp rot in bathroom
SG14
N721 HFR
PG16
22-Apr-97
13:00
Replace room carpet
SG14
M533 HDR
PG16
24-Oct-97
14:00
Good condition
SG37
N721 HFR
Property Relation
Staff Relation
Property_No
PAddress
Staff_No
SName
PG4
6 Lawrence St,
SG37
Ann Beech
PG16
5 Norwar Dr
SG14
David Ford
Remove remaining anomalies from functional dependencies to obtain BCNF
Property_Inspection Relation
Property_No
IDate
ITime
Comments
Staff_No
Car_Reg
Staff_Car (Staff_No, IDate, Car_Reg)
Inspection (Property_No, IDate, ITime, Comments, Staff_No)
From BCNF to Fourth Normal Form (4NF)
Although BCNF removes any anomalies due to functional dependencies, further
research led to the identification of another type of dependency called multi-valued
dependency (MVD), which can cause similar design problems for relations in terms
of data redundancy.
ตารางต่อไปนี้เป็ น BCNF แต่ยงั เกิดปั ญหา update anomalies
Lect_Sub_Research Relation
Lecturer_Name
Subject
Research
Yuen
Data Structure
Natural Language Processing
Yuen
Data Structure
Protocal Analyzer
Yuen
Discrete Math
Natural Language Processing
Yuen
Discrete Math
Protocal Analyzer
Yuen
Data Base
Natural Language Processing
Yuen
Data Base
Protocal Analyzer
Chalerrmsak
Data Structure
Protocal Analyzer
Chalerrmsak
Data Structure
Compiler Utilities
Chalerrmsak
Data Structure
Natural Language Processing
Multi-valued :
dependency
(MVD)
Represents a dependency between attributes (for example, A,
B, and C) in a relation, such that for each value of A there is a
set of values for B, and a set of values for C. However, the set
of values for B and C are independent of each other.
A > B
A > C
Lecturer > Subject
Lecturer > Research
Lec_Sub_Research Relation
Lecturer_Name
Lec_Sub Relation
Lecturer_Name
Subject
Subject
Research
Yuen
Data Structure
Natural Language Processing
Yuen
Data Structure
Yuen
Data Structure
Protocal Analyzer
Yuen
Discrete Math
Yuen
Discrete Math
Natural Language Processing
Yuen
Data Base
Yuen
Discrete Math
Protocal Analyzer
Chalerrmsak
Data Structure
Yuen
Data Base
Natural Language Processing
Yuen
Data Base
Protocal Analyzer
Lec_Research Relation
Chalerrmsak
Data Structure
Protocal Analyzer
Lecturer_Name
Chalerrmsak
Data Structure
Compiler Utilities
Yuen
Natural Language Processing
Chalerrmsak
Data Structure
Natural Language Processing
Yuen
Protocal Analyzer
Chalerrmsak
Protocal Analyzer
Chalerrmsak
Compiler Utilities
Chalerrmsak
Natural Language Processing
Research
Unnormalized form (UNF)
Remove repeating groups
First normal form (1NF)
Remove partial dependencies
Second normal form (2NF)
Remove transitive dependencies
Third normal form (3NF)
Remove remaining anomalies
From functional dependencies
Boyce-Codd form (BCNF)
Remove multi-valued
dependencies
Fourth normal form (4NF)