Anda di halaman 1dari 5

Normalisasi dan Denormalisasi

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
KdFaktur, KodeBrg

Tgl. Jempo, KodeSup, NamaSup


NamaBrg, Qty, Harga

Bentuk BCNF
KdFaktur
KdSup
KdFaktur, KodeBrg
KodeBrg

Tgl, Jtempo, KodeSup


NamaSup
Qty, Harga
NamaBrg

2. Denormalisasi

Berikut ini adalah bentuk bentuk denormalisasi :


Atribut yang tidak terderivasi -> nilai pada atribut ini dapat
diolah dari nilai yang sudah ada pada atribut lain.
Atribut yang berlebihan :
Atribut terkodekan
Atribut gabungan
Atribut tumpang tindih
Atribut bermakna ganda
Tabel Rekapitulasi

Anda mungkin juga menyukai