normalisasi database 2014

21
Normalisasi Database ©2014, Ali Sadiyoko. Disarikan dari : Fathansyah, ‘BASIS DATA’, Informatika, Bandung , 1999.

Upload: ali-sadiyoko

Post on 20-Jul-2015

188 views

Category:

Education


7 download

TRANSCRIPT

Page 1: Normalisasi database 2014

Normalisasi Database

©2014, Ali Sadiyoko.

Disarikan dari : Fathansyah, ‘BASIS DATA’, Informatika, Bandung , 1999.

Page 2: Normalisasi database 2014

[A. Sadiyoko, 2014] Kuliah Sistem Informasi – Normalisasi Database

Definisi

Definisi Normalisasi Definisi 1 : proses dekomposisi dan restrukturisasi sebuah tabel yang kompleks strukturnya dengan tujuan untuk mendapatkan sebuah tabel yang memiliki struktur lebih sederhana dan lebih stabil (normal). Definisi 2 : Proses pengurangan sebuah relasi untuk menjadikannya bentuk paling sederhana, misalnya : semua atribut dalam sebuah tabel telah diturunkan ke dalam sebuah domain tunggal yang berisi nilai-nilai yang tidak dapat didekomposisi lagi. Definisi 3 : Proses dekomposisi dari sebuah struktur data yang kompleks mengikuti sejumlah aturan tertentu yang didesain khusus untuk mendapatkan struktur tabel yang lebih sederhana dan lebih stabil. Definisi dari : ‘The IEEE Standard Dictionary of Electrical and Electronics Term (IEEE Std 100-1996)’

Page 3: Normalisasi database 2014

[A. Sadiyoko, 2014] Kuliah Sistem Informasi – Normalisasi Database

Tujuan & Kriteria

Tujuan

Menciptakan sebuah tabel yang ‘normal’ baik/ optimal.

Kriteria

1. Jika ada dekomposisi (penguraian) tabel, maka hasil dekomposisinya dijamin aman (Lossless-Join Decomposition).

2. Ketergantungan fungsional dalam tabel harus tetap terjaga (Dependency Preservation).

3. Memenuhi bentuk Boyce-Codd Normal Form (BCNF). Jika kriteria ketiga (BCNF) tidak terpenuhi, maka paling tidak tabel tersebut harus memenuhi Bentuk Normal Tahap Ketiga (3rd Normal Form, 3NF ).

Page 4: Normalisasi database 2014

[A. Sadiyoko, 2014] Kuliah Sistem Informasi – Normalisasi Database

Kriteria (cont.)

Bentuk normal lain, selain kriteria utama di atas : 1. Bentuk Normal Tahap Pertama (1st Normal Form, 1NF ) 2. Bentuk Normal Tahap Kedua (2nd Normal Form, 2NF ) 3. Bentuk Normal Tahap Keempat (4th Normal Form, 4NF ) 4. Bentuk Normal Tahap Kelima (5th Normal Form, 5NF )

Page 5: Normalisasi database 2014

[A. Sadiyoko, 2014] Kuliah Sistem Informasi – Normalisasi Database

Tabel Universal

Page 6: Normalisasi database 2014

[A. Sadiyoko, 2014] Kuliah Sistem Informasi – Normalisasi Database

Tabel Universal

Lihat tabel universal contoh! Tabel universal (universal/ star table) = tabel yang merangkum semua kelompok data yang saling berhubungan.

Dari tabel universal tsb, dengan memperhatikan kesamaan dan ketidaksamaan data di antara baris-baris data, juga dengan memahami hubungan alamiah antar data, dapat dibentuk serangkaian KF sbb : KF yang terbentuk : nim nama_mhs, alamat_mhs, tgl_lahir

kode_kul nama_kul, sks, semester, waktu, tempat, nama_dos

nama_dos alamat_dos

nim kode_kul idx_nilai

Page 7: Normalisasi database 2014

[A. Sadiyoko, 2014] Kuliah Sistem Informasi – Normalisasi Database

Alasan melakukan dekomposisi

Ada beberapa kelemahan mendasar pada tabel universal yang dapat menjadi alasan untuk melakukan dekomposisi, yaitu: 1. Pengulangan informasi 2. Potensi inkonsistensi data pada operasi pengubahan 3. Tersembunyinya informasi tertentu.

Page 8: Normalisasi database 2014

[A. Sadiyoko, 2014] Kuliah Sistem Informasi – Normalisasi Database

Lossless-Join Decomposition/ Lossless Decomposition

