NORMALISASI

A. Pendahuluan

Normalisasi adalah teknik perancangan yang banyak digunakan sebagai pemandu dalam merancang basis data relasional. Pada dasarnya, normalisasi adalah proses dua langkah yang meletakkan data dalam bentuk tabulasi dengan menghilangkan kelompok berulang lalu menghilangkan data yang terduplikasi dari tabel relasional.
Teori normalisasi didasarkan pada konsep bentuk normal. Sebuah tabel relasional dikatakan berada pada bentuk normal tertentu jika tabel memenuhi himpunan batasan tertentu. Ada lima bentuk normal yang telah ditemukan.
B. Defenisi Normalisasi
Normalisasi didefenisikan sebagai suatu teknik yang menstrukturkan/memecah/mendekomposisi data dalam cara-cara tertentu untuk mencegah timbulnya permasalahan dalam pengolahan data dalam basis data. Permasalahan tersebut berkaitan dengan penyimpangan-penyimpangan (anomalies) yang terjadi akibat adanya kerangkapan data dalam relasi dan inefesiensi pengolahan.
Proses normalisasi akan menghasilkan relasi yang optimal, yaitu:
a. Memiliki struktur record yang konsisten secara logik.
b. Memiliki struktur record yang mudah untuk dimengerti.
c. Memiliki struktur record yang sederhana dalam pemeliharaan.
d. Memiliki struktur record yang mudah untuk ditampilkan kembali untuk memenuhi kebutuhan pemakai.
e. Minimalisasi kerangkapan data guna meningkatkan kinerja system.
Untuk memudahkan dalam pembelajaran dalam normalisasi ini, ada beberapa istilah yang harus diketahui:
1. Entitas dan himpunan entitas
Entitas adalah individu yang mewakili sesuatu yang nyata dan dapat dibedakan dari sesuatu yang lain. Entitas menunjuk pada individu suatu obyek. Entitas karyawan, entitas dokter adalah contohnya. Sekelompok entitas yang sejenis membentuk sebuah himpunan entitas (entity set).


2. Field / Atribut
Field atau atribut adalah deskripsi karakteristik (properti) dari entitas tersebut. Pemilihan atribut-atribut yang relevan bagi sebuah entitas merupakan hal penting lainnya dalam pembentukan model data. Contoh atribut adalah contohnya atribut nomor induk karyawan, nama karyawan pada entitas karyawan.
3. Hubungan/ relasi
Hubungan adalah asosiasi atau kaitan antara dua entitas. Contohnya antara Mahasiswa dan mata_kuliah. Relasi ini nantinya direpresentasikan dalam bentuk kunci-kunci.
4. Candidate Key (kunci kandidat/kuni calon)
Kunci kandidat adalah satu atribut atau satu set minimal atribut yang mengidentifikasikan secara unik suatu kejadian spesifik dari entitas
5. Primary Key (kunci primer)
Primary key adalah satu atribut atau satu set minimal atribut yang mengidentifikasikan secara unik suatu kejadian. Setiap kunci kandidat punya peluang menjadi primary key, tetapi sebaiknya dipilih satu saja yang dapat mewakili secara menyeluruh terhadap entitas yang ada.
6. Domain
Domain adalah himpunan nilai yang berlaku bagi suatu atribut. Domain mendefinisikan nama, tipe, format, panjang dan nilai masing-masing item data.
7. Integritas referensial
Integritas referensial adalah aturan-aturan yang mengatur hubungan antara kunci primer dengan kunci tamu milik tabel-tabel yang berada dalam basis data relasional untuk menjaga konsistensi data.
8. Alternate Key (kunci alternatif)
Kunci alternatif adalah kunci kandidat yang tidak dapat dipakai sebagai kunci primer.


9. Foreign Key (kunci tamu)
Kunci tamu adalah satu atribut (satu set atribut) yang melengkapi satu relationship (hubungan) yang menunjukkan induknya. Kunci tamu ditempatkan pada entitas anak dan sama dengan kunci primary induk direlasikan. Hubungan antara entitas induk dengan anak adalah hubungan satu lawan banyak (one to many relationship).
10. Atribut harus bernilai (mandatory attribute) dan nilai Null
Atribut harus bernilai ini maksudnya adalah sejumlah atribut pada sebuah tabel yang ditetapkan harus berisi data. Nilai konstanta (Null) digunakan untuk mengisi atau menyatakan atribut-atribut yang nilainya memenag belum siap atau tidak ada.
11. Atribut turunan (derived atribut)
Derived atrbut adalah atribut yang nilai-nilainya diperoleh dari pengolahan atau dapat diturunkan dari atribut atau tabel lain yang berhubungan. Atribut demikian sebetulnya dapat ditiadakan dari sebuah tabel, karena nilai-nilainya bergantung pada nilai dari atribut lainnya.
12. Kebergantungan Fungsi (functional dependencies)
Definisi dari functional dependencies adalah : diberikan sebuah relasi R, atribut Y dari R adalah bergantung fungsi pada atribut X dari R jika dan hanya jika setiap nilai X dalam R punya hubungan dengan tepat satu nilai Y dalam R.
13. Dependensi fungsional sepenuhnya adalah sebagai berikut
Definisi dependensi fungsional sepenuhnya adalah sebagai berikut : Diberikan sebuah relasi R, atribut Y dari R adalah bergantung fungsi penuh pada atribut X dari R juika dan hanya jika atribut Y mempunyai dependensi fungsional terhadap atribut X dan tidak mempunyai dependensi terhadap bagian dari X.
14. Kebergantungan transitif (transitif dependencies)
Definisi dari transitif dependencies adalah : Diberikan sebuah relasi R, atribut Z dari R adalah bergantung transitif pada atribut X dari R jika dan hanya jika Y mempunyai dependensi fungsional terhadap X dan Z mempunyai dependnsi fungsional terhadap Y


