Uploaded by User82873

Bagian 7 Normalisasi

advertisement
ILK 2210
SISTEM MANAJEMEN
DATABASE
Normalisasi

Sasaran perancangan Database relasional:
◦
◦
◦
◦
◦

Menghasilkan himpunan skema relasi
Untuk menyimpan informasi tanpa redundansi.
Meningkatkan derajad konsistensi data
Dengan pemeliharaan integritas data dan
Memudahkan pengguna mencari informasi yang dikehendaki
Untuk mencapai sasaran :
◦ Memerlukan informasi tambahan dari kondisi objek yang
dimodelkan.
◦ Mencari kebergantungan fungsian (functional dependency)
◦ Merancang relasi menjadi bentuk normal (normal form)
 Relasi
yang terstruktur dengan baik:
Mengandung redudansi dalam jumlah minimal
Mengijinkan pengguna menyisipkan,memodifikasi
serta menghapus baris-baris (rekod)
Tanpa menimbulkan kesalahan atau inkonsistensi
data.
 Redundansi
pada tabel dapat menghasilkan
inkonsistensi (anomali).
StaffBranch
staffNo sName
position
salary
branchN
o
bAddress
SL21
SG37
SG14
SA9
SG5
SL41
Manager
Assistant
Supervisor
Assistant
Manager
Assistant
30000
12000
18000
9000
24000
9000
B005
B003
B003
B007
B003
B005
22 Deer Rd, London
163 Main St, Glasgow
163 Main St, Glasgow
16 Argyll St,Aberdeen
163 Main St, Glasgow
22 Deer Rd, London
John White
Ann Beech
David Ford
Mary Howe
Susan Brand
Julie Lee
Staff
staffNo
sName
position
salary
branchNo
SL21
SG37
SG14
SA9
SG5
SL41
John White
Ann Beech
David Ford
Mary Howe
Susan Brand
Julie Lee
Manager
Assistant
Supervisor
Assistant
Manager
Assistant
30000
12000
18000
9000
24000
9000
B005
B003
B003
B007
B003
B005
Branch
branchNo
B005
B007
B003
bAddress
22,Deer Rd, London
16,Argyll St,Aberdeen
163, Main St, Glasgow
3 Jenis Anomali :
Anomali penyisipan (insert anomaly);
 Keadaan dimana akan terjadi kesalahan pada saat
pengguna melakukan penyisipan data
Anomali penghapusan (deleting anomaly);
 Keadaan dimana akan terjadi kesalahan pada saat
pengguna melakukan penghapusan data pada tabel
Anomali Modifikasi (modification anomaly);
 Keadaan dimana akan terjadi kesalahan pada saat
pengguna melakukan modifikasi data

Contoh: Skema Relasi mahasiswa_nilai
Atribut
Semantik dan Domain
NIM
Setiap mahasiswa diberi satu nomer yang unik tdd 5: Char Utkmhsw
perempuan diawali dengan P, Lelaki dengan L.
•
NamaMhs
Nama Mahasiswa :char
Major
Bidang pengkhususan(unik):Char
SKSLulus
Jumlah SKS yang diperlukan untuk lulus:Integer
KodeMKul
Kode Matakuliah (unik) untuk setiap matakuliah:Char
NamaMkul
Nama Matakuliah:Char
SKS
Jumlah SKS:Integer
Nilai
Nilai yang diperoleh untuk satu matakuliah:Decimal
Organizational / Enterprise Constraint:
- Seorang mahasiswa boleh mengambil lebih dari satu matakuliah
- Seorang mahasiswa harus mempunyai hanya satu major sebagai
pengkhususan
- Setiap major memiliki syarat jumlah sks yang diperlukan untuk lulus
Bentuk Tidak Normal (Unnormalized Form);
- Tabel/relasi tsb terdiri dari satu kelompok data yang berulang
- Nilai atribut pada tiap tuple tidak atomic (nilai tunggal)
NIM
NamaMhs
P1050
Anita
L2115
Hendri
Major
Ilmu Komputer
Sistem Informasi
SKSLulus
KodeMkul
118
SK001
125
NamaMkul
SKS
Nilai
P.Tek.Informasi
2
80
SK002
Algoritma &
Pemrograman
4
75
SM100
Sistem Informasi
4
85
Tabel Tidak Normal (Unnormalized Table)
Bentuk Normal Pertama (1NF)
 Tabel/relasi dalam bentuk normal pertama :
 jika setiap atribut pada tuple memiliki nilai atomic (nilai tunggal)
 Untuk
menukarkan bentuk tidak normal kedalam bentuk
normal :
1.Sisipkan data yang tidak berulang kedalam kolomkolom bagi setiap baris tuple yang nilainya
berulang
1.Tetapkan satu kunci primer bagi tabel normal

