Selasa, 29 Januari 2013

TEKNIK NORMALISASI

Proses normalisasi merupakan proses pengelompokkan data elemen menjadi tabel-tabel yang menyatakan entity dan relasinya.
Pada proses normalisasi selalu diuji apakah ada kesulitan saat menambah, menghapus, mengubah, membaca suatu database. Bila masih ada kesulitan berarti relasi pada database tersebut belum optimal dan relasi harus dipecah dalam beberapa tabel sampai kesulitan yang dihadapai hilang. Atau dapat juga dikatakan bahwa normalisasi adalah proses yang mengubah relasi yang memiliki masalah ke dalam dua atau lebih tabel sehingga tak memiliki masalah lagi. Masalah yang muncul disebut dengan anomaly. Anomaly adalah proses pada basis data yang memberikan efek samping yang tidak diharapkan. (ketidakkonsistenan, data hilang saat suatu data dihapus) à redudansi (data rangkap).
Anomali ada 3 macam :
Ø  Anomali peremajaan/update
Ø  Anomali penyisipan/insert
Ø  Anomali penghapusan/delete

1.      Anomali peremajaan/update
Anonali ini terjadi bila pengubahan pada sejumlah tabel yang mubadzir, tetapi tidak semua data diubah.
Contoh :
Terdapat relasi Dosen yang mengandung data Nama, Alamat, Mt_Kuliah yang menyatakan identitas dosen dan mata kuliah yang diampu.

Dosen(Nama, Alamat, Mt_Kuliah)
Nama
Alamat
Mt_Kuliah
Kartika
Citra
Indra
Kartika
Jl. Bantul
Jl. Wates
Jl. Imogiri
Jl. Bantul
Aljabar
Pancasila
Kewiraan
Pascal
Seandainya dosen kartika berpindah alamat misalnya ke Jl. Kaliurang dan pengubahan hanya dilakukan pada data pertama maka relasi akan menjadi :

Dosen(Nama, Alamat, Mt_Kuliah)
Nama
Alamat
Mt_Kuliah
Kartika
Citra
Indra
Kartika
Jl. Kaliurang
Jl. Wates
Jl. Imogiri
Jl. Bantul
Aljabar
Pancasila
Kewiraan
Pascal
Terlihat ada ketidakkonsistenan. Fakta pertama dosen kartika beralamat di Jl. Kaliurang dan fakta kedua dosen kartika beralamat di Jl. Bantul
2.      Anomali penyisipan/insert
Anomali ini terjadi pada saat penambahan hendak dilakukan ternyata ada elemen data yang masih kosong dan ternyata elemen tersebut menjadi kunci.
Contoh :
Sebuah relasi kursus berisi tiga atribut yaitu Nama_Siswa, Nama_Kursus dan Biaya
Kursus(Nama_Siswa, Nama_Kursus dan Biaya)
Nama_Siswa
Nama_Kursus
Biaya
Sigit
Andi
Sigit
Anto
Bhs Inggris
Bhs Inggris
Bhs Perancis
Bhs jerman
80.000
80.000
75.000
70.000

Relasi diatas menyatakan kursus-kursus yang diikuti oleh siswa dan jumlah biayanya. Masalah akan timbul dibuka kursus baru tetapi belum ada siswanya. Misalnya Bhs Belanda dengan biaya 90.000. akibatnya data kursus baru tersebut tidak bisa dicatat.
3.      Anomali penghapusan/delete
Anomali ini terjadi sekiranya suatu baris/tupel dihapus dan sebagai akibatnya terdapat data lain yang hilang. Dengan contoh kursus tersebut apa yang terjadi jika Nama_Siswa Sigit dihapus, data yang menyatakan bahwa biaya kursus Bhs Perancis 75.000 akan hilang.

Field/Atribut Kunci

