NORMALISASI PADA DATABASE DAN CONTOHNYA
Normalisasi bisa juga disebut Well Structure Relation atau proses pengelompokan atribut-atribu dari suatu relasi. Ada beberapa bentuk dalam normalisasi, yaitu Unnormalized Form, First Normal Form (1NF), Second Normal Form (2NF), Third Normal Form (3NF) dan Boyce-Codd Normal Form (BNF
Normalisasi adalah suatu teknik untuk mengorganisasi data ke dalam tabel-tabel untuk memenuhi kebutuhan pemakai di dalam suatu organisasi.
Tujuan dari normalisasi
- Untuk menghilangkan kerangkapan data
- Untuk mengurangi kompleksitas
- Untuk mempermudah pemodifikasian data
Proses Normalisasi
- Data diuraikan dalam bentuk tabel, selanjutnya dianalisis
- berdasarkan persyaratan tertentu ke beberapa tingkat.
Apabila tabel yang diuji belum memenuhi persyaratan tertentu,
maka tabel tersebut perlu dipecah menjadi beberapa tabel yang
lebih sederhana sampai memenuhi bentuk yang optimal.
Tahapan Normalisasi/langkah-langkah normalisasi
Untuk mendapatkan hasil yang paling normal, maka proses normalisasi dimulai dari normal pertama. Field-field tabel di atas yang merupakan group berulang : Employee number, Employee name, Rate category, Hourly rate.
- Normalisasi Pertama :
Solusinya hilangkan duplikasi dengan mencari ketergantungan parsial; menjadikan field-field menjadi tergantung pada satu atau beberapa field, bukan seluruhnya. Karena yang dapat dijadikan kunci adalah Project Number dan Employee Number, maka langkah kemudian dicari field-field mana yang tergantung pada Project Number dan mana yang tergantung pada Employee Number
Keterangan : nama field yang dicetak miring dan tebal menunjukkan primary key. Ada beberapa keanehan dalam data pada tabel di atas. Adanya kesalahan penulisan data pada kolom “project name” record ketiga. Kemungkinan kesalahan penulisan data semakin bertambah seiring bertambahnya record.
- Normalisasi Kedua :
Field-field yang tergantung pada satu field haruslah dipisah dengan tepat, misalnya Project Number menjelaskan Project Name dan Employee Number menjelaskan Employee Name, Rate Category dan Hourly Rate.
Untuk membuat hubungan antara dua tabel, dibuat suatu tabel yang berisi key-key dari tabel yang lain.
- Normalisasi Ketiga :
Pada tabel diatas masih terdapat masalah, bahwa Employee Number 17 mendapatkan hourly rate yang tidak sesuai dengan rate category nya. Solusinya adalah mencari hubungan transitif (transitive relation) dimana field non-key tergantung pada field non-key lainnya. Artinya harus memisahkan field non-kunci Rate Category yang tadinya tergantung secara parsial kepada field kunci Employee Number, untuk menghilangkan anomali penulisan data pada field hourly rate.
Bentuk Normal Pertama (1NF)
- Sebuah model data dikatakan memenuhi bentuk normal pertama apabila setiap atribut yangdimilikinya memiliki satu dan hanya satu nilai. Apabila ada atribut yang memiliki nilai lebih
dari satu, atribut tersebut adalah kandidat untuk menjadi entitas tersendiri.
Bentuk Normal Kedua (2NF)
- Sebuah model data dikatakan memenuhi bentuk normal kedua apabila ia memenuhi bentuknormal pertama dan setiap atribut non-identifier sebuah entitas bergantung sepenuhnya hanya pada semua identifier entitas tersebut.
Bentuk Normal Ketiga (3NF)
- Sebuah model data dikatakan memenuhi bentuk normal ketiga apabila ia memenuhi bentuknormal 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.
contoh bentuk-bentuk normalisasi pada suatu tabel.
Betuk Unnormalized Form
- Value pada kolom Kode_Matkul lebih dari 1, itulah mengapa masih disebut Unnormalized.
Bentuk First Normal Form (1NF)
- Value pada masing-masing kolom hanya ada Satu
Bentuk Second Normal Form (2NF)
Memiliki ketergantungan fungsional
Tabel 1
Tabel 2
Tabel 3
Pada bentuk 1NF, masih terdapat ketidaktergantungan terhadap beberapa kolom (misal TTL tidak bergantung pada kode_matkul), sehingga tabel dipecah menjadi 3 bagian agar tabel-tabel tersebut dapat memiliki ketergantungan terhadapat kolom-kolomnya (misal NIM bergantung pada nama_mhs dan ttl).
Bentuk Third Normal Form (3NF)
Tabel 1 dan 2 sudah memenuhi criteria bantuk 3NF, namun tidak untuk tabel 3, karena bila kita ingin merubah value bobot dari nilai, maka kita akan melakukan perubahan pada banyak record/baris yang lainnya. Sehingga pada bentuk 3NF, tabel 3 dapat dipecah lagi menjadi 2 tabel agar memenuhi kriteria bentuk 3NF.
Tabel 3a
Tabel 3b
Bentuk Boyce-Codd Normal Form (BNF)
Dalam kasus ini, sebenarnya pada bentuk 3NF sudah memenuhi criteria sebagai tabel relasional yang dapat diimplementasikan pada RDBMS, tidak harus dalam bentuk BNF. Jadi bentuk BNF pun tidak mutlak dijadikan sebagai bentuk dalam RDBMS.
Bentuk BNF memiliki syarat harus memenuhi syarat ketergantungan fungsional dan ketergantungan transitif.
Entity Relationship Diagram
Model Entity Relationship merupakan suatu penyajian data dengan menggunakan Entity dan Relationship. Komponen-komponen ERD :
Entitas
Entity adalah obyek yang dapat dibedakan secara nyata , benar-benar ada secara fisik (contoh : orang) atau konsepsual (contoh : perusahaan) dan tidak saling bergantung keberadaannya.
· Entitas kuat/strong
Entitas yang memiliki atribut kunci (key), yakni yang benar-benar dapat digunakan sebagai pembeda.
· Entitas lemah/weak
Entitas yang keberadaan dari entitas tersebut tergantung dari keberadaan entitas lain, atau key-nya memiliki beberapa informasi yang mirip sehingga bersifat tidak penuh.
Relasi
Relasi adalah hubungan yang terjadi antara satu atau lebih entitas. Derajat relasi adalah jumlah entitas yang berpartisipasi pada suatu relasi, antara lain : relasi 1 entitas/berderajat 1 (unary), relasi 2 entitas/berderajat 2 (binary). relasi 3 entitas/berderajat 3 (ternary).
Atribut
Atribut adalah karakteristik dari/sesuatu yang dimiliki oleh entity atau relationship yang menyediakan penjelasan detail tentang entity atau relationship tersebut.
· Key atribut,yaitu Atribut yang digunakan untuk menentukan suatu entity secara unik/yang dapat membedakan satu dengan yang lainnya,
· Partical key atribut
· Atribut simple: Atribut yang bernilai simple.
· Atribut multivalue : Atribut yang memiliki sekelompok nilai untuk setiap entitas.
· Atribut composite : Atribut yang terdiri dari beberapa atribut yang lebih kecil yang mempunyai arti tertentu.
· Atribut derifatif : Atribut yang dihasilkan dari atribut yang lain.
Kardinalitas
Kardinalitas adalah angka yang menjelaskan batasan jumlah keterhubungan satu entity dengan entitas lainnya.
· One to One
· One to Many
· Many to Many
Partisipan/Modalitas
Partisipan/Modalitas menunjukkan partisipasi sebuah entitas pada suatu relasi.
· Total partisipan: Semua menjadi bagian dari relasi
· Partical partisipan : Tidak semua ikut dalam relasi.
- entity : rumah sakit,pegawai ,pekerjaan ,perawat ,pasien
- relasi : memiki , secagai,merawat .
- atribut : nama ,no.hp ,id pegawai, alamat ,gelar.
Gambar diagram Relationship rumah sakit