Tabel dalam bentuk normal
NIM
NamaMhs
P1050
Anita
P1050
L2115
Major
SKS
Nilai
P.Tek.Informasi
2
80
SK002
Algoritma &
Pemrograman
4
75
SM100
Sistem Informasi
4
85
SKSLulus
KodeMkul
Ilmu Komputer
118
SK001
Anita
Ilmu Komputer
118
Hendri
Sistem Informasi
125
NamaMkul
Kebergantungan Fungsian
(Functional Dependency)
•
Atribut B Bergantung Fungsian (BF) pada atribut
A j.h.j untuk setiap nilai A tertentu pasti akan
dapatkan nilai B yang sama.
Relasi Mahasiswa_Nilai
NIM
NamaMhs
Major
SKSLulus KodeMkul NamaMKul
SKS
Nilai
P1050
Anita
Ilmu Komputer
118
SK001
P.Tek.Informasi
2
80
P1050
Anita
Ilmu Komputer
118
SK002
Algoritma &
Pemrograman
4
75
L2115
Hendri
Sistem Informasi
125
SM100
Sistem Informasi
4
85
L4213
Fahmi
Software
Engineering
130
KP222
C++
4
70
P2020
Sarita
Sistem Informasi
125
SM100
Sistem Informasi
4
60
P4000
Dewi
Sistem Informasi
125
SM100
Sistem Informasi
4
65
Instansiasi Relasi Mahasiswa_Nilai
Dalam Relasi Mahasiswa_Nilai:
(NamaMhs,Major,SKSLulus)
NIM 
KodeMkul  (NamaMkul,SKS)

Major 
SKSLulus
(NIM,KodeMkul) Nilai
NamaMhs
NIM
Major
SKSLulus
Nilai
NamaMkul
KodeMkul
SKS
NIM
KodeMkul
NamaMhs
Major
SKSLulus
NamaMkul
SKS
Nilai
KF1
Kebergantungan
Sebagian
KF2
Kunci
primer
KF3
KF4
Kebergantungan
Sebagian
Kebergantungan
Transitif
Diagram Kebergantungan Fungsian
Kebergantungan Fungsian Penuh
(KFP)

Jika A dan B adalah atribut relasi R. B dikatakan
Bergantung Fungsian Penuh (BFP) atas A jika B BF
terhadap A tetapi tidak pada mana-mana subset A.
X  X, x bukan subset proper x
(X,Y) X , x subset proper (x,y)
KFP melibatkan penentu tunggal.
KFS (K.Fungsian Sebagian); jika KF melibatkan
penentu lebih dari 1 atribut
Bentuk Normal Kedua (2NF)
•
Sebuah relasi berada dalam 2NF jika ia berada pada 1NF
dan semua atribut bukan kunci Bergantung Fungsian
Penuh (BFP) atas kunci primer (KP).
•
1NF  2NF:
1.
2.
3.
4.
Buat List semua KF
Tentukan Kunci Primer (KP) relasi R dan subset dari KP tsb
Dekomposisi.Kelompokkan semua atribut (a) yang BFP pada
KP kedalam satu relasi bersama sama dengan KP.Hasilnya R0
(p,a)
Kelompokkan semua atribut yang Bergantung Fungsian
Sebagian (BFS) atas KP dalam satu relasi bersama dengan
salinan atribut subset KP dimana atribut tsb BF padanya.
R1(p,a), R2(p2,a2)…Rn(pn ,, an)
1.
KF lihat pada diagram KF sebelumnya
2.
Kunci Primer pada Relasi mahasiswa_nilai :
NIM + KodeMkul
3.
Dekomposisi Relasi:
GRED (NIM,KodeMkul,Nilai)
MAHASISWA(NIM,NamaMhs,Major,SKSLulus)
MKULIAH (KodeMkul,NamaMkul,SKS)
MKULIAH
KodeMkul
NamaMKul
SKS
SK001
P.Tek.Informasi
2
SK002
Algoritma&Pemrograman
4
SM100
Sistem Informasi
4
KP222
C++
4
GRED
NIM
KodeMkul
Nilai
P1050
SK001
80
P1050
SK002
75
L2115
SM100
85
L4213
KP222
85
P2020
SM100
70
P4000
SM100
60
MAHASISWA
NIM
NamaMhs
Major
SKSLulus
P1050
Anita
Ilmu Komputer
118
L2115
Hendri
Sistem Informasit
125
L4213
Fahmi
Software
Engineering
130
P2020
Zarina
Ilmu Komputer
125
P4000
Sarita
Sistem Informasi
125
Check Anomali pada relasi yang baru diatas
KebergantunganTransitif
(KT)

Terdapat sekurang-kurangnya 3 atribut A,B,C
dalam satu relasi sehingga C BF atas B, B
BF pada A maka C BF pada A secara
transitif melalui B, dengan syarat A tidak BF
kepada B atau C.
A  B, B C, makaAC
Bentuk Normal Ketiga (3NF)

Semua relasi berada dalam 3NF jika ia berada dalam
2NF dan tidak ada atribut bukan KP Bergantung
Transitif (BT) pada KP.

1.
2.
Dekomposisi 2NF-3NF:
Cari KT dan tetapkan penentu yang bukan KP .
Kelompokkan atribut yang BT bersama dengan satu
salinan atribut penentu pada relasi baru.
Kelompokkan atribut tunggal menjadi satu relasi
baru
Bagi setiap relasi R dengan atributA,B,C ,AB dan
B C .Uraikan relasi R menjadi R1, dan R2.
Dimana R1 (A,B) dan R2(B,C).
3.
4.
NIM
Major
NamaMhs
SKSLulus
Kebergantungan Transitif (KT)
1.
2.
Kebergantungan Transitif (KT) yaitu :
NIM
 (NamaMhs,Major)
Major  SKSLulus
Relasi baru yang dihasilkan:
PENGKHUSUSAN (Major, SKSLulus)
MHS_PENGKHUSUSAN(NIM, NamaMhs, Major)
MKULIAH
KodeMkul
NamaMKul
SKS
SK001
P.Tek.Informasi
2
SK002
Algoritma&Pemrograman
4
SM100
Sistem Informasi
4
KP222
C++
4
GRED
NIM
KodeMkul
Nilai
P1050
SK001
80
P1050
SK002
75
L2115
SM100
85
L4213
KP222
85
P2020
SM100
70
P4000
SM100
60
MHS_PENGKHUSUSAN
NIM
NamaMhs
PENGKHUSUSAN
Major
Major
SKSLulus
P1050
Anita
Ilmu Komputer
Ilmu Komputer
118
L2115
Hendri
Sistem Informasi
Sistem Informasi
125
L4213
Fahmi
Software
Engineering
Software
Engineering
130
P2020
Zarina
Sistem Informasi
P4000
Sarita
Sistem Informasi
Check Anomali untuk tabel diatas.

Maka Relasi mahasiswa_nilai yang dihasilkan:
MHS_Pengkhususan (NIM,NamaMhs,Major)
MKULIAH (KodeMkul, NamaMKul, SKS)
PENGKHUSUSAN (Major,SKSLulus)
GRED (NIM,KodeMkul,Nilai)
1NF
2NF
Mahasiswa_Nilai
3NF
GRED
GRED
MKULIAH
MKULIAH
MHS_PENGKHUSUSAN
MAHASISWA
PENGKHUSUSAN
Hilangkan
Kebergantungan
Sebagian
Hilangkan
Kebergantungan
Transitif
Boyce-Codd Normal Form (BCNF)

Sebuah relasi adalah dalam BCNF hanya jika setiap penentu adalah
kunci calon (candidate key).

Perhatikan:
 Untuk relasi yang memiliki hanya satu kunci calon, 3NF setara dengan BCNF.
 Jika sebuah relasi yang memiliki hanya satu kunci calon, dan berada dalam 3NF,
secara otomatis ia juga dalam BCNF.
 Kemungkinan sbh relasi tidak memenuhi syarat BCNF jarang berlaku, karena
memerlukan 3 keadaan a.l:
 Terdapat dua atau lebih kunci calon
 Dua kunci calon adalah kunci komposit
 Dua kunci calon tersebut beririsan  sekurang-kurangnya ada satu atribut yang
sama.
3NF  BCNF
Contoh:
 Skema relasi DOSEN_RISET sbb:
DOSEN_RISET (NIP, NIM,No_Riset)
 Semua atribut unik

 Batasan Organisasi:
 Seorang dosen boleh membimbing (supervisi) hanya
satu riset.
 Seorang mhsw boleh membuat lbh dari 1 riset.
 Satu riset boleh dijalankan oleh lebih dari 1 mhs dan
boleh dibimbing lebih dari 1 orang dosen.
 Seorang pelajar dibimbing oleh hanya 1 dosen untuk
satu riset.
3NFBCNF

Oleh karena:
 Seorang dosen boleh membimbing hanya satu riset, maka:
NIP menentukan No_Riset.
 Satu riset boleh dijalankan oleh lebih dari seorang
mahasiswa dan seorang mahasiswa boleh menjalankan lebih
dari satu riset, maka No_Riset dan NIM masing-masing
bukan penentu.
 Tapi, dengan mengetahui No_Riset dan NIM mhs maka kita
dapat mengetahui NIP dosen yang membimbing riset tsb.
 Mengetahui NIM dan NIP, maka kita dapat mengetahui riset
(No_Riset) yg sedang dibimbing seorang dosen.
Dari deskripsi diatas:

