NORMALISASI
k_doroedi@yahoo.com
fb: NDoro Edi
Page 1
Outline
• Latar belakang
• Anomali dan jenisnya
• Dependensi dan jenisnya
• Dekomposisi
• Bentuk Normal 1 (1NF)
• Bentuk Normal 2 (2NF)
• Bentuk Normal 3 (3NF)
• Bentuk Normal Boyce-Codd (BCNF)
• Bentuk Normal 4 (4NF)
• Bentuk Normal 5 (5NF)
Page 2
Mengapa kita perlu Normalisasi?
Page 3
Mengapa kita perlu Normalisasi? (2)
Page 4
Mengapa kita perlu Normalisasi? (3)
• Kegunaan:
– Dipakai sebagai metodologi untuk menciptakan
struktur tabel dalam basis data
– Dipakai sebagai perangkat verifikasi terhadap tabel-
tabel yang dihasilkan oleh metodologi lain (misalnya
E-R)
Page 5
Definisi Normalisasi
Page 7
Kasus Tabel Mahasiswa
Page 8
Masalah pada tabel Mahasiswa
Page 9
1. Anomali Update
Page 10
2. Anomali Insert
• Terjadi jika pada saat penambahan hendak dilakukan
ternyata ada elemen data yang masih kosong dan elemen
data tersebut justru menjadi kunci.
• Misalnya, saat ingin menambah data baru ke tabel
mahasiswa:
NRP : 1007
Nama : Budi
Alamat : Jl. Budisari
Hobby : ? (belum tahu)
• Tuple yang akan dibentuk: (1007, Budi, Jl. Budisari, NULL)
• Kolom Hobby merupakan bagian dari Primary Key, oleh
karena itu tidak boleh bernilai NULL. Hal ini melanggar
aturan Primary Key sehingga proses insert tidak akan
berhasil Page 11
3. Anomali Delete
Page 13
Dependencies
(Dependensi/Ketergantungan)
• Dependensi merupakan konsep yang mendasari normalisasi.
• Dependensi menjelaskan hubungan antar atribut, atau secara
lebih khusus menjelaskan nilai suatu atribut yang menentukan
nilai atribut lainnya.
• D
„ ependensi ini kelak menjadi acuan bagi pendekomposisian
data ke dalam bentuk yang paling efisien.
• D
„ ua hal penting yang digunakan untuk mendefinisikan bentuk-
bentuk normal:
– Kebergantungan(hubungan) di antara atribut-atribut relasi
– Kunci relasi
Kunci relasi adalah himpunan atribut yang nilai-nilainya dapat
mengidentifikasi baris-baris unik di relasi.
Page 14
Sintaks FD
Page 15
Contoh FD
Page 17
Tabel SHIPMENT
Page 18
Contoh Kasus FD
Page 19
Contoh Kasus FD (2)
Selain itu, terdapat juga beberapa FD yang lain, yaitu:
• „{ S#, P# } { QTY }
• „{ S#, P# } { CITY }
• „{ S#, P# } { CITY, QTY }
• „{ S#, P# } { S# }
• „{ S#, P# } { S#, P#, CITY, QTY }
• „{ QTY } { S# }
Page 20
Jenis-jenis Kebergantungan Fungsional
Page 21
1. Kebergantungan Fungsional Biasa
Page 22
2. Saling Bergantung (Kebergantungan Total)
• S
„ uatu atribut Y mempunyai dependensi total terhadap
atribut X (X dan Y saling bergantung) jika Y memiliki
dependensi fungsional terhadap X dan X mempunyai
dependensi fungsional terhadap Y.
Contoh:
• J„ ika suatu proyek mempunyai satu manajer dan masing-masing
manajer hanya mengelola satu proyek, maka pernyataan
kebergantungan fungsional yang ada adalah sebagai berikut:
IDManajer IDProyek
IDProyek IDManajer
atau kita singkat sbb:
IDManajer IDProyek
Page 23
3. Kebergantungan pada lebih dari satu atribut
• NRP NAMA
• „NAMA NO_HP
• „NRP NAMA NO_HP
• „Asumsi: Nama unik
Page 26
Proses Dekomposisi
Page 27
Sifat-sifat Dekomposisi
Page 28
Dekomposisi Tak Hilang
• D
„ ekomposisi ialah proses pemecahan sebuah relasi
menjadi dua relasi atau lebih.
• D
„ ekomposisi tak hilang artinya bahwa tidak ada
informasi yang hilang ketika relasi dipecah menjadi
relasi-relasi lain.
• „Contoh:
Page 29
Contoh Dekomposisi
Page 30
Bentuk Normal
• „ eori Normalisasi berasal dari konsep normal forms(bentuk normal). Normal
T
forms ini menyatakan tingkat redundansi yang terjadi pada suatu tabel.
• „ uatu tabel relasional dikatakan berada dalam bentuk normal apabila
S
memenuhi constraint tertentu.
• „Ada 6 bentuk normal yang telah didefinisikan:
– „Bentuk normal pertama (1NF) umum
• C
„ odd mendefinisikan bentuk normal pertama, kedua,
dan ketiga pada makalahnya di tahun 1970.
• B
„ entuk normal ketiga kemudian diperbaiki sehingga
mempunyai bentuk normal yang lebih baik yaitu
BCNF(Boyce-Codd) pada tahun 1974.
• F
„ agin memperkenalkan bentuk normal keempat pada
tahun 1977.
• P
„ ada tahun 1979, Fagin kemudian memperkenalkan
bentuk normal kelima.
Page 32
Kriteria Proses Normalisasi
• B
„ entuk normal pertama adalah ekivalen dengan definisi
model relasional.
• R
„ elation/tabel adalah berbentuk normal pertama jika semua
nilai atributnya adalah sederhana (bukan komposit)
• D
„ engan kata lain, suatu relasi dikatakan dalam bentuk normal
pertama jika dan hanya jika setiap atribut bernilai tunggal
untuk setiap baris (tidak memiliki atribut yang berulang).
• D
„ iubah ke dalam bentuk normal dengan cara membuat setiap
baris berisi kolom dengan jumlah yang sama dan setiap
kolom hanya mengandung satu nilai.
Page 34
Contoh A yang BUKAN 1NF
Tabel Pesanan
Page 35
Hasil Normalisasi Tahap 1
Tabel Pesanan
• T
„ abel Pesanan tidak dalam bentuk 1NF karena nilai
atribut isiPesanan bukan nilai sederhana, alias komposit.
• T
„ abel tersebut dapat menjadi 1NF dengan membuat
relasi tersebut menjadi sbb:
Page 36
Contoh B Untuk 1NF
Page 37
Hasil Contoh B Untuk 1NF
Page 38
Contoh C Untuk 1NF
Page 39
Hasil Contoh C Untuk 1NF
Page 40
Kesimpulan 1NF
Page 41
Bentuk Normal Kedua (2NF)
• S
„ uatu relasi berada dalam bentuk normal kedua jika dan
hanya jika:
– berada pada bentuk normal pertama, dan
– semua atribut bukan kunci memiliki dependensi sepenuhnya
terhadap kunci primer. Dengan kata lain, setiap atribut harus
bergantung pada kunci primer.
Page 42
Bentuk Normal Kedua (2NF)
• D
„ iubah ke 2NF dengan melakukan dekomposisi
terhadap relasi tersebut.
• D
„ apat dilakukan dengan menggambarkan diagram
dependensi fungsional terlebih dahulu.
• B
„ erdasarkan diagram ini, relasi dalam bentuk 1NF dapat
dipecah ke dalam sejumlah relasi.
Page 43
Contoh A Untuk 2NF
NIP nama
NIP jabatan
PK: NIP, nama, jabatan, keahlian
Page 44
Contoh A Untuk 2NF
• „NIP Nama
• „NIP Jabatan
• „NIP, Keahlian Lama„
Page 46
Contoh B Untuk 2NF
• „No_pesanan Tgl_pesanan
• „No_pesanan, Item Total
• „No_pesanan Total
Page 47
Hasil Contoh B Untuk 2NF
• „{NoPesanan, Item}
• {„NoPesanan}
• „No_pesanan tgl_pesanan
• „No_pesanan total
Page 48
Bentuk Normal Ketiga (3NF)
• D
„ iubah ke 2NF dengan melakukan dekomposisi
terhadap relasi tersebut.
• D
„ apat dilakukan dengan menggambarkan diagram
dependensi fungsional terlebih dahulu.
• B
„ erdasarkan diagram ini, relasi dalam bentuk 1NF dapat
dipecah ke dalam sejumlah relasi.
Page 49
Contoh 3NF
Page 51
Bentuk Normal Boyce-Codd (BCNF)
• 3
„ NF mencukupi apabila tabel hanya memiliki satu key.
Apabila tabel memiliki lebih dari satu key, maka bisa terjadi
masalah. Karena itu diperlukan BCNF.
• S
„ uatu relasi disebut memenuhi bentuk normal Boyce-Codd
jika dan hanya jika
sudah dalam bentuk 3NF, dan
semua penentu (determinan) adalah kunci kandidat (atribut
yang bersifat unik)
• B
„ CNF merupakan bentuk normal sebagai perbaikan terhadap
3NF; suatu relasi yang memenuhi BCNF selalu memenuhi
3NF tetapi tidak sebaliknya.
Page 52
Bentuk Normal Boyce-Codd (BCNF)
• C
„ ara mengkonversi relasi yang telah memenuhi 3NF ke
BCNF:
– carilah semua penentu (determinan)
– bila terdapat penentu yang bukan berupa kunci kandidat,
pisahkan relasi tersebut dan buat penentu tersebut sebagai
kunci primer.„
Page 53
Bentuk Normal Boyce-Codd (BCNF)
• 4 Langkah:
1. Tentukan semua kunci kandidat pada tabel tsb.
2. Tentukan semua dependensi fungsional pada tabel
tsb.
3. Tentukan apakah semua penentu merupakan kunci
kandidat?
4. Dekomposisi table tsb.„
Page 54
Contoh BCNF: Tabel Enrolment
Page 55
Contoh Kasus BCNF
• „Pada contoh tabel tsb, setiap dosen hanya mengajar satu
mata kuliah setiap semester namun dapat memiliki beberapa
sesi.
• „Jadi,
– „Dosen, semester mata kuliah
– „Mata kuliah, semester dosen
• „Kunci Kandidat:
– „{dosen, semester, sesi}
– „{mata kuliah, semester, sesi}
• K
„ ita masih memiliki masalah redudansi karena dosen untuk
setiap mata kuliah masih disimpan lebih dari sekali. Karena
itu diperlukan BCNF.
Page 56
Hasil Contoh BCNF
• „{Dosen, Semester}
• „Dosen, semester Kuliah
Page 57
Bentuk Normal Keempat (4NF)
• B
„ entuk normal keempat berkaitan dengan sifat
Ketergantungan Banyak Nilai (Mutlivalued
Dependency) pada suatu tabel yang merupakan
pengembangan dari Ketergantungan Fungsional.
Page 58
Bentuk Normal Kelima (5NF)
• B
„ entuk tahap kelima (nama lain dari Projeck-Join
Normal Form/PJNF) berkenaan dengan
Ketergantungan Relasi antar Tabel (Join
Dependency).
Page 59
Langkah-langkah Normalisasi
Page 60