C. Konsep Dasar
Normalisasi adalah bagian perancangan basis data. Tanpa normalisasi, sistem basis data menjadi tidak akurat, lambat, tidak efisien, serta tidak memberikan data yang diharapkan.Pada waktu menormalisasi basis data, ada empat tujuan yang harus dicapai, yaitu:
a. Mengatur data dalam kelompok-kelompok sehingga masing-masing kelompok hanya menangani bagian kecil sistem.
b. Meminimalkan jumlah data berulang dalam basis data.
c. Membuat basis data yang datanya diakses dan dimanipulasi secara cepat dan efisien tanpa melupakan integritas data.
d. Mengatur data sedemikian rupa sehingga ketika memodifikasi data, anda hanya mengubah pada satu tempat.
Perancang basis data terkadang menyebut keempat tujuan dengan istilah integritas data, integritas referensial dan pengaksesan data.
Tujuan normalisasi adalah membuat kumpulan tabel relational yang bebas dari data berulang dan dapat dimodifikasi secara benar dan konsisten. Ini berarti bahwa semua tabel pada basis data relasional harus berada pada bentuk normal ketiga (3NF). Sebuah tabel relasional berada pada 3NF jika dan hanya jika semua kolom bukan kunci adalah (a) saling independent dan (b) sepenuhnya tergantung pada kunci utama. Saling independen berarti bahwa tidak ada kolom bukan kunci yang tergantung pada sembarang kombinasi kolom lainnya. Dua bentuk normal pertama adalah langkah antara untuk mencapai tujuan, yaitu mempunyai semua label dalam 3NF.
D. Aturan Normalisasi
Berikut adalah aturan-aturan normalisasi :
1. Hilangkan kelompok berulang buat tabel terpisah untuk setiap himpunan atribut yang berhubungan dan tentukan kunci utama pada masing masing tabel.
2. Hilangkan data berulang jika sebuah atribut hanya tergantung pada sebagian kunci utama gabungan, pindahkan atribut ke tabel lain.
3. Hilangkan kolom yang tidak tergantung pada kunci jika atribut tidak tergantung pada kunci, pindahkan atribut ke tabel lain.
4. Pisahkan relasi majemuk, tidak ada data yang bisa mengandung dua atau lebih relasi relasi 1:n atau n:m yang tidak berhubungan langsung.
5. Pisahkan relasi majemuk yang berhubungan secara semantic, ada batasan pada informasi yang memperbolehkan pemisahan relasi many to many yang berhubungan secara logis.
6. Bentuk normal optimal, sebuah model hanya dibatasi oleh fakta sederhana.
7. Bentuk normal domain key, sebuah model harus terbebas dari semua anomaly.

