Anda di halaman 1dari 91

Normalisasi Tabel

INFORMATIKA UPGRIS – 2019


khoiriyalatifah@upgris.ac.id
Normalisasi
• Teknik/pendekatan yang digunakan dalam membangun
disain lojik database relasional melalui organisasi
himpunan data dengan tingkat ketergantungan
fungsional dan keterkaitan yang tinggi sedemikian
sehingga menghasilkan struktur tabel yang normal.
• Normalisasi adalah proses pembentukan struktur basis data
sehingga sebagian besar ambiguity bisa dihilangkan.
• Proses normalisasi merupakan proses pengelompokan data
elemen menjadi tabel yang menunjukkan entity dan relasinya
(Kristanto, H., 1994).
• Normalisasi data merupakan suatu proses untuk
mendapatkan struktur tabel atau relasi yang efisien dan
bebas dari anomali, dan mengacu pada cara data item
dikelompokkan ke dalam struktur record.
• The goal of a relational database design is to
generate a set of relation scheme that allow
us to store informastion easily. One approach
is to design scheme that are in an appropriate
normal form (silberschatz, H., 1991)
• Normalisasi adalah suatu teknik untuk
mengorganisasi data ke dalam tabel-tabel
untuk memenuhi kebutuhan pemakai didalam
suatu organisasi.
Tujuan Normalisasi

 Minimalisasi redundansi
(pengulangan data)
 Memudahkan identifikasi entitas
 Mencegah terjadinya anomali
Proses Normalisasi
• Data diuraikan dalam bentuk tabel,
selanjutnya dianalisis berdasarkan
persyaratan tertentu ke beberapa tingkat.
• Apabila tabel yang diuji belum memenuhi
persyaratan tertentu,maka tabel tersebut
perlu dipecah menjadi beberapa tabel yang
lebih sederhana sampai memenuhi bentuk
yang optimal.
Kriteria Tabel efisien
Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi
3 kriteria sbb:
1. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya
harus dijamin aman (Lossless-Join Decomposition). Artinya,
setelah tabel tersebut diuraikan / didekomposisi menjadi tabel-
tabel baru, tabel-tabel baru tersebut bisa menghasilkan tabel
semula dengan sama persis.
2. Terpeliharanya ketergantungan fungsional pada saat perubahan
data (Dependency Preservation).
3. Tidak melanggar Boyce-Code Normal Form (BCNF) (-akan
dijelaskan kemudian-)
Tahapan Normalisasi
• Bentuk Tidak Normal
Menghilangkan perulangan group
• Bentuk Normal Pertama (1NF)
Menghilangkan ketergantungan sebagian
• Bentuk Normal Kedua (2NF)
Menghilangkan ketergantungan transitif
• Bentuk Normal Ketiga (3NF)
Menghilangkan anomali-anomali hasil dari ketergantungan
fungsional
• Bentuk Normal Boyce-Codd (BCNF)
Menghilangkan Ketergantungan Multivalue
• Bentuk Normal Keempat (4NF)
Menghilangkan anomali-anomali yang tersisa
• Bentuk Normal Kelima
Ketergantungan Fungsional
• Definisi
Atribut Y pada relasi R dikatakan tergantung
fungsional padaatribut X (R.X ---> R.Y), jika dan
hanya jika setiap nilai X pada relasi R mempunyai
tepat satu nilai Y pada R.
R= Relasi / Tabel
Y,X = Atribut didalam Tabel R.
Contoh Ketergantungan
• Tabel PEMASOK-BARANG
No_Pem Nama_Pem
P01 Imam_x
P02 Yazix
P03 Hana

• Ketergantungan fungsional dari tabel


PEMASOK-BARANG adalah :
• No_Pem ---> Nama_Pem
Ketergantungan Fungsional Penuh
Atribut Y pada relasi R dikatakan tergantung
fungsional penuh pada atribut X pada relasi R,
jika Y tidak tergantung pada subset dari X ( bila X
adalah key gabungan).
Suatu atribut Y mempunyai dependensi
sepenuhnya terhadap atribut X jika
• Y mempunyai dependensi terhadap X
• Y tidak mempunyai dependensi terhadap bagian dari X
• KIRIM-BARANG( No_pem, Na_pem, No_bar, Jumlah)
No_pem Na_pem No_bar Jumlah
P01 Bahana B01 1000
P01 Bahana B02 1400
P01 Bahana B03 2000
P02 Sinar Mulia B03 1000
P03 Harapan B02 2000

• Ketergantungan fungsional :
• No-pem --> Na-pem
• No-bar, No-pem --> Jumlah (Tergantung penuh thd keynya)
Ketergantungan Transitif
• Atribut Z pada relasi R dikatakan tergantung
transitif pada atribut X , jika atribut Y
tergantung pada atribut X pada relasi R dan
atribut Z tergantung pada atribut Y pada relasi
R. (X  Y, Y  Z , maka X Z )
Pengertian Dependensi Transitif
• Suatu atribut Z mempunyai dependensi
transitif terhadap X jika:
– Y memiliki dependensi terhadap X dan
– Z memiliki dependensi terhadap Y

