TEKNIK NORMALISASI

Normalisasi database biasanya jarang dilakukan dalam database skala kecil, dan dianggap tidak

diperlukan pada penggunaan personal. Namun seiring dengan berkembangnya informasi yang

dikandung dalam sebuah database, proses normalisasi akan sangat membantu dalam

menghemat ruang yang digunakan oleh setiap tabel di dalamnya, sekaligus mempercepat proses

permintaan data. Berikut ini dipaparkan metodologi logis sederhana untuk menormalkan model

data dalam sebuah database, diiringi contoh pembuatan database untuk tugas-tugas matakuliah

dalam sebuah fakultas (fiktif) dengan atribut yang disederhanakan.

Proses normalisasi model data dapat diringkas sebagai berikut:

1. Temukan entitas-entitas utama dalam model data.

2. Temukan hubungan antara setiap entitas.

3. Tentukan atribut yang dimiliki masing-masing entitas.

Normalisasi model data dilakukan dengan mengikuti langkah-langkah sederhana, mengubahnya

agar memenuhi apa yang disebut sebagai bentuk normal pertama, kedua, lalu ketiga secara

berturutan.

Sebuah model data dikatakan memenuhi bentuk normal pertama apabila setiap atribut yang

dimilikinya memiliki satu dan hanya satu nilai. Apabila ada atribut yang memiliki nilai lebih

dari satu, atribut tersebut adalah kandidat untuk menjadi entitas tersendiri.

Entitas utama untuk database tugas matakuliah tentu saja Tugas Matakuliah. Sebagian atribut

Atribut Nama Kelas mencantumkan kelas-kelas di mana tugas tersebut berlaku. Apabila

pendaftar untuk sebuah matakuliah melebihi kapasitas ruangan yang dimiliki fakultas, kebijakan

yang umum diambil Kepala Program Studi adalah membagi kegiatan perkuliahan untuk

matakuliah tersebut menjadi beberapa kelas. Karenanya atribut ini rentan memiliki nilai jamak,

dan lebih sesuai menjadi entitas baru atau atribut dari entitas lain. Untuk sementara kita

membuat entitas baru, Kelas, dimana sebagian atributnya berasal dari Tugas Matakuliah yang

secara logis lebih sesuai menjadi atribut entitas ini. Sementara itu, hampir semua atribut entitas

Tugas Matakuliah selain Nama Kelas memiliki nilai tunggal (dengan asumsi setiap matakuliah

diampu oleh satu dosen saja).

2.1.a Relasi Antar-Entitas dan Identifier

Masalah yang kita hadapi sekarang adalah menghubungkan Tugas Matakuliah dengan Kelas.

Satu tugas dapat diberikan pada beberapa kelas yang berbeda; dalam terminologi pemodelan

data, ini berarti antara entitas Tugas Matakuliah dan entitas Kelas terdapat relasi 1:N (atau 1-N)

untuk nilai N lebih dari satu. Cara paling intuitif untuk menghubungkan kedua entitas tersebut

adalah menyertakan identitas satu entitas sebagai atribut entitas lain. Identitas sebuah entitas

haruslah unik untuk menghindarkan ambiguitas saat akan merujuk pada satu objek khusus dari

entitas tersebut. Entitas Tugas Matakuliah akan menggunakan pengidentifikasi arbitrer berupa

angka yang berbeda antara satu objek Tugas Matakuliah dengan objek Tugas Matakuliah lain.

Entitas Kelas dapat diidentifikasi dengan matakuliah dan kode kelas yang bersangkutan,

sehingga kita cukup menambahkan atribut pengidentifikasi (identifier) dalam kedua entitas.

Entitas ini beserta semua atribut baru dan hubungannya dengan Tugas Matakuliah diperlihatkan