Untuk relasi DOSEN_RISET:
 Kunci Calon : (NIP+NIM),(No_Riset + NIM)
 Kunci Primer: (No_Riset + NIM)
 KF lain
: NIP  No_Riset
Diagram KF:
No_Riset
NIP
NIM

Contoh Instansiasi untuk relasi DOSEN_RISET:
NIP
No_Riset
NIM
D1
R1
M1
D1
D2
R1
R2
M2
M1
D3
R3
M2
D4
R3
M1
D5
R4
M3

Kedua kunci calon adalah kunci komposit dengan
NIM merupakan atribut kunci yang beririsan.
Relasi DOSEN_RISET :
 dalam 3NF  tidak ada kebergantungan transitif.

Tetapi tidak dalam BCNF karena NIP adalah
penentu bagi No_Riset (NIPNo_Riset),
sedangkan NIP bukan kunci calon.
No_Riset
NIP
NIM
• Diagram KF diatas:
– No_Riset bergantung kepada NIP
– Subset dari atribut kunci yaitu No_Riset BF kepada
atribut bukan kunci (NIP).
– Periksa Anomali pada relasi DOSEN_RISET.
NIP
No_Riset
NIM
D1
D1
R1
R1
M1
M2
D2
R2
M1
D3
R3
M2
D4
R3
M1
D5
R4
M3

Relasi diatas dapat dipecahkan (dekomposisi) menjadi 2 relasi
untuk menghilangkan anomali.

Relasi baru yang terbentuk tetap mempertimbangkan KF yang
sudah ada.

Dua relasi yang dihasilkan:
RISET_MHS (No_Riset,NIM)
DOSEN (NIP,No_Riset)
RISET
DOSEN
No_Riset
NIM
NIP
No_Riset
R1
M1
D1
R1
R1
M2
D2
R2
R2
M1
D3
R3
R3
M2
D4
R3
R3
M1
D5
R4
R4
M3
Periksa Anomali dari tabel diatas

Dekomposisi suatu relasi kepada bentuk normal
yang lebih tinggi tidak selalu menyelesaikan semua
masalah.

Mungkin akan timbul satu masalah baru.

Dalam cth kasus ini, apabila kita gabungkan (join)
dua tabel diatas untuk memperoleh tabel asal,
kemungkinan akan menyalahi batasan yang sudah
ditentukan sebelumnya.
•
Dari penggabungan tabel kedalam
bentuk asal
didapati adanya penyalahan terhadap batasan
organisasi.
•
Yaitu: Seorang mahasiswa tidak boleh membuat riset
yang sama dengan bimbingan dua dosen yang
berbeda.
•
Dekomposisi relasi DOSEN_RISET kepada relasi
DOSEN dan relasi RISET menyebabkan batasan
tersebut tidak dapat diamati lagi.
•
Harus dihindari supaya tidak ada informasi yang
hilang
Kesimpulan

Tidak semua relasi harus ditukarkan kedalam
bentuk BCNF

Walaupun relasi dalam BCNF dapat diperoleh
tetapi tidak selamanya itu diinginkan.

Tidak ada patokan dasar dalam normalisasi.

Normalisasi terus dilakukan selagi kita masih menemukan
adanya anomali-anomali dan juga adanya pelanggaran
terhadap batasan yang ditentukan oleh organisasi
(Enterprise/Organizational Constraint)
Perhatikan Tabel dibawah ini
Mahasiswa_Aktivitas
NamaMhs
NIM
Kelas
NamaKelab KetuaKelab HariLatihan
Karim
L001
1A
Memanah
Lim
Rabu
Sally
P201
2B
Menjahit
Sally
Senin
Sam
L002
1A
Tinju
Chandra
Senin
Tri
P013
2B
Memanah
Lim
Rabu
Jalil
L215
3C
Atletik
Ramli
Sabtu
Tri
L262
6A
Memanah
Lim
Rabu
Soal Latihan:
Diberi satu contoh instansiasi bagi relasi Mahasiswa_AKTIVITAS seperti
gambar sebelumnya. Anggapkan seorang mahasiswa hanya diperbolehkan
menganggotai satu kelab saja.
Jawab soal-soal berikut:
(a) Tunjukkan semua bentuk kebergantungan fungsian yang ada dalam
Mahasiswa_AKTIVITAS.
(b) Tunjukkan kunci primer bagi Mahasiswa_AKTIVITAS dan jelaskan
alasan anda.
(c) Adakah Mahasiswa_AKTIVITAS menghadapi masalah anomali
update? Jelaskan.
(d) Apakah bentuk normal relasi Mahasiswa_AKTIVITAS.
(e) Dekomposisikan relasi Mahasiswa_AKTIVITAS kedalam bentuk
normal yang lebih
tinggi dan tunjukkan bahwa masalah anomali
update telah dapat diatasi
oleh dekomposisi tsb.
Download