MODUL PERKULIAHAN
Basis Data Normalisasi dan Anomali pada tabel
Fakultas
Program Studi
Fakultas Ilmu Komputer
Teknik Informatika
Tatap Muka
11
Kode MK
Disusun Oleh Sukma Wardhana, M.Kom.
Abstract
Kompetensi
Modul ini menjelaskan konsep normalisasi dan anomali pada tabel
Mahasiswa diharapkan mampu menjelaskan konsep normalisasi, Mampu memahami konsep anomali dan mengidentifikasi anomali dalam sebuah relasi.
Anomali Tabel Tabel yang tidak normal memiliki beberapa masalah sebagai berikut: 1. Terjadinya redudansi data yang tidak perlu. 2. Pemborosan tempat penyimpanan data. 3. Berpotensi terjadinya ketidak-konsistenan data pada saat update data dilakukan (anomaly update).
Perlu diketahui bahwa timbulnya permasalahan pada nomor 2 dan nomor 3 dikarenakan karena akibat dari permasalahan nomor 1.
Redudansi data yang tidak perlu
2013
2
Basis Data Sukma Wardhana, M.Kom,
Pemborosan tempat penyimpanan data
Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id
Ketidakkonsisten data pada saat update data dilakukan
Permasalahan Tabel Tidak Normal Tabel tidak normal
KantorCabangStaff
noCab namaCab Alamat
id
Nama jenisKelamin
Cab01
JKT
Jl. Otista 234
staf01 Tuti
PR
Cab01
JKT
Jl. Otista 234
staf02 Jono
LK
Cab01
JKT
Jl. Otista 234
staf03 Soni
LK
Cab02
MDN
Jl. Melati 123 staf04 Sena
LK
Cab02
MDN
Jl. Melati 123 staf05 Banu
LK
Cab03
BDG
Jl. Durian 23
PR
staf06 Mira
Tabel-tabel normal
KantorCabang
noCab namaCab alamat Cab01
JKT
Jl. Otista 234
Cab02
MDN
Jl. Melati 123
Cab03
BDG
Jl. Durian 23
Staf
id
Nama jenisKelamin noCab
staf01 Tuti
PR
Cab01
staf02 Jono
LK
Cab01
staf03 Soni
LK
Cab01
staf04 Sena
LK
Cab02
staf05 Banu
LK
Cab02
staf06 Mira
PR
Cab03
2013
3
Basis Data Sukma Wardhana, M.Kom,
Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id
Perhatikan bahwa kedua tabel di atas berisikan informasi yang sama, tetapi jumlah data yang disimpan berbeda. Pad tabel tidak normal terdapat 36 data (cell), sedangkan pada tabel-tabel normal hanya terdapat 33 data (cell). Perbedaan ini akan bertambah besar seiring dengan bertambanhnya volume data. Pada tabel KantorCabangStaf terdapat redudansi data yang tidak perlu, yaitu nama kantor cabang beserta alamat ditulis berulang kali sesuai dengan jumlah staf yang ada pada kantor cabang tersebut. Penulisan data yang berulang ini dapat mengakibatkan pemborosan tempat penyimpanan data. Permasalahan lain yang timbul pada tabel tidak normal adalah pada saat operasi berikut: 1. Penghapusan data. Jika staf “staf06” (Mira) tidak lagi bekerja pada kantor cabang “Cab03”, maka tuple terakhir pada tabel akan dihapus. Hal ini mengakibatkan data tentang kantor cabang “Cab03” (nama dan alamat) hilang dari tabel basis data. 2. Penambahan data. Setiap terjadi penambahan data staf baru, maka penulisan nama dan alamat kantor cabang harus sesuai dengan data yang sudah ada. Kesalahan dalam penulisan nama dan/atau alamat akan menyebabkan data tidak konsisten. 3. Pengubahan data. Setiap terjadi perubahan data alamat atau nama kantor cabang, maka semua tuple yang mengandung data tersebut harus diubah. Jika terjadi kesalahan penulisan nama dan/atau alamat akan mengakibatkan data tidak konsisten. Contoh: Jika kantor cabang “Cab01’ pindah alamat ke “Jl. Kramat 100”, maka seluruh tuple yang mengandung alamat kantor cabang tersebut harus diubah (satu per satu) menjadi alamat baru dengan tanpa kesalahan.
Sekarang perhatikan pada tabel-tabel normal di atas. Redudansi penulisan nama kantor cabang dan alamat tidak terjadi lagi. Hal ini karena data tentang kantor cabang dan staf masing-masing dituliskan pada tabel terpisah. Permasalahan update yang terjadi pada tabel tidak normal dapat dihindari. 1. Penghapusan data staf “staf06” tidak serta merta menghapus data tentang kantor cabang “Cab03”. 2. Penambahan data staf baru hanya cukup menuliskan dat staf tersebut pada tabel Staf, tanpa perlu menuliskan (ulang) data cabang di mana staf tersebut ditempatkan. 3. Pengubahan data alamat suatu kantor cabang, cukup dilakukan pada satu tuple di tabel KantorCabang saja. 2013
4
Basis Data Sukma Wardhana, M.Kom,
Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id
Dari penjelasan di atas maka jelas diperlukan adanya pemeriksaan tabel-tabel hasil konversi. Jika ditemukan tabel-tabel yang tidak normal, maka perlu untuk mengubah tabeltabel tersebut agar menjadi tabel-tabel normal. Teknik pengubahan bentuk tabel ini disebut dengan normalisasi.
Normalisasi Menurut Dr. Said Mirza Pahlevi, normalisasi adalah teknik untuk merancang tabel basis data relasional guna meminimalisir duplikasi data sehingga dapat menjaga basis data dari permasalahan anomaly update.1 Dari pendefinisian di atas, Dr. Said Mirza Pahlevi menjelaskan lebih lanjut bahwa normalisasi adalah teknik perbaikan struktur tabel berdasarkan ketergantungan fungsional (KF) dan primary key (atau candidate key). 2 Perbaikan struktur tabel di lakukan dengan memecah-mecah tabel secara bertahap menjadi tabel-tabel yang lebih kecil. Proses pemecahan ini disebut decomposition.3 Hasil yang diharapkan dari normalisasi basis data adalah sekumpulan tabel-tabel yang baik yang mendukung aturan bisnis data perusahaan atau organisasi.4 Berikut adalah syarat-syarat untuk tabel yang dikatakan baik (Dr. Said Mirza Pahlevi, 2013:102): 1. Jumlah atribut atau kolom yang diperlukan untuk mendukung persyaratan data perusahaan adalah minimum (tidak redundan). 2. Atribut atau kolom yang saling berhubungan erat dikumpulkan pada satu tabel yang sama, sedangkan atribut yang tidak berhubungan erat dapat diletakkan pada tabel terpisah. 3. Memiliki redudansi nilai atribut (data) yang minimal, kecuali bagi nilai atribut foreign key.
1
Dr. Said Mirza Pahlevi, Tujuh Langkah Praktis Pembangunan Basis Data (Indonesia: PT Elex Media Komputindo, 2013), p.102 2 Dr. Said Mirza Pahlevi, Tujuh Langkah Praktis Pembangunan Basis Data (Indonesia: PT Elex Media Komputindo, 2013), p.108 3 Ibid. 4 Dr. Said Mirza Pahlevi, Tujuh Langkah Praktis Pembangunan Basis Data (Indonesia: PT Elex Media Komputindo, 2013), p.102 2013
5
Basis Data Sukma Wardhana, M.Kom,
Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id
Key dan Attribut Deskriptif Pada dasarnya, key adalah satu atau gabungan dari beberapa atribut yan dapat membedakan semua baris data (row) dalam tabel secara unit Artinya, jika suatu atribut dijadikan sebagai key, maka tidak boleh ada du atau lebih baris data dengan nilai yang sama untuk atribut tersebut.
Ada 3 (tiga) macam key yang dapat diterapkan pada suatu tabel, yaitu:
Superkey
Candidate-Key
Key Primer (Primary-Key)
Superkey merupakan satu atau lebih atribut (kumpulan atribut) yang dapat membedakan setiap baris data dalam sebuah tabel secara unik. Bisa terjadi ada lebih dari 1 kumpulan atribut yang bersifat seperti itu pada sebuah tabel. Di tabel Mahasiswa, misalnya, yang dapat menjadi Superkey adalah:
(nim, nama mhs, alamat mhs, tgl lahir)
(nim, nama mhs, alamat mhs)
(nim, nama mhs)
(nama mhs), jika kita bisa menjamin tidak ada nilai yang sama until] atribut ini
(nim)
Candidate-Key merupakan kumpulan atribut minimal yang dapa membedakan setiap baris data dalam sebuah tabel secara unik. Sebual Candidate-Key tidak boleh berisi atribut atau kumpulan atribut yang telal menjadi Superkey yang lain. Jadi, sebuah Candidate-Key pastilah Superkey tapi belum tentu sebaliknya. Pada tabel Mahasiswa, yang dapat menjad CandidateKey-nya adalah:
(nim)
(nama mhs), jika kita bisa menjamin tidak ada nilai yang sama untul kolom ini.
Definisi formal tentang Candidate-Key adalah: Diberikan sebuah tabel T, dengan Atribut (T) = Ai, A2, ...., An. Key dari tabel T adalah himpunan atribut K = Ail, ….,Aik dengan 2 sifat:
2013
6
Basis Data Sukma Wardhana, M.Kom,
Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id
1. Jika u, v mewakili 2 baris data yang berlainan dalam tabel T, mak u[K] # v[K]; artinya, akan selalu paling sedikit ada satu atribut (Aim yang merupakan anggota K di mana u[Aim] # v[Aim]. 2. Tidak ada himpunan atribut yang lebih kecil yang menjadi bagian dari K yang memiliki sifat ke-i di atas.
Pada sebuah tabel dimungkinkan adanya lebih dari satu Candidate-Key seperti contoh di atas. Salah satu dari Candidate-Key ini (jika memang ada thebih dari satu) dapat dijadikan sebagai Key Primer (Primary Key). Pemilihan Key Primer dari sejumlah Candidate-Key tersebut umumnya didasari oleh:
Key tersebut lebih sering (lebih natural) untuk dijadikan sebagai acuan
Key tersebut lebih ringkas
Jaminan keunikan Key tersebut lebih baik
Dengan pertimbangan-pertimbangan tersebut, dari kedua Candidate-Key yang ada di tabel Mahasiswa, yaitu (nim) dan (nama_ mhs), maka yang lebih eocok dipilih sebagai Key Primer (Primary-Key) adalah (nim).
Atribut Deskriptif adalah atribut-atribut yang tidak menjadi atau merupakan anggota dari Key Primer. Jadi, atribut-atribut nama mhs, alamat mhs dan tgl lahir digolongkan sebagai Atribut Deskriptif.
2013
7
Basis Data Sukma Wardhana, M.Kom,
Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id
Daftar Pustaka 1. Fathansyah, (2012), Basis Data Edisi Revisi, Penerbit Informatika Bandung, Bandung. 2. Pahlevi, Said Mirza., (2013), Tujuh Langkah Praktis Pembangunan Basis Data, Penerbit PT Elex Media Komputindo, Jakarta.
2013
8
Basis Data Sukma Wardhana, M.Kom,
Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id