Dekomposisi = pemisahan sebuah tabel menjadi beberapa tabel dengan mempertimbangkan KF yang telah ada. Dilakukan agar tiap tabel yg akan digunakan untuk sistem kita hanya memiliki 1 (satu) KF saja (KF minimum). Dekomposisi yang benar terjadi bila tabel-tabel hasil dekomposisi digabungkan kembali akan menghasilkan tabel awal.

Contoh (Lossy-Join Decomposition) : asumsikan di tabel ABC ini ada 2 KF : A B dan B C (yang didapat dari pengamatan yang kurang teliti !).

A B C

row 1 a1 100 c1

row 2 a2 200 c2

row 3 a3 300 c3

row 4 a4 200 c4

Page 9: Normalisasi database 2014

[A. Sadiyoko, 2014] Kuliah Sistem Informasi – Normalisasi Database

Lossless-Join Decomposition/ Lossless Decomposition

A B C

row 1 a1 100 c1

row 2 a2 200 c2

row 3 a3 300 c3

row 4 a4 200 c4

Hasil dekomposisi :

A B B C

a1 100 100 c1

a2 200 200 c2

a3 300 300 c3

a4 200 200 c4

A B C

a1 100 c1

a2 200 c2

a2 200 c4

a3 300 c3

a4 200 c2

a4 200 c4

Jika digabungkan kembali :

A B B C

Tabel berbeda dengan tabel awal !

Page 10: Normalisasi database 2014

[A. Sadiyoko, 2014] Kuliah Sistem Informasi – Normalisasi Database

Lossless-Join Decomposition/ Lossless Decomposition

A B C

row 1 a1 100 c1

row 2 a2 200 c2

row 3 a3 300 c3

row 4 a4 200 c4

maka dekomposisi yang dilakukan akan menjadi benar

KF: A B KF: B C

Tapi bila pada tabel awal, data yang ada di sel (4,4) berbeda :

A B C

row 1 a1 100 c1

row 2 a2 200 c2

row 3 a3 300 c3

row 4 a4 200 c2

A B B C

a1 100 100 c1

a2 200 200 c2

a3 300 300 c3

a4 200

Test:

Coba gabungkan kembali !

Page 11: Normalisasi database 2014

[A. Sadiyoko, 2014] Kuliah Sistem Informasi – Normalisasi Database

Dependency Preservation (DP)

Merupakan syarat kedua yang harus dicapai untuk mendapatkan tabel/ basis data yang baik. Ketika dilakukan perubahan isi suatu data pada tabel, maka harus dapat dijamin bahwa perubahan tsb tidak menghasilkan inkonsistensi data yang mengakibatkan KF yang sudah benar menjadi tidak terpenuhi. Tabel universal (contoh) dapat menunjukkan kerapuhan dalam memenuhi syarat DP ini. Kalaupun ingin tetap dipaksakan, maka upaya pemeliharaan KF akan akan berlangsung dengan sangat tidak efisien. Bayangkan bila terjadi perubahan Alamat untuk mahasiswa dengan NRP =’6198002’ perubahan ini harus dilakukan satu per satu pada atribut alamat_mhs di semua row yang nilai atribut nrp-nya bernilai ‘6198002’. Karena itu, solusinya adalah dengan memisahkan atribut nrp dan alamat_mhs ke tabel lain (dekomposisi), demikian juga dengan atribut lain yang mempunyai KF dengan atribut nrp.

Page 12: Normalisasi database 2014

[A. Sadiyoko, 2014] Kuliah Sistem Informasi – Normalisasi Database

Boyce-Codd Normal Form (BCNF)

Sebuah tabel dikatakan sudah memenuhi kriteria BCNF jika untuk semua KF dengan notasi x y, maka x harus merupakan superkey pada tabel tersebut. Jika tidak demikian, maka tabel tersebut harus didekomposisi berdasar KF yang ada, sedemikian rupa sehingga x menjadi superkey pada tabel-tabel hasil dekomposisi. Bila dilihat pada tabel universal (contoh), maka akan terlihat bahwa tabel tsb tidak memenuhi BCNF, bukti ambil salah satu KF, yaitu nrp nama_mhs, alamat_mhs, tgl_lahir, maka seharusnya nrp merupakan superkey di tabel tersebut. Tapi kenyataannya tidak demikian, karena pada tabel tsb nrp tidak unik. Karena itu tabel universal tsb harus didekomposisi.

Page 13: Normalisasi database 2014

[A. Sadiyoko, 2014] Kuliah Sistem Informasi – Normalisasi Database

Boyce-Codd Normal Form (BCNF)

Untuk dapat mendekomposisi dengan aman, harus dipilih KF minimum yang terdapat di tabel tsb. Pada tabel contoh, terdapat 4 KF minimum, yaitu : • nrp nama_mhs alamat_mhs tgl_lahir