X → Z
X→Y→Z
Contoh Dependensi Transitif
Kuliah Ruang Tempat Waktu
Jaringan Komputer Merapi Gedung Utara Senin, 08.00-09.50
Pengantar Basis Data Merbabu Gedung Utara Selasa, 08.00-09.50
Matematika I Rama Gedung Selatan Rabu, 10.00-11.50
Sistem Pakar Sinta Gedung Selatan Kamis, 08.00-09.50
Kecerdasan Buatan Merapi Gedung Utara Selasa, 10.00-11.50

Kuliah → { Ruang, Waktu }


Kuliah → Ruang → Tempat
Ruang → Tempat
Contoh Lain Dependensi Transitif
Id_Pelanggan Nama Salesman Area
A-001 Andi Farkan Jateng
A-002 Kurnia Jati Dian Jabar
B-001 Fika Dewi Joned Jatim
B-002 Gani Wirawan Farkan Jateng
C-001 Cici Kusuma Joned Jatim

Id_Pelanggan Nama Salesman Area


Contoh Lain Dependensi Transitif
No_Pesan No_Urut Kode_Item Nama_Item Jumlah

06008 1 P1 Pensil 5
06008 2 P2 Buku Tulis 10
06008 3 P3 Penggaris 6
06008 4 P4 Penghapus 4
06009 1 P3 Penggaris 1
06009 2 P5 Pulpen 10
06009 3 P6 Spidol 5
06010 1 P1 Pensil 4
06010 2 P2 Buku Tulis 10

No_Pesan No_Urut Kode_Item Nama_Item Jumlah


Problem pada Dependensi Transitif
Id_Pelanggan Nama Salesman Area
A-001 Andi Farkan Jateng
A-002 Kurnia Jati Dian Jabar
B-001 Fika Dewi Joned Jatim
B-002 Gani Wirawan Farkan Jateng
C-001 Cici Kusuma Joned Jatim

Anomali penyisipan:
Seorang salesman baru yang bertugas di Jateng tidak dapat dimasukkan dalam
tabel sampai salesman tersebut mendapatkan seorang pelanggan
Anomali penghapusan:
Jika pelanggan A-002 dihapus, informasi bahwa Dian menangani daerah Jabar ikut
hilang
Anomali peremajaan:
Jika katakanlah Farkan mendapat penugasan baru untuk menangani daerah
Kalimantan, maka sejumlah baris harus diremajakan agar data tetap konsisten
• Tahap Normalisasi dimulai dari tahap paling
ringan (1NF) hingga paling ketat (5NF)
• Biasanya hanya sampai pada tingkat 3NF atau
BCNF karena sudah cukup memadai untuk
menghasilkan tabel-tabel yang berkualitas
baik.
Jika kriteria ketiga (BCNF) tidak dapat
terpenuhi, maka paling tidak tabel tersebut
tidak melanggar Bentuk Normal tahap ketiga
(3rd Normal Form / 3NF).
Tabel Universal
Tabel Universal (Universal / Star Table) 
sebuah tabel yang merangkum semua kelompok
data yang saling berhubungan, bukan
merupakan tabel yang baik.
Misalnya:
Tabel Universal
Bentuk-bentuk Normal
1. Bentuk Normal Tahap Pertama (1st Normal Form /
1NF)
2. Bentuk Normal Tahap Kedua (2nd Normal Form /
2NF)
3. Bentuk Normal Tahap (3rd Normal Form / 3NF)
4. Boyce-Code Normal Form (BCNF)
5. Bentuk Normal Tahap (4th Normal Form / 4NF)
6. Bentuk Normal Tahap (5th Normal Form / 5NF)
Bentuk Normal Tahap Pertama (1st
Normal Form / 1NF)
• Bentuk normal 1NF terpenuhi jika sebuah
tabel tidak memiliki atribut bernilai banyak
(multivalued attribute), atribut composite
atau kombinasinya dalam domain data yang
sama.
• Setiap atribut dalam tabel tersebut harus
bernilai atomic (tidak dapat dibagi-bagi lagi)
 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 (say anything
once).
::. semua operator aljabar relasional dapat diaplikasikan
pada tabel.
Normalisasi
First Normal Form (1NF)
Tabel : Sales
IDSales NamaSales Telepon non-atomic
ADN006 Yeni, SE 3517261, 3520165
ADN007 Memey 4744621,08122861427
Unnormalized
ADN008 Tina 08566241521
ADN009 Ir. Yanto 7265122, 7123910 Not 1NF
ADN010 Made 6723192
IDSales NamaSales Telepon
ADN006 Yeni, SE 3517261
ADN006 Yeni, SE 3520165
1NF ADN007 Memey 4744621
ADN007 Memey 08122861427
ADN008 Tina 08566241521
ADN009 Ir. Yanto 7265122
ADN009 Ir. Yanto 7123910
ADN010 Made 6723192
Normalisasi Unnormalized
Not 1NF

First Normal Form (1NF)


Tabel : Buku repeated
ISBN Thn_Terbit ID_Pengarang Nama_Pengarang ID_Pengarang Nama_Pengarang
12-1202-19222 1992 K0121 Aris M K1021 Kosim P
11-1090-29101 2001 K1021 Kosim P
11-1090-29102 2001 K2091 K Odelia K0121 Aris M
12-1201-90871 2002 K2092 Renaldi K2091 K Odelia
13-2089-12910 2001 K2019 Samsuri J

ISBN Thn_Terbit ID_Pengarang Nama_Pengarang


