Normalisasi Form

38
Basis Data Basis Data Normalisasi Normalisasi

description

Basis Data

Transcript of Normalisasi Form

  • Basis DataNormalisasi

  • Objectives

    Membahas Normalisasi

  • NormalisasiProses normalisasi adalah proses menganalisa dan memperbaiki skema relasi menggunakan data atribut untuk memperoleh properti-properti skema relasi yang baik menjadi bentuk normal lebih tinggi sehingga dapat:Mengotimalisasi redundansiMenghilangkan anomali

  • Normalisasi (2)Suatu proses untuk mengurangi redundancy pada suatu tabel/obyek/entitas sehingga mudah dimodifikasi.Biasanya melibatkan pembagian tabel entity menjadi dua atau lebih tabel dan menjelaskan hubungan diantara tabel.Tujuannya adalah untuk mengisolasi data sehingga penambahan, pengurangan, dan modifikasi dari atribut dapat dilakukan pada satu tabel dan selanjutnya dikembangkan keseluruh database melalui relasi yang ada.

  • RedundancyPengulangan/duplikasi data yang tidak perlu.Redundansi tidak dapat dihilangkan sama sekali karena berguna untuk integritas referensial yang menghubungkan satu field pada suatu tabel dengan field lain pada tabel yang berbeda.

  • Contoh Redundansi Tabel KRSTabel diatas memiliki redundansi.Kolom Kode_MK dan Nama_MK memiliki data yang sama (berulang-ulang).

    NIMKode_MKNama_MKNilai200543423PS-4533Perancangan SistemA200512345PS-4533Perancangan SistemB200534632PS-4533Perancangan SistemB200595732PS-4533Perancangan SistemA200634123BD-5452Basis DataB200612367BD-5452Basis DataB200691245BD-5452Basis DataA200736512PG-3465PemrogramanB

  • AnomaliAnomali pada dasarnya adalah ketidak-konsistenan (inkonsistensi) data.Anomali bisa terlihat pada saat melakukan perubahan, penghapusan dan penambahan data.

  • Contoh AnomaliTabel KRSMisalkan pada tabel diatas dilakukan perubahan data pada record ke 5, data nama mata kuliah basis data menjadi perancangan basis data.

    NIMKode_MKNama_MKNilai200543423PS-4533Perancangan SistemA200512345PS-4533Perancangan SistemB200534632PS-4533Perancangan SistemB200595732BD-5630Sistem Basis DataA200634123BD-5452Basis DataB200612367BD-5452Basis DataB200691245BD-5452Basis DataA200736512PG-3465PemrogramanB

  • Contoh Anomali (2)Tabel KRSPada tabel diatas akan terjadi ketidak-konsistenan pada record 5, 6 dan 7. yaitu record Kode_MK = BD-5452 berelasi dengan dua Nama_MK yang berbeda (Perancangan basis data dengan Basis data).

    NIMKode_MKNama_MKNilai200543423PS-4533Perancangan SistemA200512345PS-4533Perancangan SistemB200534632PS-4533Perancangan SistemB200595732BD-5630Sistem Basis DataA200634123BD-5452Perancangan Basis DataB200612367BD-5452Basis DataB200691245BD-5452Basis DataA200736512PG-3465PemrogramanB

  • Solusi Normalisasi

    Melakukan dekomposisi dengan menentukan ketergantungan fungsional.

    Contoh ketergantungan fungsional :

    Ketergantungan fungsional pada tabel KRSKode_MK Nama_MKNim, Kode_MK Nilai

  • DekomposisiBerdasarkan ketergantungan fungsional tersebut, maka tabel KRS dapat didekomposisi menjadi 2 tabel

    Kode_MKNama_MKPS-4533Perancangan SistemBD-5630Sistem Basis DataBD-5452Perancangan Basis DataPG-3465Pemrograman

    NIMKode_MKNilai200543423PS-4533A200512345PS-4533B200534632PS-4533B200595732BD-5630A200634123BD-5452B200612367BD-5452B200691245BD-5452A200736512PG-3465B

  • Dekomposisi tabel dapat mengurangi redudansi yang ada dan menghilangkan anomaliPerancangan melalui proses normalisasi mempunyai keuntungan-keuntungan sebagai berikut :Meminimalkan ukuran penyimpanan yang diperlukan untuk penyimpanan data.Meminimalkan resiko inkonsistensi data pada basis data.Meminimalkan kemungkinan anomaly pembaruan.Memaksimalkan stabilitas struktur data.

  • Tujuan proses normalisasi adalah mengkonversi relasi menjadi bentuk normal lebih tinggi.

    Terdapat beragam tingkat bentuk normal, yaitu:

    Bentuk normal pertama (1NF)Bentuk normal kedua (2NF) Bentuk normal ketiga (3NF)Bentuk normal Boyce-Codd (BCNF)Bentuk normal keempat (4NF)Bentuk normal kelima (5NF)

  • Bentuk normal pertama (1NF) untuk menghilangkan atribut bernilai jamak. Bentuk normal kedua (2NF) untuk menghilangkan kebergantungan parsial. Bentuk normal ketiga (3NF) untuk menghilangkan kebergantungan transitif. Bentuk normal Boyce-Codd (BCNF) untuk menghilangkan anomaly tersisa disebabkan kebergantungan fungsional. Bentuk normal keempat (4NF) untuk menghilangkan kebergantungan nilai jamak. Bentuk normal kelima (5NF) untuk menghilangkan anomaly tersisa.

  • Tiga bentuk normal pertama berkaitan dengan kebergantungan fungsional. Sementara itu bentuk keempat dan kelima berkaitan dengan redundansi yang disebabkan kebergantungan banyak nilai (multi-valued dependencies).

  • Contoh Kasus

  • 1. bentuk tidak normaladalah kumpulan data yang disimpan tidak mempunyai formattertentu, data disimpan apa adanya sesuai masukan yang diperolehdalam bentuk ini data mungkin saja tidak lengkap tidak konsisten / terduplikasi

  • Bentuk Unnormal

  • 1NFSyarat 1NF adalah : setiap atribut harus bersifat atomik, artinya, setiap atribut merupakan unsur terkecil dari identitas entitas (tidak perlu dipecah-pecah lagi)semua nilai atributnya adalah sederhana, bukan atribut komposit (composite) dan bukan atribut bernilai banyak (multi-valued).Menghilangkan repeating group data/redudancy (kelompok data yang berulang).Fokus Pada Atribut

  • Apabila diperhatikan terdapat redundancy (no_peminjaman, tgl,no_anggota, nama, alamat, tgl_lhr, telp) ditulis ulang sebanyak dua kali.Penyebab perulangan ini adalah adanya beberapa data peminjaman buku untuk no_peminjaman yang sama.

  • Setelah kelompok data kodebuku, judul, pengarang dan penerbit dipisah menjadi tabel sendiri, maka perulangan data menjadi hilang.Sebagai penghubung antara dua tabel ditambahkan no_peminjaman ke tabel buku.

  • Sebenarnya tabel pertama masih dapat dipecah menjadi atribut yg lebih kecil (atomik)Nama => nama_depan dan nama_belakangAlamat =>Alamat, kota, kodepos Telp =>Telp_rumah, hp

    Namun pemecahan tsb disesuaikan dengan kebutuhan data untuk sistem.

  • 2NFSyarat 2NF : telah memenuhi 1NF, setiap atribut non key (bukan primary atau foreign key) harus tergantung secara fungsional dengan atribut key-nya.menentukan field-field kunci-kunci bisa berupa primary key, kandidat key, dll.

  • Ketergantungan fungsional : apabila data di atribut kunci (primary key) berubah, maka data di atribut non kunci juga harus berubah.

  • Penjelasan tabel 1Dari gambar sebelumnya terlihat bila no_anggota berubah, maka nama, alamat, tgl_lhr, telp akan ikut berubahNamun, bila no_peminjaman berubah, hanya tanggal dan no_anggota saja yang berubah.

  • Dari penjelasan tsb, akhirnya terdapat dua ketergantungan fungsional utk tabel ke1, dan dua ketergantungan fungsional utk tabel ke2.Artinya, masing2 tabel dapat dipecah menjadi dua tabel

  • Bentuk 2NF

  • 3NFSyarat 3NF :telah memenuhi 2NFsetiap atribut non key tidak boleh tergantung dengan atribut non key lainnya (tidak boleh terjadi ketergantungan transitif).

  • Memeriksa ketergantungan

    Bila no_peminjaman berubah maka tglpeminjaman dan no_anggota ikut berubahArtinya atribut non-key memiliki ketergantungan secara fungsional dgn kunci

  • Semua atribut non-key pada tabel ini sudah memiliki ketergantungan fungsional dgn atribut kunci (no_anggota)

  • Atribut non-key (judul) pada tabel ini sudah memiliki ketergantungan fungsional dgn atribut kunci (kode_buku)Namun pengarang dan penerbit memiliki ketergantungan dgn atribut judul Apabila judul berubah maka pengarang dan penerbit menyesuaikan.

  • Tabel buku memiliki ketergantungan transitif, sehingga harus dipecah menjadi 3 tabel.

  • Relasi antar TabelSetelah kita mendapatkan bentuk normal dari tabel, selanjutnya dapat dibuat relasi antar tabelRelasi antar tabel dapat dihubungkan dengan melihat atribut antara tabel.

  • Basis Data Relasional

    Tabel Anggota

  • Relasi antar tabel diisi record / data