Setiap file selalu terdapat atribut kunci file berupa satu file atau satu set file yang dapat mewakili record. Contoh Nomor Pegwai merupakan kunci dari tabel pegawai dalam suatu perusahaan, setiap pencarian cukup dengan menyebutkan nomor pegawai tersebut maka Nama, Alamat dan atribut lainnya kan diketahui.
Istilah-istilah atribut :
1.      Candidate Key (kunci kandidat)
Adalah kunci yang unik yang dapat dipakai untuk mengidentifikasikan suatu baris dalam tabel
Contoh : Nomor Induk, Nama
2.      Komposit key (Kunci Kombinasi)
Adalah kunci yang tersusun lebih dari satu atribut.
3.      Primary Key (Kunci Primer)
Adalah kunci kandidat yang dipilih menjadi kunci utama untuk mewakili setiap kejadian (baris) dari setiap entity.
Contoh : Nomor mahasiwa, NIP
4.      Alternate Key (Kunci Alternatif)
Adalah semua kunci kandidat yang tidak dipilih menjadi kunci primer
5.      Foreign Key (Kunci Tamu)
Adalah satu atribut yang menunjuk ke kunci primer pada tabel lain atau satu atribut yang melengkapi satu relationship (hubungan) yang menunjuk ke induknya.

Ketergantungan (Dependecsi)
Dependensi menjelaskan hubungan antara atribut dalam sebuah tabel atau secara lebih khusus menjelaskan nilai suatu atribut yang menentukan nilai atribut lainnya.
1.      Dependensi fungsional (fungctional dependency)
Definisi :
Suatu atribut Y mempunyai dependensi fungsional terhadap atribut X jika dan hanya jika setiap atribut X berhubungan dengan sebuah nilai Y.
Atau dapat dituangkan dalam notasi :
      X à Y atau Y = f(X)
Dibaca : “X secara fungsional menentukan Y” atau X panah Y
Pada suatu tabel mahasiswa berisi atribut :
Mahasiswa(NIM, Nama, Jn_kelamin, Alamat)
Isi atribut Nama bergantung pada NIM, jadi dapat dikatakan bahwa atribut Nama bergantung secara fungsi pada NIM. Jika anda mengetahui NIM, anda dapat menentukan Nama mahasiswa. Artinya bahwa NIM yang sama Nama juga sama.


Notasi :
NIM                            Nama
     
 Penentu (determinan) Yang tergantung (dependen)

2.      Dependensi fungsional sepenuhnya
Definisi :
Suatu atribut Y mempunyai dependensi fungsional penuh terhadap atribut X jika :
Ø  Y mempunyai dependensi fungsional terhadap X
Ø  Y tidak memiliki dependent terhadap bagian X
Contoh terdapat relasi Pelanggan :
Pelanggan(Kode_Pelanggan, Nama, Kota, Nomor_Telp)
Pada relasi ini :
  1. {Kode_Pelanggan, Kota} à Nomor_Telp
  2. Kode_Pelanggan à Nomor_Telp.
Nomor_Telp bergantung pada {Kode_Pelanggan, Kota} dan juga bergantung pada Kode_Pelanggan yang tidak lain adalah bagian dari {Kode_Pelanggan, Kota}, maka Nomor_Telp tidaklah mempunyai dependensi fungsional sepenuhnya pada {Kode_Pelanggan, Kota} tetapi mempunyai dependensi fungsional sepenuhnya pada Kode_Pelanggan.

3.      Dependensi Total
Definisi :
Suatu atribut Y mempunyai dependensi total terhadap X jika :
Ø  Y memiliki dependesi fungsional terhadap X
Ø  X mempunyai dependesi fungsional terhadap Y
Dinyatakan dengan notasi :
      X « Y
Contoh relasi mahasiswa :
Mahasiswa(No_Mhs, Nama_Mhs, Alamat)
Pada contoh tersebut :
      No_Mhs « Nama_Mhs
Dengan asumsi tidak ada nama mahasiswa yang sama

4.      Dependensi Trasitif
Definisi :
Atribut Z memiliki dependensi transitif terhadap X jika :
Ø  Y memiliki dependesi fungsional terhadap X
Ø  Z memiliki dependesi fungsional terhadap Y
Contoh :
Mt_Kuliah
Ruang
Tempat
Waktu
AP I
Basis Data
2
1
Lt II
Lt I
Senin, 07.00-09.00
Selasa, 10.00-12.00

