Jumat, 11 November 2011

Normalisasi Data

Perancangan basis data diperlukan agar kita memiliki basis data yang kompak dan efisien dalam penggunaan ruang penyimpanan, cepat dalam pengaksesan dan mudah dalam pemanipulasian (tambah, ubah, hapus) data.


Dalam merancangan basis data kita melakukan :
  1. Menerapkan Normalisasi terhadap struktur tabel yang telah diketahui
  2. Langsung membuat model Entity Relationship

Perancangan basis data seringkali diartikan dengan pembuatan model ER dimana kelompok kelompok data dan relasi antar kelompok data tersebut diwujudkan dalam bentuk diagram.

Normalisasi merupakan cara pendekatan dalam membangun design lojik basis data relasional yang secara tidak langsung berkaitan dengan model data, tetapi dengan menerapkan sejumlah aturan dan kriteria standar untuk menghasilkan struktur tabel yang normal.

-         Atribut Tabel
Atribut biasanya disebut kolom dalam tabel, atribut dapat dibedakan berdasarkan pengelompokannya. Ada atribut yang dijadikan sebagai key dan yang lainnya disebut atribut deskriptif




-         Key dan Atribut Deskriptif
Key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan setiap baris data dalam tabel secara unik. Artinya jika atribut sudah dijadikan key maka tidak boleh ada dua atau lebih baris data yang nilainya sama dengan atribut tersebut.
Ada 3 macam key :
  1. Super Key : Merupakan satu atau lebih atribut yang dapat membedakan setiap baris dalam sebuah table secara unik.
  2. Candidat Key : Merupakan kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah tabel secara unik. Sebuah candidat key tidak boleh berisi atribut atau kumpulan atribut yang telah menjadi superkey yang lain.
  3. Primary Key : Primary key diambil dari candidat key yang paling unik.
Atribut Deskriptif adalah atribut-atribut  yang tidak menjadi atau merupakan anggota dari key primer yang menjelaskan tentang primary key.

-         Atribut Sederhana dan Atribut Komposit
Atribut sederhana(Simple Attribute) : atribut atomik yang tidak dapat dipilah lagi.
Contoh : Nama_mhs
Atribut Komposit : Merupakan atribut yang masing masing dapat diuraikan lagi menjadi sub-sub atribut yang masing-masing memiliki makna.
Contoh : Alamat_mhs

-         Atribut bernilai Tunggal dan Atribut bernilai Banyak
Atribut bernilai Tunggal (Single Valued Attribute) ditujukan pada atribut atribut yang memiliki paling banyak satu nilai untuk setiap baris data.
Contoh : Nim
Atribut bernilai banyak (Multivalued Attribute) ditujukan pada atribut atribut yang dapat diisi dengan lebih dari 1 nilai tetapi jenisnya sama.
Contoh : Notelp
-         Atribut Bernilai dan Tak bernilai
Atribut Bernilai(mandatory variable) adalah atribut yang harus memiliki nilai
Contoh : JK
Atribut tak bernilai(Null) adalah atribut yang tidak memiliki nilai
Contoh : Hobby
-         Atribut Turunan(Derived Attribute) adalah atribut yang nilai nilainya diperoleh dari pengolahan atau dapat diturunkan dari atribut atau tabel lain yang berhubungan. Atribut demikian sebenarnya dapat ditiadakan dari sebuah tabel karena nilai-nilainya bergantung pada nilai yang ada di atribut lainnya.
Contoh : Angkatan, Jurusan  à nim
-         Domain dan Tipe Data : Penentuan tipe data berimplikasi pada adanya batas-batas nilai yang mungkin disimpan/diisikan ke setiap atribut(kolom) tersebut.
Contoh :
Field
Type
Length
Keterangan
Kode
Autonumber
3
Nomor otomatis untuk membedakan konsumen
Nama
Text
30
Untuk data nama konsumen
Alamat
Text
50
Untuk data alamat konsumen
Npwp
Text
20
Untuk data no Npwp

