materi 5. normalisasi
DESCRIPTION
TRANSCRIPT
NORMALISASI
Lamhot Sitorus, M.Kom
Fakultas Ilmu Komputer Unika Santo Thomas SU
PengantarPerancangan basis data
diperlukan memperoleh basis data yang kompak dan efisien dalam penggunaan ruang penyimpanan, cepat dalam pengaksesan dan mudah dalam pemanipulasian (tambah, edit, hapus) data
09/04/2023 2Lamhot Sitorus / PengantarBasis Data
Pengantar Merancang basis data :
1. Menerapkan Normalisasi terhadap struktur tabel yang telah diketahui
2. Langsung membuat model Entity-Relationship
09/04/2023 Lamhot Sitorus / PengantarBasis Data
4
PengantarNormalisasi, perancang/desainer
basis data bertitik tolak dari situasi yang nyata rule
09/04/2023 Lamhot Sitorus / PengantarBasis Data
5
DependencyKetergantungan Fungsional
(Functional Dependency)Ketergantungan Fungsional
Sepenuhnya(Full Functional Dependency)
Ketergantungan Total (Total Dependent)
Ketergantungan Transitif (Transitive Dependency)
09/04/2023 Lamhot Sitorus / PengantarBasis Data
6
Dependency FungsionalSuatu atribut Y mempunyai
dependency fungsional terhadap atribut X jika dan hanya jika setiap nilai X berhubungan dengan sebuah nilai Y
X Y(X secara fungsional menentukan
Y)
Contoh :PESANAN_JUAL(Pembeli, Kota, Barang,
Jumah)
09/04/2023 Lamhot Sitorus / PengantarBasis Data
7
Dependency FungsionalPembeli Kota Barang Jumlah
P1 Yogya B1 10P1 Yogya B2 5P2 Solo B1 7P2 Solo B2 6P2 Solo B3 6P3 Klaten B3 7P3 Klaten B4 6
09/04/2023 Lamhot Sitorus / PengantarBasis Data
8
Dependency FungsionalPembeli KotaPembeli yang sama Kota juga
sama{Pembeli, Barang} Jumlah{Pembeli, Barang} Kota{Pembeli, Barang} {Jumlah,
Kota}
09/04/2023 Lamhot Sitorus / PengantarBasis Data
9
Dependency Fungsional SepenuhnyaSuatu atribut Y mempunyai
dependency fungsional penuh terhadapatribut X jika :◦Y mempunyai dependency
fungsional terhadap X◦Y tidak memiliki dependency
terhadap bagian dari XContoh : diketahui suatu Tabel
berikut :PELANGGAN(Kode_Pelanggan,
Nama, Kota, Nomor_Fax)
09/04/2023 Lamhot Sitorus / PengantarBasis Data
10
Dependency Fungsional Sepenuhnya
{Kode_Pelanggan, Kota} Nomor_FaxKode_Pelanggan Nomor_Fax
Nomor_Fax tidak dependency sepenuhnya terhadap {Kode_Pelanggan, Kota}
Nomor_Fax hanya dependency sepenuhnya terhadap Kode_Pelanggan
09/04/2023 Lamhot Sitorus / PengantarBasis Data
11
Dependency TotalSuatu atribut Y mempunyai
dependensi total terhadap atribut X, jika :◦Y memiliki dependensi fungsional
terhadap X◦X memiliki dependensi fungsional
terhadap Y
X Y
Contoh : perhatikan tabel berikut.
09/04/2023 Lamhot Sitorus / PengantarBasis Data
12
Dependency TotalKode_Pemas
okNama_Pemas
okKota
K1 Kartika Jakarta
C1 Citra Bandung
C2 Candra Jakarta
C3 Caca Medan
Kode_Pemasok Nama_Pemasok
09/04/2023 Lamhot Sitorus / PengantarBasis Data
13
Dependency TransitifAtribut Z mempunyai
dependency transitif terhadap atribut X , jika :◦Y memilikidependency fungsional
terhadap X◦Z memiliki dependency fungsional
terhadap Y
X Y Z
Contoh Perhatikan
09/04/2023 Lamhot Sitorus / PengantarBasis Data
14
Dependency Transitif
Kuliah {Ruang, Waktu}Ruang TempatKuliah Ruang Tempat
KULIAH RUANG
TEMPAT WAKTU
Jaringan Komputer
Merapi Gedung Utara Senin, 08.00-09.50
Matematika I Rama Gedung Selatan
Selasa, 07.00 – 08.45
Sistem Pakar Sinta Gedung Selatan
Rabu, 10.00-11.45
Fisika I Merapi Gedung Utara
Selasa, 08.00-09.50
09/04/2023 Lamhot Sitorus / PengantarBasis Data
15
Anomali (Anomaly)Efek samping yang tidak
diharapkan◦Menyebabkan ketidakkonsistenan◦Data menjadi hilang ketika dilakukan
penghapusan
09/04/2023 Lamhot Sitorus / PengantarBasis Data
16
Anomali (Anomaly)Anomali Penyisipan (Insertion
Anomaly)Anomali Penghapusan (Deletion
Anomaly)Anomali Peremajaan (Update
Anomaly)
09/04/2023 Lamhot Sitorus / PengantarBasis Data
17
Anomali PeremajaanNilai atribut yang mubazir
dilakukan perbaikan/peremajaan,tetapi tidak dilakukan secara keseluruhan
KetidakkonsistenanContoh perhatikan Tabel
PESANAN berikut.
09/04/2023 Lamhot Sitorus / PengantarBasis Data
18
Anomali Peremajaan (2)Pemasok Kota Barang Jumlah
Kartika Jakarta Monitor 10
Citra Padang Zip Drive 5
Candra Bandung Keyboard 4
Citra Padang Mouse 5
Citra Padang Memori 25
Candra Bandung Motherboard
12
09/04/2023 Lamhot Sitorus / PengantarBasis Data
19
Anomali Peremajaan (3)Andaikan Citra Pindah ke Kota
“Medan” dan diperbaiki hanya pada record ke 2, apa yang terjadi?
09/04/2023 Lamhot Sitorus / PengantarBasis Data
20
Anomali PenyisipanPenambahan dilakukan ternyata
ada elemen data yang masih kosong dan elemen tersebut justru menjadi kunci
Atau Penambahan dilakukan
mengakibatkan perlunya pengubahan data lain yang tidak ada hubungan secara lojik
Contoh Perhatikan dua contoh berikut.
09/04/2023 Lamhot Sitorus / PengantarBasis Data
21
Anomali Penyisipan (2)
No_Siswa Nama_Kursus Biaya
10 Bahasa Inggris 60.000
10 Bahasa Prancis 80.000
10 Bahasa Mandarin 60.000
15 Bahasa Inggris 60.000
20 Bahasa Jepang 65.000
09/04/2023 Lamhot Sitorus / PengantarBasis Data
22
Anomali Penyisipan (3)Nama_Kursus Bahasa Batak
dibuka tetapi belum ada pesertanya, apa yang terjadi?
Seorang Siswa mendaftar dengan Nama Kursus Bahasa Karo, apa yang terjadi?
09/04/2023 Lamhot Sitorus / PengantarBasis Data
23
Anomali Penyisipan (4)Tabel PEMERIKSAAN PEMERIKSAAN={No_Daftar,
Tgl_daftar, Tgl_periksa, No_Pasien, Nama_Pasien, Kode_Dokter, Nama_Dokter, Kode_Sakit, Deskripsi_Sakit, Kode_obat, Nama_obat, Dosis}
09/04/2023 Lamhot Sitorus / PengantarBasis Data
24
Anomali Penyisipan (5)Dokter baru dimasukkan tetapi
belum menangani pasien, apa yang terjadi?
Obat baru / obat yang belum pernah diresep dimasukkan kedalam tabel, apa yang terjadi?
Penyakit baru tetapi belum pernah ada pasien didiagnosa dimasukkan, apa yang terjadi?
09/04/2023 Lamhot Sitorus / PengantarBasis Data
25
Anomali PenghapusanSuatu baris / record dihapus
mengakibatkan data yang lain hilang
09/04/2023 Lamhot Sitorus / PengantarBasis Data
26
Anomali Penghapusan (2)No_Siswa Nama_Kursus Biaya
10 Bahasa Inggris 60.000
10 Bahasa Prancis 80.000
10 Bahasa Mandarin 60.000
15 Bahasa Inggris 60.000
20 Bahasa Jepang 65.000
09/04/2023 Lamhot Sitorus / PengantarBasis Data
27
Anomali Penghapusan (3)Hapus record yang terakhir
dengan nomor siswa 20, apa yang terjadi?
Tabel PEMERIKSAAN, data seorang pasien dihapus yang kebetulan dokter hanya mempunyai pasien yang dihapus, apa yang terjadi?
09/04/2023 Lamhot Sitorus / PengantarBasis Data
28
DekomposisiMemecah suatu relasi yang
memiliki banyak atribut menjadi beberapa relasi yang memiliki jumlah atribut yang lebih sedikit berdasarkan kebergantungan fungsional yang ada.
Gunakan diagram dependensi
09/04/2023 Lamhot Sitorus / PengantarBasis Data
29
Diagram Dependensi Fungsional
Dapat disajikan dalam diagram dependensi
KULIAH RUANG
TEMPAT WAKTU
Jaringan Komputer
Merapi Gedung Utara Senin, 08.00-09.50
Matematika I Rama Gedung Selatan
Selasa, 07.00 – 08.45
Sistem Pakar Sinta Gedung Selatan
Rabu, 10.00-11.45
Fisika I Merapi Gedung Utara
Selasa, 08.00-09.50
09/04/2023 Lamhot Sitorus / PengantarBasis Data
30
Dekomposisi
Kuliah
Ruang
Waktu
Tempat
09/04/2023 Lamhot Sitorus / PengantarBasis Data
31
NormalisasiMengurangi kemubaziran dataMenghilangkan AnomaliAlat verifikasi terhadap Model E-RMemperoleh tabel yang fleksibel
dan efisien
09/04/2023 Lamhot Sitorus / PengantarBasis Data
32
Normalisasi (2) Tahapan Normalisasi :
◦ Bentuk Normal Tahap Pertama (1NF)
◦ Bentuk Normal Tahap Kedua (2NF)◦ Bentuk Normal Tahap Ketiga (3NF)◦ Bentuk Normal Boyce-Codd
(BCNF)◦ Bentuk Normal Tahap Keempat
(4NF)◦ Bentuk Normal Tahap Kelima (5NF)
09/04/2023 Lamhot Sitorus / PengantarBasis Data
33
Normalisasi (3)Tahap pertama hingga ketiga
merupakan bentuk normal yang umum
BCNF perbaikan terhadap normal ketiga
4NF dan 5NF kasus khususLevel normalisasi bergantung
pada level sebelumnyaLevel makin dalam
kecenderungan tabel lebih baik bahkan anomali hilang
09/04/2023 Lamhot Sitorus / PengantarBasis Data
34
Normal Tahap Pertama (1NF)
Suatu tabel dikatakan 1NF jika :◦Tidak ada baris data yang terduplikat
atau berulang dalam tabel◦Setiap kolom memiliki nilai tunggal
artinya tidak ada perulangan, group atau array
◦Data dalam satu kolom memiliki tipe data yang sejenis
Tujuan 1NF menghilangkan elemen data yang berulang
09/04/2023 Lamhot Sitorus / PengantarBasis Data
35
Normal Tahap Pertama (1NF)
NIP NAMA JABATAN KEAHLIAN LAMA (Tahun)
107 Ilham Analis Senior
Cobol 6
Oracle 1
109 Rian Analis Yunior
Cobol 2
Basis data 2
112 Fika Pemrograman
Cobol 1
Basis data 1
Visual 1
Tabel JABATAN
09/04/2023 Lamhot Sitorus / PengantarBasis Data
36
Normal Tahap Pertama (1NF)NIP NAMA JABATAN KEAHLIAN LAMA
(Tahun)
107 Ilham Analis Senior
Cobol 6
107 Ilham Analis Senior
Oracle 1
109 Rian Analis Yunior
Cobol 2
109 Rian Analis Yunior
Basis data 2
112 Fika Pemrograman
Cobol 1
112 Fika Pemrograman
Basis data 1
112 Fika Pemrograman
Visual 1
09/04/2023 Lamhot Sitorus / PengantarBasis Data
37
Normal Tahap Pertama (1NF)
Nomor_Pesanan
Tgl_Pesanan
Item_1
Item_2
Item_3
Item_4
Total
50001 12/03/2011
P1 P2 P3 P4 45000
50002 12/03/2011
P3 P5 P6 32500
50003 13/03/2011
P1 P2 12000
Tabel PESANAN
09/04/2023 Lamhot Sitorus / PengantarBasis Data
38
Normal Tahap Pertama (1NF)Nomor_Pesan
anTgl_Pesan
anItem Total
50001 12/03/2011 P1 45000
P2
P3
P4
50002 12/03/2011 P3 32500
P5
P6
50003 13/03/2011 P1 12000
P2
09/04/2023 Lamhot Sitorus / PengantarBasis Data
39
Normal Tahap Pertama (1NF)Nomor_Pesan
anTgl_Pesan
anItem Total
50001 12/03/2011 P1 45000
50001 12/03/2011 P2 45000
50001 12/03/2011 P3 45000
50001 12/03/2011 P4 45000
50002 12/03/2011 P3 32500
50002 12/03/2011 P5 32500
50002 12/03/2011 P6 32500
50003 13/03/2011 P1 12000
50003 13/03/2011 P2 12000
09/04/2023 Lamhot Sitorus / PengantarBasis Data
40
Bentuk Normal Tahap Kedua (2NF)Berada pada bentuk normal
pertamaSemua atribut bukan kunci
memiliki dependensi sepenuhnya terhadap kunci primer
Atau setiap atribut bergantung kepada kunci primer
09/04/2023 Lamhot Sitorus / PengantarBasis Data
41
Bentuk Normal Tahap Kedua (2NF)Tabel JABATAN
◦Nama dan Jabatan Dependency Fungsional terhadap NIP (Karena NIP yang sama mempunyai Nama dan Jabatan yang sama)
◦NIP dan Keahlian menentukan Lama◦Lakukan Dekomposisi
09/04/2023 Lamhot Sitorus / PengantarBasis Data
42
Bentuk Normal Tahap Kedua (2NF)
Nama
Jabatan
Lama
Keahlian
NIP
Keahlian
09/04/2023 Lamhot Sitorus / PengantarBasis Data
43
Bentuk Normal Tahap Kedua (2NF)Tabel PEGAWAI
NIP NAMA JABATAN
107 Ilham Analis Senior
109 Rian Analis Yunior
112 Fika Pemrograman
09/04/2023 Lamhot Sitorus / PengantarBasis Data
44
Bentuk Normal Tahap Kedua (2NF)Tabel KEAHLIAN
NIP KEAHLIAN LAMA (Tahun)
107 Cobol 6
107 Oracle 1
109 Cobol 2
109 Basis data 2
112 Cobol 1
112 Basis data 1
112 Visual 1
09/04/2023 Lamhot Sitorus / PengantarBasis Data
45
Bentuk Normal Tahap Kedua (2NF)Nomor_Pesan
anTgl_Pesan
anItem Total
50001 12/03/2011 P1 45000
50001 12/03/2011 P2 45000
50001 12/03/2011 P3 45000
50001 12/03/2011 P4 45000
50002 12/03/2011 P3 32500
50002 12/03/2011 P5 32500
50002 12/03/2011 P6 32500
50003 13/03/2011 P1 12000
50003 13/03/2011 P2 12000
09/04/2023 Lamhot Sitorus / PengantarBasis Data
46
Bentuk Normal Tahap Kedua (2NF)Dari Tabel diatas dapat kita
dekomposisi sehingga diperoleh tabel-tabel berikut.
Nmr_Pesanan menentukan Tgl_Pesanan dan Total
Nmr_Pesanan menentukan Item
Item
Nmr_Pesanan
Tgl_PesananTotal
09/04/2023 Lamhot Sitorus / PengantarBasis Data
47
Bentuk Normal Tahap Kedua (2NF)
PESANAN1(Nmr_Pesanan, Tgl_Pesanan, Total)
PESANAN2(Nmr_Pesanan, Item)
09/04/2023 Lamhot Sitorus / PengantarBasis Data
48
Bentuk Normal Tahap Kedua (2NF)
Nomor_Pesanan
Tgl_Pesanan
Total
50001 12/03/2011 45000
50002 12/03/2011 32500
50003 13/03/2011 12000
Tabel Pesanan-1
09/04/2023 Lamhot Sitorus / PengantarBasis Data
49
Bentuk Normal Tahap Kedua (2NF)
Nomor_Pesanan
Item
50001 P1
50001 P2
50001 P3
50001 P4
50002 P3
50002 P5
50002 P6
50003 P1
50003 P2
Tabel Pesanan-2
09/04/2023 Lamhot Sitorus / PengantarBasis Data
50
Bentuk Normal Tahap Ketiga (3NF)Suatu Relasi dikatakan dalam 3NF,
jika :◦Berada dalam bentuk 2NF◦Setiap atribut bukan kunci tidak memiliki
dependensi transitif terhadap kunci primer
Tabel Pegawai dan Keahlian telah memenuhi kriteria di atas sehingga kedua relasi termasuk dalam 3NF
Demikian juga dengan Tabel Pesanan-1 dan Pesanan-2
09/04/2023 Lamhot Sitorus / PengantarBasis Data
51
Bentuk Normal Tahap Ketiga (3NF)Tabel BelanjaNmr_Pesanan
Nmr_Urut Kode_Item Nama_Item
50001 0001 P1 Pensil
50001 0002 P2 Buku Tulis
50001 0003 P3 Penggaris
50001 0004 P4 Penghapus
50002 0001 P3 Penggaris
50002 0002 P5 Pulpen
50002 0003 P6 Spidol
50003 0001 P1 Pensil
50003 0002 P2 Buku Tulis
09/04/2023 Lamhot Sitorus / PengantarBasis Data
52
Bentuk Normal Tahap Ketiga (3NF)Kunci Primer Nmr_Pesanan dan
Nmr_UrutKode_Item dan Nama_Item mempunyai
dpendensi fungsional terhadap PK{Nmr_Pesanan, Nmr_Urut} {Kode_Item,
Nama_Item}Kode_Item Nama_ItemTabel Belanja dapat didekomposisiR1={Nmr_Pesanan,Nmr_Urut,Kode_Item
}R2={Kode_Item, Nama_Item}
09/04/2023 Lamhot Sitorus / PengantarBasis Data
53
Bentuk Normal Tahap Ketiga (3NF)Tabel R1
Nmr_Pesanan
Nmr_Urut Kode_Item
50001 0001 P1
50001 0002 P2
50001 0003 P3
50001 0004 P4
50002 0001 P3
50002 0002 P5
50002 0003 P6
50003 0001 P1
50003 0002 P2
09/04/2023 Lamhot Sitorus / PengantarBasis Data
54
Bentuk Normal Tahap Ketiga (3NF)Tabel Deteil
Kode_Item Nama_Item
P1 Pensil
P2 Buku Tulis
P3 Penggaris
P4 Penghapus
P5 Pulpen
P6 Spidol
09/04/2023 Lamhot Sitorus / PengantarBasis Data
55
Sejauhmana Normalisasi Perlu?Pertanyaan yang sering
dilontarkanTidak ada patokannyaKita harus terus melakukan
normalisasi hingga tidak menemukan anomali lagi
Pada umumnya hingga 3NF sudah cukup memadai menghilangkan anomali
10/04/2023 Lamhot Sitorus / PengantarBasis Data
56
LatihanRancanglah diagram E-R dari kasus aplikasi
database sederhana untuk sistem informasi akademis suatu universitas.
Entities yang dimuat adalah :◦ Mahasiswa: menyimpan semua informasi pribadi
mengenai semua mahasiswa◦ Dosen: menyimpan semua informasi pribadi
mengenai semua dosen◦ Mata_kuliah: menyimpan semua informasi
mengenai semua mata kuliah yang ditawarkan◦ Ruang: menyimpan semua informasi mengenai
ruang kelas yang digunakanKetentuan ketentuan yang berlaku dapat anda
tentukan
10/04/2023 Lamhot Sitorus / PengantarBasis Data
57
LatihanDiberikan tabel Mahasiswa di bawah ini,
lakukan normalisasi sampai bentuk normal ke tiga
Perhatikan bahwa tabel di atas sudah dalam bentuk normal ke Satu(1NF).
Terima Kasih, Semoga Sukses...........