12-1202-19222 1992 K0121 Aris M
12-1202-19222 1992 K1021 Kosim P
11-1090-29101 2001 K1021 Kosim P 1NF
11-1090-29102 2001 K2091 K Odelia
11-1090-29102 2001 K0121 Aris M
12-1201-90871 2002 K2092 Renaldi
12-1201-90871 2002 K2091 K Odelia
13-2089-12910 2001 K2019 Samsuri J
Contoh 1
Misal data mahasiswa sbb:

Atau:

Tabel-tabel di atas tidak memenuhi syarat 1NF


Contoh 1
Didekomposisi menjadi:
 Tabel Mahasiswa

 Tabel Hobi
Contoh 2 (composite)
JadwalKuliah
Kodekul NamaKul Dosen Kelas Jadwal

 Dimana nilai pada atribut jadwal berisi gabungan antara Hari


dan Jam.
 Jika asumsi hari dan jam memegang peranan penting dalam
sistem basis data, maka atribut Jadwal perlu dipisah sehingga
menjadi JadwalHari dan JadwalJam sbb:

JadwalKuliah
Kodekul NamaKul Dosen Kelas JadwalHari JadwalJam
Bentuk Normal Tahap Kedua (2nd Normal
Form)
• Bentuk normal 2NF terpenuhi dalam sebuah tabel
jika telah memenuhi bentuk 1NF, dan semua atribut
selain primary key, secara utuh memiliki Functional
Dependency pada primary key
• Sebuah tabel tidak memenuhi 2NF, jika ada atribut
yang ketergantungannya (Functional Dependency)
hanya bersifat parsial saja (hanya tergantung pada
sebagian dari primary key)
• Jika terdapat atribut yang tidak memiliki
ketergantungan terhadap primary key, maka atribut
tersebut harus dipindah atau dihilangkan
 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 (fully functionally dependent).

 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 (fully FD)
:: mengurangi update anomali yang masih mungkin terjadi pada 1NF
Contoh :
Diketahui tabel R=(A,B,C,D,E) ; A,B kunci utama (primary key)
dengan FD : A,B  C,D,E maka tabel R memenuhi 2NF sebab :
A,B  C,D,E berarti :
A,B  C,
A,B  D dan
A,B  E
Jadi semua atribut bukan kunci utama tergantung penuh pada (A,B).
Bagaimana bila R = (A,B,C,D,E) tetapi dengan FD :
(A,B)  (C,D) dan B  E. Apakah memenuhhi 2NF ?

Jelas bahwa R bukan 2NF karena ada atribut E yang bergantung


hanya pada atribut B saja dan bukan terhadap (A,B).
Dari FD : (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.
Normalisasi
Second Normal Form (2NF)
Diketahui Workshop = (NIM,Modul,Biaya,Grade)
Peserta Workshop
Key : NIM+Modul
NIM Modul Biaya Grade FD : Modul  Biaya
(Biaya ditentukan oleh Modul yang
Tabel biaya peserta workshop diambil mahasiswa)

NIM Modul Biaya Grade  1NF


P11.2004.0129 VB.Net 250000 A  Not 2NF
Sebab dalam tabel ini,
P11.2004.0130 Prolog 100000 A Biaya tidak bergantung penuh
P11.2004.0129 Prolog 100000 B pada atribut kunci (NIM,Modul)

P11.2004.0201 Delphi 6 150000 A


P11.2004.0250 VB.Net 250000 B
Normalisasi
Second Normal Form (2NF)

NIM Modul Biaya Grade

(NIM,Modul) = key
(NIM,Modul)  Biaya (partial) Eliminate
(NIM,Modul)  Grade (full)
Make Decomposition :
Works1 = (NIM,Modul,Grade)
NIM Modul Biaya Grade Works2 = (Modul,Biaya)

Fully Dependency
Normalisasi
Second Normal Form (2NF)
NIM Modul Grade
Workshop
NIM Modul Biaya Grade P11.2004.0129 VB.Net A
P11.2004.0129 VB.Net 250000 A P11.2004.0130 Prolog A
P11.2004.0130 Prolog 100000 A P11.2004.0129 Prolog B
P11.2004.0129 Prolog 100000 B P11.2004.0201 Delphi 6 A
P11.2004.0201 Delphi 6 150000 A P11.2004.0250 VB.Net B
P11.2004.0250 VB.Net 250000 B Works1

Modul Biaya
More Better VB.Net 250000
Then Prolog 100000
1NF
Delphi 6 150000

Works2
Contoh
Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:
Mhs_nrp mhs_nama mhs_alamat mk_kode mk_nama mk_sks nihuruf

 Tidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yang


dianggap sebagai primary key sedangkan:
{Mhs_nrp, mk_kode}  mhs_nama
{Mhs_nrp, mk_kode}  mhs_alamat
{Mhs_nrp, mk_kode}  mk_nama
{Mhs_nrp, mk_kode}  mk_sks
{Mhs_nrp, mk_kode}  nihuruf
 Tabel di atas perlu didekomposisi menjadi beberapa tabel yang
memenuhi syarat 2NF
Contoh
Functional dependencynya sbb:
{Mhs_nrp, mk_kode}  nihuruf
(fd1)
Mhs_nrp  {mhs_nama, mhs_alamat}
(fd2)
Mk_kode  {mk_nama, mk_sks}
(fd3)

fd1 (mhs_nrp, mk_kode, nihuruf)  Tabel Nilai


fd2 (Mhs_nrp, mhs_nama, mhs_alamat)  Tabel Mahasiswa
fd3 (mk_kode, mk_nama, mk_sks)  Tabel MataKuliah
Bentuk Normal Tahap Ketiga (3rd Normal
Form /3NF)
• Bentuk normal 3NF terpenuhi jika telah memenuhi
bentuk 2NF, dan jika tidak ada atribut non primary
key yang memiliki ketergantungan terhadap atribut
non primary key yang lainnya.
• Untuk setiap Functional Dependency dengan notasi X
 A, maka:

• X harus menjadi superkey pada tabel tsb.


• Atau A merupakan bagian dari primary key pada tabel tsb.
Normalisasi
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).

