NORMAL FORM Adalah proses yang berkaitan dengan model data relational untuk mengorganisasi himpunan data dengan ketergantungan dan keterkaitan yang tinggi atau erat. Hasil dari proses normalisasi adalah himpunan‐himpunan data dalam bentuk normal (normal form). Bentuk Normal tabel adalah bentuk tabel ideal yang diharapakan untuk mencapai database yang effisien. Proses untuk membuat tabel menjadi bentuk yang normal sering disebut dengan normalisasi. Proses normalisasi dilakukan secara sequensial, artinya ketika kita akan membentuk tabel normal yang lebih tinggi tentu harus melewati bentuk normal yang sebelumnya. Normalisasi dan denormalisasi memiliki kelebihan dan kekurangan. Normalisasi akan meningkatkan data integrity tetapi akan juga meningkatkan Query complexity. Sebaliknya Denormalisasi akan mengurangi data integrity dan juga mengurangi Query Compexity. Tujuan normalisasi adalah untuk membuat agar data yang ada tidak redundan dan memiliki data integrity yang kuat sehingga ketika kita melakukan relasi antara table akan dengan mudah kita menjaga data integrity dan mendapatkan datanya. Normalisasi Table sendiri terbagi atas bentuk normal ke 1 sampai bentuk normal ke 5. lebih jelasnya baca tentang konsep RDBMS. Bentuk Table yang tidak memenuhi bentuk normal (tidak dinormalisasi contohnya) Table : DATAKARYAWAN dengan atribut: No, NAMAKARYAWAN, DEPARTEMEN, SEKSI, ALAMAT, KOTA Dalam normalisasi, field tabel akan bergantung pada Functional Dipendency pada field lain. Hal ini yang akan menentukan seberapa normal Satu Table. Dari Gambaran diatas Table DATAKARYAWAN merupakan Table yang tidak dinormalisasi. Karena kita tidak melihat adanya Functional Dipendency. Kalo kita lihat kemungkinan ketergantungan fungsinal (artinya X ‐> tergantung pada) yang berlaku adalah : No ‐> NAMAKARYAWAN, DEPARTEMEN DEPARTEMEN ‐> SEKSI NAMAKARYAWAN ‐> ALAMAT KOTA ‐> ALAMAT
Normalisasi Vs. Denormalisasi |
[email protected] | STMIK AMIKOM Yogyakarta
Akibat kita melakukan design table yang tidak dinormalisasi seperti diatas kita kan mengalami kesulitan untuk membentuk suatu relasi antara table. Contoh : No
NamaKaryawan
Departemen Seksi
1.
A. Hanif
IT
Application Dev
Cideng Jakarta
2.
Kusmawanti
IT
Application Dev
Cideng Jakarta
3.
Boboy
Sales
Telesales
Ancol
Alamat
Kota
Bekasi
Jika boboy kita hapus dari Table maka Data departemen dan Sales juga akan terhapus berikut Kota bekasi (Integritas data Terganggu). Padahal Departemen sales tetap ada meskipun tidak memiliki karyawan demikian juga dengan kota bekasi. Sehingga untuk kasus ini perlu di normalisasi menjadi table berikut. Table karyawan NoKaryawan, Namakaryawan, KodeDepartemen, KodeSeksi, Alamat, KodeKota Table Departemen KodeDepartemen, NamaDepartement Table Seksi KodeSeksi, NamaSeksi, KodeDepartemen Table Kota KodeKota, NamaKota Dengan struktur hasil normalisasi ini memungkinkan data integrity akan tetap terjamin. Setiap ketergantungan fungsional pada colum di suatu table pada implementasinya akan memungkinkan column tersebut dinominasikan menjadi KEY baik itu Primary Key maupun secondary Key, dan dari sinilah konsep penentuan Key dan Index dimulai pada tahapan design. Yang pada akhirnya akan mementukan waktu akses yang diperlukan untuk mendapatkan suatu informasi dari table yang kita design. Disini kita baru mulai menentukan desain database yang mempertimbangkan performance.
Normalisasi Vs. Denormalisasi |
[email protected] | STMIK AMIKOM Yogyakarta
Normal Form (Bentuk Normal) 1NF : Data atomic disimpan dalam 1 field • • • •
Setiap data direpresantisakan dalam satu atribut. Semua data harus diwakili dalam atribut unik. Setiap atribut harus memiliki nama yang unik dan tujuan yang unik. Sebuah entitas tidak boleh memiliki atribut yang berulang.
Penyesuaian 1NF
Normalisasi Vs. Denormalisasi |
[email protected] | STMIK AMIKOM Yogyakarta
2NF : Menghilangkan partial dependencies (ketergantungan parsial)
Penyesuaia 2NF
Normalisasi Vs. Denormalisasi |
[email protected] | STMIK AMIKOM Yogyakarta
3NF : Menghilangkan transitive dependencies (ketergantungan yang tidak sepenuhnya pada field primer key; berpindahnya ketergantungan)
Penyesuaian 3NF
Pada umumnya setelah mencapai bentuk normal ketiga, database sudah baik.
Normalisasi Vs. Denormalisasi |
[email protected] | STMIK AMIKOM Yogyakarta
BCNF (The Boyce Codd Normal Form) BCNF terjadi antara bentuk normal ketiga dan normal keempat, dan menangani masalah dengan suatu entitas yang memiliki beberapa candidate key. Salah satu kunci kandidat dipilih sebagai primary key dan yang lain menjadi kunci alternatif. Sebagai contoh, seseorang mungkin secara unik diidentifikasi oleh nomor KTP ‐nya, nomor karyawan, dan nomor SIM. Jika KTP adalah kunci utama, maka nomor karyawan dan nomor SIM adalah kunci alternatif. 4NF dan 5NF Bentuk normal keempat membahas masalah‐masalah yang diciptakan oleh primary key komposit yang kompleks. Jika dua atribut independen dijadikan primary key bersama dengan atribut ketiga tetapi kedua atribut tidak benar‐benar unik mengidentifikasi entitas tanpa atribut ketiga, maka desain belum bisa dikatakan dalam bentuk normal keempat. Sebagai contoh, asumsikan kondisi berikut: 1. Kolom BaseCamp dan kolom LeadGuide digunakan sebagai komposit primary key. 2. Kolom Event dan Guide dibawa bersama sebagai primary key. 3. Karena keduanya menggunakan Guide, ketiga kolom digabungkan menjadi satu kesatuan. Bentuk normal keempat dan ke lima digunakan untuk membantu mengidentifikasi entitas yang harus dipecah menjadi entitas yang terpisah. Biasanya ini hanya akan menjadi masalah jika primary key komposit yang terdiri dari banyak field untuk dijadikan satu kesatuan.
Normalisasi Vs. Denormalisasi |
[email protected] | STMIK AMIKOM Yogyakarta
1.
Bentuk Normal I (First Normal Form / 1‐NF).
Suatu relasi memenuhi 1‐NF jika dan hanya jika setiap atribut dari relasi tersebut hanya memiliki nilai tunggal dalam satu baris atau record.
Tabel 1 : Bentuk tidak Unnormalized Form (Non 1‐NF table)
Tabel 2 : Bentuk 1‐NF table
Normalisasi Vs. Denormalisasi |
[email protected] | STMIK AMIKOM Yogyakarta
2. Bentuk Normal II (Second Normal Form / 2‐NF). Suatu relasi memenuhi 2‐NF jika dan hanya jika : a. Memenuhi 1‐NF. b. Setiap atribut yang bukan kunci utama tergantung secara fungsional terhadap semua atribut kunci dan bukan hanya sebagian atribut. Jika suatu relasi memenuhi 1‐NF dan relasi tersebut memiliki tepat satu atribut yang membentuk kunci utama, maka relasi tersebut memenuhi 2‐NF. Rasionalisasi 2‐NF : a. Memiliki semantik yang lebih eksplisit dari 1‐NF. b. Mencegah beberapa kondisi anomali dalam update data.
Tabel 3 : Bentuk 2‐NF table (satisfying 1‐NF). Ketergantungan fungsional dilakukan untuk : a. nim => nama, TglLahir (SC1). b. KodeKuliah => MataKuliah, SKS (SC2). c. nim, KodeKuliah => Nilai (SC3, SC3A).
Normalisasi Vs. Denormalisasi |
[email protected] | STMIK AMIKOM Yogyakarta
Tabel 4 : Tabel yang memenuhi 2‐NF. Akhirnya semua tabel SC1, SC2, SC3A, SC3B berada dalam kondisi 3‐NF, sehingga semua databases mengalami kondisi 3‐NF.
Normalisasi Vs. Denormalisasi |
[email protected] | STMIK AMIKOM Yogyakarta
3.
Bentuk Normal III (Third Normal Form / 3‐NF).
Suatu relasi memenuhi bentuk III (3‐NF) jika dan hanya jika : a. Relasi tersebut memenuhi 2‐NF. b. Setiap atribut bukan kunci tidak tergantung secara fungsional kepada atribut bukan kunci yang lain dalam relasi tersebut.
Tabel 5 : Bentuk Normal 3 3‐NF menghilangkan ketergantungan transitif. A Æ B; B Æ C soo…. A Æ C
Normalisasi Vs. Denormalisasi |
[email protected] | STMIK AMIKOM Yogyakarta