1. Normalisasi
A.
Teknik Normalisasi
Dengan normalisasi, kita ingin mendesain database relational
yang terdiri dari tabel – tabel berikut.
· Berisi data yang diperlukan
· Memiliki sesedikit mungkin redudansi
· Mengakomodasi banyak nilai untuk tipe
data yang diperlukan
· Mengefesiankan update
· Menghindari kemungkinan hilangnya
data secara tidak sengaja
Alasan
utama dari normalisasi database sampai ke bentuk normal ketiga adalah menghilangkan kemungkinan adanya
insertion anomalies, deletion anomalies, dan update anomalies. Tipe –tipe data
tersebut sangat mungkin terjadi pada database yang tidak normal.
· Insertion anomalies adalah sebuak
kesalahan penempatan informasi entry data baru ke seluruh tempat dalam database dimana informasi tersebut perlu
disimpan.
· Deletion anomalies adalah sebuah
kesalahan dalam penghapusan informasi pada data base harus dilakukan dengan
penghapusan informasi tersebut dari beberapa tempat di dalam database.
· Sedangkan dalam melakukan update
informasi, kesalahan juga dapat terjadi ketika kita melakukan update ke seluruh
tempat yang menyimpan informasi tersebut. Kesalahan ini disebut update
anomalies.
Normalisasi
merupakan cara pendekatan dalam membangun desain logika basis data yang
relasional yang tidak secara langsung berkaitan dengan data, tetapi dengan
menerapkan sejumlah aturan standar untuk menghasilkan struktur tabel yang
normal. Beberapa kondisi yang diujikan pada proses normalisasi.
1. Menambah data / insert
2. Mengedit / mengupdate
3. Menghapus / delete
4. Membaca / retrieve
B.
Bentuk –Bentuk Normalisasi
a. Bentuk Tidak Normal
Bentuk ini merupakan kumpulan data yang direkam, tidak ada
keharusan format tertentu, dapat saja tidak lengkap dan terduplikasi. Data
dikumpulkan apa adanya sesuai kenyataan.
b. Bentuk Normal Tahap 1 (1 Normal Form)
Sebuah tabel dikatakan 1NF jika, tidak ada baris yang
duplikat pada tabel tersebut dan masing – masing cell bernilai tunggal.
Contoh :
Tabel kuliah memiliki atribut : kode_kul, nama_kul, sks,
semester, waktu, tempat, dan nama_dos
Tabel kuliah tersebut tidak memenuhi normalisasi pertama,
karena terdapat atribut waktu yang tergolong dalam atribut bernilai banyak.
Agar tabel tersebut bernilai 1NF, maka :
·
Tabel
Kuliah ( kode_kul, nama_kul, sks, semester, nama_dos)
·
Tabel
Jadwal ( kode_kul, waktu, ruang)
c. Bentuk Normal Tahap 2 (2 Normal Form)
Bentuk Normal Tahap 2 terpenuhi jika pada
sebuah tabel, semua atribut yang tidak termasuk primary key memiliki
ketergantungan fungsional pada primary key secara utuh. Dan sebuah tabel
dikatakan tidak memeuhi bentuk 2NF jika ketergantungan pada primary key hanya
bersifat parsial ( hanya tergantung pada sebagian primary key )
Contoh
:
Tabel
Nilai tersiri dari atribut kode_kul, nim dan nilai. Jika pada tabel nilai,
misalnya ditambahkan atribut yang bersifat redundan, yaitu nama_mhs, maka tabel
ini dianggap melanggar 2NF.
Primary
key tabel adalah kode_kul, nim.
Penambahan
atribut baru (nama_mhs)mengakibatkan adanya ketergantungan fungsional yang baru
yaitu nim -> nama_mhs. Karena atribut nama_mhs ini hanya memiliki
ketergantungan parsial pada primary key secara utuh.
d. Bentuk Normal Tahap 3 (3 Normal Form)
Sebuah tabel dihatakan memenuhi 3NF jika untuk setiap
ketergantungan fungsional 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 primary
key pada tabel tersebut
Misalkan
pada tabel mahasiswa, atribut alamat_mhs dipecah ke dalam alamat_jln,
alamat_kota dan kode_pos. Bentuk ini tidak memenuhi 3NF karena terdapat
ketergantungan fungsional baru yang muncul pada tabel tersebut, yaitu :
Alamat_jln
nama_kota -> kode_pos
Dalam
hal ini (alamat_jln nama_kota) bukan superkey, sementara kode_pos juga bukan
primary key dari tabel mahasiswa. Jika
tabel mahasiswa didekomposisi menjadi tabel mahasiswa dan tabel alamat maka
telah memenuhi 3NF. Hal itu dapat dibuktikan dengan memeriksa dua
ketergantungan fungsional pada tabel tersebut, yaitu :
Alamat_jln
nama_kota -> kode_pos
Kode_pos
-> nama kota
Ketergantungan
pertama tidak melanggar 3NF karena (alamat_jln nama_kota) merupakan superkey
dari tabel alamat tersebut. Demikian juga dengan ketergantungan fungsional
kedua, meskipun (kode_pos) bukan merupakan superkey, tetapi nama_kota merupakan
bagian dari primary key dari tabel alamat.
e. Bentuk Normal Tahap Keempat dan
Kelima
Bentuk normal keempat berkaitan dengan sifat ketergantungan
banyak nilai pada suatu tabel yang merupakan pengembangan dari ketergantungan
fungsional. Adapun bentuk normal kelima merupakan nama lain dari Project Join
Normal Form (PJNF).
f. Boyce Code Normal Form (BCNF)
· Memenuhi 1 NF
· Relasi harus bergantung fungsi pada
atribut superkey.
CONTOH
KASUS
Kelemahan :
1. Insert : Ingin memasukkan supplier
tanpa transaksi?
2. Delete : Menghapus transaksi ->
supplier terhapus
3. Update : Mengganti satu nama supplier
-> lainnya menjadi tidak benar
4. Redudancy : Jumlah ß hasil perhitungan qty*harga
Bentuk
2NF :
KdFaktur à Tgl. Jempo, KodeSup, NamaSup
KdFaktur,
KodeBrg à NamaBrg, Qty, Harga
Bentuk
BCNF
KdFaktur à Tgl, Jtempo, KodeSup
KdSup à NamaSup
KdFaktur,
KodeBrg à Qty, Harga
KodeBrg à NamaBrg
2. Denormalisasi
Berikut ini adalah bentuk – bentuk
denormalisasi :
v Atribut yang tidak terderivasi ->
nilai pada atribut ini dapat diolah dari nilai yang sudah ada pada atribut
lain.
v Atribut yang berlebihan :
ü Atribut terkodekan
ü Atribut gabungan
ü Atribut tumpang tindih
ü Atribut bermakna ganda
v Tabel Rekapitulasi


Tidak ada komentar:
Posting Komentar