Another Definition :

 Suatu relasi disebut memenuhi bentuk normal ketiga (3NF)


jika dan hanya jika setiap FD nontrivial : X  A,
dimana X dan A atribut (atau kompositnya), memenuhi salah satu
kondisi :
1. X adalah superkey
2. A merupakan anggota candidate key (A disebut prime attribute)
Normalisasi
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 masing-masing memenuhi 3NF.
 Tujuan membentuk 3NF :
:: semantik tabel 3NF menjadi lebih eksplisit
(fully FD hanya pada primary key).
:: menghindari update anomali yang masih mungkin terjadi pada 2NF.

Note :
Jika suatu relasi memenuhi 2NF dan hanya memiliki tepat satu atribut
yang bukan kunci utama maka relasi tsb memenuhi 3NF
Normalisasi
Third Normal Form (3NF)
Contoh :
Diketahui tabel R=(A,B,C,D,E) ; A,B kunci utama (primary key)
dengan FD : 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.
Karena sifat refleksif maka A,BA,B. Sehingga A,BA,B,C,D,E
(A,B) : Superkey.
 Diketahui CD,E.
Karena sifat refleksif maka CC. Sehingga CC,D,E.
Karena C A,B,C,D,E maka C bukan superkey.
 Tidak memenuhi definisi 3NF. Jadi R bukan 3NF.

Agar R memenuhi 3NF maka didekomposisi menjadi :


R1=(A,B,C) dan R2=(C,D,E) sehingga R1 dan R2 memenuhi 3NF.
Normalisasi
Third Normal Form (3NF)
FD : 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) ; FD : (A,B)C
R2=(C,D,E) ; FD : CD,E
R
A B C D E

A B C C D E

R1 R2
Normalisasi
Third Normal Form (3NF)
Misal diketahui struktur informasi dari suatu dokumen supplier :
S Status City PQ Akan dibentuk suatu tabel dengan skema
P Qty TPS=(S,Status,City,P,Qty)
S1 20 LONDON P1 300
P2 200
dengan (S,P) = primary key
P3 400 dan berlaku FD :
P4 200 SStatus
P5 100 SCity
P6 100 CityStatus
S2 10 PARIS P1 300
P2 400
Lakukan normalisasi dari 1NF hingga 3NF.
S3 10 PARIS P2 200
S4 20 LONDON P2 200
P4 399
P5 400
Normalisasi
Third Normal Form (3NF)
TPS
S Status City P Qty  1NF
S1 20 LONDON P1 300  Not 2NF
S1 20 LONDON P2 200
S1 20 LONDON P3 400 Problem :
 Redundansi  inconsistency
S1 20 LONDON P4 200
low speed process
S1 20 LONDON P5 100  Anomaly :
S1 20 LONDON P6 100 S(Status,City) tapi kita tidak bisa insert
S2 10 PARIS P1 300 data (S5,30,JAKARTA) tanpa diikuti data
S2 10 PARIS P2 400 P (khususnya) dan Q. Menghapus 1 baris
S3 10 PARIS P2 200 data akan jg merusak keutuhan informasi.
S4 20 LONDON P2 200  Solusi :
S4 20 LONDON P4 399 Dekomposisi menjadi :
S4 20 LONDON P5 400 TPS1 dan TPS2
Normalisasi
Third Normal Form (3NF)
TPS1 TPS2
S Status City  1NF S P Qty  1NF
S1 20 LONDON  2NF S1 P1 300  2NF
S2 10 PARIS  Not 3NF (trans.) S1 P2 200  3NF
S3 10 PARIS SCity S1 P3 400 redundansi partial
S4 20 LONDON CityStatus S1 P4 200  not potensial
 Sekarang kita dapat menambah S1 P5 100  better then
data (S5,30,JAKARTA) dgn aman S1 P6 100 previous redundant
 Tapi masih ada anomaly : S2 P1 300 We may not eliminate
Karena CityStatus S2 P2 400
all redundant but we
maka kita tidak bisa entry S3 P2 200
make its minimize
data City baru sebelum Status S4 P2 200
punya nilai. Penghapusan 1 baris S4 P4 399
sebagian data City juga bisa S4 P5 400
merusak keutuhan informasi S.
 Selain itu, masih ada redundansi
pada Status dan City
Normalisasi
Third Normal Form (3NF)
TPS1-1 TPS1-2 TPS2
S City City Status S P Qty  1NF
S1 LONDON LONDON 20 S1 P1 300  2NF
 3NF
S2 PARIS PARIS 10 S1 P2 200
S3 PARIS S1 P3 400
 1NF
S4 LONDON  2NF S1 P4 200
 3NF S1 P5 100
 1NF
S1 P6 100
 2NF
 3NF S2 P1 300
S2 P2 400
S3 P2 200
S4 P2 200
S4 P4 399
S4 P5 400
Contoh
Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:
Mahasiswa
Npm Nama Alm_Jalan Alm_Kota Alm_Provinsi Alm_Kodepos

 karena masih terdapat atribut non primary key (yakni alm_kota dan
alm_Provinsi) yang memiliki ketergantungan terhadap atribut non
primary key yang lain (yakni alm_kodepos):
alm_kodepos  {alm_Provinsi, alm_kota}
 Sehingga tabel tersebut(Npm,
Mahasiswa perlu didekomposisi menjadi:
nama, alm_jalan,
alm_kodepos)
Kodepos (alm_kodepos, alm_provinsi,
alm_kota)
Boyce-Code Normal Form (BCNF)
• Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap
functional dependency terhadap setiap atribut atau gabungan
atribut dalam bentuk: X  Y maka X adalah super key
• tabel tersebut harus di-dekomposisi berdasarkan functional
dependency yang ada, sehingga X menjadi super key dari
tabel-tabel hasil dekomposisi
• Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap
3NF belum tentu termasuk BCNF . Perbedaannya, untuk
functional dependency X  A, BCNF tidak membolehkan A
sebagai bagian dari primary key.
Normalisasi
Boyce Codd Normal Form (BCNF)
 Suatu relasi disebut memenuhi BCNF
jika dan hanya jika setiap determinan yang ada pada relasi tersebut
adalah candidate key.
Definisi yang lain :
Suatu relasi disebut memenuhi BCNF jika untuk setiap FD nontrivial :
X  A atribut X adalah superkey.
 Untuk normalisasi ke bentuk BCNF, maka tabel 3NF didekomposisi
menjadi beberapa tabel yang masing-masing memenuhi BCNF.
 Tujuan membentuk BCNF :
:: semantik multiple candidate key menjadi lebih eksplisit
(FD hanya pada candidate key).
:: menghindari update anomali yang masih mungkin terjadi pada 3NF.

Dari definisi 3NF dan BCNF, maka apabila suatu relasi


memenuhi
BCNF pasti memenuhi 3NF, tetapi belum tentu sebaliknya.
Normalisasi
Boyce Codd Normal Form (BCNF)
Contoh :
Diketahui tabel R=(A,B,C)
dengan FD : A  B dan B  C maka R bukan BCNF, sebab :
 A superkey ?
AB (diketahui)
AB dan BC maka AC (transitif)
AA (refleksif)
Sehingga A(A,B,C) atau AR. Jadi A superkey.
 B superkey ?
BC (diketahui)
BB (refleksif)
Tapi BA. Sehingga BA,B,C atau B bukan superkey.
Agar R memenuhi BCNF maka didekomposisi menjadi :
R1=(A,B) ; FD : A  B dan
R2=(B,C) ; FD : B  C.
sehingga R1 dan R2 masing-masing memenuhi BCNF. Sebab A dan B
dua-duanya sekarang menjadi superkey.
Normalisasi
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 :


ABC ; maka AB  ABC, atau A  R. Jadi AB superkey dari R
CB ; 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.
Normalisasi
Boyce Codd Normal Form (BCNF)
Students Books
sid name age
bid title year
53666 Jones 18
200
53668 Smith 18 B001 MySQL 2
Meliss 200
53669 a 17 B002 Algorithm 3
53670 Hilden 19
Students=(sid, name, age) Books=(bid, title, year)
Visual Foxpro 200
FD : sid  name, age FDB003
: bid6.0
 title, year 3
• BCNF, sebab sid superkey • BCNF, sebab bid superkey200
B004 Visual basic 6.0 5
Pinjam
idpinjam sid bid date Pinjam=(idpinjam, sid, bid, date)
FD : idpinjam  bid, date
P-01 53666 B002 10/11/2005
• Bukan BCNF, sebab idpinjam bukan superkey
P-02 53668 B001 10/11/2005 idpinjam  sid
P-03 53668 B004 11/12/2005
P-04 53670 B002 14/11/2005
Normalisasi
Boyce Codd Normal Form (BCNF)
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 sid idpinjam bid date
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
P-04 53670 P-04 B002 14/11/2005
FD trivial idpinjam  bid, date
 BCNF idpinjam superkey
 BCNF
Normalisasi
Comparison of BCNF And 3NF
 It is always possible to decompose a
relation into relations in 3NF and
 the decomposition is lossless
 the dependencies are preserved
 It is always possible to decompose a
relation into relations in BCNF and
 the decomposition is lossless
 it may not be possible to preserve
dependencies.
Normalisasi
Comparison of BCNF And 3NF
 Contoh kasus redundansi pada 3NF
