Kamis, 31 Mei 2012

Normalisasi Database


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:
  1. 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.
  2. 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
  1. Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)
  2. Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF)
  3. Bentuk Normal Tahap Ketiga (3rd Normal Form / 3NF)
  4. Boyce-Code Normal Form (BCNF)
  5. Bentuk Normal Tahap Keempat(4th Normal Form / 4NF)
  6. 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