Pertemuan VII Normalization (1) Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan Caca E. Supriana, S.Si.,MT.
[email protected] i id
2014
Normalisasi y Proses normalisasi adalah proses menganalisa dan
memperbaiki skema relasi menggunakan data atribut untuk memperoleh properti properti‐properti properti skema y relasi yang baik menjadi j bentuk normal lebih tinggi
sehingga dapat: y Mengotimalisasi redundansi y Menghilangkan anomali
2
Normalisasi y Suatu proses untuk mengurangi redundancy pada
suatu tabel/obyek/entitas sehingga mudah dimodifikasi. y Biasanya melibatkan pembagian tabel menjadi dua atau lebih tabel dan menjelaskan hubungan diantara tabel. b l y Tujuannya adalah untuk mengisolasi data sehingga penambahan, pengurangan, dan modifikasi dari atribut dapat dilakukan pada satu tabel dan selanjutnya dikembangkan keseluruh database melalui relasi yang ada. yang ada 3
Redundancy y Pengulangan/duplikasi data yang tidak perlu. y Redundansi tidak dapat dihilangkan sama sekali
karena berguna untuk integritas referensial k b k i i f i l yang menghubungkan satu field pada suatu tabel dengan field lain pada tabel yang berbeda field lain pada tabel yang berbeda.
4
Contoh Redundansi
Tabel KRS NIM
| |
Kode_MK
Nama_MK
Nilai
200543423
PS-4533
Perancangan Sistem
A
200512345
PS-4533
Perancangan Sistem
B
200534632
PS-4533
Perancangan Sistem
B
200595732
PS-4533
Perancangan Sistem
A
200634123
BD 5452 BD-5452
B i D Basis Data t
B
200612367
BD-5452
Basis Data
B
200691245
BD-5452
Basis Data
A
200736512
PG-3465
Pemrograman
B
Tabel diatas memiliki redundansi. Kolom Kode_MK dan Nama_MK memiliki data yang sama (berulang-ulang). 5
Anomali y Anomali pada dasarnya adalah ketidak‐konsistenan
(inkonsistensi) data. y Anomali bisa terlihat pada saat melakukan perubahan, A li bi lih d l k k b h penghapusan dan penambahan data.
6
Contoh Anomali (1) Tabel KRS NIM
|
Kode_MK
Nama_MK
Nilai
200543423
PS-4533
Perancangan Sistem
A
200512345
PS-4533
Perancangan Sistem
B
200534632
PS-4533
Perancangan Sistem
B
200534632
BD-5630
Sistem Basis Data
A
200634123
BD-5452
Basis Data
B
200612367
BD 5452 BD-5452
Basis Data
B
200691245
BD-5452
Basis Data
A
200691245
PG-3465
Pemrograman
B
Misalkan pada tabel diatas dilakukan perubahan data pada record ke 5, data nama mata kuliah basis data diganti menjadi perancangan g basis data.
7
Contoh Anomali (2) Tabel KRS NIM
|
Kode_MK
Nama_MK
Nilai
200543423
PS-4533
Perancangan Sistem
A
200512345
PS-4533
Perancangan Sistem
B
200534632
PS-4533
Perancangan Sistem
B
200534632
BD-5630
Sistem Basis Data
A
200634123
BD-5452
Perancangan Basis Data
B
200612367
BD 5452 BD-5452
Basis Data
B
200691245
BD-5452
Basis Data
A
200691245
PG-3465
Pemrograman
B
Pada tabel diatas akan terjadi ketidak ketidak-konsistenan konsistenan pada record 5, 6 dan 7. yaitu record Kode_MK = BD-5452 berelasi dengan dua Nama_MK yang berbeda (Perancangan basis data dengan Basis data). data) 8
y Solusi : Normalisasi y Melakukan dekomposisi dengan menentukan
ketergantungan fungsional (Functional dependency). y Dependensi : suatu hubungan dimana perubahan pada satu tabel akan mempengaruhi tabel yang lain, dimana salah satu tabel bergantung pada tabel yang lain. l h t t b l b t d t b l l i y Contoh ketergantungan fungsional : g g g
Ketergantungan fungsional pada tabel KRS Kode_MK Æ Nama_MK Nim, Kode_MK Æ Nilai 9
Dekomposisi |
Berdasarkan ketergantungan fungsional tersebut, maka tabel KRS dapat didekomposisi menjadi 2 tabel
Kode_M K
Nama_MK
PS-4533
Perancangan Sistem
BD-5630
Sistem Basis Data
BD-5452
Perancangan Basis Data
PG-3465
Pemrograman
NIM
Kode MK Kode_MK
Nilai
200543423
PS-4533
A
200512345
PS-4533
B
200534632
PS-4533
B
200534632
BD-5630
A
200634123
BD-5452
B
200612367
BD-5452
B
200691245
BD 5452 BD-5452
A
200691245
PG-3465
B 10
y Dekomposisi tabel dapat mengurangi redudansi yang
ada dan menghilangkan anomali y Perancangan melalui proses normalisasi mempunyai keuntungan‐keuntungan sebagai berikut : y Meminimalkan ukuran penyimpanan yang diperlukan
untuk penyimpanan data. k d y Meminimalkan resiko inkonsistensi data pada basis data. y Meminimalkan kemungkinan anomaly pembaruan. y Memaksimalkan stabilitas struktur data.
11
y
j p g Tujuan proses normalisasi adalah mengkonversi relasi menjadi bentuk normal lebih tinggi.
y
Terdapat beragam tingkat bentuk normal, yaitu: 1. 2. 3. 4. 5. 6.
Bentuk normal pertama (1NF) Bentuk normal kedua (2NF) ( ) Bentuk normal ketiga (3NF) Bentuk normal Boyce‐Codd (BCNF) y ( ) Bentuk normal keempat (4NF) Bentuk normal kelima (5NF) (5 ) 12
y Bentuk normal pertama (1NF) untuk
menghilangkan atribut bernilai jamak. y Bentuk normal kedua (2NF) untuk menghilangkan kebergantungan parsial. i l y Bentuk normal ketiga (3NF) untuk menghilangkan hil k kebergantungan k b transitif. 13
y Bentuk normal Boyce‐Codd (BCNF) untuk
menghilangkan anomaly tersisa disebabkan kebergantungan fungsional. fungsional y Bentuk normal keempat (4NF) untuk menghilangkan kebergantungan nilai jamak. y Bentuk normal kelima (5NF) untuk 5 menghilangkan anomaly tersisa.
14
y Tiga bentuk normal pertama berkaitan dengan
kebergantungan fungsional. y Sementara S i bentuk itu b k keempat k d kelima dan k li b k i berkaitan dengan redundansi yang disebabkan kebergantungan banyak nilai (multi (multi‐valued dependencies) valued dependencies).
15
1NF y y Syarat 1NF adalah : y setiap atribut harus bersifat atomik, artinya, setiap atribut merupakan unsur terkecil dari identitas entitas (tidak perlu dipecah pecah lagi) (tidak perlu dipecah‐pecah lagi) y semua nilai atributnya adalah sederhana, bukan atribut komposit (composite) dan bukan atribut bernilai banyak (multi valued) banyak (multi‐valued). y Menghilangkan repeating group data (kelompok data yang berulang).
16
Contoh tabel yang termasuk dalam 1NF |
Pada gambar disamping, atribut nilai bersifat tunggal untuk setiap kombinasi atribut NIM dan atribut Kode_MK tertentu.
|
NIM
Kode_MK
Nilai
200543423
PS-4533 PS 4533
A
200512345
PS-4533
B
200534632
PS-4533
B
200595732
BD-5630
A
200634123
BD-5452
B
200612367
BD-5452
B
200691245
BD-5452
A
200736512
PG-3465
B
Kombinasi NIM dan Kode_MK dapat dijadikan sebagai kunci primer untuk menentukan nilai ( (penanda) d ) 17
Contoh lain 1NF |
Contoh : akan kita periksa atribut “NAMA,” apakah atribut tersebut sudah atomik ?
Kode_Pe g
Nama
Departeme n
200512345
Tukul Rahwana
Marketing
200534632
Tri Wahyuni
Marketing
200595732
Dedi Gumilang
IT
200634123
Benny Mulyadi
IT
y Misalkan salah satu isi atribut NAMA adalah “Tukul Rahwana,” jika
nama itu selamanya akan digunakan demikian, maka atribut tersebut nama itu selamanya akan digunakan demikian maka atribut tersebut sudah atomik. Tetapi, jika nama itu suatu saat harus dicetak menjadi “Rahwana, Tukul,” maka atribut NAMA tersebut belum atomik. Bagaimana mencetak “Tukul Rahwana” menjadi “Rahwana Tukul” ?. y Jadi, jika di “negara barat,” biasanya atribut nama dipecah‐pecah menjadi first name (FNAME), middle name (MNAME), dan last name (LNAME), karena memang nama mereka sering dibolak‐balik.
18
y Kesimpulan contoh : y Tabel Pegawai dapat dikatakan telah berada pada bentuk Normal ke 1 bila atribut nama akan tetap bentuk Normal ke 1, bila atribut nama akan tetap dipergunakan dalam bentuk seperti itu. y Apabila atribut (field) nama akan dipergunakan dengan membedakannya menjadi nama depan dan nama belakang, maka akan lebih baik jika field nama dijadikan dua field.
19
Contoh 1NF
y Coba perhatikan tabel
disamping ini. Apakah disamping ini Apakah tabel Member List ini sudah termasuk dalam 1NF ?
20
Contoh 1NF (2)
y Tabel member list memiliki tipe atribut multi‐valued y Sehingga tabel member list gg harus didekomposisikan menjadi 2 tabel. p j y Antara tabel member dan database direlasikan menggunakan atribut MID
yang merupakan primary‐key pada tabel member dan foreign‐key pada tabel database
21
2NF y y Syarat 2NF : y telah memenuhi 1NF, y setiap atribut non key (bukan primary atau foreign key) harus tergantung secara fungsional g g g dengan atribut key‐ g y nya. y Relasi pada bentuk normal kedua harus tidak
menyimpan fakta‐fakta mengenai bagian kunci relasi. Bentuk normal kedua menghilangkan kebergantungan parsial dan masih memiliki anomali anomali yang parsial dan masih memiliki anomali‐anomali yang secara praktis tidak dapat diterima.
22
|
Pada gambar disamping, atribut Nilai memiliki ketergantungan fungsional dengan atribut NIM dan Kode_MK
|
NIM
Kode_MK
Nilai
200543423
PS-4533 PS 4533
A
200512345
PS-4533
B
200534632
PS-4533
B
200534632
BD-5630
A
200634123
BD-5452
B
200612367
BD-5452
B
200691245
BD-5452
A
200691245
PG-3465
B
Apabila ketergantungan tersebut diganti menjadi NIM dengan Nilai saja, maka akan terdapat k tid kb ketidakbenaran. 23
|
Dari gambar disamping terlihat bahwa Nilai tidak tergantung secara fungsional dengan NIM
|
NIM
Nilai
200543423
A
200512345
B
200534632
B
200534632
A
200634123
B
200612367
B
200691245
A
200691245
B
Kesimpulan : kombinasi NIM dengan Kode_MK menentukan Nilai seorang mahasiswa dengan NIM untuk t k mata t kuliah k li h ttertentu. t t 24
NIM
Kode_MK K d MK
Nama_Mhs N Mh
200543423
PS-4533
Juli
Perancangan Sistem
A
200512345
PS-4533
Gogon
Perancangan Sistem
B
200534632
PS-4533
Heru
Perancangan Sistem
B
200595732
BD-5630
Heni
Perancangan Basis Data
A
200634123
BD-5452 BD 5452
Yanita
Basis Data
B
200612367
BD-5452
Linda
Basis Data
B
200691245
BD-5452
Petruk
Basis Data
A
200736512
PG 3465 PG-3465
K k Koko
P Pemrograman
B
|
Nama_MK N MK
Nilai Nil i
Bagaimana g bila terdapat p tabel seperti p diatas. Apakah sudah memenuhi syarat 2NF ? 25
|
Pada tabel tersebut terdapat 2 atribut key :
NIM dan Kode_MK Kode MK Atribut non key memiliki ketergantungan : z Nama_mhs Æ NIM z Nama_Mk Nama Mk Æ Kode_Mk Kode Mk z Nilai Æ NIM dan Kode_Mk z
|
NIM
Kode_MK
Nama_Mhs
Nama_MK
Nilai
200543423
PS 4533 PS-4533
J li Juli
P Perancangan Si Sistem t
A
200512345
PS-4533
Gogon
Perancangan Sistem
B
200534632
PS-4533
Heru
Perancangan Sistem
B
200595732
BD-5630
Heni
g Basis Data Perancangan
A
200634123
BD-5452
Yanita
Basis Data
B
200612367
BD-5452
Linda
Basis Data
B
200691245
BD-5452
Petruk
Basis Data
A
200736512
PG-3465
Koko
Pemrograman
B
26
| |
Untuk memenuhi syarat 2NF, maka atribut non key harus memiliki ketergantungan fungsional dengan atribut key. Tabel harus dipisah menjadi tiga tabel yang memiliki atribut key d kketergantungan dan t t fungsional f i ld dengan atribut t ib t non kkey. NIM
Nama_Mhs
NIM
Kode_MK
Nilai
200543423
Juli
200543423
PS-4533
A
200512345
Gogon
200512345
PS-4533
B
200534632
Heru
200534632
PS-4533
B
200595732
Heni
200595732
BD-5630
200634123
Yanita
200634123
200612367
Linda
200691245 200736512
Kode MK Kode_MK
Nama MK Nama_MK
PS-4533
Perancangan Sistem
BD-5630
Perancangan Basis Data
A
BD-5452
Basis Data
BD-5452
B
PG-3465
Pemrograman
200612367
BD-5452
B
Petruk
200691245
BD-5452 BD 5452
A
Koko
200736512
PG-3465
B 27
Contoh lain 2NF TTL_BYR NM_BRG NAMA
*NO_KWI
*NOPEG
*KD_BRG
KASIR
N
M
JUAL
**NOPEG
HARGA
BARANG
STOK
JENIS
ALAMAT MEREK **KD BRG **KD_BRG
JML BRG JML_BRG
y Di master file (entity) KASIR, kunci utamanya : NOPEG (nomor
pegawai) y Di master file Di t fil (entity) BARANG, kunci utamanya : KD_BRG (kode ( tit ) BARANG k i t KD BRG (k d barang) y Di transaction file (relationship) JUAL, y kunci utamanya : NO_KWI (nomor kwitansi) y kunci tamunya : NOPEG dan KD y _BRG
28
Contoh 2NF y Coba perhatikan tabel disamping ini. Apakah tabel ini Coba perhatikan tabel disamping ini Apakah tabel ini
sudah termasuk dalam 2NF ?
29
Contoh 2NF da a tabe database te dapat satu at but o ey ya tu at ibut y Didalam tabel database terdapat satu atribut non‐key yaitu atribut
database yang memiliki ketergantungan terhadap atribut DID dan MID. y Untuk memenuhi syarat 2NF, maka atribut database di set up sehingga tergantung dengan primary key yang sesuai yaitu atribut hi t t d i k i it t ib t DID.
30
Contoh 2NF y Untuk menghubungkan tabel database dengan tabel
member, maka dibuat suatu tabel baru yang memiliki atribut dari kedua tabel utama.
31
3NF y Syarat 3NF : y telah memenuhi 2NF y setiap atribut non key tidak boleh tergantung dengan atribut non key g y lainnya (tidak boleh y terjadi ketergantungan transitif).
32
y Pada tabel Member terdapat satu primary key yaitu
MID. y Atribut non key lainnya yaitu Name, Company terhubung dengan primary key MID. terhubung dengan primary key MID
33
y Atribut CompLoc sebagai atribut non‐key tidak tergantung
secara fungsional dengan primary key MID. f i l d i k MID y Atribut CompLoc (non‐key) memiliki ketergantungan dengan atribut Company (non‐key), ketergantungan antara non‐key dengan non‐key disebut ketergantungan transitif. dengan non‐key disebut ketergantungan transitif y Untuk mengatasi masalah ini, dibuat tabel baru yaitu tabel Company. 34
C t h l i 3NF Contoh lain 3NF NIM
Nama
Alamat
KodePos
Kota
12345
Didi
Jl. Mawar 23
65141
Malang
34924
Amir
Jl. Borobudur 12
65151
Malang
42345
M ll Melly
Jl Penggilingan Jl. P ili 9
13460
J k t Jakarta
54231
Tini
Jl. Malaka 2
13460
Jakarta
y Tabel diatas memiliki primary key NIM. y Atribut non key : Nama, Alamat, KodePos dan
Kota y Atribut Kota memiliki ketergantungan dengan atribut Kode Pos, bukan dengan primary key. 35
y Menurut aturan 3NF, atribut non key tidak boleh
memiliki ketergantungan dengan atribut non key (tidak boleh ada ketergantungan transitif) y Untuk mengatasi masalah ini, harus dibuat tabel baru dengan atribut Kota. Sebagai primary key digunakan atribut Kode Pos. NIM
Nama Alamat KodePos
12345
.…
…….
65141
34924
….
…….
65151
42345
….
…….
13460
54231
….
…….
13460
KodePos Kota 65141
M l Malang
65151
Malang
13460
Jakarta 36