Mengenal Normalisasi


Definisi/Pengertian Normalisasi
Istilah Normalisasi berasal dari E. F.Codd, salah seorang perintis teknologi basis data. selain dipakai sebagai metodologi tersendiri untuk menciptakan struktur tabel 9relasi) dalam basis data (dengan tujuan utnuk mengurangi kemubaziran data)  , normalisasi terkadang hanya diipakai sebagai perangkat verifikasi terhadap tabel-tabel yang dihasilkan oleh metodologi lain ( misalnya E-R). Normalisasi memberikan panduan yang sangat membantu bagi pengembang untuk mencegah penciptaan struktur tabel yang kurang fleksibel atau mengurangi keflekxibelan.
Kroenke mendefinisikan normalisasi sbagai proses untuk mengubah suatu relasi yang memiliki masalah tertentu ke dalam dua buah relasi atau lebih yang tida memiliki masalah tersebut. Masalah yang dimaksud olej kroenke ini sering disebut dengan istilah anomali.
( Pada beberapa literatur, istilah relasi yang digunakan pada bab ini terkadang digantikan dengan tabel. Istilah relasi digunakan pada bab ini dikarenakan definisi tentang normalisasi memang menggunakan istilah relasi).
Tujuan dari normalisasi
•    Untuk menghilangkan kerangkapan data
•    Untuk mengurangi kompleksitas
•    Untuk mempermudah pemodifikasian data
Anomali
Anomali adalah proses pada basis data yang memberikan efek samping yang tidak diharapkan ( misalnya menyebabkan ketidakonsistenan data atau membuat suatu data menjadi hilang ketika data dihapus)
Macam Anomali terdiri dari
•    Anomali peremajaan,
•    Anomali Penghapusan, dan
•    Anomali penyisipan
Anomali peremajaan
Anomali ini terjadi bila ada perubahan pada sejumlah data yang mubazir, tetapi tidak seluruhnya diubah. Contoh : Tabel Pesanan
Pemasok    Kota    Barang    Jumlah
Kartika    Jakarta    Mouse    5
Citra    Bandung    Monitor    2
Yudi    Medan    CPU    2
Citra    Bandung    Printer    1
Seandainya Citra dengan kota Bandung pindah ke Bogor maka pengubahan data hanya dilakukan pada data pertama menjadi : Tabel Pesanan
Pemasok    Kota    Barang    Jumlah
Kartika    Jakarta    Mouse    5
Citra    Bogor    Monitor    2
Yudi    Medan    CPU    2
Citra    Bandung    Printer    1
Di sini terlihat bahwa data tentang pemasok Citra tidak sama yang menyebabkan ketidakkonsistenan data.
Anomali Penyisipan
Anomali ini terjadi pada saat penambahan data ternyata ada elemen yang kosong dan elemen tsb justru menjadi key. Contoh : Tabel Kursus
NoSiswa    Kursus    Biaya
10    Bhs.Inggris    60000
10    Bhs.Perancis    80000
10    Bhs.Jepang    70000
15    Bhs.Inggris    60000
20    Bhs.Jepang    70000
Misalnya akan dibuka kursus baru yaitu Bhs.Jerman dengan biaya 75000 akan tetapi belum ada seorangpun yang ikut kursus ini, shg data menjadi : Tabel Kursus
NoSiswa    Kursus    Biaya
10    Bhs.Inggris    60000
10    Bhs.Perancis    80000
10    Bhs.Jepang    70000
15    Bhs.Inggris    60000
20    Bhs.Jepang    70000
    Bhs.Jerman    75000
Anomali penghapusan
Anomali ini terjadi apabila dalam satu baris/ tuple ada data yang akan dihapus sehingga akibatnya terdapat data lain yang hilang. Contoh pada table kursus data NoSiswa 20 akan dihapus karena sudah tidak ikut kursus lagi sehingga akibatnya data kursus bhs jepang dan biaya 70000 akan ikut terhapus.
Dependensi (Ketergantungan)
Konsep dasar pada tahap normalisasi yang menjelaskan hubungan atribut atau secara lebih khusus menjelaskan nilai suatu atribut yang menentukan atribut lainnya.
Macam-macam dependensi, yaitu :
Dependensi fungsional
Definisi : Suatu atribut Y mempunyai dependensi fungsional terhadap atribut X jika dan hanya jika setiap nilai X berhubungan dengan sebuah nilai Y.
Notasi    :   X –> Y      (X secara fungsional menentukan Y)
Contoh   : Tabel Pesanan
Pembeli    Kota    Barang    Jumlah
P1    Yogya    B1    10
P1    Yogya    B2    5
P2    Jakarta    B1    4
P2    Jakarta    B2    7
P3    Solo    B3    6
P3    Solo    B4    6
Pembeli secara fungsional menentukan kota, sebab setiap pembeli yang sama  mempunyai kota yang sama, dengan demikian :   Pembeli –> Kota
contoh lain                      :  {Pembeli, Barang}   –> Jumlah
Keterangan:
•    Bagian yang terletak disebelah kiri tanda panah biasa disebut DETERMINAN / PENENTU dan bagian yang terletak di sebelah kanan panah disebut DEPENDENSI / YANG TERGANTUNG.
•    Tanda {} biasanya digunakan untuk menentukan lebih dari satu atribut sebagai penentu atau sebagai yang tergantung.
Dependensi fungsional sepenuhnya
Definisi : Suatu atribut Y mempunyai dependensi fungsional penuh terhadap X jika
•    Y mempunyai dependensi fungsional terhadap X dan/atau
•    Y tidak memiliki dependensi terhadap bagian dari X
Contoh :   Pembeli –> Kota
{Pembeli, Barang} –>  Jumlah
Intinya :   Kota mempunyai dependensi fungsional terhadap Pembeli atau {Pembeli, Barang} tapi kota mempunyai dependensi fungsional sepenuhnya terhadap pembeli bukan barang.
Dependensi Total
Definisi : Suatu atribut Y mempunyai dependensi total terhadap atribut X jika
•    Y memiliki dependensi fungsional terhadap X dan
•    X memiliki dependensi fungsional terhadap Y
Notasi  :   X<–> Y
Contoh : Tabel Pemasok
KodePemasok    NamaPemasok    Kota
K1    Kartika    Jakarta
C1    Citra    Bandung
C2    Candra    Jakarta
Pada kasus ini  KodePemasok <–>NamaPemasok, karena setiap kode tidak mempunyai nama yang sama.
Dependensi Transitif
Definisi : Atribut Z mempunyai dependensi transitif terhadap X bila :
•    Y memiliki dependensi fungsional terhadap X
•    Z memiliki dependensi fungsional terhadap Y
Contoh :
Kuliah    Ruang    Tempat    Waktu
Jarkom    Merbabu    Gedung Utara    Senin
Basis Data    Arjuna    Gedung Selatan    Selasa
Matematika    Merapi    Gedung Barat    Rabu
Fisika    Merbabu    Gedung Timur    Kamis
Relasi :
•    Kuliah  –> {Ruang, Waktu}
•    Ruang  –> Tempat
Terlihat bahwa :    Kuliah –> Ruang –> Tempat
Dengan demikian Tempat mempunyai dependensi transitif terhadap kuliah
Diagram Dependensi Fungsional (Diagram DF)
Diagram Dependensi Fungsional (Diagram DF) Adalah diagram yang digunakan untuk menggabarkan dependensi fungsional. Diagram ini menunjukkan hubungan antara atribut yang menjadi penentu atribut lainnya, dengan hubungan yang dinyatakan dengan tanda panah. Seperti contoh diatas dapat digambarkan diagram DF sebagai berikut :
Dekomposisi
Pada tahap normalisasi sering kali terjadi pemecahan table kedalam bentuk dua atau lebih relasi. Proses pemecahaan ini disebut dengan dekomposisi. Syarat : Tidak ada informasi yang hilang ketika suatu relasi dipecah menjadi relasi-relasi lain. Contoh : Terdapat suatu relasi awal sebagai berikut :
Nim    Nama    Program Studi
95001    Andi    Ekonomi
95002    Vira    Teknik
95003    Andi    Fisika
Akan dibentuk kedalam dekomposisi tak hilang menjadi :
Nim    Nama        Nim    Program Studi
95001    Andi        95001    Ekonomi
95002    Vira        95002    Teknik
95003    Andi        95003    Fisika
Pada relasi awal dapat diketahui informasi sebagai berikut : 95001 adalah ANDI program studi Ekonomi. Setelah proses dekomposisi tak hilang hasilnya adalah sama 95001 adalah ANDI dan 95001 program studi Ekonomi. Contoh dekomposisi hilang adalah
Nim    Nama        Nama    Program Studi
95001    Andi        Andi    Ekonomi
95002    Vira        Vira    Teknik
95003    Andi        Andi    Fisika
95001 bernama ANDI, tetapi ANDI dengan program studi Ekonomi atau Fisika?
Bentuk Normalisasi
Bentuk normalisasi pertama (1NF)
Dikenakan pada tabel yang sama sekali belum ternomalisasi. Tabel yang belum ternomalisasi adalah tabel yang mempunyai atribut berulang. Contoh : terdapat suatu data sebagai berikut :
NIP    Nama    Jabatan    Keahlian    Lama Kerja
107    Ilham    Analis Senior    Cobol    6
            Oracle    1
