8/16/2019 08 Normalisasi Database
1/24
1/29
ormalisasi
Database
8/16/2019 08 Normalisasi Database
2/24
2/29
Pengantar Penyem purnaa n Skema :
Pers alan yang Dit imbulkan leh Redundansi
Redundansi ruang penyimpanan: beberapa data disimpansecara berulang
Update anomaly: Jika satu copy data terulang tsb diubah,inkonsistensi data dpt terjadi kecuali kalau semua copy dari
data tsb diubah dengan cara yang samaInsertion anomaly: Mungkin dpt terjadi kesulitan utk
menyisipkan data tertentu kecuali kalau beberapa datatidak terkait lainnya juga ikut disisipkan
Deletion anomaly: Mungkin dpt terjadi kesulitan utkmenghapus data tertentu tanpa harus kehilangan beberapadata tidak terkait lainnya
8/16/2019 08 Normalisasi Database
3/24
3/29
Pers alan yang Ditim bulkan
leh Redundansi: C nt h
Redundansi ruang penyimpanan: Pelaksana yang berkorespondensi dggrading 15 diulang dua kali
Update anomaly: Nilai Jabatan (yg terkait dengan nilai grading) dlm barispertama dpt diubah tanpa membuat perubahan yg sama pada baris kedua
Insertion anomaly: Kesulitan utk menyisipkan pegaai baru kecuali nilaigrading untuk jabatan dari pegaai tsb sudah diketahui
Deletion anomaly: Jika semua baris yang terkait dg nilai jabatan tertentudihapus (misalnya baris utk pegaai !"ono# dihapus), maka kita akankehilangan in$ormasi ketergantungan antara nilai jabatan dan nilai gradingyang diasosiasikan dengan nilai rating tsb (yaitu jabatan % Kepala &idangdan grading % ')
NP Nama Jabatan *rading
11 "ana Kepala Pusat '+
1' "ani Kepala Pusat '+
1+ "ono Kepala &idang '
1 "uni Pelaksana 1515 "uno Pelaksana 15
8/16/2019 08 Normalisasi Database
4/24
4/29
Penyebab Anomali
Mengapa anomali - anomali ini terjadi .
Karena menggabungkan dua tema (konsep entitas) dalam satu
relasi/ ni mengakibatkan duplikasi 0 duplikasi sebagai akibat dari
ketergantungan antar atribut yang tidak pada tempatnya/
olusi 2 Normalisasi
8/16/2019 08 Normalisasi Database
5/24
5/29
Normalisasi
Normalisasi adalah proses pembentukan struktur
database sehingga sebagian besar ambiguity bisa
dihilangkan/
3ahap Normalisasi dimulai dari tahap paling ringan(1N4) hingga paling ketat (5N4)
&iasanya hanya sampai pada tingkat +N4 atau
&N4 karena sudah cukup memadai untuk
menghasilkan tabel-tabel yang berkualitas baik/
8/16/2019 08 Normalisasi Database
6/24
6/29
Normalisasi
ebuah tabel dikatakan baik (e$isien) atau normal jika
memenuhi + kriteria sbb2
1/ Jika ada dekomposisi (penguraian) tabel, maka
dekomposisinya harus dijamin aman (Lossless-Join
Decomposition)/ 6rtinya, setelah tabel tersebut diuraikan 7didekomposisi menjadi tabel-tabel baru, tabel-tabel baru
tersebut bisa menghasilkan tabel semula dengan sama
persis/
'/ 3erpeliharanya ketergantungan $ungsional pada saatperubahan data (8ependency Preser9ation)/
+/ 3idak melanggar &oyce-ode Normal 4orm (&N4) (-akan
dijelaskan kemudian-)
8/16/2019 08 Normalisasi Database
7/247/29
Normalisasi
Jika kriteria ketiga (&N4) tidak dapat terpenuhi,
maka paling tidak tabel tersebut tidak melanggar
&entuk Normal tahap ketiga (+rd Normal 4orm 7+N4)/
8/16/2019 08 Normalisasi Database
8/248/29
Langkah – Langkah Normalisasi
8/16/2019 08 Normalisasi Database
9/249/29
Tabel Uniersal
3abel :ni9ersal (Universal / Star Table) sebuahtabel yang merangkum semua kelompok datayang saling berhubungan, bukan merupakan tabel
yang baik/
Misalnya2
8/16/2019 08 Normalisasi Database
10/2410/29
Tabel Uniersal
NP Nama No;klien Nama;klien
+< Nina K5 Martini
K= 6nton
K' armini
+= 3ono K >ka
K1 6ndin
+? @adi KA Mitha
K' &uyung
K? ndah
8/16/2019 08 Normalisasi Database
11/2411/29
!un"tional Dependen"y
Notasi: A B
6 dan & adalah atribut dari sebuah tabel/ &erarti
secara $ungsional 6 menentukan & atau &
tergantung pada 6, jika dan hanya jika ada ' barisdata dengan nilai 6 yang sama, maka nilai & juga
sama
• Notasi: A
B atau A x
B 6dalah kebalikan dari notasi sebelumnya/
8/16/2019 08 Normalisasi Database
12/2412/29
!un"tional Dependen"y
ontoh tabel pemasok
Kode Nama_Brg Harga Kd_Pemasok Nm_Pemasok Kota
3-1 3B N 1C A/ P'' P3 umber Jakarta
3-' 3B N '1C ?5/ P'' P3 umber Jakarta
3-+ 3B 1C 5/ P11 P3 3unas
Jaya
urabaya
3- 3B M +C /5/ P++ P3 Mekar emarang
3-5 3B 'C 1/'/ P P3 @olic emarang
8/16/2019 08 Normalisasi Database
13/2413/29
&erdasarkan tabel tersebut, diperoleh2
Kode Nama;&rg
Kode @arga
Kode Kd;Pemasok
Kode Nm;Pemasok
Kd;Pemasok Nm;Pemasok
etiap Kode pasti berhubungan dengan satu Nama_Brg begitu juga antara Kode
dan Harga/ &egitu seterusnya/
Misalnya2 3-1 hanya cocok dengan 1 barang, yaitu 3B N 1C
atatan2 &agaimana kalau dibalik.
@arga tidak menentukan barangnya, (karena banyak barang mempunyai harga
yang sama)D tapi satu jenis barang punya satu harga/
Nama;&rg Kode
Nm;Pemasok
Kode;Pemasok
Dependensi !ungsional
8/16/2019 08 Normalisasi Database
14/2414/29
Perhatikan bagian ini2
Kode Nama_Brg
Kode Harga
Kode Kd_PemasokKode Nm;pemasok
Kd;Pemasok Nm;Pemasok
3ernyata, Kode menentukan lebih dari satu atribut/Notasinya dapat diganti sebagai berikut2
Kode ENama;&rg, @arga, Kd;PemasokF
Kode Nm;Pemasok (yang ini bagaimana.)
Dependensi !ungsional
8/16/2019 08 Normalisasi Database
15/2415/29
#entuk$bentuk ormal
1/ &entuk Normal 3ahap Pertama (1st Normal 4orm7 1N4)
'/ &entuk Normal 3ahap Kedua ('nd Normal 4orm 7'N4)
+/ &entuk Normal 3ahap (+rd Normal 4orm 7 +N4)/ &oyce-ode Normal 4orm (&N4)5/ &entuk Normal 3ahap (th Normal 4orm 7 N4)A/ &entuk Normal 3ahap (5th Normal 4orm 7 5N4)
8/16/2019 08 Normalisasi Database
16/2416/29
#entuk ormal Tahap Pertama
%&st ormal !orm ' & !(
&entuk normal 1N4 terpenuhi jika sebuah tabel
tidak memiliki atribut bernilai banyak (multivalued
attribute), atribut composite atau kombinasinya
dalam domain data yang sama/etiap atribut dalam tabel tersebut harus bernilai
atomic (tidak dapat dibagi-bagi lagi)
8/16/2019 08 Normalisasi Database
17/2417/29
Data Tidak Ternormalisasi
NP Nama No;klien Nama;klien
+< Nina K5 Martini
K= 6nton
K' armini
+= 3ono K >ka
K1 6ndin
+? @adi KA Mitha
K' &uyung
K? ndah
8/16/2019 08 Normalisasi Database
18/2418/29
Data &N!
NP Nama No;klien Nama;klien
+< Nina K5 Martini
+< Nina K= 6nton
+< Nina K' armini
+= 3ono K >ka
+= 3ono K1 6ndin
+? @adi KA Mitha
+? @adi K' &uyung
+? @adi K? ndah
8/16/2019 08 Normalisasi Database
19/24
19/29
Contoh ) %"omposite(
JadalKuliah
Kodekul NamaKul Dosen Kelas Jadwal
Kodekul NamaKul Dosen Kelas JadwalHari JadwalJam
• 8imana nilai pada atribut jadal berisi gabungan antara
@ari dan Jam/
• Jika asumsi hari dan jam memegang peranan penting
dalam sistem database, maka atribut Jadal perlu
dipisah sehingga menjadi Jadal@ari dan JadalJam
sbb2
JadalKuliah
8/16/2019 08 Normalisasi Database
20/24
20/29
#entuk ormal Tahap *edua
%)nd ormal !orm(
&entuk normal 'N4 terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1N4, dan semuaatribut selain primary key, secara utuh memiliki4unctional 8ependency pada primary key
ebuah tabel tidak memenuhi 'N4, jika ada atributyang ketergantungannya (4unctional 8ependency)hanya bersi$at parsial saja (hanya tergantung padasebagian dari primary key)
Jika terdapat atribut yang tidak memilikiketergantungan terhadap primary key, maka atributtersebut harus dipindah atau dihilangkan
8/16/2019 08 Normalisasi Database
21/24
21/29
Contoh
3abel berikut memenuhi 1N4 tapi tidak termasuk 'N42
NIM Nama Alamat Mk_kode mk_nama mk_sks nihuruf
• 3idak memenuhi 'N4, karena ENM, mk;kodeF yangdianggap sebagai primary key sedangkan2
ENM, mk;kodeF mhs;nama
ENM, mk;kodeF mhs;alamat
ENM, mk;kodeF mk;nama
ENM, mk;kodeF mk;sks
ENM, mk;kodeF nihuru$
• 3abel di atas perlu didekomposisi menjadi beberapa tabel
yang memenuhi syarat 'N4
8/16/2019 08 Normalisasi Database
22/24
22/29
Contoh
4unctional dependencynya sbb2ENM, mk;kodeF nihuru$($d1)
NM Emhs;nama, mhs;alamatF
($d')
Mk;kode Emk;nama, mk;sksF
($d+)
$d1 (NM, mk;kode, nihuru$) 3abel Nilai
$d' (NM, mhs;nama, mhs;alamat) 3abel Mahasisa
$d+ (mk;kode, mk;nama, mk;sks) 3abel MataKuliah
8/16/2019 08 Normalisasi Database
23/24
23/29
#entuk Normal Tahap *etiga %+rd
Normal !orm '+N!(
&entuk normal +N4 terpenuhi jika telahmemenuhi bentuk 'N4, dan jika tidak ada atributnon primary ey yang memiliki ketergantunganterhadap atribut non primary ey yang lainnya/
8/16/2019 08 Normalisasi Database
24/24
24/29
Contoh
3abel berikut memenuhi 'N4, tapi tidak memenuhi +N42
NIP Nama Alm_Jalan Alm_Kota Alm_Proinsi Alm_Kode!os
Pegawai
karena masih terdapat atribut non primary ey (yakni alm_kota
dan alm_Proinsi) yang memiliki ketergantungan terhadap atribut
non primary ey yang lain (yakni alm_kode!os)2
alm;kodepos Ealm;Pro9insi, alm;kotaF
ehingga tabel tersebut perlu didekomposisi menjadi2Pegaai (NP, nama, alm;jalan,
alm;kodepos)
Kodepos (alm;kodepos, alm;pro9insi,
alm;kota)