Basis Data
Normalisasi dengan KF Sebuah tabel dikategorikan efisien/normal, jika telah memenuhi 3 kriteria berikut: Jika ada dekomposisi tabel, maka dekomposisinya harus aman(Lossless-Join Decomposition) Terpeliharanya KF pada saat perubahan data (Dependency Preservation) Tidak melanggar Boyce-Code Normal Form (BCNF) Jika BCNF tidak terpenuhi dapat digantikan dengan 3NF
BCNF X Y X merupakan Superkey (Superkey:kumpulan atribut yang dapat membedakan setiap baris data secara unik)
Tabel universal/star KF nim namaMhs,AlamatMhs,tglLahir KodeMK namaMK SKS Semester IndexNilai Waktu Tempat NamaDosen AlamatDosen A11.2015.00001 Ali Akbar Jl. Dago Pojok 91. Bandung 40135 2-Jan-92 IF-110 Struktur Data 3 1 A Senin, 10:00-12:00 Ruang A Dr. Umar Hakim Cibaduyut Kidul No. 57C,Bandung 40239 A11.2015.00004 Hasanudin Jl. Titiran No.2, Bandung 40133 21-Jun-92 B IF-310 Basis Data Rabu, 09:00-10:40 Dewi Sundari,MA Jl. Antapani No. 14, Bandung 40291 A11.2015.00002 Budi Haryanto Jl. Pasantren 25D, Cimahi 40533 6-Oct-91 MA-115 Matematika Diskrit Senin, 08:00-09:40 dan Kamis, 11:00-11:50 Ruang C Drs. Taufik Ismail Kanayakan Baru No 135, Bandung 40135 KU-234 Algoritma Pemrograman 4 2 Selasa, 10:00-11:40 dan Jumat, 08:00-09:40 Ruang B KF nim namaMhs,AlamatMhs,tglLahir kodeMK namaMK,SKS,Semester,Waktu,Tempat,NamaDosen NamaDosen AlamatDosen Nim,kodeMK >indexNilai
Normalisasi dengan KF KF Dekomposisi nim namaMhs,AlamatMhs,tglLahir kodeMK namaMK,SKS,Semester,Waktu,Tempat,NamaDosen NamaDosen AlamatDosen Nim,kodeMK->indexNilai Dekomposisi Mahasiswa(nim,namaMhs,AlamatMhs,tglLahir) [BCNF] Kuliah(kodeMK namaMK,SKS,Semester,Waktu,Tempat,NamaDosen)[BCNF] Dosen(NamaDosen,AlamatDosen) )[BCNF] Nilai(Nim,kodeMK,indexNilai) )[BCNF]
Dekomposisi Atribut Komposit KF (alamat,kota bukan merupakan superkey) Mahasiswa Atribut Komposit KF nim namamhs,alamat,kota,tgllahir alamat, kota kodepos (alamat,kota bukan merupakan superkey) nim namamhs,alamat,kota,tgllahir [BCNF] Alamat,kotakodepos Kodepos kota (alamat,kota merupakan superkey, tapi kodepos bukan. sehingga ) Kode pos tidak unik Maka [tidak memenuhi BCNF] nim namamhs alamat tgllahir A11.2015.00001 Ali Akbar Jl. Dago Pojok 91. Bandung 40135 2-Jan-92 A11.2015.00002 Budi Haryanto Jl. Pasantren 25D, Cimahi 40533 6-Oct-91 A11.2015.00003 Indah Susanti Jl. Anggrek 15, Sumedang 45323 15-May-91 A11.2015.00004 Hasanudin Jl. Griya Asri No.2, Sumedang 45323 21-Jun-92 Mahasiswa nim namamhs alamat kota kodepos tgllahir A11.2015.00001 Ali Akbar Jl. Dago Pojok 91 Bandung 40135 2-Jan-92 A11.2015.00002 Budi Haryanto Jl. Pasantren 25D Cimahi 40533 6-Oct-91 A11.2015.00003 Indah Susanti Jl. Anggrek 15 Sumedang 45323 15-May-91 A11.2015.00004 Hasanudin Jl. Griya Asri 21-Jun-92 Mahasiswa nim namamhs alamat kota tgllahir A11.2015.00001 Ali Akbar Jl. Dago Pojok 91 Bandung 2-Jan-92 A11.2015.00002 Budi Haryanto Jl. Pasantren 25D Cimahi 6-Oct-91 A11.2015.00003 Indah Susanti Jl. Anggrek 15 Sumedang 15-May-91 A11.2015.00004 Hasanudin Jl. Griya Asri 21-Jun-92 Alamat alamat kota kodepos Jl. Dago Pojok 91 Bandung 40135 Jl. Pasantren 25D Cimahi 40533 Jl. Anggrek 15 Sumedang 45323 Jl. Griya Asri
Alamat Alamat1 Alamat2 [BCNF] [BCNF] alamat kota kodepos Jl. Dago Pojok 91 Bandung 40135 Jl. Pasantren 25D Cimahi 40533 Jl. Anggrek 15 Sumedang 45323 Jl. Griya Asri 45324 Alamat1 Alamat2 alamat kodepos Jl. Dago Pojok 91 40135 Jl. Pasantren 25D 40533 Jl. Anggrek 15 45323 Jl. Griya Asri 45324 kodepos kota 40135 Bandung 40533 Cimahi 45323 Sumedang 4532 [BCNF] [BCNF]
3NF Alamat alamat kota kodepos Jl. Dago Pojok 91 Bandung 40135 Jl. Pasantren 25D Cimahi 40533 Jl. Anggrek 15 Sumedang 45323 Jl. . Anggrek 15 45324 Alamat1 Alamat2 alamat kodepos Jl. Dago Pojok 91 40135 Jl. Pasantren 25D 40533 Jl. Anggrek 15 45323 Jl. . Anggrek 15 45324 kodepos kota 40135 Bandung 40533 Cimahi 45323 Sumedang 45324 KF Alamat -/-> kodepos Lossy-Join Decomposition Not Depedency Preservation Alamat melanggar BCNF namun ketika dilakukan dekomposisi magnakibatkan lossy-Join dan not dependency Preservation Jika tidak memenuhi BCNF bisa diganti 3NF
3NF X Y X harus Superkey atau Y merupakan bagian dari Primary Key
3NF KF: Nim namamhs,alamat,tgllahir kota kodepos tgllahir A11.2015.00001 Ali Akbar Jl. Dago Pojok 91 Bandung 40135 2-Jan-92 A11.2015.00002 Budi Haryanto Jl. Pasantren 25D Cimahi 40533 6-Oct-91 A11.2015.00003 Indah Susanti Jl. Anggrek 15 Sumedang 45323 15-May-91 A11.2015.00004 Hasanudin Jl. Griya Asri 21-Jun-92 Tdk memenuhi BCNF dan 3NF KF: Nim namamhs,alamat,tgllahir alamat,kota kodePos [tdk memenuhi 3NF] (alamat,kota bukan superkey dan kodePos bukan bagian dari PrimaryKey)
KF: alamat,kota kodePos [3NF] KodePos kota nim namamhs alamat kota tgllahir A11.2015.00001 Ali Akbar Jl. Dago Pojok 91 Bandung 2-Jan-92 A11.2015.00002 Budi Haryanto Jl. Pasantren 25D Cimahi 6-Oct-91 A11.2015.00003 Indah Susanti Jl. Anggrek 15 Sumedang 15-May-91 A11.2015.00004 Hasanudin Jl. Griya Asri 21-Jun-92 alamat kota kodepos Jl. Dago Pojok 91 Bandung 40135 Jl. Pasantren 25D Cimahi 40533 Jl. Anggrek 15 Sumedang 45323 Jl. Griya Asri
Bentuk Normal Lainnya 1NF 2NF 4NF 5NF
1NF Tabel tidak memiliki MultiValued Attribute Tabel tidak memiliki banyak atribut dengan domain nilai yang sama Matakuliah Waktu Tempat NamaDosen Struktur Data Senin, 10:00-12:00 Ruang A Dr. Umar Hakim Algoritma Pemrograman Selasa, 10:00-11:40 dan Jumat, 08:00-09:40 Ruang B Basis Data Rabu, 09:00-10:40 Dewi Sundari,MA Matematika Diskrit Senin, 08:00-09:40 dan Kamis, 11:00-11:50 Ruang C Drs. Taufik Ismail Matakuliah Waktu1 Tempat1 Waktu2 Tempat2 NamaDosen Struktur Data Senin, 10:00-12:00 Ruang A Dr. Umar Hakim Algoritma Pemrograman Selasa, 10:00-11:40 Ruang B Jumat, 08:00-09:40 Basis Data Rabu, 09:00-10:40 Dewi Sundari,MA Matematika Diskrit Senin, 08:00-09:40 Ruang C Kamis, 11:00-11:50 Drs. Taufik Ismail
2NF Semua atribut yang bukan primary key memiliki Ketergantungan Fungsional pada primary key secara utuh. KF: Matakuliah,nim indexNIlai NIM NamaMahasiswa (NamaMahasiswa memiliki ketergantungan parsial hanya pada nim) (dikatakan utuh jika tergantung pada primary key [matakuliah ,nim]) Matakuliah NIM Nama Mahasiswa IndexNilai Struktur Data A11.2015.00001 Ali Akbar A A11.2015.00004 Hasanudin B Basis Data A11.2015.00002 Budi Haryanto Matematika Diskrit Algoritma Pemrograman
4NF dan 5NF 4NF Berkaitan dengan sifat ketergantungan banyak nilai (multivalued dependency) pada suatu tabel yang merupakan pengembangan dari Ketergantungan Fungsional 5NF Project-Join Normal Form (PJNF) ketergantungan Relasi antar tabel (Join Dependency)
Normalisasi Normalisasi dengan KF Lossless-Join Decomposition) Dependency Preservation Boyce-Code Normal Form (BCNF) 3NF 1NF 2NF 4NF 5NF
Latihan Buatlah tabel tersebut menjadi bentuk normal TanggalTX NamaPelanggan AlamatPelanggan TelpPelanggan NamaBarang Satuan HargaJual JumlahJual JumlahKotor Potongan JumlahBersih 13-3-2017 Asep Jl Nakula 12 Semarang 81123123 Oli Mesran Liter 100,000 3 300,000 30,000 270,000 BridgeStone 15 unit 700,000 4 2,800,000 80,000 2,720,000 Foglamp Avanza set 1,200,000 1 50,000 1,150,000 Aceng Jl Merbabu 11 Semarang 821090909 Wiper Ertiga 200,000 - Ambipur Unit 40,000 Dadang Jl. Peterongan 12 Semarang 82222222 Cover Body Innova Buatlah tabel tersebut menjadi bentuk normal