Copyright © Data Nyamana
Design by Dzignine
Sunday 25 November 2012

Dependensi dan Normalisasi

Dalam membuat basis data, kita pasti ingin basis data yang kita punya tidak ruwet dan mudah dalam memodifikasi data. Sehingga kita sebagai database administrator menjadi lebih mudah dalam mengelola basis data tersebut. Untuk mencapai hal tersebut maka kita perlu untuk mempelajari yang namanya Dependensi dan Normalisasi dalam Basis Data.

Dependensi



Ada empat macam dependensi, yaitu:
  1. Dependensi Fungsional
  2. Dependensi Fungsional Penuh
  3. Dependensi Fungsional Parsial
  4. Dependensi Fungsional Transitif

Dependensi Fungsional


Dependensi fungsional menggambarkan relasi / hubungan, batasan, dan keterkaitan antara atribut-atribut dalam suatu relasi. Suatu atribut dikatakan bergantung pada atribut lain secara fungsional jika kita menggunakan harga atribut yang lain.

Notasi dependensi fungsional yaitu A ⇒ B (A secara fungsional menentukan B)

Artinya bahwa A secara fungsional menentukan B atau B bergantung pada A. Jika ada dua baris data dengan nilai A yang sama, maka nilai B juga sama.

Atribut B bergantung pada atribut A

Contoh:
Tabel Nilai

Berikut adalah dependensi yang ada dalam tabel nilai:
  • NIM ⇒ NamaMhs
  • Karena untuk setiap nilai NIM yang sama, maka NamaMhs juga sama
  • {MataKuliah,NIM} ⇒ NilaiHuruf
  • Karena atribut NilaiHuruf tergantung pada MataKuliah dan NIM secara bersama-sama. Dalam arti lain MataKuliah dan NIM yang sama, maka NilaiHuruf juga sama, karena MataKuliah dan NIM merupakan key (bersifat unik).

Dependensi Penuh


Dependensi penuh menunjukkan jika terdapat atribut A dan B dalam suatu relasi, dimana:
  • B memiliki dependensi fungsional secara penuh pada A
  • B bukan memiliki dependensi terhadap subset A
Contoh:


{NIM, Nama} ⇒ idRuang bukan Dependensi Penuh jika nama dihilangkan, maka NIM ⇒ idRuang bisa menjadi Dependensi Penuh.

Dependensi Parsial


Dependensi Parsial merupakan ketergantungan fungsional dimana beberapa atribut dapat dihilangkan dari A dengan ketergantungan tetap dipertahankan.
  • B memiliki dependensi terhadap subset A
Contoh:

{NIM, Nama} ⇒ idRuang dimana jika nama dihilangkan maka ketergantungan tetap ada

Dependensi Transitif


Transitif Dependensi adalah kondisi dimana A, B, C merupakan atribut sebuah relasi dimana A ⇒ B dan B ⇒ C.
  • Maka C dikatakan dependensi transitif terhadap A melalui B.
Contoh:

  • NIP ⇒ {Nama, Jabatan, Gaji, kdCabang, almCabang}
  • kdCabang ⇒ almCabang

Normalisasi



Normalisasi 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. Normalisasi juga merupakan proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.

Banyak dari kita pasti berpikir, kenapa harus dilakukan normalisasi? Berikut adalah alasannya.
  • Optimalisasi struktur-struktur tabel
  • Meningkatkan kecepatan akses
  • Menghilangkan pemasukan data yang sama
  • Mengurangi redundansi
  • Lebih efisien dalam penggunaan media penyimpanan
  • Menghindari anomali
  • Integritas data meningkat
Ada beberapa bentuk normalisasi, yaitu:
  • First Normal Form (1NF)
  • Second Normal Form (2NF)
  • Third Normal Form (3NF)
  • Boyce-codd Normal Form (BCNF)
  • Four Normal Form (4NF)
  • Five Normal Form (5NF)

Langkah-Langkah Normalisasi


Langkah-langkah normalisasi data

1NF - Bentuk Normal Pertama


Pada bentuk normal pertama, setiap perpotongan baris dan kolom hanya memiliki satu nilai. Bentuk normal pertama juga tidak memperkenankan adanya atribut bernilai banyak dan atribut komposit.

Contoh:
Bentuk Tidak Normal (UNF)
Bentuk Normal Pertama (1NF)


2NF - Bentuk Normal Kedua


Bentuk normal 2NF terpenuhi jika sudah memenuhi bentuk normal 1NF dan semua atribut selain primary key secara utuh memiliki dependensi feungsional terhadap primary key. Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungannya hanya bersifat parsial saja. Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan.

Contoh:
Bentuk Normal 1NF
{No_peg, No_klien} ⇒ {Nama_peg, Nama_klien}

Bentuk Normal 2NF



3NF - Bentuk Normal Ketiga


Bentuk normal ketiga akan terpenuhi jika sudah memenuhi bentuk 2NF dan tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lain (ketergantungan transitif).

Contoh:
Tabel Mahasiswa (2NF)
NIM ⇒ {NamaMhs, Jalan, Kota, Provinsi, KodePos}
KodePos ⇒ {Kota, Provinsi}

Diubah menjadi:

NIM ⇒ {NamaMhs, Jalan, KodePos}
KodePos ⇒ {Provinsi, Kota}

Tabel KodePos Tabel Mahasiswa

BCNF - Boyce-Codd Normal Form


Bentuk BCNF dapat terpenuhi apabila setiap dependensi fungsional A ⇒ B memiliki kondisi bahwa A merupakan superkey dari tabel bersangkutan. Tabel tersebut harus di-dekomposisi berdasarkan functional dependency yang ada, sehingga B 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 A ⇒ B, BCNF tidak membolehkan B sebagai bagian dari primary key.

4NF - Bentuk Normal Keempat


Bentuk normal 4NF terpenuhi dalam sebuah tabel jika tabel tersebut 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:
Tabel yang belum 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)
Tabel (Employee, Project) Tabel (Employee, Skill)

5NF - Bentuk Normal Kelima


Bentuk normal 5NF terpenuhi jika dia tidak dapat mempunyai dekomposisi lossless menjadi sejumlah tabel lebih kecil. Empat bentuk normal pertama berdasarkan pada konsep ketergantungan fungsional, sedangkan bentuk normal kelima berdasarkan pada konsep ketergantungan gabungan (join dependence). Ketergantungan gabungan berarti bahwa sebuah tabel, setelah didekomposisi menjadi tiga atau lebih tabel yang lebih kecil, harus dapat digabungkan kembali untuk membentuk tabel asal. Dengan kata lain, 5NF menunjukkan ketika sebuah tabel tidak dapat didekomposisi lagi

5 comments:

  1. Kritik dan saran aja,
    Materinya sudah bagus, sangat membantu,
    Tapi alangkah baiknya jika text pd web bisa di copy, krna ini disimpan di blog, yang semua orang ga bisa simpan filenya, kecuali save hal page nya..

    Sehingga semua orang bisa menyimpan copy - an materinya . Terimakasih

    ReplyDelete
  2. Anonymous26/1/15 23:55

    Penjelasan bagian functional dependency kurang dapat dipahami. Penerangan dengan contoh tidak sesuai seperti A berhubungan dengan C melalui B sedangkan dicontoh menggunakan kalimat lain tanpa refer ke ABC itu.
    Kesimpulannya pun cuma berupa keterangan bukan penjelasan kembali.

    Bagian Normalisasi lebih baik contoh dari 1 entitas tetap yang bisa mencapai tahap 5 NF ato minimal 3 NF

    Bagusnya. ini di indonesia in jadi lebih mudah dimengerti

    ReplyDelete
  3. This comment has been removed by the author.

    ReplyDelete
  4. Saya ingin bertanya, apa yang harus dilakukan jika tahap normalisasi paling akhir sudah dilakukan, namun masih belum normal?
    sebelumnya terimakasih

    ReplyDelete