E. Level Normalisasi
Teori normalisasi dibangun menurut konsep level normalisasi. Level normalisasi dijelaskan berdasarkan kriteria tertentu pada bentuk normal. Bentuk normal yang dikenal sampai saat ini meliputi bentuk 1NF, 2NF, 3NF, BCNF ,4NF, 5NF, DKNF, RUNF. Secara berturut-turut masing-masing level akan dibahas berikut ini, dimulai dari bentuk tidak normal.
1. Relasi bentuk tidak normal (Un Normalized Form/UNF)
Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan mengikuti suatu format tertentu, dapat saja data tidak lengkap atau terduplikasi. Data dikumpulkan apa adanya sesuai dengan kedatangannya. Bentuk ini harus dihindari dalam perancangan basis data. Relasi bentuk ini memiliki beberapa kriteria, yaitu:
a. Jika relasi memiliki bentuk non flat file.
b. Jika relasi memuat set atribut berulang.
c. Jika atribut memuat atribut non atomic value.
Contoh: Data mahasiswa sbb:
NIM Nama Hobi
10012 Heru Susanto Sepak bola, berenang, membaca komik
10013 Zulaikha Memasak, memprogram komputer
10014 Dini Menjahit, membuat roti
2. Relasi bentuk normal kesatu (first normal form /1NF)
Bentuk normal kesatu mempunyai ciri yaitu setiap data dibentuk dalam file data (flat file), data dibentuk dalam satu record. Tidak ada set atribut yang berulang-ulang atau atribut bernilai ganda. Relasi disebut 1NF jika memenuhi kriteriasebagai berikut:
a. Jika seluruh atribut dalam relasi bernilai atomic.
b. Jika seluruh atribut dalam relasi bernilai tunggal.
c. Jika relasi tidak memuat set atribut berulang.
d. Jika semua record mempunyai sejumlah atribut yang sama.
Permasalahan dalam relasi 1NF adalah sebagai berikut:
a. Tidak dapat menyisipkan informasi parsial.
b. Terhapusnya informasi ketika mengahapus sebuah record.
c. Pembaharuan atribut non kunci mengakibatkan sejumlah record harus diperbaharui.
Contoh: Data mahasiswa sbb:
NIM Nama Hobi
10012 Heru Susanto Sepak bola, berenang, membaca komik
10013 Zulaikha Memasak, memprogram komputer
10014 Dini Menjahit, membuat roti
Atau
NIM Nama Hobi 1 Hobi 2 Hobi 3
10012 Heru Susanto Sepak bola berenang Membaca komik
10013 Zulaikha Memasak Memprogram komputer
10014 Dini Menjahit Membuat roti
Tabel-tabel diatas adalah tabel yang tidak memenuhi syarat 1NF.
Seharusnya jika tabel di buat dengan kriteria 1NF tabel akan menjadi seperti dibawah ini:
• Tabel mahasiswa:
NIM Nama
10012 Heru Susanto
10013 Zulaikha
10014 Dini

• Tabel Hobi
NIM Hobi
10012 Sepak bola
10012 Berenang
10012 Membaca komik
10013 Memasak
10013 Memprogram computer
10014 Menjahit
10014 Membuat roti
Untuk mengubah bentuk UNF menjadi bentuk 1NF adalah dengan cara sebagai berikut:
a. Melengkapi nilai-nilai dalam atibut.
b. Mengubah struktur relasi.
3. Relasi bentuk normal kedua (second normal form /2NF).
Kriteria pada bentuk 2NF yaitu:
a. Bentuk data telah menjadi bentuk normal pertama.
b. Atribut bukan kunci haruslah bergantung fungsi secara penuh kepada kunci primer, bukan bergantung hanya sebagian kunci primer saja, sehingga untuk membentuk normal kedua haruslah sudah ditentukan kunci-kunci field.
c. Kunci field haruslah unik dan dapat mewakili atribut yang lain yang menjadi anggotanya.
d. Bentuk normal 2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1NF, dan semua atribut selain primary key, secara utuh memiliki Functional Dependency pada primary key.
e. Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungannya (Functional Dependency) hanya bersifat parsial saja (hanya tergantung pada sebagian dari primary key).
f. Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan .
Permasalahan dalam relasi 2NF adalah sebagai berikut:
a. Kerangkapan data.
b. Pembaharuan yang tidak benar dapat menimbulkan ketidak-konsistenan data.
c. Proses pembaharuan data tidak efisien.
d. Permasalahan pada saat penyisipan, penghapusan, dan pembaharuan.

Contoh :Tabel nilai mahasiswa
nrp mhs.nama mhs.alamat kodekul namakul sks kodesm nihuruf dsn.nama dsn.alamat
21 Abdullah Medan SP Agama 2 1 A Imam Jl. Teh
22 Fajril Jakarta SP Agama 2 1 A Imam Jl. Teh
23 Ridho Pekan baru SP Agama 2 1 A Imam Jl. Teh
24 Christanto bandung SP Agama 2 1 D imam Jl. Teh

Functional dependencynya adalah sbb:
{Mhs_nrp, mk_kode} à nihuruf (fd1)
Mhs_nrp à {mhs_nama, mhs_alamat} (fd2)
Mk_kode à {mk_nama, mk_sks} (fd3)
fd1 (mhs_nrp, mk_kode, nihuruf) à Tabel Nilai
fd2 (Mhs_nrp, mhs_nama, mhs_alamat) à Tabel Mahasiswa
fd3 (mk_kode, mk_nama, mk_sks) à Tabel MataKuliah
Untuk mengubah relasi 1NF menjadi bentuk 2NF, dapat dilakukan dengan cara:
a. Identifikasikan ketergantungan fungsional relasi 1NF.
b. Dekomposisi relasi 1NF menjadi relasi-relasi baru sesuai ketergantungan fungsionalnya.