Jadwal = (Nim,Modul,Dosen)
FD = {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 Dosen NIM Dosen Dosen Modul


P11.2004.0129 VB.Net Ajib P11.2004.0129 Ajib Ajib VB.Net
P11.2004.0130 Prolog Aris P11.2004.0130 Aris Aris Prolog
P11.2004.0129 VB Net Ajib P11.2004.0129 Ajib Jono Prolog
P11.2004.0201 VB Net Budi P11.2004.0201 Budi Budi VB.Net
P11.2004.0250 Prolog Jono P11.2004.0250 Jono
P11.2004.0260 VB.Net Budi P11.2004.0260 Budi
NOT BCNF BCNF
Normalisasi
Design Goals
 Goal for a relational database design is:
 BCNF.
 Lossless join.
 Dependency preservation.
 If we cannot achieve this, we accept one of
 Lack of dependency preservation
 Redundancy due to use of 3NF
Normalisasi
Design Steps
(doesn’t meet the
Entity Set
definition of a relation) Remove multivalued &
repeating attributes. Meet
First Normal Form
definition of relation
Remove partial
dependencies
Second Normal
Form
Praktisi database kebanyakan Remove transitive
menganggap bahwa tingkatan dependencies
normalisasi hingga BCNF atau Third Normal
3NF dianggap sudah cukup Form
untuk meminimalisasi masalah Select relation where all
dalam desain database
(redundansi,lossless,dependency Boyce-Codd determinants are
preservation) Normal Form candidate key
Normalisasi
The Callenge of Database Design
Designers must make design compromises that are triggered by conflicting goals :
 design standards (design elegance or faithfulness),
 to develop “good” design : Lossless, No Redundant, Dependency Preservation
 processing speed (performance), and
 high processing speeds is “top” priority (efficiency)
 minimizing the number and complexity of relationships or table
 information requirements
 capablility for delivering all specified query and reporting
of user requirements timely

Contoh bentuk kompromi yang populer :


 Denormalisasi (pelanggaran normalisasi)
Normalisasi
Denormalisasi
Design Standards Vs (proceessing speed,information requirements)
 Normalisasi hanyalah merupakan teknik pendekatan yang digunakan
untuk mendapatkan desain database (lojik) yang baik dan
bukan sebagai “aturan baku” DBMS yang harus digunakan.
 Bersifat “Normatif”, memungkinkan untuk dilanggar dengan alasan :
Kecepatan Proses (Efisiensi) dan Pelayanan Informasi Tepat Waktu
 Bentuk-bentuk Denormalisasi :
- Membuat Atribut Turunan pada Tabel, mis : Cost=Qty*Price
- Atribut yang Berlebihan, mis : NIM mahasiswa sudah mencerminkan
program studi mahasiswa, tetapi dalam tabel mahasiswa dibuat atribut
Program Studi.
- Summary Table (mis : summary table for report)
- Membiarkan relasi transitif dalam satu tabel untuk kemudahan proses
 Konsekuensi Denormalisasi :
Redundancy, Not Atomic, Worst Space dll
Berdasarkan formulir tersebut,
• Rancanglah tabel penyimpanan
datanya
• Lakukan normalisasi hingga 3NF
atau BCNF

Basis Data mulyono@dosen.dinus.ac.id


Normalisasi
Latihan dan Soal
1. Berikan alasan anda mengapa suata basis data
harus berada pada kondisi normal !
2. Kondisi apa saja yang harus dipenuhi, bahwa
suatu basis data di katakan memenuhi
normalisasi !
3. Diberikan suatu data sebagai berikut di bawah
ini. Dari data yang diberikan belum memenuhi
kondisi normal, maka tentukanlah proses
normalisasi untuk menghasilkan data yang
memenuhi kondisi normal !
Normalisasi
Latihan dan Soal
No Class Time Day Teacher Start Room Remark
1 B.1I 17.00-18.30 Tuesday Ms. Avi 19/08/2004 A202 Run
Thursday Ms. Oki

2 B.5I 15.30-17.00 Tuesday Ms. Beta 20/08/2004 A302 Run


Friday Ms. Susi

3 B.1J 17.00-18.30 Monday Ms. Galuh 23/08/2004 A301 Run


Thursday Ms. Avi

4 B.2J 17.00-18.30 Tuesday Mr. Aris 24/08/2004 A102 Run


Thursday Ms. Beta

5 B.3J 15.30-17.00 Tuesday Mr. Aris 05/08/2004 A103 Run


Thursday Ms. Oki

6 B.2F 15.30-17.00 Monday Ms. Galuh 19/08/2004 A203 Run


Thursday Mr. Hery

7 B.1I 18.30-20.00 Wednesday Ms. Ria 04/08/2004 A203 Pending


Friday Ms. Galuh
Bentuk Normal Tahap Keempat (4th
Normal Form /4NF)
• Bentuk normal 4NF terpenuhi dalam sebuah
tabel jika telah memenuhi bentuk BCNF, dan
tabel tersebut tidak boleh memiliki lebih dari
sebuah multivalued atribute
• Untuk setiap multivalued dependencies (MVD)
juga harus merupakan functional
dependencies
Contoh
Misal, tabel berikut tidak memenuhi 4NF:

Setiap employee dapat bekerja di lebih dari project dan dapat


memiliki lebih dari satu skill. Untuk kasus seperti ini tabel tersebut
harus di-dekomposisi menjadi:
(Employee, Project)
(Employee, Skill)
Bentuk Normal Tahap Keempat (5th
Normal Form /5NF)
• Bentuk normal 5NF terpenuhi jika tidak dapat
memiliki sebuah lossless decomposition menjadi
tabel-tabel yg lebih kecil.
• Jika 4 bentuk normal sebelumnya dibentuk
berdasarkan functional dependency, 5NF dibentuk
berdasarkan konsep join dependence. Yakni apabila
sebuah tabel telah di-dekomposisi menjadi tabel-
tabel lebih kecil, harus bisa digabungkan lagi (join)
untuk membentuk tabel semula
No Kelas Jam Hari Dosen Mulai Ruang Sttatus

1 B.1I 17.00-18.30 Selasa Ms. Avi A202 Run


19/08/2004
Kamis Ms. Oki

2 B.5I 15.30-17.00 Selasa Ms. Beta A302 Run


20/08/2004
Jum’at Ms. Susi

3 B.1J 17.00-18.30 Senin Ms. Galuh A301 Run


23/08/2004
Rabo Ms. Avi

4 B.2J 17.00-18.30 Rabo Mr. Aris A102 Run


24/08/2004
Kamis Ms. Beta

5 B.3J 15.30-17.00 Selasa Mr. Aris A103 Run


05/08/2004
Kamis Ms. Oki

6 B.2F 15.30-17.00 Senin Ms. Galuh A203 Run


19/08/2004
Rabo Mr. Hery

7 B.1I 18.30-20.00 Rabo Ms. Ria A203 Pending


04/08/2004
Jum’at Ms. Galuh
Contoh Kasus - 2
Tabel 1 : Entitas Mahasiswa

NIM NAMA Sem MaKul NIDN Nama Dosen

201001 Andika Saputr 1 Algoritma 1078523 Riyanti Anjani


a
Struktur Dat 1078523 Riyanti Anjani
a
201002 Biyanti Anggie 3 Struktur Dat 1078523 Riyanti Anjani
a
Orkom 1078523 Riyanti Anjani

Metnum 1075047 Susan Savitri

201003 Naura Putri 5 Web 1075047 Susan Savitri

Jarkom 1077021 Erwin Masadi

Metnum 1075047 Susan Savitri


Tabel 2 : Entitas Mahasiswa 1NF (Telah Ternormalisasi Bentuk
Pertama)

NIM NAMA Sem MaKul NIDN Nama Dosen

201001 Andika Saputra 1 Algoritma 1078523 Riyanti Anjani

201001 Andika Saputra 1 Struktur Data 1078523 Riyanti Anjani

201002 Biyanti Anggie 3 Struktur Data 1078523 Riyanti Anjani

201002 Biyanti Anggie 3 Orkom 1078523 Riyanti Anjani

201002 Biyanti Anggie 3 Metnum 1075047 Susan Savitri

201003 Naura Putri 5 Web 1075047 Susan Savitri

201003 Naura Putri 5 Jarkom 1077021 Erwin Masadi

201003 Naura Putri 5 Metnum 1075047 Susan Savitri


Tabel 3 : Entitas Dosen

NIDN NAMA DOSEN MaKul_1 MaKul_2 MaKul_3

1078523 Riyanti Anjani Algoritma Struktur Dat Orkom


a

1075047 Susan Savitri Metnum Web -

1077021 Erwin Masadi Jarkom -


Tabel 4 : Entitas Dosen 1NF (Telah Ternormalisasi  Bentuk
Pertama)

NIDN NAMA DOSEN MaKul

1078523 Riyanti Anjani Algoritma

1078523 Riyanti Anjani Struktur Data

1078523 Riyanti Anjani Orkom

1075023 Susan Savitri Metnum

1075023 Susan Savitri Web

1077021 Erwin Masadi Jarkom


Tabel 2 : Entitas Mahasiswa 1NF 

NIM NAMA Sem MaKul NIDN Nama Dosen

201001 Andika Saputr 1 Algoritma 1078523 Riyanti Anjani


a
201001 Andika Saputr 1 Struktur Data 1078523 Riyanti Anjani
a
201002 Biyanti Anggie 3 Struktur Data 1078523 Riyanti Anjani

201002 Biyanti Anggie 3 Orkom 1078523 Riyanti Anjani

201002 Biyanti Anggie 3 Metnum 1075047 Susan Savitri

201003 Naura Putri 5 Web 1075047 Susan Savitri

201003 Naura Putri 5 Jarkom 1077021 Erwin Masadi

201003 Naura Putri 5 Metnum 1075047 Susan Savitri


Primary Key (PK) : NIM
•Atribut yang bergantung dengan PK :
–Nama
–Semester
•Atribut yang tidak bergantung dengan PK:
–Makul
–NIDN
–NamaDosen
Entitas Dosen Belum Ternormalisasi
Tabel 3 : Entitas Dosen

NIDN NAMA DOSEN MaKul_1 MaKul_2 MaKul_3

1078523 Riyanti Anjani Algoritma Struktur DataOrkom

1075047 Susan Savitri Metnum Web -

1077021 Erwin Masadi Jarkom - -


Hasil 2: Entitas Dosen 1NF
Tabel 4 : Entitas Dosen 1NF (Telah Ternormalisasi  Bentuk
Pertama)

NIDN NAMA DOSEN MaKul

1078523 Riyanti Anjani Algoritma

1078523 Riyanti Anjani Struktur Data

1078523 Riyanti Anjani Orkom

1075023 Susan Savitri Metnum

1075023 Susan Savitri Web

1077021 Erwin Masadi Jarkom


Entitas Mahasiswa 1NF,  Tidak Memenuhi 2NF

NIM NAMA Sem MaKul NIDN Nama Dosen

201001 Andika Saputra 1 Algoritma 1078523 Riyanti Anjani

201001 Andika Saputra 1 Struktur Data 1078523 Riyanti Anjani

201002 Biyanti Anggie 3 Struktur Data 1078523 Riyanti Anjani

201002 Biyanti Anggie 3 Orkom 1078523 Riyanti Anjani

201002 Biyanti Anggie 3 Metnum 1075047 Susan Savitri

201003 Naura Putri 5 Web 1075047 Susan Savitri

201003 Naura Putri 5 Jarkom 1077021 Erwin Masadi

201003 Naura Putri 5 Metnum 1075047 Susan Savitri


Primary Key (PK) : NIM
•Atribut yang bergantung dengan PK :
–Nama
–Semester
•Atribut yang tidak bergantung dengan PK:
–Makul
–NIDN
–NamaDosen
 Entitas Mahasiswa 2NF 
Entitas Mahasiswa  2NF(Nim, Nama, Semester)

–Entitas Ambil_MK (Makul, Nidn, NamaDosen)

NIM        NAMA       Sem

201001 Andika Saputra 1

201001 Andika Saputra 1

201002 Biyanti Anggie 3

201002 Biyanti Anggie 3

201002 Biyanti Anggie 3

201003 Naura Putri 5

201003 Naura Putri 5

201003 Naura Putri 5
Entitas Mahasiswa 2NF (Telah Ternormalisasi Bentuk ke 2)

NIM NAMA Sem

2010001 Andika Saputra 1

2010002 Biyanti Anggie 3

2010003 Naura Putri 5
Entitas  Ambil_MK 2NF (Telah Ternormalisasi Bentuk ke
2)

NIM MaKul NIDN Nama Dosen


201001 Algoritma 1078523 Riyanti Anjani

201001 Struktur Data 1078523 Riyanti Anjani

201002 Struktur Data 1078523 Riyanti Anjani

201002 Orkom 1078523 Riyanti Anjani

201002 Metnum 1075047 Susan Savitri

201003 Web 1075047 Susan Savitri

201003 Jarkom 1077021 Erwin Masadi

201003 Metnum 1075047 Susan Savitri


Ketergantungan Transitif
Nim Kd_Jur Jurusan Kd_MK Nilai

20100001 13 TIF MK001 85

20100002 11 TPS MK002 80

20100003 11 TPS MK002 90

Ketergantungan Transitif tidak memiliki ketergantungan secara


langsung terhadap primary key.
• Nim  ,  Kd_Jur   (kd_jurusan bergantung pada
Nim)
• Kd_Jur  ,  Jurusan    (jurusan bergantung pada
kd_jurusan) ,   MAKA
• Nim Jurusan   
(Jurusan bergantung transitif dengan Nim)
Entitas Ambil_MK 2NF, Tidak Memenuhi 3NF

NIM MaKul NIDN Nama Dosen


201001 Algoritma 1078523 Riyanti Anjani

201001 Struktur Data 1078523 Riyanti Anjani

201002 Struktur Data 1078523 Riyanti Anjani

201002 Orkom 1078523 Riyanti Anjani

201002 Metnum 1075047 Susan Savitri

201003 Web 1075047 Susan Savitri

201003 Jarkom 1077021 Erwin Masadi

201003 Metnum 1075047 Susan Savitri


Primary Key (PK) : NIDN
•Atribut yang bergantung dengan PK :
–Nama Dosen
•Atribut yang bergantung transitif dengan PK:
–NIM
–Makul
Untuk memenuhi 2NF, Entitas Ambil_MK 2NF dipecah
menjadi 2 Entitas, yaitu
–Entitas Dosen 3NF (NIDN, Nama Dosen)
–Entitas Ambil_MK 3NF (Nim, Makul)
Entitas  Dosen 3NF (Telah Ternormalisasi Bentuk ke 3)

NIDN Nama Dosen

1078523 Riyanti Anjani

1078523 Riyanti Anjani
NIDN Nama Dosen
1078523 Riyanti Anjani

1078523 Riyanti Anjani 1078523 Riyanti Anjani

1075047 Susan Savitri 1075047 Susan Savitri

1075047 Susan Savitri
1077021 Erwin Masadi
1077021 Erwin Masadi

1075047 Susan Savitri
Entitas Ambil_MK memenuhi 3NF 
NIM Makul
201001 Algoritma

201001 Struktur Data

201002 Struktur Data

201002 Orkom

201002 Metnum

201003 Web

201003 Jarkom

201003 Metnum
Entitas  Ambil_MK 3NF (Telah Ternormalisasi Bentuk ke 3)

NIM Makul NIDN


201001 Algoritma 1078523

201001 Struktur Data 1078523

201002 Struktur Data 1078523

201002 Orkom 1078523

201002 Metnum 1075047

201003 Web 1075047

201003 Jarkom 1077021

201003 Metnum 1075047


Entitas  Makul 3NF (Telah Ternormalisasi Bentuk ke 3)

Kd-MK MaKul
A Algoritma
B Struktur Data

B Struktur Data

C Orkom
D Metnum
E Web
F Jarkom
D Metnum
Kd-MK MaKul

A Algoritma

B Struktur Data

C Orkom

D Metnum

E Web

F Jarkom

Anda mungkin juga menyukai