Pada relasi tersebut :
      Mt_Kuliah à {Ruang, Waktu}
      Ruang à Tempat
Terlihat :
      Mt_Kuliah à Ruang à Tempat
Dengan demikian Tempat mempunyai dependensi transitif terhadap Mt_Kuliah

Dekomposisi Tak Hilang

Pada suatu proses normalisasi sering kali terjadi bahwa suatu relasi harus dipecah menjadi dua atau lebih. Proses semacam ini sering disebut dengan proses dekomposisi. Dekompisisi yang harus dilakukan adalah dekomposisi tak hilang, artinya bahwa dalam melakukan dekomposisi jangan sampai ada relasi yang hilang ketika relasi dipecah menjadi relasi-relasi lain.
Contoh :
Bentuk semula :
Nomor
Nama
Jurusan
001
002
003
Joko
Nawang
Joko
TI
SI
KA




Dekomposisi tak hilang
Nomor
Nama

Nomor
Jurusan
001
002
003
Joko
Nawang
Joko

001
002
003
TI
SI
KA
Dekomposisi hilang
Nomor
Nama

Nama
Jurusan
001
002
003
Joko
Nawang
Joko

Joko
Nawang
Joko
TI
SI
KA

Proses Normalisasi

Proses normalisasi merupakan proses pengelompokkan data elemen menjadi tabel-tabel yang menunjukkan entiti dan relasinya.

Bentuk-Bentuk Normalisasi

Bentuk normal adalah suatu aturan yang dikenakan pada relasi-relasi dalam basis data dan harus dipenuhi oleh relasi-relasi tersebut pada level-level normalisasi.
Beberapa level pada normalisasi adalah :
Ø  Bentuk Normal Pertama (1NF)
Ø  Bentuk Normal Kedua (2NF)
Ø  Bentuk Normal Ketiga (3NF)
Ø  Bentuk Boyce Codd (BCNF)
Ø  Bentuk Normal Keempat (4NF)
Ø  Bentuk Normal Kelima (5NF)
§  1NF – 3NF dibuat oleh E.F. Codd merupakan bentuk yang banyak dipakai pada suatu relasi, bila ketiga bentuk tersebut dipenuhi maka persoalan anomali tidak muncul lagi.
§  Boyce Codd merupakan bentuk revisi dari bentuk 3NF
§  4NF dan 5NF dikemukakan oleh Fagin, hanya dipakai untuk kasus-kasus khusus yakni pada relasi yang mengandung dependensi nilai banyak.

1.      Bentuk Tak Normal
Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan untuk mengikuti format tertentu, dapat saja data tidak lengkap atau terduplikasi. Atau data dikumpulkan apa adanya sesuai bentuk aslinya.
Contoh :
Seorang dosen mengampu mata kuliah yang memiliki beberapa kelas.
NIP
Nama
Mt_Kuliah
Kelas
Ruang
101


102


103

Bimo


Janoko


Werkudoro
Pancasila


Basis Data


Matematika
IA
IB
IC
IIA
IIB
IIC
IA
IB
R3
R2
R1
R1
R2
R3
R1
R2
Pada contoh tersebut kelas merupakan atribut yang berulang (misalnya Pancasila memiliki 3 kelas dan Matematika memiliki 2 kelas).

2.      Bentuk Normal Pertama (1NF)
Definisi :
Suatu relasi berada dalam bentuk normal pertama jika dan hanya jika setiap atribut bernilai tunggal untuk setiap baris. Data dibentuk dalam satu record demi satu record dan nilai dari field-field berupa “atomic value”. Tidak ada set atribut yang beruang atau bernilai ganda (multivalue).
Data dalam bentuk tidak normal dapat dibuat dalam bentuk 1NF :
NIP
Nama
Mt_Kuliah
Kelas
Ruang
101
101
101
102
102
102
103
103
Bimo
Bimo
Bimo
Janoko
Janoko
Janoko
Werkudoro
Werkudoro
Pancasila
Pancasila
Pancasila
Basis Data
Basis Data
Basis Data
Matematika
Matematika
IA
IB
IC
IIA
IIB
IIC
IA
IB
R3
R2
R1
R1
R2
R3
R1
R2
Persoalan anomali (peremajaan, penyisipan, penghapusan) biasanya muncul pada relasi yang hanya memenuhi bentu 1NF.

