Normalisasi
Database
Normalisasi merupakan sebuah upaya
untuk memperoleh sebuah base data dengan struktur yang baik dengan cara
menerapkan sejumlah aturan pada setiap tabel agar ruang penyimpanan efisien.
Normalisasi database biasanya jarang
dilakukan dalam database skala kecil, dan dianggap tidak diperlukan pada
penggunaan personal. Namun seiring dengan berkembangnya informasi yang
dikandung dalam sebuah database, proses normalisasi akan sangat membantu dalam
menghemat ruang yang digunakan oleh setiap tabel di dalamnya, sekaligus
mempercepat proses permintaan data. Berikut ini dipaparkan metodologi logis
sederhana untuk menormalkan model data dalam sebuah database, diiringi contoh
pembuatan database untuk tugas-tugas matakuliah dalam sebuah fakultas (fiktif)
dengan atribut yang disederhanakan.
Proses normalisasi model data dapat
diringkas sebagai berikut:
1. Temukan entitas-entitas utama
dalam model data.
2. Temukan hubungan antara setiap
entitas.
3. Tentukan atribut yang dimiliki
masing-masing entitas.
Normalisasi model data dilakukan
dengan mengikuti langkah-langkah sederhana, mengubahnya agar memenuhi apa yang
disebut sebagai bentuk normal pertama, kedua, lalu ketiga secara berturutan.
Istilah penting dalam teknik normalisasi
- Field / atribut kunci
Setiap file selalu terdapat kunci dari file berupa
satu field atau satu field yang dapat mewakili record.
- Candidate key
Kumpulan atribut minimal yang secara unik
mengidentifikasi sebuah baris fungsinya sebagai calon primary key.
- Composite key
Kunci kandidat yang berisi lebih dari satu atribut
- Primary key
Candidate key yang dipilih untuk mengidentifikasi
baris secara unik
- Alternate key
Candidate key yang tidak dipilih sebagai primary key
- Foreign key
Key di tabel lain yang terhubung dengan primary key
pada sebuah tabel
Misalkan terdapat sebuah tabel siswa dengan field
sebagai berikut
Maaf kalo gambar kurang jelas
Atribut kunci -> NIS
Candidate key -> NIS dan Nama
Composit key -> Nama bisa dibagi
menjadi nama depan dan nama belakang
Alamat bisa dibagi menjadi jalan, kota, propinsi
Primary key ->
NIS
Alternate key -> Nama
Foreign key
-> NIS pada tabel nilai merupakan foreign key
Sebuah tabel dikatakan baik
(efisien) atau normal jika memenuhi 3 kriteria sbb:
- Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin aman (Lossless-Join Decomposition). Artinya, setelah tabel tersebut diuraikan / didekomposisi menjadi tabel-tabel baru, tabel-tabel baru tersebut bisa menghasilkan tabel semula dengan sama persis.
- Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation).
3.
Tidak
melanggar Boyce-Code Normal Form (BCNF). Jika kriteria ketiga
(BCNF) tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar
Bentuk Normal tahap ketiga (3rd Normal
Form / 3NF).
FUNCTIONAL DEPENDENCY (FD)
Notasi: A B
A dan B adalah atribut dari
sebuah tabel. Berarti secara fungsional A menentukan B atau B tergantung pada
A, jika dan hanya jika ada 2 baris data dengan nilai A yang sama, maka nilai B
juga sama
Notasi: A –> B atau A x
–> B
Adalah kebalikan dari notasi sebelumnya
Aturan normalisasi
- Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)
- Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF)
- Bentuk Normal Tahap Ketiga (3rd Normal Form / 3NF)
- Boyce-Code Normal Form (BCNF)
- Bentuk Normal Tahap Keempat(4th Normal Form / 4NF)
- Bentuk Normal Tahap Kelima(5th Normal Form / 5NF)
Aturan Normalisasi
1.
Normalisasi Pertama (1st Normal Form)
·
Mendefinisikan
atribut kunci
·
Tidak adanya
group berulang
·
Semua
atribut bukan kunci tergantung pada atribut kunci
2.
Normalisasi Kedua (2nd Normal Form)
·
Sudah memenuhi
dalam bentuk normal kesatu
·
Sudah tidak
ada ketergantungan parsial, dimana seluruh field hanya tergantung pada sebagian
field kunci.
3.
Normalisasi Ketiga (3rd Normal Form)
·
Sudah berada
dalam bentuk normal kedua
·
Tidak ada
ketergantungan transitif (dimana field bukan kunci tergantung pada field bukan
kunci lainnya).
4.
Boyce-Code Normal Form (BCNF)
·
Bentuk BCNF terpenuhi dalam
sebuah tabel, jika untuk setiap functional dependency terhadap setiap
atribut atau gabungan atribut dalam bentuk: X
à Y
·
tabel tersebut harus
di-dekomposisi berdasarkan functional dependency yang ada, sehingga X
menjadi super key dari tabel-tabel hasil dekomposisi
·
Setiap tabel dalam BCNF
merupakan 3NF. Akan tetapi setiap 3NF belum tentu termasuk BCNF . Perbedaannya,
untuk functional dependency X à A, BCNF tidak membolehkan A sebagai bagian dari primary key.
5.
Normalisasi Keempat (4rd Normal Form)
·
Bentuk normal 4NF terpenuhi
dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak
boleh memiliki lebih dari sebuah multivalued atribute
·
Untuk setiap multivalued
dependencies (MVD) juga harus merupakan functional dependencies
6.
Normalisasi Kelima (5rd Normal Form)
·
Bentuk normal 5NF terpenuhi
jika tidak dapat memiliki sebuah lossless decomposition menjadi tabel-tabel
yg lebih kecil.
·
Jika 4 bentuk normal
sebelumnya dibentuk berdasarkan functional dependency, 5NF dibentuk
berdasarkan konsep join dependence. Yakni apabila sebuah tabel telah
di-dekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi
(join) untuk membentuk tabel semula
CONTOH
KASUS
Perancangan Basis data pengolahan nilai
Tidak ada komentar:
Posting Komentar