4. Relasi bentuk normal ketiga (third normal form /3NF)
Untuk menjadi bentuk normal ketiga maka harus memenuhi kriteria sebagai berikut:
a. Relasi haruslah dalam bentuk normal kedua (2NF).
b. Semua atribut tidak mempunyai ketergantungan transitif terhadap kunci primer.
c. Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF, dan jika tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lainnya.
d. A,Untuk setiap Functional Dependency dengan notasi X maka:
e. X harus menjadi superkey pada tabel tsb.
f. Atau A merupakan bagian dari primary key pada tabel tsb.
Contoh:
Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:
NIM Nama Alm_Jalan Alm_Kota Alm_Provinsi Alm_Kodepos
Mahasiswa
a. karena masih terdapat atribut non primary key (yakni alm_kota dan alm_Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni alm_kodepos):
b. {alm_Provinsi, alm_kota},Sehingga tabelalm_kodepos tersebut perlu didekomposisi menjadi:
c. Mahasiswa (Nrp, nama, alm_jalan, alm_kodepos)
d. Kodepos (alm_kodepos, alm_provinsi, alm_kota)
Untuk mengubah relasi 2NF menjadi bentuk relasi 3NF, dapat dilakukan dengan cara sebagai berikut:
a. Identifikasi ketergantungan transitif relasi 2NF.
b. Dekomposisi relasi 2NF menjadi relasi-relasi baru sesua ketergantungan transitifnya.
5. Relasi bentuk normal Boyce-Cood (Boyce-Cood norm form /BCNF)
Bentuk ini dikenalkan oleh R.F. Boyce dan E.F. Cood. Relasi ini memiliki kriteria sebagai berikut:
a. Jika memenuhi kriteria 3NF.
b. Jika semua atribut penentu merupakan candidat key.
c. Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap functional dependency terhadap setiap atribut atau gabungan atribut dalam bentuk: Y makaX X adalah super key .
d. Tabel tersebut harus di-dekomposisi berdasarkan functional dependency yang ada, sehingga X menjadi super key dari tabel-tabel hasil dekomposisi.
e. Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu termasuk BCNF. Perbedaannya, untuk functional dependency A, BCNF tidak membolehkan A sebagai bagian dari primary key.X

6. Relasi bentuk normal keempat (forth norm form/4NF)
Relasi ini memiliki kriteria sebagai berikut:
a. Jika memenuhi kriteria BCNF.
b. Semua atribut yang mengalami ketergantungan pada banyak nilai adalah bergantung secara fungsional.
c. Untuk setiap multivalued dependencies (MVD) juga harus merupakan functional dependencies
Contoh: Tabel berikut tidak memenuhi 4NF:
Employee Project Skill
Jim 11 Program
Mary 5 Design
Mary NULL Analysis

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)
7. Relasi bentuk normal kelima (fifth norm form/5NF)
Relasi ini memiliki kriteria sebagai berikut:
a. Kerelasian antar data dalam relasi tersebut tidak dapat direkonstruksi dari struktur relasi yang memuat atribut yang lebih sedikit.
b. Bentuk normal 5NF terpenuhi jika tidak dapat memiliki sebuah lossless decomposition menjadi tabel-tabel yg lebih kecil.
c. Jika 4 bentuk normal sebelumnya dibentuk berdasarkan functional dependency, 5NF dibentuk berdasarkan konsep join dependence. Yakni apabila sebuah tabel telah di-dekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi (join) untuk membentuk tabel semula
8. Relasi bentuk normal domain(domain key norm form/DKNF).
Suatu relasi disebut sebagai DKNF, jika setiap batasan dapat disimpulkan secara sederhana dengan mengetahui sekumpulan nama atribut dan domainnya selama menggunakan sekumpulan atribut pada kuncinya. Bentuk ini dikemukakan oleh R. Fagin pada tahun 1981 dan bersipat sangat spesifik, artinya tidak semua relasi dapat mencapai level ini.
F. Efek Normalisasi
Sebagaimana yang terjadi pada hampir semua usaha pemecahan permasalahan, akan menimbulkan efek samping yang negative. Pada kenyataannya, penerapan normalisasi juga mengakibatkan efek samping yang tidak di harapkan, yaitu:
a. Proses dekomposisi relasi akan mengakibatkan munculnya duplikasi rinci data pada atribut kunci penghubung.
b. Dekomposisi relasi membuka kemungkinan tidak terpenuhinya integritas referensialdalam basis data.
c. Dekomposisi relasi akan menghasilkan semakin banyak jumlah relasi baru, sehingga mengakibatkan inefesiensi proses menampilakan kembali data-data dari dalam basis data.
d. Adanya batasan penerapan pada beberapa DBMS untuk ukuran komputer pribadi, berkaitan dengan batas maksimal relasi yang dapat dibuka secara bersamaan.