• kode_kul nama_kul sks semester waktu tempat nama_dos

• nama_dos alamat_dos

• nrp kode_kul idx_nilai

Dengan 4 KF tersebut, maka tabel universal dapat didekomposisi menjadi 4 tabel, yaitu : 1. Tabel Mahasiswa dengan atribut nrp, nama_mhs, alamat_mhs dan tgl_lahir.

2. Tabel Kuliah dengan atribut kode_kul, nama_kul sks semester waktu tempat dan nama_dos

3. Tabel Dosen dengan atribut nama_dos dan alamat_dos. 4. Tabel Nilai dengan atribut nrp, kode_kul dan idx_nilai.

Page 14: Normalisasi database 2014

[A. Sadiyoko, 2014] Kuliah Sistem Informasi – Normalisasi Database

Boyce-Codd Normal Form (BCNF)

Penempatan data ke masing-masing tabel harus mempertimbangkan keunikan baris datanya. Jadi jika ada beberapa baris data yang isi keseluruhan datanya sama, cukup dinyatakan dalam 1 baris data saja. Hasil dekomposisi tabel universal adalah sbb :

Page 15: Normalisasi database 2014

[A. Sadiyoko, 2014] Kuliah Sistem Informasi – Normalisasi Database

Boyce-Codd Normal Form (BCNF)

Page 16: Normalisasi database 2014

[A. Sadiyoko, 2014] Kuliah Sistem Informasi – Normalisasi Database

Boyce-Codd Normal Form (BCNF)

Page 17: Normalisasi database 2014

[A. Sadiyoko, 2014] Kuliah Sistem Informasi – Normalisasi Database

Bentuk Normal Tahap Ketiga (3rd NF)

3NF adalah kriteria alternatif, jika kriteria BCNF tidak dapat dipenuhi. Tabel dikatakan dalam bentuk 3NF jika : untuk setiap KF dengan notasi X A , di mana A mewakili semua atribut tunggal dalam tabel yang tidak ada dalam X, maka : • X haruslah superkey pada tabel tersebut. • atau A merupakan bagian dari key primer pada tabel tersebut.

Page 18: Normalisasi database 2014

[A. Sadiyoko, 2014] Kuliah Sistem Informasi – Normalisasi Database

Bentuk Normal Tahap Ketiga (3rd NF)

Lihat Tabel Mahasiswa_1 berikut :

KF nrp nama_mhs alamat_mhs tgl_lahir sudah memenuhi BCNF (dan sekaligus 3NF) karena nrp adalah superkey. Tapi KF baru tidak memenuhi BCNF, karena kode_pos bukan superkey.

Page 19: Normalisasi database 2014

[A. Sadiyoko, 2014] Kuliah Sistem Informasi – Normalisasi Database

Bentuk Normal Tahap Ketiga (3rd NF)

Page 20: Normalisasi database 2014

[A. Sadiyoko, 2014] Kuliah Sistem Informasi – Normalisasi Database

Bentuk Normal Tahap Ketiga (3rd NF)

KF nrp nama_mhs alamat_mhs tgl_lahir sudah memenuhi BCNF (dan sekaligus 3NF) karena nrp adalah superkey. Tapi KF baru tidak memenuhi BCNF, karena kode_pos bukan superkey. Hasil dekomposisi, memang belum memenuhi BCNF, tetapi telah memenuhi 3NF, karena walaupun kode_pos bukan superkey, tapi nama_kota adalah bagian dari primary key dari tabel Alamat. Karena telah memenuhi 3NF, maka tabel (dapat) tidak perlu didekomposisi lagi, sehingga tabelnya akan berbentuk sebagai berikut :

Page 21: Normalisasi database 2014

[A. Sadiyoko, 2014] Kuliah Sistem Informasi – Normalisasi Database

Bentuk Normal Lainnya (Tidak dibahas secara detil)

Bentuk Normal Tahap Pertama (1NF) : terpenuhi jika sebuah tabel tidak memiliki atribut bernilai banyak (multivalued attribute) atau lebih dari satu atribut dengan domain nilai yang sama. Bentuk Normal Tahap Kedua (2NF) : terpenuhi jika pada sebuah tabel, semua atribut yang tidak termasuk dalam primary key memiliki KF pada primary key tsb secara utuh. Bentuk Normal Tahap Keempat dan Kelima (4NF dan 5NF) : 4NF berkaitan dengan sifat Ketergantungan Banyak-Nilai (Multivalued Dependency) pada suatu tabel yang merupakan pengembangan dari KF. Sedangkan 5NF (Project-Join Normal Form) berkaitan dengan Ketergantungan relasi antar tabel (join dependency)