Dependency dan Normalisasi
Contoh : A ⇒ B (A secara fungsional menentukan B)
Artinya bahwa A secara fungsional menentukan B atau B bergantung pada A
Contoh :
Tabel Nilai
- 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
- Full functional dependency
- Partially dependency
- 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 :
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 :
- 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
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 :
Contoh:
Tabel Mahasiswa (2NF) |
KodePos ⇒ {Kota, Provinsi}
Tabel KodePos | Tabel Mahasiswa | |
BCNF – Boyce-Codd Normal Form
4NF – Bentuk Normal Keempat
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 |
- (Employee, Project)
- (Employee, Skill)
Tabel (Employee, Project) | Tabel (Employee, Skill) | |
5NF – Bentuk Normal Kelima