Domain dapat diartikan kemampuan field untuk menyimpan data misalkan field dengan data jumlah_penjualan diisikan dengan length 3 maka jumlah maksimum yang diperkenankan untuk angka adalah 999, tetapi untuk tipe text length merupakan jumlah karakter yang memungkinkan.

-         Ketergantungan Fungsional (Functional Depency)
Diberikan sebuah tabel T berisi paling sedikit 2 buah atribut, yaitu A dan B. kita dapat menotasikan  :
A à B
Yang berarti A secara fungsional mementukan B atau B secara fungsional tergantung pada A, jika dan hanya jika untuk setiap kumpulan baris data(row) yang ada pada tabel T pasti ada 2 baris data(row) di tabel T dengan nilai untuk A yang sama, maka nilai B pasti akan sama.
Contoh
Nim à nama_mhs
Yang berarti bahwa atribut nama_mhs hanya tergantung pada atribut nim. Hal ini dibuktikan dari fakta : untuk setiap nilai nim yang sama maka nilai_mhs nya sama juga.

-         Domain dan Tipe Data : Penentuan tipe data berimplikasi pada adanya batas-batas nilai yang mungkin disimpan/diisikan ke setiap atribut(kolom) tersebut.
Contoh :
Field
Type
Length
Keterangan
Kode
Autonumber
3
Nomor otomatis untuk membedakan konsumen
Nama
Text
30
Untuk data nama konsumen
Alamat
Text
50
Untuk data alamat konsumen
Npwp
Text
20
Untuk data no Npwp

Domain dapat diartikan kemampuan field untuk menyimpan data misalkan field dengan data jumlah_penjualan diisikan dengan length 3 maka jumlah maksimum yang diperkenankan untuk angka adalah 999, tetapi untuk tipe text length merupakan jumlah karakter yang memungkinkan.

-         Ketergantungan Fungsional (Functional Depency)
Diberikan sebuah tabel T berisi paling sedikit 2 buah atribut, yaitu A dan B. kita dapat menotasikan  :
A à B
Yang berarti A secara fungsional mementukan B atau B secara fungsional tergantung pada A, jika dan hanya jika untuk setiap kumpulan baris data(row) yang ada pada tabel T pasti ada 2 baris data(row) di tabel T dengan nilai untuk A yang sama, maka nilai B pasti akan sama.
Contoh
Nim à nama_mhs
Yang berarti bahwa atribut nama_mhs hanya tergantung pada atribut nim. Hal ini dibuktikan dari fakta : untuk setiap nilai nim yang sama maka nilai_mhs nya sama juga.
·  Normalisasi dengan Ketergantungan Fungsional
Sebuah tabel dapat dikategorikan baik(efisien atau normal) jika memenuhi 3 kriteria
o   LossLess-Join Decomposition
o   Depency Prevervation
o   Boyce-Codd Normal Form (BCNF)
Jika kretetia ketiga(BCNF) tidak dapat dipenuhi, maka paling tidak tabel tersebut tidak melanggar bentuk Normal tahap ketiga
·  Bentuk-bentuk Normal
o   Bentuk Normal Tahap Pertama
o   Bentuk Normal Tahap Kedua
o   Bentuk Normal Tahap Ketiga
o   Bentuk Normal Tahap Keempat
o   Bentuk Normal Tahap Kelima

Kelemahan mendasar dari tabel universal adalah :
  1. Pengulangan Informasi
  2. Potensi inkonsistensi data pada operasi pengubahan
  3. Tersembunyinya informasi tertentu
Dari kelemahan yang ada tersebut menggiring kita untuk melakukan dekomposisi yaitu melakukan pemilahan tabel tersebut menjadi beberapa tabel dengan mempertimbangkan ketergantungan fungsional yang kita dapatkan.

