BAB IV
NORMALISASI
4.1 Pengantar Normalisasi
Normalisasi database merupakan suatu pendekatan sistematis untuk meminimalkan redundansi data pada suatu database agar database tersebut dapat bekerja dengan optimal. Jika anda seorang database administrator ketika terjadi sesuatu pada database seperti penurunan kinerja, mungkin anda akan ditanya apakah database tersebut telah di normalisasi?
Tujuan
Normalisasi Database:
Tujuan normalisasi database adalah
untuk menghilangkan dan mengurangi redudansi data dan tujuan yang kedua adalah
memastikan dependensi data (Data berada pada tabel yang tepat). Jika data dalam database tersebut
belum di normalisasi maka akan terjadi 3 kemungkinan yang akan merugikan sistem
secara keseluruhan.
INSERT Anomali: Situasi dimana tidak
memungkinkan memasukkan beberapa jenis data secara langsung di database.
DELETE Anomali: Penghapusan data yang
tidak sesuai dengan yang diharapkan, artinya data yang harusnya tidak terhapus
mungkin ikut terhapus.
UPDATE Anomali: Situasi dimana nilai
yang diubah menyebabkan inkonsistensi database, dalam artian data yang diubah
tidak sesuai dengan yang diperintahkan atau yang diinginkan.
4.2 Bentuk Normal Pertama (1NF)
Pada tahap ini
dilakukan penghilangan beberapa group elemen yang berulang agar menjadi
satu harga tunggal yang berinteraksi di antara setiap baris pada suatu tabel,
dan setiap atribut harus mempunyai nilai data yang atomic (bersifat atomic
value). Atom adalah zat terkecil yang masih memiliki sifat induknya, bila
terpecah lagi maka ia tidak memiliki sifat induknya.
Syarat normal ke satu (1-NF)
antara lain:
1. setiap data dibentuk dalam flat file, data dibentuk dalam satu record
demi satu record nilai dari field berupa “atomic value”.
2. tidak ada set atribute yang berulang atau bernilai ganda.
3. telah ditentukannya primary key untuk tabel / relasi tersebut.
4. tiap atribut hanya memiliki satu pengertian.
Langkah pertama yang
dilakukan pada Tabel Pelanggan Biaya tersebut adalah menghilangkan elemen data
yang berulang dengan data-data Pelanggan yang sesuai pada setiap baris.
Hasil dari tabel yang telah memenuhi bentuk normal pertama dapat dilihat
pada Tabel 9.4. kita dapat mengidentifikasi primary key untuk relasi
Pelanggan_Biaya yang masih memiliki composite key
(No_Pelanggan, No_Property). Pada kasus ini kita akan memperoleh primary
key yang bersifat composite key. Relasi Pelanggan_Biaya dapat
didefinisikan sebagai berikut. Pelanggan_Biaya =(No_Pelanggan, No_Property,
Nama, Alamat_Property, Tgl_Pinjam, Tgl_Selesai, Biaya,No_Pemilik, Nama_Pemilik)
4.3 Bentuk Normal Kedua (2NF)
Pada tahap ini
dilakukan penghilangan beberapa group elemen yang berulang agar menjadi
satu harga tunggal yang berinteraksi di antara setiap baris pada suatu tabel,
dan setiap atribut harus mempunyai nilai data yang atomic (bersifat atomic
value). Atom adalah zat terkecil yang masih memiliki sifat induknya, bila
terpecah lagi maka ia tidak memiliki sifat induknya.
Syarat normal ke satu (1-NF)
antara lain:
1. setiap data dibentuk dalam flat file, data dibentuk dalam satu record
demi satu record nilai dari field berupa “atomic value”.
2. tidak ada set atribute yang berulang atau bernilai ganda.
3. telah ditentukannya primary key untuk tabel / relasi tersebut.
4. tiapatribut hanya memiliki satu pengertian.
Langkah pertama yang dilakukan pada Tabel Pelanggan Biaya (pada Tabel
9.3) tersebut adalah menghilangkan elemen data yang berulang dengan
data-data Pelanggan yang sesuai pada setiap baris. Hasil dari tabel yang
telah memenuhi bentuk normal pertama dapat dilihat pada Tabel 9.4. kita
dapat mengidentifikasi primary key untuk relasi Pelanggan_Biaya yang masih
memiliki composite key (No_Pelanggan, No_Property). Pada kasus ini kita
akan memperoleh primary key yang bersifat composite key. Relasi
Pelanggan_Biaya dapat didefinisikan sebagai berikut. Pelanggan_Biaya
=(No_Pelanggan, No_Property, Nama, Alamat_Property, Tgl_Pinjam, Tgl_Selesai,
Biaya,No_Pemilik, Nama_Pemilik)
4.4 Bentuk Normal Ketiga (3NF)
Walaupun relasi 2-NF memiliki redudansi yang lebih sedikit dari pada
relasi 1-NF, namun relasi tersebut masih mungkin mengalami kendala bila terjadi
anomaly peremajaan (update) terhadap relasi tersebut.
Misalkan kita akan melakukan update terhadap nama dari seorang Pemilik
(pemilik), seperti Durki (No_Pemilik: CO93), kita harus melakukan update
terhadap dua baris dalam relasi Property_Pemilik (lihat Tabel 9.5, (c) relasi
Property_Pemilik). Jika kita hanya mengupdate satu baris saja, sementara baris
yang lainnya tidak, maka data didalam database tersebut akan inkonsisten /
tidak teratur. Anomaly update ini disebabkan oleh suatu ketergantungan
transitif (transitive dependency). Kita harus menghilangkan ketergantungan
tersebut dengan melakukan normalisasi ketiga (3-NF).
Syarat normal ketiga (Third Normal
Form / 3 NF) sebagai berikut:
1. Bentuk data
telah memenuhi kriteria bentuk normal kedua.
2. Atribute
bukan kunci (non-key) harus tidak memiliki ketergantungan transitif, dengan
kata lain suatu atribut bukan kunci (non_key) tidak boleh memiliki
ketergantungan fungsional (functional dependency) terhadap atribut bukan kunci
lainnya, seluruh atribut bukan kunci pada suatu relasi hanya memiliki
ketergantungan fungsional terhadap priamry key di relasi itu saja. Seluruh
atribut non-primary key pada relasi Pelanggan dan Biaya di atas
terlihat memiliki ketergantungan fungsional (functional dependency)
terhadap primary key dari masing-masing tabel / relasi. Relasi / tabel
Pelanggan dan Biaya di atas tidak memiliki ketergantungan transitif
(transitive dependency), sehingga tabel tersebut telah memenuhi kriteria
normal ketiga (3-NF).
Seluruh atribut non-primary key pada relasi Property_Pemilik di atas
terlihat memiliki ketergantungan fungsional (functional dependency)
terhadap primary key, kecuali Nama_Pemilik yang masih memiliki
ketergantungan fungsional (functional dependency) terhadap No_Pemilik.
Inilah contoh ketergantungan dari transitif (transitive dependency), yang
terjadi ketika atribut non-primary key (Nama_Pemilik) bergantung secara
fungsi terhadap satu atau lebih atribut non-primary key lainnya (No_Pemilik).
Kita harus menghilangkan ketergantungan transitif (transitive dependency)
tersebut dengan menjadikan relasi Property_Pemilik menjadi 2 relasi /
tabel dengan format / bentuk sebagai berikut.
Relasi / Tabel
Property_Untuk_Pemilik yang terdiri dari atribut-atribut:
No_property â
Alamat_Property, Biaya, No_Pemilik
{No_property sebagai primary key}
· Dan relasi Pemilik yang terdiri dari atribut-atribut:
No_Pemilik â
Nama_Pemilik
{No_Pemilik sebagai primary key}
Hasil akhir normalisasi tabel Pelanggan_Biaya sampai ke bentuk normal
ketiga adalah sebagai berikut:
jangan lupa tonton link youtubenya: https://www.youtube.com/watch?v=fZuvjqx9sPA
No comments:
Post a Comment