3.      Bentuk Normal Kedua (2NF)
Definisi :
Suatu relasi berada dalam bentuk normal kedua jika dan hanya jika :
§  Berada dalam bentuk normal pertama
§  Semua atribut bukan kunci memiliki dependensi sepenuhnya terhadap kunci primer
Untuk membentuk normal kedua harus sudah ditentukan kunci-kunci fieldnya. Kunci field haruslah unik dan dapat mewakili atribut lain yang menjadi anggotanya. Dalam bentuk normal kedua mensyaratkan setiap atribut bergantung pada kunci primer.
Pada contoh diatas relasi tidak termasuk 2NF walaupun memenuhi 1NF. Perhatikan Nama dan Mt_Kuliah mempunyai dependensi penuh terhadap NIP (NIP sama, Nama sama dan Mt_Kuliah sama), namun tidak untuk Kelas dan Ruang.
Untuk mengubah suatu relasi yang tergolong 1NF ke bentuk 2NF perlu dilakukan dekomposisi pada relasi tersebut. Proses dekomposisi dapat dilakukan dengan menggambarkan diagram dependensi fungsional terlebih dahulu. Berdasarkan diagram ini, relasi dalam bentuk normal pertama dipecah ke sejumlah fungsi.


§  Nama dan MT_Kuliah memiliki dependensi fungsional terhadap NIP
§  Ruang memiliki dependensi fungsional terhadap NIP dan Kelas
§  Pendekomposisian diatas menghasilkan dua relasi misalnya NNM dan NKR.
NNM(NIP, Nama, Mt_Kuliah)
NIP
Nama
Mt_Kuliah
101
102
103
Bimo
Janoko
Werkudoro
Pancasila
Basis Data
Matematika

NKR(NIM, Kelas, Ruang)
NIP
Kelas
Ruang
101
101
101
102
102
102
103
103
IA
IB
IC
IIA
IIB
IIC
IA
IB
R3
R2
R1
R1
R2
R3
R1
R2

Masalah yang sering terjadi pada 2NF diakibatkan oleh adanya dependensi transitif. Dependensi transitif mengkibatkan kemungkinan munculnya permasalahan sebagaimana bentuk normal pertama.



4.      Bentuk Normal Ketiga (3NF)
Definisi :
Suatu relasi berada dalam bentuk normal ketiga jika :
§  Berada dalam bentuk normal kedua
§  Setiap atribut bukan kunci tidak memiliki dependensi transitif terhadap kunci primer.
Relasi NNM dan NKR memenuhi kriteria diatas, sehingga relasi tersebut memnuhi 3NF.
Contoh relasi memenuhi 2NF tetapi tidak 3NF :

No_Mhs
Semester
Kode_Mk
Nama_Mk
111
111
111
112
112
113
I
I
I
I
I
II
K01
A01
B01
A01
B01
B01
Kalkulus
Algoritma
Basis Data
Algoritma
Basis Data
Basis Data

Pada relasi diatas kunci primer gabungan No_Mhs + Semester, sehingga Kode_MK dan Nama_Mk mempunyai dependensi fungsional terhadap kunci primer. Namun perlu diperhatikan jika Kode_Mk sama, maka Nama_Mk juga sama. Hal ini perlu diperhatikan bahwa ada suatu ketergantungan kepada Kode_MK (Kode_MK sebagai penentu). Jadi Nama_Mk memiliki dependensi fungsional terhadap Kode_Mk, sehingga Nama_Mk tidak memiliki dependensi secara langsung terhadap kunci primer. Sehingga relasi diatas perlu didekomposisi lagi menjadi dua relasi :

No_Mhs
Semester
Kode_Mk
111
111
111
112
112
113
I
I
I
I
I
II
K01
A01
B01
A01
B01
B01

Kode_Mk
Nama_Mk
K01
A01
B01
Kalkulus
Algoritma
Basis Data

0 komentar:

Posting Komentar