7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 1/38
Normalisasi Database
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 2/38
Pen ga n t a r Pen y em p u r n a a n Sk em a :
Per soa l a n y a n g D i t i m bu l k a n o l eh Red u n d a n si
Redundansi ruang penyimpanan: beberapa datadisimpan secara berulang
Update anomaly: Jika satu copy data terulang tsbdiubah, inkonsistensi data dpt terjadi kecuali kalau
semua copy dari data tsb diubah dengan cara yang sama Insertion anomaly: Mungkin dpt terjadi kesulitan utk
menyisipkan data tertentu kecuali kalau beberapa datatidak terkait lainnya juga ikut disisipkan
Deletion anomaly: Mungkin dpt terjadi kesulitan utk
menghapus data tertentu tanpa harus kehilangan beberapa data tidak terkait lainnya
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 3/38
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 4/38
Per soa l a n y a n g D i t i m bu l k a n o l eh
Redu n da n si : Con t o h (cont’d)
Insertion anomaly: Kesulitan utk menyisipkan employee baru kecualinilai wage untuk rating dari employee tsb sudah diketahui
Deletion anomaly: Jika semua baris yang terkait dg nilai ratingtertentu dihapus (misalnya baris utk employee ‘Smethurst’ dan ‘Guldu’dihapus), maka kita akan kehilangan informasi ketergantungan antaranilai rating dan nilai wages yang diasosiasikan dengan nilai rating tsb(yaitu rating = 5 dan wages = 7)
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 5/38
5
PenyebabPenyebab Anomali Anomali
MengapaMengapa anomalianomali -- anomalianomali iniini terjaditerjadi ??
KarenaKarena menggabungkanmenggabungkan duadua tematema ((konsepkonsep entitasentitas))dalamdalam satusatu relasirelasi.. IniIni mengakibatkanmengakibatkan duplikasiduplikasi –– duplikasiduplikasisebagaisebagai akibatakibat daridari ketergantunganketergantungan antarantar atributatribut yang yangtidak tidak padapada tempatnyatempatnya..
SolusiSolusi :: NormalisasiNormalisasi
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 6/38
Normalisasi
Normalisasi adalah proses pembentukan struktur basisdata sehingga sebagian besar ambiguity bisadihilangkan.
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.
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 7/38
Normalisasi
Sebuah tabel dikatakan baik (efisien) atau normal jikamemenuhi 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-)
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 8/38
Normalisasi
Jika kriteria ketiga (BCNF) tidak dapat terpenuhi,maka paling tidak tabel tersebut tidak melanggarBentuk Normal tahap ketiga (3rd Normal Form /
3NF).
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 9/38
Sistem / Teknologi Basis Data 9
LangkahLangkah –– LangkahLangkah NormalisasiNormalisasi
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 10/38
Contoh Tabel Universal
Tabel Universal (Universal / Star Table) sebuah tabel yang merangkum semua kelompok data yang saling berhubungan, bukan merupakan tabel yang baik.
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 11/38
Tabel Universal
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 12/38
Functional Dependency
Notasi: A B
A dan B adalah atribut dari sebuah tabel. Berarti secarafungsional A menentukan B atau B tergantung pada A,
jika dan hanya jika ada 2 baris data dengan nilai A yang
sama, maka nilai B juga sama
• Notasi: A B atau A x B
Adalah kebalikan dari notasi sebelumnya.
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 13/38
Functional Dependency
Contoh tabel nilai
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 14/38
Functional Dependency
Functional Dependency dari tabel nilai
• Nrp namaMhs
Karena untuk setiap nilai nrp yang sama, maka nilai
namaMhs juga sama.
• {Namakul, nrp} NiHuruf
Karena attribut Nihuruf tergantung pada Namakul dan nrp secara
bersama-sama. Dalam arti lain untuk Namakul dan nrp yang sama,
maka NiHuruf juga sama, karena Namakul dan nrp merupakan key
(bersifat unik).
• NamaKul nrp
• Nrp NiHuruf
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 15/38
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)
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 16/38
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)
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 17/38
Contoh 1
Misal data mahasiswa sbb:
Atau Atau::
TabelTabel--tabeltabel didi atasatas tidaktidak memenuhimemenuhi syaratsyarat 1NF1NF
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 18/38
Contoh 1
Didekomposisi menjadi:
• Tabel Mahasiswa
• Tabel Hobi
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 19/38
Contoh 2 (composite)
JadwalKuliah
Kodekul NamaKul Dosen Kelas Jadwal
Kodekul NamaKul Dosen Kelas JadwalHari JadwalJam
• Dimana nilai pada atribut jadwal berisi gabungan antaraHari 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
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 20/38
Bentuk Normal Tahap Kedua(2nd Normal Form)
Bentuk normal 2NF terpenuhi dalam sebuah tabel jikatelah memenuhi bentuk 1NF, dan semua atribut selainprimary key, secara utuh memiliki Functional Dependencypada primary key
Sebuah tabel tidak memenuhi 2NF, jika ada atribut yangketergantungannya (Functional Dependency) hanya
bersifat parsial saja (hanya tergantung pada sebagian dariprimary key)
Jika terdapat atribut yang tidak memiliki ketergantunganterhadap primary key, maka atribut tersebut harusdipindah atau dihilangkan
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 21/38
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} yangdianggap 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
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 22/38
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
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 23/38
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:
•• XX harusharus menjadimenjadi superkeysuperkey padapada tabeltabel tsbtsb..
•• Atau Atau A A merupakanmerupakan bagianbagian daridari primary keyprimary key padapada tabeltabeltsbtsb..
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 24/38
Contoh
Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:
Nrp Nama Alm_Jalan Alm_Kota Alm_Provinsi Alm_Kodepos
Mahasiswa
karenakarena masihmasih terdapatterdapat atributatribut non primary keynon primary key ((yakniyakni alm_kotaalm_kota dandan
alm_Provinsialm_Provinsi) yang) yang memilikimemiliki ketergantunganketergantungan terhadapterhadap atributatribut nonnon
primary keyprimary key yang lain (yang lain (yakniyakni alm_kodeposalm_kodepos):):
alm_kodepos {alm_Provinsi, alm_kota}
SehinggaSehingga tabeltabel tersebuttersebut perluperlu didekomposisididekomposisi menjadimenjadi::
Mahasiswa (Nrp, nama, alm_jalan, alm_kodepos)
Kodepos (alm_kodepos, alm_provinsi, alm_kota)
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 25/38
Boyce-Code Normal Form(BCNF)
Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap functional dependency terhadap setiap atributatau gabungan atribut dalam bentuk: X Y maka X
adalah su p er k ey tabel tersebut harus di-dekomposisi berdasarkan
functional dependency yang ada, sehingga X menjadisuper 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.
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 26/38
Bentuk Normal Tahap Keempat(4th Normal Form /4NF)
Bentuk normal 4NF terpenuhi dalam sebuah tabel jikatelah memenuhi bentuk BCNF, dan tabel tersebut tidak
boleh memiliki lebih dari sebuah multivalued atribute
Untuk setiap multivalued dependencies (MVD) jugaharus merupakan functional dependencies
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 27/38
Contoh
Misal, tabel berikut tidak memenuhi 4NF:
SetiapSetiap employeeemployee dapatdapat bekerjabekerja didi lebihlebih daridari satusatu projectproject dandan
dapatdapat memilikimemiliki lebihlebih daridari satusatu skillskill.. UntukUntuk kasuskasus sepertiseperti iniini
tabeltabel tersebuttersebut harusharus didi--dekomposisidekomposisi menjadimenjadi::
(Employee, Project)(Employee, Skill)
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 28/38
Bentuk Normal Tahap Keempat(5th Normal Form /5NF)
Bentuk normal 5NF terpenuhi jika tidak dapat memilikisebuah lossless decomposition menjadi tabel-tabel yg lebihkecil.
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
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 29/38
Latihan Normalisasi
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 30/38
Soal Latihan (1)
NoOrder TglOrder Item1 Item2 Item3 Total
TR001 10/01/2006 P1 P2 P3 500.000
TR002 15/02/2006 P3 P5 300.000
TR003 18/03/2006 P1 P2 200.000
Bagaimana bentuk normalisasinya?
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 31/38
Pembahasan(1)
Bentuk Normal Pertama
NoOrder TglOrder Item Total
TR001 10/01/2006 P1 500.000
TR001 10/01/2006 P2 500.000
TR001 10/01/2006 P3 500.000
TR002 15/02/2006 P3 300.000
TR002 15/02/2006 P5 300.000
TR003 18/03/2006 P1 200.000TR003 18/03/2006 P2 200.000
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 32/38
Pembahasan(1)
Bentuk Normal Kedua
NoOrder TglOrder Total
TR001 10/01/2006 500.000
TR002 15/02/2006 300.000
TR003 18/03/2006 200.000
NoOrder Item
TR001 P1
TR001 P2
TR001 P3
TR002 P3
TR002 P5TR003 P1
TR003 P2
Relasi: Order1 Relasi: Order2
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 33/38
Soal Latihan(2)
KodeProyek NamaPegawai Bagian
P001 Adi EDP
P002 Bima HRD
P002 Adi EDP
P003 Bima HRD
P003 Candra Produksi
• Apakah sudah memenuhi bentuk normal pertama
• Bagaimana bentuk normalisasi tabel tersebut?
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 34/38
Pembahasan(2)
KodeProyek NamaPegawai
P001 Adi
P002 Bima
P002 Adi
P003 Bima
P003 Candra
NamaPegawai Bagian
Adi EDP
Bima HRD
Candra Produksi
• Tabel soal latihan 2 sudah memenuhi normalisasi pertama
• Bentuk normalisasi kedua dari tabel tersebut adalah
Relasi: Proyek1 Relasi: Proyek2
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 35/38
Pembahasan(2)
KodeProyek NamaProyek KodePeg
awai
P001 XXX N001
P002 YYY N001
P002 YYY N002
P003 ZZZ N002
P003 ZZZ N003
KodePegawai NamaPeg
awai
KodeBagian
N001 Adi B01
N002 Bima B02
N003 Candra B03
KodeBagian NamaBagianB01 EDP
B02 HRD
B03 Produksi
• Bentuk normalisasi ketiga dari tabel tersebut adalah
Relasi: Proyek1 Relasi: Proyek2
Relasi: Proyek3
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 36/38
Soal Latihan(3)
NRP Nama MataKuliah NIP Dosen
5103100101 Ali Basis Data 320001123 Ir.X
5103100102 Sita Basis Data 320001123 Ir.X
5103100102 Sita RPL 320011133 Ir.Y
5103100103 Adi AI 320021010 Ir.Z
• Apakah sudah memenuhi bentuk normal pertama
• Bagaimana bentuk normalisasi tabel tersebut?
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 37/38
Pembahasan (3)
NRP Nama
5103100101 Ali
5103100102 Sita
5103100103 Adi
NRP MataKuliah
5103100101 Basis data
5103100101 Basis data
5103100101 RPL
5103100102 AI
NRP NIP Dosen
5103100101 320001123 Ir. X5103100102 320001123 Ir. Y
5103100102 320011133 Ir. Y
5103100103 320021010 Ir. Z
• Tabel soal latihan 3 sudah memenuhi normalisasi pertama• Bentuk normalisasi kedua dari tabel tersebut adalah
Relasi: Mahasiswa1 Relasi: Mahasiswa2
Relasi: Mahasiswa3
7/21/2019 Modul 8 - Normalisasi Data
http://slidepdf.com/reader/full/modul-8-normalisasi-data 38/38
Pembahasan (3)
NRP Nama KodeMatkul
5103100101 Ali MT01
5103100102 Sita MT02
5103100102 Sita MT02
5103100103 Adi MT03
KodeMatkul MataKuliah
MT01 Basis data
MT02 RPL
Mt03 AI
NIP Dosen
320001123 Ir. X
320011133 Ir. Y
320021010 Ir. Z
• Bentuk normalisasi ketiga dari tabel tersebut adalah
Relasi: Mahasiswa1 Relasi: Mahasiswa2
Relasi: Mahasiswa3
Top Related