Manajemen
DATAAdamMukharil Bachtiar, M.T.
Normalisasi
Pemahaman Normalisasi & Anomali
Teknik mendekomposisi satu tabel menjadi beberapa buah tabel agar tidak terjadi anomali pada tabel tersebut
apa itu anomali?
Anomali Penyisipan (Insert)
Apa yang terjadi jika B. Jerman ditambahkan ke Kursus?
No_Siswa Kursus Biaya
10 B. Inggris 60000
10 B. Perancis 80000
10 B. Jepang 70000
15 B. Inggris 60000
20 B. Jepang 60000
No_Siswa Kursus Biaya
10 B. Inggris 60000
10 B. Perancis 80000
10 B. Jepang 70000
15 B. Inggris 60000
20 B. Jepang 60000
B.Jerman 90000
Solusi Anomali Penyisipan (Insert)
No_Siswa Kursus Biaya
10 B. Inggris 60000
10 B. Perancis 80000
10 B. Jepang 70000
15 B. Inggris 60000
20 B. Jepang 60000
Kursus Biaya
B. Inggris 60000
B. Jepang 70000
B.Jerman 90000
No_Siswa ...
10 ..
15 ..
20 ..
No_Siswa Kursus
10 B. Inggris
.. ..
20 B. Jepang
Anomali Peremajaan (Update)
Pemasok Kota Barang JumlahKartika Jakarta Mouse 5Citra Bandung Monitor 2Yudi Medan CPU 2Citra Bandung Printer 1
Apa yang terjadi jika Citra pindah kota ke Bogor?
Solusi Anomali Peremajaan (Update)
Pemasok Kota Barang JumlahKartika Jakarta Mouse 5Citra Bandung Monitor 2Yudi Medan CPU 2Citra Bandung Printer 1
Pemasok Kota
Kartika JakartaCitra BandungYudi Medan
Pemasok Barang JumlahKartika Mouse 5Citra Monitor 2Yudi CPU 2Citra Printer 1
Anomali Penghapusan (Delete)
Apa yang terjadi jika No_Siswa 10 dihapus?
No_Siswa Kursus Biaya
10 B. Inggris 60000
10 B. Perancis 80000
10 B. Jepang 70000
15 B. Inggris 60000
20 B. Jepang 60000
No_Siswa Kursus Biaya
15 B. Inggris 60000
20 B. Jepang 60000
Solusi Anomali Penghapusan (Delete)
No_Siswa Kursus Biaya
10 B. Inggris 60000
10 B. Perancis 80000
10 B. Jepang 70000
15 B. Inggris 60000
20 B. Jepang 60000 Kursus Biaya
B. Inggris 60000
B. Jepang 70000
B.Jerman 90000
No_Siswa ...
15 ..
20 ..
No_Siswa Kursus
15 B. Inggris
20 B. Jepang
Semua solusi dari anomaliadalah memecah tabel,itulah normalisasi
Ada aturannya gapak?
Apakah memecahtabelnya boleh asal-
asalan?
tentu tidak, kan ada aturan
dependensi!!!
Pemahaman Dependensi
mulai dari istilah di
dependensi!!!
Menggambarkan relasi/hubungan, batasan, dan keterkaitan antara atribut-atribut dalam suatu relasi
No_KTP à NamaDeterminan/Penentu Dependent
Atribut No_KTP menentukan atribut Nama dan atribut Nama bergantung pada atribut No_KTP
Dependensi paling dasaradalah dependensifungsional
Dependensi Fungsional
Sebuah atribut berdependensi fungsional terhadap atributlainnya jika dan hanya jika satu nilai pada atribut
tersebut tepat dipetakan satu terhadap satu nilaidari atribut dependentnya
Pembeli Kota Barang JumlahP1 Yogyakarta B1 10P1 Yogyakarta B2 5P2 Jakarta B1 4P2 Jakarta B2 7P3 Solo B3 6P3 Solo B4 6
Pembeli à Kota{Pembeli, Barang} à Kota
Dependensi Fungsional
Selain dependensifungsional, ada 4 jenisdependensi lainnya, yaitu:
Dependensi Total
Atribut y memiliki dependensi fungsional total terhadap atribut x jika y berdependensi fungsional terhadap x
begitu juga sebaliknya (x ↔ y)
Dependensi Fungsional Total
Diasumsikan tidak pernah ada nama yang sama makaNo_Siswa ↔ Nama
No_Siswa Nama Alamat
A1 Budi Bandung
A2 Andi Bogor
A3 Ani Serang
A4 Dian Madura
A5 Andri Ciamis
DependensiFungsional Penuh
Atribut y memiliki dependensi fungsional penuh terhadap atribut x jika y berdependensi fungsional terhadap x
dan y hanya berdependensi fungsionalterhadap subset dari x
{x,y} à z
Dikatakan dependensi fungsional penuh jika z tidak hanya cukup bergantung pada x saja atau y saja
DependensiFungsional Sebagian
Atribut y memiliki dependensi fungsional sebagian terhadap atribut x jika Y berdependensi
fungsional terhadap X dan Y tidak berdependensi fungsional terhadap subset dari X
{x,y} à zx à z
Maka z berdependensi fungsional sebagian terhadap x
DependensiFungsional Transitif
Atribut z memiliki dependensi fungsional transitif terhadap atribut x jika y berdependensi fungsional
terhadap x dan z berdependensi fungsional terhadap y
x à yy à z
Jadi x à zMaka z berdependensi fungsional transitif terhadap x
Dependensi Fungsional Transitif
Kuliah à {Kampus, Waktu}Kampus à RuangKuliah à Waktu (Kuliah à Kampus à Waktu)
Kuliah Kampus Ruang WaktuRPL 5 5406 SeninBasis Data 4 4417 SelasaKalkulus 2 2505 RabuData Mining 1 1407 Kamis
Mari kita mulai
normalisasi!
Proses Normalisasi
Tabel PadaBasis Data
Penentuan Atribut
Bentuk Normal1 - BCNF
UnnormalizedForm
Dokumen Manual• Atribut bawaan (dari dokumen)• Atribut bentukan (dari aturan
bisnis atau asumsi)
Jenis Input
Bagian pada dokumen akan menjadi atribut apabila isian ataunilainya bersifat dinamis (data bisa berubah nilai)
Contoh Atribut
Contoh Nilai
Bentuk Normalisasi
BentukTidak
Normal
BentukNormal Pertama
BentukNormal Kedua
BentukNormal Ketiga
BCNFBentukNormal
Keempat
BentukNormal kelima
Jarang Digunakan kecuali jika masih ada anomali
Diberikan suatu kasusbentuk unnormalized
PROJ_NUM PROJ_NAME EMP_NUM EMP_NAME JOB_CLASS CHG_HOUR HOURS15 Evergreen 103 Juni E. Arbough Elect. Engineer 84.50 23.8
101 John G. News Database Engineer 105.00 19.4
105 Alice K. Johnson Database Engineer 105.00 35.7
106 William Smithfield Programmer 35.75 12.6
102 David H. Senior System Analyst 96.75 23.8
18 Amber Wave 114 Annelise Jones Application Designer 48.10 24.6
118 James J. Frommer General Support 18.36 45.3
104 Anne K. Ramoras System Analyst 96.75 32.4
112 Darlene M. Smithson DSS Analyst 45.95 44.0
22 Rolling Tide 105 Alice K. Johnson Database Desginer 105.00 64.7
104 Anne K. Ramoras System Analyst 96.75 48.4
113 Delbert K. Joenbrood Application Designer 48.10 23.6
111 Geoff B. Wabash Clerical Support 26.87 22.0
106 William Smithfield Programmer 35.75 12.8
25 Starflight 107 Maria D. Alonzo Programmer 35.75 24.6
115 Travis B. Bawangi System Analyst 96.75 45.8
101 John G. News Database Designer 105.00 56.3
114 Annelise Jones Application Designer 48.10 33.1
108 Ralph B. Washington System Analyst 96.75 23.6
118 James J. Frommer General Support 18.36 30.5
112 Darlene M. Smithson DSS Analyst 45.95 41.4
Bentuk normal pertama(1st normal form)
• Eliminasi nilai null pada repeating groups
• Identifikasi primary key (Suggestion)
• Identifikasi seluruh dependensi (Suggestion)
PROJ_NUM PROJ_NAME EMP_NUM EMP_NAME JOB_CLASS CHG_HOUR HOURS15 Evergreen 103 Juni E. Arbough Elect. Engineer 84.50 23.8
15 Evergreen 101 John G. News Database Designer 105.00 19.4
15 Evergreen 105 Alice K. Johnson Database Engineer 105.00 35.7
15 Evergreen 106 William Smithfield Programmer 35.75 12.6
15 Evergreen 102 David H. Senior System Analyst 96.75 23.8
18 Amber Wave 114 Annelise Jones Application Designer 48.10 24.6
18 Amber Wave 118 James J. Frommer General Support 18.36 45.3
18 Amber Wave 104 Anne K. Ramoras System Analyst 96.75 32.4
18 Amber Wave 112 Darlene M. Smithson DSS Analyst 45.95 44.0
22 Rolling Tide 105 Alice K. Johnson Database Designer 105.00 64.7
22 Rolling Tide 104 Anne K. Ramoras System Analyst 96.75 48.4
22 Rolling Tide 113 Delbert K. Joenbrood Application Designer 48.10 23.6
22 Rolling Tide 111 Geoff B. Wabash Clerical Support 26.87 22.0
22 Rolling Tide 106 William Smithfield Programmer 35.75 12.8
25 Starflight 107 Maria D. Alonzo Programmer 35.75 24.6
25 Starflight 115 Travis B. Bawangi System Analyst 96.75 45.8
25 Starflight 101 John G. News Database Designer 105.00 56.3
25 Starflight 114 Annelise Jones Application Designer 48.10 33.1
25 Starflight 108 Ralph B. Washington System Analyst 96.75 23.6
25 Starflight 118 James J. Frommer General Support 18.36 30.5
25 Starflight 112 Darlene M. Smithson DSS Analyst 45.95 41.4
Primary key:{PROJ_NUM,EMP_NUM} {PROJ_NUM,EMP_NUM} à PROJ_NAME, EMP_NAME, JOB_CLASS, CHG_HOUR, HOURS
Dependensi Fungsional Sebagian:PROJ_NUM à PROJ_NAMEEMP_NUM à EMP_NAME, JOB_CLASS, CHG_HOUR
Dependensi Fungsional Transitif:JOB_CLASS à CHG_HOUR
PROJ_NUM PROJ_NAME EMP_NUM EMP_NAME JOB_CLASS CHG_HOUR HOURS
Primary key
Partial DependencyPartial Dependency
TransitiveDependency
Bentuk normal kedua(2nd normal form)
• Pastikan tabel sudah dalam bentuk normal pertama
• Eliminasi depedensi fungsional sebagian
• Tentukan atribut yang berdepedensi terhadap atribut lain
PROJ_NUM PROJ_NAME
EMP_NUM EMP_NAME JOB_CLASS CHG_HOUR
HOURS
Nama tabel: PROJECT
PROJ_NUM à PROJ_NAME
Nama tabel: EMPLOYEE
EMP_NUM à EMP_NAME, JOB_CLASS, CHG_HOURS
JOB_CLASS à CHG_HOUR
PROJ_NUM EMP_NUM
{PROJ_NUM,EMP_NUM} à HOURSNama tabel: ASSIGNMENT
Nama tabel: PROJECT
Nama tabel: EMPLOYEE
Nama tabel: ASSIGNMENT
PROJ_NUM PROJ_NAME
15 Evergreen
18 Amber Wave
.. ..
EMP_NUM EMP_NAME JOB_CLASS CHG_HOUR101 John G. News Database Engineer 105.00
102 David H. Senior System Analyst 96.75
.. .. .. ..
PROJ_NUM EMP_NUM HOURS
15 103 23.8
15 101 19.4
.. .. ..
Tabel hasil normalisasi bentuk kedua (2nd form)
Bentuk normal ketiga(3rd normal form)
• Pastikan tabel sudah dalam bentuk normal kedua
• Eliminasi depedensi transitif
• Tentukan kembali depedensi antar atribut
PROJ_NUM PROJ_NAME EMP_NUM EMP_NAME JOB_CLASS
HOURS
Nama tabel: PROJECT
PROJ_NUM à PROJ_NAME
Nama tabel: EMPLOYEE
EMP_NUM à EMP_NAME, JOB_CLASS
JOB_CLASS à CHG_HOUR
PROJ_NUM EMP_NUM
{PROJ_NUM,EMP_NUM} à HOURS
Nama tabel: ASSIGNMENT
JOB_CLASS CHG_HOUR
Nama tabel: JOB
Nama tabel: PROJECT Nama tabel: EMPLOYEE
Nama tabel: ASSIGNMENT
PROJ_NUM PROJ_NAME
15 Evergreen
18 Amber Wave
.. ..
EMP_NUM EMP_NAME JOB_CLASS101 John G. News Database Engineer
102 David H. Senior System Analyst
.. .. ..
PROJ_NUM EMP_NUM HOURS
15 103 23.8
15 101 19.4
.. .. ..
JOB_CLASS CHG_HOURDatabase Engineer 105.00
System Analyst 96.75
.. ..
Nama tabel: JOB
Tabel hasil normalisasi bentuk ketiga (3rd form)
Bentuk normal Boyce-Codd(Boyce-Codd normal form)
• Pastikan tabel sudah dalam bentuk normal ketiga
• Hanya dilakukan jika dan hanya jika semua determinan
merupakan candidate key
CA B
{A,B} à C, DC à B
3rd normal form but not BCNF
D
DA C
{A,C} à D
3rd normal form and BCNF
BC
C à B
SISWA KURSUS TUTOR
Anwar B. Perancis Pierre
Anwar B. Inggris Richard
Budi B. Perancis Pierre
Cecep B. Inggris Suzanne
Ilustrasi tabel BCNFSISWA TUTOR
Anwar Pierre
Anwar Richard
Budi Pierre
Cecep Suzanne
TUTOR KURSUS
Pierre B. Perancis
Richard B. Inggris
Suzanne B. Inggris
{SISWA,KURSUS} à TUTORTUTOR à KURSUS
TUTOR à KURSUS
Relasi SISWA dengan TUTOR
Pada kasus sebelumnya, tabel sudah dalam bentuknormal ketiga dan BCNF
Latihan Normalisasi
Top Related