109    Ryan    Analis Junior    Cobol    2
            C++    2
120    Fika    Programmer    Dbase    3
            Sybase    1
            Cobol    1
Pada contoh di atas, keahlian mempunyai atribut yang berulang. Untuk itu akan dibentuk ke normal 1NF. Syarat Normal 1NF adalah suatu relasi dikatakan dalam bentuk normal pertama jika dan hanya jika setiap atribut bernilai tunggal dalam satu baris.
NIP    Nama    Jabatan    Keahlian    Lama Kerja
107    Ilham    Analis Senior    Cobol    6
107    Ilham    Analis Senior    Oracle    1
109    Ryan    Analis Junior    Cobol    2
109    Ryan    Analis Junior    C++    2
120    Fika    Programmer    Dbase    3
120    Fika    Programmer    Sybase    1
120    Fika    Programmer    Cobol    1
Tabel di atas sudah memenuhi bentuk normal 1NF
Bentuk Normal 2NF
Bentuk ini didefinisikan berdasarkan dependensi fungsional dengan syarat adalah :
•    Berada pada bentuk normal pertama
•    Semua atribut bukan kunci memiliki dependensi sepenuhnya terhadap kunci primer
Contoh :
•    Nama  dan jabatan mempunyai dependensi fungsional terhadap NIP
•    Lama mempunyai dependensi fungsional terhadap NIP dan keahlian
•    Bentuk tabelnya adalah : NNJ (NIP, Nama, Jabatan) dan NKL (NIP, Keahlian, Lama Kerja)
NIP    Nama    Jabatan
107    Ilham    Analis Senior
109    Ryan    Analis Junior
120    Fika    Programmer
NIP    Keahlian    Lama Kerja
107    Cobol    6
107    Oracle    1
109    Cobol    2
109    C++    2
120    Dbase    3
120    Sybase    1
120    Cobol    1
Bentuk Normal 3NF
•    Berada dalam bentuk normal 2 NF
•    Setiap atribut bukan kunci tidak memiliki dependensi transitif terhadap kunci primer
Contoh di atas sudah memenuhi normal 3NF karena : Tidak memiliki dependensi transitif, yaitu
NIP –> {Nama, Jabatan}
{NIP, Keahlian} –> Lama Kerja
Bentuk Normal boyce-codd (BCNF)
Bentuk ini dilakukan jika dan hanya jika semua penentu (determinan) adalah kunci kandidat (atribut yang bersifat unik). BCNF merupakan perbaikan dari 3NF. Relasi yang memenuhi BCNF pasti memenuhi 3NF tetapi tidak sebaliknya. Contoh : Tabel SKT
Siswa    Kursus    Tutor
Anwar    Bhs. Perancis    Pierre
Anwar    Bhs. Inggris    Richard
Budi    Bhs. Perancis    Pierre
Cecep    Bhs. Inggris    Suzanne
Tabel di atas adalah suatu relasi yang memenuhi 3NF tetapi tidak memenuhi BCNF. Relasi diatas didasarkan oleh fakta :
•    Seorang siswa dapat mengambil sejumlah kursus
•    Setiap tutor hanya mengajar satu kursus bahasa
•    Setiap siswa dalam satu kursus diajar oleh satu tutor
•    Suatu kursus bisa dipegang oleh beberapa tutor
Pada keadaan tersebut di atas dapat digambarkan sebagai berikut : Siswa & Kursus  dan Siswa & Tutor.
Memenuhi bentuk 3NF karena tidak ada dependensi transitif pada relasi tersebut. Tetapi tidak memenuhi BCNF karena adanya determinan Tutor yang berdiri sebagai kunci kandidat. Realsi SKT menyebabkan anomali karena baris Cecep dihapus maka Suzane sebagai tutor jug akan terhapus. Cara konversi dari 3NF ke BCNF adalah :
•    Carilah semua penentu
•    Bila terdapat penentu yang bukan kunci kandidat, maka :
o    Pisahkan relasi tersebu
o    Buat penentu sebagai kunci primer
•    Dekomposisi berupa : ST (Siswa, Tutor) dan TK (Tutor, Kursus)
Siswa    Tutor
Anwar    Pierre
Anwar    Richard
Budi    Pierre
Cece    Suzanne
    Tutor    Kursus
Pierre    Bhs.Perancis
Richard    Bhs. Inggris
Suzanne    Bhs. Inggris


Berikan Komentar tentang Artikel Ini

 
Yahoo Messenger
Send Me IM!
Google Plus
Add Me To Your Circle!
Twitter
Follow Me!
Facebook
Add My Facebook
Original Template By Belajar SEO Blogspot - Himajiesized By Dayz Hidayat