dalam Gambar 2, dengan menggunakan notasi relasi crows foot (dengan simbol “kaki gagak”

2.2. Bentuk Normal Kedua (2NF)

Sebuah model data dikatakan memenuhi bentuk normal kedua apabila ia memenuhi bentuk

normal pertama dan setiap atribut non-identifier sebuah entitas bergantung sepenuhnya hanya

pada semua identifier entitas tersebut.

Apabila kita perhatikan kembali model data yang telah kita hasilkan di atas, segera terlihat

bahwa atribut dari entitas Kelas tidak sepenuhnya bergantung pada identitas unik Kelas tersebut.

Seorang dosen akan tetap ada meskipun kelas matakuliah yang ia ampu sudah tidak ada lagi.

Dalam hal ini, dosen adalah entitas tersendiri (yang nantinya dapat dilekatkan pada entitas

Fakultas atau Universitas bilamana kedua entitas tersebut dirasa perlu ada, tergantung pada

kebutuhan pemodelan data kita).

2.2.a Sekali Lagi, Tentang Identifier

Dalam dunia nyata, anggapan yang umum adalah seseorang (“individu”) dapat diidentifikasi

secara unik dengan namanya. Tentu saja anggapan ini tidak sepenuhnya benar, karena bisa saja

sebuah nama (bahkan satu rangkaian nama lengkap) dimiliki oleh lebih dari satu orang;

pemodelan data yang melibatkan informasi tentang individu jarang menggunakan nama

individu tersebut sebagai satu-satunya pengidentifikasi. Implementasi RDBMS tertentu juga

akan lebih cepat memproses query atas suatu tabel apabila tabel tersebut diindeks oleh nilai

integer unik daripada bila menggunakan indeks karakter (rangkaian karakter masih harus

diumpankan ke fungsi hash agar dapat digunakan sebagai indeks tabel, sementara untuk integer

unik tidak harus).

Karena beberapa alasan tersebut, entitas Dosen pada model data kita akan menggunakan

pengidentifikasi arbitrer berupa Nomor Induk Pegawai sebagaimana diperlihatkan dalam

Gambar 3. Dalam notasi crows foot, relasi non-identifying digambarkan dengan garis putusputus

atau tersamar.


2.3. Bentuk Normal Ketiga (3NF)

Sebuah model data dikatakan memenuhi bentuk normal ketiga apabila ia memenuhi bentuk

normal kedua dan tidak ada satupun atribut non-identifying (bukan pengidentifikasi unik) yang

bergantung pada atribut non-identifying lain. Apabila ada, pisahkan salah satu atribut tersebut

menjadi entitas baru, dan atribut yang bergantung padanya menjadi atribut entitas baru tersebut.

Dalam model data sederhana yang kita gunakan di sini, tidak ada satupun atribut non-identifying

(seperti Deskripsi Tugas Matakuliah, atau Nama Dosen) yang bergantung pada atribut nonidentifying

lain. Namun demi adanya contoh, kita misalkan entitas Dosen memiliki atribut

informasi Alamat Rumah dan Nomor Telepon Rumah. Keduanya tidak dapat secara unik

mengidentifikasi objek tertentu dari entitas Dosen, namun keduanya saling bergantung.

Sebagaimana dalam dua langkah normalisasi sebelumnya, jenis kebergantungan seperti ini

dapat dihilangkan dengan membuat entitas baru lagi (yang tidak akan diciptakan karena tiga

entitas sudah cukup banyak untuk satu artikel).

Model terakhir yang kita dapat ini telah memenuhi bentuk normal ketiga (third normal form)

dan siap dikonversi menjadi tabel. Namun sebelumnya, kita perlu membahas berbagai jenis

relasi yang kerap ditemui dalam pemodelan data, termasuk yang kita temui dalam contoh model

data kali ini.

3. Jenis-jenis Relasi Antar-Entitas

1. Relasi 1-1. Relasi ini jarang ditemui dalam model data yang benar, sehingga saat Anda

menemukannya, kemungkinan besar hal itu berarti masih ada yang belum sempurna

dari model data Anda; relasi 1-1 sering berarti kedua entitas tersebut sebenarnya adalah

kesatuan, satu entitas tunggal. Kemungkinan lain adalah relasi 1-1 ini adalah relasi

turunan atau relasi non-identifying (identitas unik satu entitas tidak bergantung pada

identitas unik entitas lain) namun jenis relasi kedua ini jarang ditemui.

2. Relasi 1-N. Relasi ini yang paling umum ditemui dalam model data.

3. Relasi M-N. Relasi ini juga sering ditemui dalam model data, dan sering pula dapat

dinormalkan lebih jauh lagi. Langkah yang dapat ditempuh untuk menormalkan relasi

M-N:

a. Buat sebuah entitas baru sebagai penghubung antara kedua entitas dengan relasi MN

tersebut. Entitas penghubung ini akan memiliki hubungan 1-M dengan masingmasing

entitas awal. Identifier entitas penghubung dapat dibuat tersendiri, atau

dengan cara mewarisi identifier kedua entitas awal dan membuat keduanya

identifier unik entitas penghubung ini. Sering kali akan ada atribut lain yang

dimiliki oleh entitas penghubung tersebut. Entitas Kelas dalam contoh model data

kita dapat menjadi contoh entitas penghubung. Apabila tidak ada entitas

penghubung yang dapat diciptakan, relasi M-N tetap harus diubah untuk

menghindari kesulitan dalam konversi model data menjadi skema database fisik.

4. Menterjemahkan Model Data

Setelah sebuah model data dinormalisasikan dan siap diubah menjadi database fisik, ada

beberapa langkah penterjemahan yang harus dilakukan:

1. Setiap entitas menjadi tabel tersendiri.

2. Setiap atribut menjadi kolom-kolom tabel tersebut, dengan tipe data yang sesuai.

3. Identifier entitas tersebut menjadi kolom ID yang tidak boleh kosong (NOT NULL) dan

berisi indeks yang unik. ID unik ini dalam database dinamakan primary key.

4. Relasi diterjemahkan menjadi foreign key.

Skema fisik model data yang dihasilkan tampak dalam Gambar 4. Perhatikan penghilangan

spasi, penentuan tipe data dan penyeragaman kapitalisasi untuk portabilitas skema untuk

digunakan dalam berbagai implementasi RDBMS yang mungkin berbeda dalam casesensitivity.

Diberikan tabel Mahasiswa di bawah ini, akan dilakukan  normalisasi sampai bentuk normal ke tiga

NF1

NF1

NF2

NF2

imas3

nf3

nf3

diagram

diagram


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: