Dependency dan Normalisasi

Setalah kemarin kita belajar tentang bagaimana mengirim request untuk meminta sistem agar melakukan apa yang kita inginkan, sekarang kita akan belajar dependency dan normalisasi. Dari katanya dependency sendiri berarti bergantung, ya memang ketergantungan itu yang akan kita bahas.
Functional dependency (ketergantungan fungsional) menggambarkan hubungan kaitan antara atribut-atribut dalam relasi, dikatakan fungsional dependent karena nilai dari suatu atribut digunakan oleh atribut yang lain. Simbol untuk menyatakan functional dependent adalah ⇒ dibaca secara fungsional menentukan.

Contoh : A ⇒ B (A secara fungsional menentukan B)

Artinya bahwa A secara fungsional menentukan B atau B bergantung pada A

FD

Contoh :

Tabel Nilai

Ketergantungan fungsional dari tabel Nilai di atas adalah :
  • NIM NamaMhs

    NIM menentukan Nama Mahasiswa karena NIM yang sama menunjukkan nama Mahasiswa yang sama.

  • {Matakuliah,NIM}NilaiHuruf

    Kenapa harus Matakuliah dan NIM kok tidak NIM saja atau Matakuliah saja. Karena kalau hanya NIM saja satu NIM dapat memiliki 2 nilai, Jika Matakuliah saja juga terdapat banyak nilai, oleh karena itu kita menggunakan Matakuliah dan NIM untuk menentukan Nilai Huruf.

MACAM-MACAM FUNCTIONAL DEPENDENCY

  1. Full functional dependency
  2. Partially dependency
  3. Transitive dependency

FULL DEPENDENCY

Ketergantungan penuh. Full dependency menunjukkan atribut A dan B dalam satu relasi, dimana B bergantung penuh terhadap A, maksudnya penuh disini adalah B hanya ditentukan oleh A dan hanya A saja yang menentukan B bukan subset dari A seperti contoh sebelumnya.

Contoh :

Dikatakan full dependency kalau hanya A yang menentukan B dalam hal ini adalah NIM ⇒ idRuang. Jika Nama dan NIM yang menentukan idRuang maka hal ini tidak dapat dikatakan sebagai full dependency.
PARTIALLY DEPENDENCY
Ketergantungan parsial atau sebagian. Partionally dependency ini memiliki 2 atribut dari A untuk menentukan B, namun untuk menentukan B tidak harus 2 atribut artinya jika salah satu atribut A yang menentukan B dapat dihilangkan namun tidak merubah arti relasi dan masih tetap berelasi ketergantungan.
Contoh :

Ketergantungan sebagian {NIM, Nama} ⇒ idRuang dimana jika Nama dihilangkan maka ketergantungan tetap ada.

TRANSITIVE DEPENDENCY

Transitive dependency biasanya terjadi pada tabel hasil relasi, atau kondisi dimana terdapat tiga atribut A,B,C. Kondisinya adalah A ⇒ B dan B ⇒ C. Maka C dikatakan sebagai transitive dependency terhadap A melalui B.

Contoh :

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

NIP menentukan semua atribut dan atribut almCabang ditentukan oleh NIP namun melalui kdCabang.

NORMALISASI

Normalisas merupakan proses untuk mendapatkan struktur tabel atau relasi yang efisien dan bebas dari anomali. Anomali adalah penyimpangan atau keanehan dari suatu data base dan mengacu pada cara item dikelompokkan ke dalam struktur record. Dengan normalisasi database yang ambigu akan dihilangkan sehingga tercipta suatu database yang efisien.

Kenapa harus ada normalisasi, memang apa dampaknya kalau tidak dilakukan normalisaasi? berikut ini adalah alasannya.

  • Optimalisasi struktur-struktur tabel
  • Meningkatkan kecepatan
  • Menghilangkan pemasukan data yang sama
  • Lebih efisien dalam penggunaan storage
  • Mengurangi redundansi (kesamaan data)
  • Menghindari anomali (keanehan / penyimpangan pada saat melakukan select, insert, delete, update).
  • Meningkatkan integritas data

Untuk melakukan normalisasi data base perlu dilakukan beberapa langkah berikut. Biasanya digunakan beberapa macam normalisasi berikut ini :

  • 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

1NF-FIRST NORMAL FORM
Suatu keadaan dimana masing-masing atribut hanya boleh mempunyai satu nilai saja. Pada First Normal Form tidak diperbolehkan adanya atribut yang bernilai banyak (Multivalued Atribut), tidak diperbolehkan juga atribut berupa atribut komposit atau kombinasi keduanya.
Contoh :
1nf
2NF-SECOND NORMAL FORM

Bentuk 2NF terpenuhi jika sudah memenuhi bentuk 1NF dan memiliki atribut yang full dependency pada primary key. Tidak boleh memiliki ketergantungan parsial. Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan.

Contoh :

Bentuk 1NF
{No_peg, No_Klien} {Nama_peg, Nama_klien}
Bentuk normal 2NF
3NF-THIRD NORMAL FORM
Bentuk 3NF terpenuhi jika sudah memenuhi bentuk normal 2NF, dan tidak ada atribut non-primary key memiliki ketergantungan dengan atribut non-primary key yang lain (ketrgantungan transitive)

Contoh:

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

KodePos ⇒ {Kota, Provinsi}

 

Tabel KodePos Tabel Mahasiswa
NIM ⇒ {NamaMhs, Jalan, KodePos}

KodePos ⇒ {Provinsi, Kota}

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

 

Dependency dan Normalisasi
Tagged on:                 

Leave a Reply