Normalisasi


 1.   Pengantar Normalisasi

Salah satu topik yang cuckup kompleks dalam dunia manajemen database adalah proses untuk menormalisasi tabel-tabel dalam database relasional. Dengan normalisasi digunakan dalam desain relasional yang terdiri dari tabel-tabel berikut :
a.    Berisi data yang diperlukan.
b.    Memiliki sedikit mungkin redundansi.
c.    Mengakomodasi banyak nilai untuk tipe data yang diperlukan.
d.    Mengefisiensi update.
e.    Menghindari kemungkinan kehilangan data secara tidak disengaja/tidak diketahui.
Alasan utama dari normalisasi database minimal sampai dengan bentuk normal ketuga adalah menghilangkan kemungkinan adanya "Insertion anomalies", "deletion anomalies". dan "update anomalies". Tipe-tipe kesalahan tersebut sangat mungkin terjadi pada database yang tidak normal.
"Insertion anomaly" adalah sebuah kesalahan dalam penempatan informasi entry data baru ke seluruh tempat dalam database di mana informasi tersebut perlu disimpan. Dalam databse yang telah dinormalisasi, proses pemasukan suatu informasi baru hanya perlu dimasukkan ke dalam satu tempat.
"Deletion anomaly" adalah sebuah kesalahan dalam penghapusan suatu informasi dalam database yang harus dilakukan dengan penghapusan informasi tersebut dari beberapa tempat dalam database. Dalam database yang telah dinormalisasi, penghapusan suatu informasi hanya perlu dilakukan dalam satu tempat dalam databse tersebut.
Sedangkan, dalam melakukan update satu informasi, kesalahan juga dapat terjadi ketika kita harus melakukan update ke seluruh tempat yang menyimpan infprmasi tersebut. Kesalahan ini disebut dengan "Update anomaly".
Normalisasi merupakan cara pendekatan dalam membangun desain logika basis data relasional yang tidak secara langsung berkaitan dengan model data, tetapi dengan menerapkan sejumlah aturan dan kriteria standar untuk menghasilkan struktur tabel yang normal. Pada dasarnya, desain logika basis data relasional dapat menggunakan prinsip normalisasi maupun transformasi dari model E-R ke bentuk fisik.
Beberapa kondisi yang diujikan pada proses normalisasi yaitu :
a.    Menambah data/insert.
b.    Mengedit/mengupdate.
c.    Menghapus/delete.
d.    Membaca/retrieve

2. Bentuk-Bentuk Normalisasi

a.    Bentuk tidak normal
Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan mengikuti format tertentu, dapat saja tidak lengkap dan terduplikasi. Data dikumpulkan apa adanya sesuai keadaannya.
b.    Bentuk normal tahap pertama (1 Normal Form)
Sebuah tabel disebut 1 NF jika :
1)    Tidak ada baris yang duplikat dalam tabel tersebut.
2)    Masing-masing cell bernilai tunggal.
Catatan : Permintaan yang menyatakan tidak ada baris yang duplikat dalam sebuah tabel berarti tabel tersebut memiliki sebuah kunci, meskipun kunci tersebut dibuat dari kombinasi lebih dari satu kolom atau bahkan kunci tersebut merupakan kombinasi dari semua kolom.
Berikut ini akan dicontohkan normalisasi dari tabel Kuliah yang memiliki atribut : kode_kul, nama_kul, sks, semester, waktu, tempat, dan nama_dos.
Tabel kuliah tersebut tidak memenuhi normlaisasi pertama, karena terdapat atribut waktu yang tergolong ke dalam atribut bernilai banyak. Agar tabel tersebut dapat memenuhi 1 NF, maka solusinya adalah dengan mendekomposisi tabel Kuliah menjadi :
Tabel Kuliah (kode_kul, nama_kul, sks, semester, nama_dos).
Tabel Jadwal (kode_kul, waktu, ruang).
c.    Bentuk Normal tahap kedua (2 Normal Form)
Bentuk Normal Kedua (2NF) terpenuhi jika pada sebuah tabel semua atribut yang tidak termasuk dalam primary key memiliki ketergantungan fungsional pada primary key secara utuh.
Sebuah tabel dikatakan tidak memenuhi 2 NF, jika ketergantungannya hanya bersifat parsial (hanya tergantung pada sebagian dari primary key).
Bentuk normal kedua akan dicontohkan sebagai berikut.
Misal tabel Nilai terdiri dari atribut kode_kul, nim, dan nilai. Jika pada tabel Nilai, misalnya kita tambahkan sebuah atribut yang bersifat redundan, yaitu nama_mhs, maka tabel Nilai ini dianggap melanggar 2NF.
Primary key pada taebl Nilai adalah [kode_kul, nim].
Penambahan atribut baru (nama_mhs) akan menyebabkan adanya ketergantungan fungsional yang baru yaitu nim -> nama_mhs. karena atribut nama_mhs ini hanya memiliki ketergantungan parsial pada primary key secara utuh (hanya tergantung pada nim, padahal nim hanya bagian dari primary key).
Bentuk nnormal kedua ini dianggap belum memadai karena meninjau sifat ketergantungan atribut terhadap primary key saja.
d.    Bentuk normal tahap ketiga (3 Normal Form)
Sebuah tabel dikatakan memenuhi bentuk normal ketiga (3NF), jika untuk setiap ketergantungan fungsional dengan notasi X -> A, dimana A mewakili semua atribut tunggal di dalam tabel yang tidak ada di dalam X, maka :
X haruslah superkey pada tabel tersebut.
Atau A merupakan bagian dari primary key pada tabel tersebut.
Misalkan pada tabel Mahasiswa, atribut alamat_mhs dipecah ke dalam alamat_jalan, alamat_kota dan kode_pos. Bentuk ini tidak memenuhi 3NF, karena terdapat ketergantungan fungsional baru yang muncul pada tabel tersebut, yaitu :
alamat_jalan, nama_kota -> kode_pos
Dalam hal ini (alamat_jalan, nama_kota) bukan superkey  sementara kode_pos juga bukan bagian dari primary key pada tabel alamat tersebut, yaitu :
alamat_jalan, nama_kota -> kode_pos
kode_pos -> nama_kota
Ketergantungan fungsional yang pertama tidak melanggar 3NF, karena (alamat_jalan, nama_kota) merupakan superkey (sekaligus sebagai primary key) dari tabel Alamat tersebut. Demikian juga dengan ketergantunga fungsional yang kedua meskipun (kode_pos) bukan merupakan superkey, tetapi nama_kota merupakan bagian dari primary key dari tabel Alamat. Karena telah memenuhi 3NF, maka tabel tersebut tidak perlu di dekomposisi lagi.
e.      Bentuk Normal tahap keempat dan kelima
Penerapan aturan normalisasi sampai bentuk normal ketiga sudah memadai untuk menghasilkan tabel berkualitas baik. Namun demikian, terdapat pula bentuk normal keempat (4NF) dan kelima (5NF). Bentuk Normal KEempat berkaitan dengan sifat ketergantungan banyak nilai (multivalued dependency) pada suatu tabel yang merupakan pengembangan dari ketergantungan fungsional. Adapun bentuk normal tahap kelima merupakan nama lain dari Project Join Normal Form (PJNF).
f.    Boyce Code Normal Form (BCNF)
1)    Memenuhi 1NF.
2)    Relasi harus bergantung fungsi pada atribut superkey.

Komentar

Postingan populer dari blog ini

Input dan Output pada Bahasa Pemrograman C++

Pengenalan DFD

DIAGRAM DEPLOYMENT