·        LossLess-Join Decomposition
Dekomposisi memang merupakan upaya untuk mendapatkan tabel yang baik. Tetapi jika tidak hati-hati upaya ini justru dapat menghasilkan kesalahan.
Dekomposisi yang benar terjadi jika tabel tabel hasil dekomposisi kita gabungkan kembali dapat menghasilkan tabel awal sebelum didekomposisi.
Dekomposisi seperti ini disebut Lossles-join Decomposition atau lossles Decomposition atau dekomposisi aman. Berikut ini contoh abstrak yang menghasilkan dekomposisi yang tidak aman(Lossy-join decomposisition). Kita asumsikan ada tabel ABC yang didefinisikan dengan dua buah KF yaitu : A à B dan B à C.
Misalkan :

A
B
C
row 1
a 1
100
c 1
row 2
a 2
200
c 2
row 3
a 3
300
c 3
row 4
a 4
200
c 4

Dengan isi seperti itu pernyataan KF yang kedua B à C tidak sepenuhnya tepat, karena pada row 2 dan row 4, dengan nilai untuk atribut B yang sama, nilai untuk atribut C nya berbeda. Jika kita pecah menjadi 2 tabel AB dan BC maka :
A
B

B
C
a 1
100

100
c 1
a 2
200

200
c 2
a 3
300

300
c 3
a 4
200

200
c 4

Jika kedua tabel digabungkan kembali, maka hasilnya adalah :
A
B
C
a 1
100
c 1
a 2
200
c 2
a 2
200
c 4
a 3
300
c 3
a 4
200
c 2
a 4
200
c 4
Hasil ini tentu saja berbeda dengan tabel awal sebelum dekomposisi. Maka dekomposisi semacam ini disebut Lossy-Decomposition, sebuah dekomposisi yang sedapat mungkin kita hindari.

Akan tetapi jika data pada row 4 yang ada pada tabel ABC awal, kita ganti dengan data sebagai berikut :
a 4
200
c 2

Sehingga isi tabel menjadi :
A
B
C
a 1
100
c 1
a 2
200
c 2
a 3
300
c 3
a 4
200
c 2

Dengan data dari tabel ABC demikian, maka KF dapat dibenarkan tabel ABC tersebut didekomposisi menjadi tabel AB dan BC sebagai berikut :
A
B

B
C
a 1
100

100
c 1
a 2
200

200
c 2
a 3
300

300
c 3
a 4
200



Kalau kedua tabel diatas digabung kembali maka awal tabel ABC nya akan diperoleh kembali. Kita bisa katakan pemilahannya merupakan Dekomposisi Aman (Lossles DeComposition).

·        Depency Prevervation (Pemelihara Ketergantungan) merupakan kriteria kedua yang harus dicapai untuk mendapatkan tabel dan basis data yang baik. Ketika merupakan perubahan data maka harus bisa dijamin agar perubahan tersebut tidak menghasilkan inkonsistensi data yang mengakibatkan KF yang sudah benar menjadi tidak terpenuhi. Akan tetapi dalam upaya untuk memelihara KF yang ada untuk tetap terpenuhi tersebut, prosesnya harus dapat dilakukan dengan efisien.

·        Boyce-Codd Normal Form (BCNF) : sebuah tabel dikatakan BCNF jika untuk semua KF dengan notasi X à Y, maka X harus merupakan superkey pada tabel tersebut. Jika tidak demikian maka tabel tersebut harus didekomposisi berdasarkan KF yang ada sehingga X menjadi superkey dari tabel yang didekomposisi.

·        Bentuk Normal Tahap Ketiga (3rd Normal Form)
Merupakan kriteria alternatif jika kriteria BCNF yang ketat tidak dapat terpenuhi, sebuah tabel dikatakan berada dalam bentuk normal tahap ketiga (3NF), jika untuk setiap KF dengan notasi X à A, dimana A mewakili semua atribut tunggal di dalam tabel yang tidak ada di dalam X, maka :
§         X haruslah superkey pada tabel tersebut.
§         Atau A merupakan bagian dari key primer pada tabel tersebut.

Tidak ada komentar: