DEPENDESI TOTAL X Y, YX
Teknik
Normalisasi
1
Normalisasi
Teknik/pendekatan yang digunakan dalam membangun
disain lojik basis data relasional melalui organisasi
himpunan data dengan tingkat ketergantungan
fungsional dan keterkaitan yang tinggi sedemikian
sehingga menghasilkan struktur tabel yang normal.
Tujuan :
Minimalisasi redundansi (pengulangan data)
Memudahkan identifikasi entitas
Mencegah terjadinya anomali penyisipan, ubah,
hapus
2
1
Beberapa bentuk normal (normal forms, NF) :
1NF, 2NF, 3NF, BCNF ( based on keys and functional dependencies)
4NF, 5NF (based on keys and multi-valued dependencies)
Menghilangkan
group
UNF
Menghilangkan
dependensi
parsial
1NF
Menghilangkan
dependensi pd
bukan kunci
kandidat
Menghilangkan
dependensi
transitif
2NF
3NF
BCNF
Menghilangkan
lebih dari
dependensi
bernilai ganda
5NF
4NF
Menghilangkan
dependensi
gabungan
DEPENDENSI FUNGSIONAL (DF)
Terdapat relasi R dengan atribut X dan Y R(X,Y) maka
Atribut Y dikatakan memiliki DF terhadap X, apabila nilai
dalam X berhungan tepat satu nilai dengan Y dengan notasi
X Y
X disebut determinan(penentu)
Y disebut dependensi ‘ yang tergantung
ID_pemasok Nama_pemasok
NPM nama_mhs
Kode_brg nama_brg
DEPENDESI
TOTAL
X Y,
Contoh :
ID_pemasok Nama_pemasok
Kode_brg nama_brg
YX
Nama_pemasok ID_pemasok
nama_brg Kode_brg
NPM nama_mhs ???
2
Tabel : Pendidikan_dosen
Kd_dos
Nm_dos
Jekel
Pendidikan
Thn_lulus
D41
Ani
W
S1
1988
D41
Ani
W
S2
1994
D42
Budi
L
S1
1988
D42
Budi
L
S2
1996
D42
Budi
L
S3
2003
DEPENDENSI PENUH
Nilai Y tergantung lebih dari satu nilai ( X dan Z)
{kd_dos,Pendidikan } thn_lulus
DEPENDENSI PARSIAL
Y atribut non_kunci, X atribut kunci
Y DF terhadap bagian dari X tetapi tidak terhadap keseluruhan X
{kd_dos,Pendidikan } jekel
Jekel sebenarnya hanya DF pada kd_dos ( bagian dari kunci
utama)
DEPENDENSI TRANSITIF
Z memiliki dependensi transitif terhadap X jika :
• Z memiliki DF terhadap Y
• Y memilikiDF terhadap X
X Y Z
maka X Z
YZ
XY
(Asosiatif)
3
Tabel : Barang
Kd_brg
Nm_brg
Hrg_jual
Kd_
pemasok
T001
TV 21
1500000
P22
T010
TV 29
3000000
P22
T002
AC Sam
2500000
P21
T004
AC Pana
2750000
P23
T003
Kulkas 1A
100000
P20
Kd_brg nm_brg
Kd_pemasok nm_pemasok
Kd_brg kd_pemasok
nm_pemasok
Tabel : Pemasok
Kd_
pemasok
Nm_pemasok
kota
P22
PT Jaya Elek
Bogor
P21
PT Elektindo
Yogya
P23
PT Nindya
Banten
P20
PT Amerta
Bandung
Maka :
Kd_brg nm_pemasok
First Normal Form (1NF)
Suatu relasi disebut memenuhi bentuk normal pertama (1NF)
jika dan hanya jika setiap atribut dari relasi tersebut hanya
memiliki nilai tunggal dan tidak ada pengulangan grup atribut
dalam baris.
Bentuk 1NF tidak boleh mengandung grup atribut yang
berulang.
Tujuan membentuk 1NF :
semantik tabel menjadi lebih eksplisit
semua operator aljabar relasional dapat diaplikasikan
pada tabel.
8
4
First Normal Form (1NF)
Tabel : Sales
IDSales
ADN006
ADN007
ADN008
ADN009
ADN010
NamaSales
Yeni, SE
Memey
Tina
Ir. Yanto
Made
non-atomic
Telepon
3517261, 3520165
4744621,08122861427
08566241521
7265122, 7123910
6723192
Unnormalized
Not 1NF
IDSales
ADN006
ADN006
ADN007
ADN007
ADN008
ADN009
ADN009
ADN010
1NF
NamaSales
Yeni, SE
Yeni, SE
Memey
Memey
Tina
Ir. Yanto
Ir. Yanto
Made
Telepon
3517261
3520165
4744621
08122861427
08566241521
7265122
7123910
6723192
9
First Normal Form (1NF)
Tabel : Buku
ISBN
Thn_Terbit ID_Pengarang
12-1202-19222
1992 K0121
11-1090-29101
2001 K1021
11-1090-29102
2001 K2091
12-1201-90871
2002 K2092
13-2089-12910
2001 K2019
Unnormalized
Not 1NF
repeated
Nama_Pengarang
Aris M
Kosim P
K Odelia
Renaldi
Samsuri J
ISBN
Thn_Terbit ID_Pengarang
12-1202-19222
1992
K0121
12-1202-19222
1992
K1021
11-1090-29101
2001
K1021
11-1090-29102
2001
K2091
11-1090-29102
2001
K0121
12-1201-90871
2002
K2092
12-1201-90871
2002
K2091
13-2089-12910
2001
K2019
ID_Pengarang Nama_Pengarang
K1021
Kosim P
K0121
K2091
Aris M
K Odelia
Nama_Pengarang
Aris M
Kosim P
Kosim P
K Odelia
Aris M
Renaldi
K Odelia
Samsuri J
1NF
10
5
Second Normal Form (2NF)
Suatu relasi disebut memenuhi bentuk normal kedua (2NF)
jika dan hanya jika :
1. memenuhi 1NF
2. setiap atribut yang bukan kunci utama tergantung secara
fungsional terhadap semua atribut kunci dan bukan hanya
sebagian atribut kunci ( DF Penuh).
Untuk normalisasi ke bentuk 2NF, maka tabel 1NF
didekomposisi menjadi beberapa tabel yang masing-masing
memenuhi 2NF.
Bila terdapat ketergantungan parsial maka : eliminate.
Tujuan membentuk 2NF :
semantik tabel 2NF menjadi lebih eksplisit (DF Penuh)
mengurangi update anomali yang masih mungkin terjadi
pada 1NF
11
Second Normal Form (2NF)
Bagaimana bila R = (A,B,C,D,E) A,B kunci utama
tetapi dengan DF :
(A,B) (C,D) dan B E. Apakah memenuhhi 2NF ?
Maka R bukan 2NF
Karena atribut E yang bergantung hanya pada atribut B saja (DF
parsial) dan bukan terhadap (A,B).
Dari DF : (A,B) (C,D) juga mencerminkan bahwa hanya C dan D
saja yang bergantung secara fungsional terhadap (A,B), tidak untuk E.
Jadi bukan 2NF.
Untuk mengubah menjadi 2NF, lakukan dekomposisi menjadi :
R1 = (A,B,C,D) dan R2 = (B,E). Tampak R1 dan R2 memenuhi 2NF.
13
6
Second Normal Form (2NF)
Diketahui Workshop = (NIM,Modul,Biaya,Grade)
Peserta Workshop
NIM
Modul
Biaya
Key : NIM+Modul
FD : Modul Biaya
Grade
(Biaya ditentukan oleh Modul yang
diambil mahasiswa)
Tabel : workshop
NIM
Modul
Biaya
Grade
0129
VB.Net
250000
A
0130
Prolog
100000
A
.0129
Prolog
100000
B
0201
Delphi 6
150000
A
0250
VB.Net
250000
B
1NF
Not 2NF
Sebab dalam tabel ini,
Biaya tidak bergantung penuh
pada atribut kunci (NIM,Modul)
14
Second Normal Form (2NF)
NIM
Modul
Biaya
Grade
(NIM,Modul) = key
(Modul) Biaya
(DF Parsial)
(NIM,Modul) Grade (DF Penuh)
NIM
Modul
Biaya
Grade
Eliminate
Buat Dekomposisi:
Works1 = (NIM,Modul,Grade)
Works2 = (Modul,Biaya)
DF PENUH
15
7
Second Normal Form (2NF)
NIM
Modul
Grade
Grade
0129
VB.Net
A
A
0130
Prolog
A
Prolog
B
Workshop
NIM
.0129
Modul
VB.Net
Biaya
250000
.0130
Prolog
100000
A
0129
0129
Prolog
100000
B
0201
Delphi 6
A
0250
VB.Net
B
.0201
Delphi 6
150000
A
.0250
VB.Net
250000
B
Works1
Modul
Biaya
VB.Net
250000
Prolog
100000
Delphi 6
150000
Works2
16
Third Normal Form (3NF)
Suatu relasi disebut memenuhi bentuk normal ketiga (3NF)
jika dan hanya jika :
1. memenuhi 2NF
2. setiap atribut yang bukan kunci tidak tergantung secara
fungsional terhadap atribut bukan kunci yang lain dalam
relasi tsb
(tidak terdapat ketergantungan transitif pada
atribut bukan kunci).
17
8
Third Normal Form (3NF)
Jika suatu relasi sudah memenuhi 2NF tapi tidak memenuhi
3 NF, maka untuk normalisasi ke bentuk 3NF, tabel 2NF
didekomposisi menjadi beberapa tabel hingga masingmasing memenuhi 3NF.
Tujuan membentuk 3NF :
:: semantik tabel 3NF menjadi lebih eksplisit
(DF Penuh hanya pada primary key).
:: menghindari update anomali yang masih mungkin terjadi
pada 2NF.
18
Third Normal Form (3NF)
Contoh :
Diketahui tabel R=(A,B,C,D,E) ; A,B kunci utama (primary
key)
dengan DF: A,B C,D,E dan C D,E
maka R bukan 3NF sebab :
Atribut D dan E (bukan kunci utama) bergantung secara
fungsional pada C (yang juga bukan kunci utama).
Melalui FD :
Diketahui
A,B C,D,E.
CD,E.
Agar R memenuhi 3NF maka didekomposisi menjadi :
R1=(A,B,C) dan R2=(C,D,E) sehingga R1 dan R2 memenuhi
3NF.
19
9
Third Normal Form (3NF)
DF : A,B C,D,E berarti A,B C ; C D,E ; A,B D,E
A,B D reduce
A,B E reduce
Dekomposisinya : R1=(A,B,C) ; DF : (A,B)C
R2=(C,D,E) ; DF : CD,E
R
A
A
B
B
C
C
D
E
C
D
E
R2
R1
20
Third Normal Form (3NF)
Misal diketahui struktur informasi dari suatu dokumen supplier :
S
S1
S2
S3
S4
Status City
PQ
P Qty
20 LONDON P1 300
P2 200
P3 400
P4 200
P5 100
P6 100
10 PARIS
P1 300
P2 400
10 PARIS
P2 200
20 LONDON P2 200
P4 399
P5 400
Akan dibentuk suatu tabel dengan skema
TPS=(S,Status,City,P,Qty)
dengan (S,P) = primary key
dan berlaku DF :
SStatus
SCity
CityStatus
Lakukan normalisasi dari 1NF hingga 3NF.
21
10
Third Normal Form (3NF)
Tabel : TPS
1NF
Not 2NF
S Status City
P Qty
S1
20 LONDON P1 300
Masalah :
S1
20 LONDON P2 200
Redundansi
S1
20 LONDON P3 400
Anomali :
S1
20 LONDON P4 200
S(Status,City) tapi kita tidak bisa:
S1
20 LONDON P5 100
Insert data (S5,30,JAKARTA) tanpa diikuti data
S1
20 LONDON P6 100
P (khususnya) dan Q.
S2
10 PARIS
P1 300
Menghapus 1 baris data akan jg merusak
keutuhan informasi.
S2
10 PARIS
P2 400
S3
10 PARIS
P2 200 Solusi :
Dekomposisi menjadi :
S4
20 LONDON P2 200
TPS1 dan TPS2
S4
20 LONDON P4 399
S4
20 LONDON P5 400
22
Third Normal Form (3NF)
TPS1
S Status City
S1
20 LONDON
S2
10 PARIS
S3
10 PARIS
S4
20 LONDON
1NF
2NF
Not 3NF (transitif.)
SCity
CityStatus
Untuk insert data (S5,30,JAKARTA) dapat lakukan
dgn aman
Tapi masih ada anomaly :
karena CityStatus maka tidak bisa insert
data City baru sebelum Status punya nilai.
Penghapusan 1 baris sebagian data City juga bisa
merusak keutuhan informasi S.
Selain itu, masih ada redundansi pada Status dan
City
23
11
Third Normal Form (3NF)
Tabel : TPS2
S
S1
S1
S1
S1
S1
S1
S2
S2
S3
S4
S4
S4
P
P1
P2
P3
P4
P5
P6
P1
P2
P2
P2
P4
P5
Qty
300
200
400
200
100
100
300
400
200
200
399
400
1NF
2NF
3NF
Third Normal Form (3NF)
S
S1
S2
S3
S4
TPS1-1
City
LONDON
PARIS
PARIS
LONDON
1NF
2NF
3NF
TPS1-2
City
Status
LONDON
20
PARIS
10
1NF
2NF
3NF
S
S1
S1
S1
S1
S1
S1
S2
S2
S3
S4
S4
S4
TPS2
P Qty 1NF
P1 300 2NF
3NF
P2 200
P3 400
P4 200
P5 100
P6 100
P1 300
P2 400
P2 200
P2 200
P4 399
P5 400
25
12
Boyce Codd Normal Form (BCNF)
Contoh :
Diketahui tabel R=(A,B,C)
dengan FD : AB C dan C B. Apakah :
3NF ?
BCNF ?
R memenuhi 3NF karena :
ABC ; maka AB ABC, atau A R. Jadi AB superkey dari R
CB ; maka AC AB, atau AC ABC dan AC R.
Jadi AC juga superkey (sekaligus juga candidate key) dari R
Karena AB superkey dan C subset candidate key maka
R memenuhi 3NF
R bukan BCNF karena :
AB superkey tetapi C bukan superkey.
26
Boyce Codd Normal Form (BCNF)
Pinjam
idpinjam
sid
bid
date
P-01
53666
B002
10/11/2005
P-02
53668
B001
10/11/2005
P-03
53668
B004
11/12/2005
P-04
53670
B002
14/11/2005
Didekomposisi menjadi :
Pinjam1
Pinjam2
idpinjam
bid
date
idpinjam
sid
P-01
53666
P-01
B002
10/11/2005
P-02
53668
P-02
B001
10/11/2005
P-03
53668
P-03
B004
11/12/2005
53670
P-04
B002
14/11/2005
P-04
DF trivial
BCNF
idpinjam bid, date
idpinjam superkey
27
BCNF
13
Comparison of BCNF And 3NF
Contoh kasus redundansi pada 3NF
Jadwal = (Nim,Modul,Dosen)
DF = {Dosen Modul}
Relasi ini memenuhi 3NF, karena tidak ada ketergantungan transitif.
Tetapi tidak memenuhi BCNF karena dari Dosen Modul
maka Dosen bukan candidate key.
Alternatif yang dilakukan adalah dekomposisi tabel menjadi :
NIM
Modul
0129
Dosen
NIM
Dosen
VB.Net Ajib
0129
Ajib
0130
Prolog
Aris
0130
Aris
0129
Prolog
Aris
0129
Aris
0201
VB Net Budi
0201
Budi
0250
Prolog
Jono
0250
Jono
0260
VB.Net Budi
0260
Budi
NOT BCNF
Dosen
Modul
Ajib
VB.Net
Aris
Prolog
Jono
Prolog
Budi
VB.Net
BCNF
LATIHAN !!
28
Berdasarkan PO :
• Rancanglah tabel
penyimpanan
datanya
29
14
Buat ERD dan Normalisasi
15
Normalisasi
1
Normalisasi
Teknik/pendekatan yang digunakan dalam membangun
disain lojik basis data relasional melalui organisasi
himpunan data dengan tingkat ketergantungan
fungsional dan keterkaitan yang tinggi sedemikian
sehingga menghasilkan struktur tabel yang normal.
Tujuan :
Minimalisasi redundansi (pengulangan data)
Memudahkan identifikasi entitas
Mencegah terjadinya anomali penyisipan, ubah,
hapus
2
1
Beberapa bentuk normal (normal forms, NF) :
1NF, 2NF, 3NF, BCNF ( based on keys and functional dependencies)
4NF, 5NF (based on keys and multi-valued dependencies)
Menghilangkan
group
UNF
Menghilangkan
dependensi
parsial
1NF
Menghilangkan
dependensi pd
bukan kunci
kandidat
Menghilangkan
dependensi
transitif
2NF
3NF
BCNF
Menghilangkan
lebih dari
dependensi
bernilai ganda
5NF
4NF
Menghilangkan
dependensi
gabungan
DEPENDENSI FUNGSIONAL (DF)
Terdapat relasi R dengan atribut X dan Y R(X,Y) maka
Atribut Y dikatakan memiliki DF terhadap X, apabila nilai
dalam X berhungan tepat satu nilai dengan Y dengan notasi
X Y
X disebut determinan(penentu)
Y disebut dependensi ‘ yang tergantung
ID_pemasok Nama_pemasok
NPM nama_mhs
Kode_brg nama_brg
DEPENDESI
TOTAL
X Y,
Contoh :
ID_pemasok Nama_pemasok
Kode_brg nama_brg
YX
Nama_pemasok ID_pemasok
nama_brg Kode_brg
NPM nama_mhs ???
2
Tabel : Pendidikan_dosen
Kd_dos
Nm_dos
Jekel
Pendidikan
Thn_lulus
D41
Ani
W
S1
1988
D41
Ani
W
S2
1994
D42
Budi
L
S1
1988
D42
Budi
L
S2
1996
D42
Budi
L
S3
2003
DEPENDENSI PENUH
Nilai Y tergantung lebih dari satu nilai ( X dan Z)
{kd_dos,Pendidikan } thn_lulus
DEPENDENSI PARSIAL
Y atribut non_kunci, X atribut kunci
Y DF terhadap bagian dari X tetapi tidak terhadap keseluruhan X
{kd_dos,Pendidikan } jekel
Jekel sebenarnya hanya DF pada kd_dos ( bagian dari kunci
utama)
DEPENDENSI TRANSITIF
Z memiliki dependensi transitif terhadap X jika :
• Z memiliki DF terhadap Y
• Y memilikiDF terhadap X
X Y Z
maka X Z
YZ
XY
(Asosiatif)
3
Tabel : Barang
Kd_brg
Nm_brg
Hrg_jual
Kd_
pemasok
T001
TV 21
1500000
P22
T010
TV 29
3000000
P22
T002
AC Sam
2500000
P21
T004
AC Pana
2750000
P23
T003
Kulkas 1A
100000
P20
Kd_brg nm_brg
Kd_pemasok nm_pemasok
Kd_brg kd_pemasok
nm_pemasok
Tabel : Pemasok
Kd_
pemasok
Nm_pemasok
kota
P22
PT Jaya Elek
Bogor
P21
PT Elektindo
Yogya
P23
PT Nindya
Banten
P20
PT Amerta
Bandung
Maka :
Kd_brg nm_pemasok
First Normal Form (1NF)
Suatu relasi disebut memenuhi bentuk normal pertama (1NF)
jika dan hanya jika setiap atribut dari relasi tersebut hanya
memiliki nilai tunggal dan tidak ada pengulangan grup atribut
dalam baris.
Bentuk 1NF tidak boleh mengandung grup atribut yang
berulang.
Tujuan membentuk 1NF :
semantik tabel menjadi lebih eksplisit
semua operator aljabar relasional dapat diaplikasikan
pada tabel.
8
4
First Normal Form (1NF)
Tabel : Sales
IDSales
ADN006
ADN007
ADN008
ADN009
ADN010
NamaSales
Yeni, SE
Memey
Tina
Ir. Yanto
Made
non-atomic
Telepon
3517261, 3520165
4744621,08122861427
08566241521
7265122, 7123910
6723192
Unnormalized
Not 1NF
IDSales
ADN006
ADN006
ADN007
ADN007
ADN008
ADN009
ADN009
ADN010
1NF
NamaSales
Yeni, SE
Yeni, SE
Memey
Memey
Tina
Ir. Yanto
Ir. Yanto
Made
Telepon
3517261
3520165
4744621
08122861427
08566241521
7265122
7123910
6723192
9
First Normal Form (1NF)
Tabel : Buku
ISBN
Thn_Terbit ID_Pengarang
12-1202-19222
1992 K0121
11-1090-29101
2001 K1021
11-1090-29102
2001 K2091
12-1201-90871
2002 K2092
13-2089-12910
2001 K2019
Unnormalized
Not 1NF
repeated
Nama_Pengarang
Aris M
Kosim P
K Odelia
Renaldi
Samsuri J
ISBN
Thn_Terbit ID_Pengarang
12-1202-19222
1992
K0121
12-1202-19222
1992
K1021
11-1090-29101
2001
K1021
11-1090-29102
2001
K2091
11-1090-29102
2001
K0121
12-1201-90871
2002
K2092
12-1201-90871
2002
K2091
13-2089-12910
2001
K2019
ID_Pengarang Nama_Pengarang
K1021
Kosim P
K0121
K2091
Aris M
K Odelia
Nama_Pengarang
Aris M
Kosim P
Kosim P
K Odelia
Aris M
Renaldi
K Odelia
Samsuri J
1NF
10
5
Second Normal Form (2NF)
Suatu relasi disebut memenuhi bentuk normal kedua (2NF)
jika dan hanya jika :
1. memenuhi 1NF
2. setiap atribut yang bukan kunci utama tergantung secara
fungsional terhadap semua atribut kunci dan bukan hanya
sebagian atribut kunci ( DF Penuh).
Untuk normalisasi ke bentuk 2NF, maka tabel 1NF
didekomposisi menjadi beberapa tabel yang masing-masing
memenuhi 2NF.
Bila terdapat ketergantungan parsial maka : eliminate.
Tujuan membentuk 2NF :
semantik tabel 2NF menjadi lebih eksplisit (DF Penuh)
mengurangi update anomali yang masih mungkin terjadi
pada 1NF
11
Second Normal Form (2NF)
Bagaimana bila R = (A,B,C,D,E) A,B kunci utama
tetapi dengan DF :
(A,B) (C,D) dan B E. Apakah memenuhhi 2NF ?
Maka R bukan 2NF
Karena atribut E yang bergantung hanya pada atribut B saja (DF
parsial) dan bukan terhadap (A,B).
Dari DF : (A,B) (C,D) juga mencerminkan bahwa hanya C dan D
saja yang bergantung secara fungsional terhadap (A,B), tidak untuk E.
Jadi bukan 2NF.
Untuk mengubah menjadi 2NF, lakukan dekomposisi menjadi :
R1 = (A,B,C,D) dan R2 = (B,E). Tampak R1 dan R2 memenuhi 2NF.
13
6
Second Normal Form (2NF)
Diketahui Workshop = (NIM,Modul,Biaya,Grade)
Peserta Workshop
NIM
Modul
Biaya
Key : NIM+Modul
FD : Modul Biaya
Grade
(Biaya ditentukan oleh Modul yang
diambil mahasiswa)
Tabel : workshop
NIM
Modul
Biaya
Grade
0129
VB.Net
250000
A
0130
Prolog
100000
A
.0129
Prolog
100000
B
0201
Delphi 6
150000
A
0250
VB.Net
250000
B
1NF
Not 2NF
Sebab dalam tabel ini,
Biaya tidak bergantung penuh
pada atribut kunci (NIM,Modul)
14
Second Normal Form (2NF)
NIM
Modul
Biaya
Grade
(NIM,Modul) = key
(Modul) Biaya
(DF Parsial)
(NIM,Modul) Grade (DF Penuh)
NIM
Modul
Biaya
Grade
Eliminate
Buat Dekomposisi:
Works1 = (NIM,Modul,Grade)
Works2 = (Modul,Biaya)
DF PENUH
15
7
Second Normal Form (2NF)
NIM
Modul
Grade
Grade
0129
VB.Net
A
A
0130
Prolog
A
Prolog
B
Workshop
NIM
.0129
Modul
VB.Net
Biaya
250000
.0130
Prolog
100000
A
0129
0129
Prolog
100000
B
0201
Delphi 6
A
0250
VB.Net
B
.0201
Delphi 6
150000
A
.0250
VB.Net
250000
B
Works1
Modul
Biaya
VB.Net
250000
Prolog
100000
Delphi 6
150000
Works2
16
Third Normal Form (3NF)
Suatu relasi disebut memenuhi bentuk normal ketiga (3NF)
jika dan hanya jika :
1. memenuhi 2NF
2. setiap atribut yang bukan kunci tidak tergantung secara
fungsional terhadap atribut bukan kunci yang lain dalam
relasi tsb
(tidak terdapat ketergantungan transitif pada
atribut bukan kunci).
17
8
Third Normal Form (3NF)
Jika suatu relasi sudah memenuhi 2NF tapi tidak memenuhi
3 NF, maka untuk normalisasi ke bentuk 3NF, tabel 2NF
didekomposisi menjadi beberapa tabel hingga masingmasing memenuhi 3NF.
Tujuan membentuk 3NF :
:: semantik tabel 3NF menjadi lebih eksplisit
(DF Penuh hanya pada primary key).
:: menghindari update anomali yang masih mungkin terjadi
pada 2NF.
18
Third Normal Form (3NF)
Contoh :
Diketahui tabel R=(A,B,C,D,E) ; A,B kunci utama (primary
key)
dengan DF: A,B C,D,E dan C D,E
maka R bukan 3NF sebab :
Atribut D dan E (bukan kunci utama) bergantung secara
fungsional pada C (yang juga bukan kunci utama).
Melalui FD :
Diketahui
A,B C,D,E.
CD,E.
Agar R memenuhi 3NF maka didekomposisi menjadi :
R1=(A,B,C) dan R2=(C,D,E) sehingga R1 dan R2 memenuhi
3NF.
19
9
Third Normal Form (3NF)
DF : A,B C,D,E berarti A,B C ; C D,E ; A,B D,E
A,B D reduce
A,B E reduce
Dekomposisinya : R1=(A,B,C) ; DF : (A,B)C
R2=(C,D,E) ; DF : CD,E
R
A
A
B
B
C
C
D
E
C
D
E
R2
R1
20
Third Normal Form (3NF)
Misal diketahui struktur informasi dari suatu dokumen supplier :
S
S1
S2
S3
S4
Status City
PQ
P Qty
20 LONDON P1 300
P2 200
P3 400
P4 200
P5 100
P6 100
10 PARIS
P1 300
P2 400
10 PARIS
P2 200
20 LONDON P2 200
P4 399
P5 400
Akan dibentuk suatu tabel dengan skema
TPS=(S,Status,City,P,Qty)
dengan (S,P) = primary key
dan berlaku DF :
SStatus
SCity
CityStatus
Lakukan normalisasi dari 1NF hingga 3NF.
21
10
Third Normal Form (3NF)
Tabel : TPS
1NF
Not 2NF
S Status City
P Qty
S1
20 LONDON P1 300
Masalah :
S1
20 LONDON P2 200
Redundansi
S1
20 LONDON P3 400
Anomali :
S1
20 LONDON P4 200
S(Status,City) tapi kita tidak bisa:
S1
20 LONDON P5 100
Insert data (S5,30,JAKARTA) tanpa diikuti data
S1
20 LONDON P6 100
P (khususnya) dan Q.
S2
10 PARIS
P1 300
Menghapus 1 baris data akan jg merusak
keutuhan informasi.
S2
10 PARIS
P2 400
S3
10 PARIS
P2 200 Solusi :
Dekomposisi menjadi :
S4
20 LONDON P2 200
TPS1 dan TPS2
S4
20 LONDON P4 399
S4
20 LONDON P5 400
22
Third Normal Form (3NF)
TPS1
S Status City
S1
20 LONDON
S2
10 PARIS
S3
10 PARIS
S4
20 LONDON
1NF
2NF
Not 3NF (transitif.)
SCity
CityStatus
Untuk insert data (S5,30,JAKARTA) dapat lakukan
dgn aman
Tapi masih ada anomaly :
karena CityStatus maka tidak bisa insert
data City baru sebelum Status punya nilai.
Penghapusan 1 baris sebagian data City juga bisa
merusak keutuhan informasi S.
Selain itu, masih ada redundansi pada Status dan
City
23
11
Third Normal Form (3NF)
Tabel : TPS2
S
S1
S1
S1
S1
S1
S1
S2
S2
S3
S4
S4
S4
P
P1
P2
P3
P4
P5
P6
P1
P2
P2
P2
P4
P5
Qty
300
200
400
200
100
100
300
400
200
200
399
400
1NF
2NF
3NF
Third Normal Form (3NF)
S
S1
S2
S3
S4
TPS1-1
City
LONDON
PARIS
PARIS
LONDON
1NF
2NF
3NF
TPS1-2
City
Status
LONDON
20
PARIS
10
1NF
2NF
3NF
S
S1
S1
S1
S1
S1
S1
S2
S2
S3
S4
S4
S4
TPS2
P Qty 1NF
P1 300 2NF
3NF
P2 200
P3 400
P4 200
P5 100
P6 100
P1 300
P2 400
P2 200
P2 200
P4 399
P5 400
25
12
Boyce Codd Normal Form (BCNF)
Contoh :
Diketahui tabel R=(A,B,C)
dengan FD : AB C dan C B. Apakah :
3NF ?
BCNF ?
R memenuhi 3NF karena :
ABC ; maka AB ABC, atau A R. Jadi AB superkey dari R
CB ; maka AC AB, atau AC ABC dan AC R.
Jadi AC juga superkey (sekaligus juga candidate key) dari R
Karena AB superkey dan C subset candidate key maka
R memenuhi 3NF
R bukan BCNF karena :
AB superkey tetapi C bukan superkey.
26
Boyce Codd Normal Form (BCNF)
Pinjam
idpinjam
sid
bid
date
P-01
53666
B002
10/11/2005
P-02
53668
B001
10/11/2005
P-03
53668
B004
11/12/2005
P-04
53670
B002
14/11/2005
Didekomposisi menjadi :
Pinjam1
Pinjam2
idpinjam
bid
date
idpinjam
sid
P-01
53666
P-01
B002
10/11/2005
P-02
53668
P-02
B001
10/11/2005
P-03
53668
P-03
B004
11/12/2005
53670
P-04
B002
14/11/2005
P-04
DF trivial
BCNF
idpinjam bid, date
idpinjam superkey
27
BCNF
13
Comparison of BCNF And 3NF
Contoh kasus redundansi pada 3NF
Jadwal = (Nim,Modul,Dosen)
DF = {Dosen Modul}
Relasi ini memenuhi 3NF, karena tidak ada ketergantungan transitif.
Tetapi tidak memenuhi BCNF karena dari Dosen Modul
maka Dosen bukan candidate key.
Alternatif yang dilakukan adalah dekomposisi tabel menjadi :
NIM
Modul
0129
Dosen
NIM
Dosen
VB.Net Ajib
0129
Ajib
0130
Prolog
Aris
0130
Aris
0129
Prolog
Aris
0129
Aris
0201
VB Net Budi
0201
Budi
0250
Prolog
Jono
0250
Jono
0260
VB.Net Budi
0260
Budi
NOT BCNF
Dosen
Modul
Ajib
VB.Net
Aris
Prolog
Jono
Prolog
Budi
VB.Net
BCNF
LATIHAN !!
28
Berdasarkan PO :
• Rancanglah tabel
penyimpanan
datanya
29
14
Buat ERD dan Normalisasi
15