Perancangan Database Bagian II

24
Perancangan Database Perancangan Database Bagian II Bagian II

description

Perancangan Database Bagian II. Normalisasi. Normalisasi adalah suatu proses formal untuk menentukaan atribut-atribut yang seharusnya dikelompokkan secara bersama-sama dalam suatu relasi - PowerPoint PPT Presentation

Transcript of Perancangan Database Bagian II

Page 1: Perancangan Database Bagian II

Perancangan DatabasePerancangan DatabaseBagian IIBagian II

Page 2: Perancangan Database Bagian II

NormalisasiNormalisasi NormalisasiNormalisasi adalah suatu proses formal adalah suatu proses formal

untuk menentukaan atribut-atribut yang untuk menentukaan atribut-atribut yang seharusnya dikelompokkan secara seharusnya dikelompokkan secara bersama-sama dalam suatu relasibersama-sama dalam suatu relasi

Bentuk normalBentuk normal adalah suatu aturan adalah suatu aturan yang dikenakan pada relasi-relasi dalam yang dikenakan pada relasi-relasi dalam basis data dan harus dipenuhi oleh basis data dan harus dipenuhi oleh relasi-relasi tersebut pada langkah-relasi-relasi tersebut pada langkah-langkah normalisasilangkah normalisasi

Page 3: Perancangan Database Bagian II

Langkah-langkah Langkah-langkah NormalisasiNormalisasi

Tabel dengan Atribut bernilai

ganda

BentukNormalPertama

BentukNormalKedua

Buang atributbernilai ganda

Buang Dependensi

parsial

BentukNormalKetiga

BentukNormal

Lain-lain

Buang Dependensi

transitif

Bentuk normal Boyce-Codd

hingga Bentuk Normal Kelima

Page 4: Perancangan Database Bagian II

Bentuk Normal PertamaBentuk Normal Pertama DefinisiDefinisi::

Suatu relasi berada dalam Suatu relasi berada dalam bentuk normal pertama jika bentuk normal pertama jika relasi tidak mengandung relasi tidak mengandung atribut yang bernilai gandaatribut yang bernilai ganda

Contoh:Contoh:NipNip NamaNama JabatanJabatan Bahasa_AsBahasa_As

ingingTingkatTingkat

187187 ANDI AKBARANDI AKBAR STAFFSTAFF INGGRISINGGRISJERMANJERMAN

AKTIFAKTIFPASIFPASIF

188188 DIANA LUBISDIANA LUBIS STAFFSTAFF INGGRISINGGRIS AKTIFAKTIF189189 PUSPA PUSPA

NUGRAHANINUGRAHANIMANAJEMANAJERR

INGGRISINGGRISJEPANGJEPANG

AKTIFAKTIFAKTIFAKTIF

Atribut bernilai ganda

Page 5: Perancangan Database Bagian II

Bentuk Normal PertamaBentuk Normal Pertama(Lanjutan…)(Lanjutan…)

PemecahanPemecahan:: Buang atribut bergandaBuang atribut berganda CaranyaCaranya: Atur setiap kolom berisi : Atur setiap kolom berisi

satu nilai; Bila isi suatu kolom satu nilai; Bila isi suatu kolom untuk suatu baris berisi n nilai, untuk suatu baris berisi n nilai, maka pecahlah baris menjadi n maka pecahlah baris menjadi n barisbaris

Contoh:Contoh:NiNipp

NamaNama JabatanJabatan Bahasa_AsinBahasa_Asingg

TingkaTingkatt

181877

ANDI AKBARANDI AKBAR STAFFSTAFF INGGRISINGGRIS AKTIFAKTIF

181877

ANDI AKBARANDI AKBAR STAFFSTAFF JERMANJERMAN PASIFPASIF

181888

DIANA LUBISDIANA LUBIS STAFFSTAFF INGGRISINGGRIS AKTIFAKTIF

181899

PUSPA PUSPA NUGRAHANINUGRAHANI

MANAJERMANAJER INGGRISINGGRIS AKTIFAKTIF

181899

PUSPA PUSPA NUGRAHANINUGRAHANI

MANAJERMANAJER JEPANGJEPANG AKTIFAKTIF

Sekarang setiap atribut bernilai tunggal

Page 6: Perancangan Database Bagian II

Bentuk Normal PertamaBentuk Normal Pertama(Lanjutan…)(Lanjutan…)

Contoh lain (Relasi yang Contoh lain (Relasi yang salah)salah)

Kelemahan???Kelemahan???

No_PesanNo_Pesan Tgl_PesanTgl_Pesan Item1Item1 Item2Item2 Item3Item3 Item4Item4 TotalTotal

0600806008 12/01/200612/01/2006 P1P1 P2P2 P3P3 P4P4 4500045000

0600906009 12/01/200612/01/2006 P3P3 P5P5 P6P6 3250032500

0601006010 13/01/200613/01/2006 P1P1 P2P2 1200012000

Page 7: Perancangan Database Bagian II

Bentuk Normal PertamaBentuk Normal Pertama(Lanjutan…)(Lanjutan…)

Model seperti itu dapat diubah menjadi relasi Model seperti itu dapat diubah menjadi relasi seperti berikut (memenuhi bentuk normal seperti berikut (memenuhi bentuk normal pertama):pertama):

No_PesanNo_Pesan Tgl_PesanTgl_Pesan ItemItem TotalTotal0600806008 12/01/20012/01/200

66P1P1 4500045000

0600806008 12/01/20012/01/20066

P2P2 4500045000

0600806008 12/01/20012/01/20066

P3P3 4500045000

0600806008 12/01/20012/01/20066

P4P4 4500045000

0600906009 12/01/20012/01/20066

P3P3 3250032500

0600906009 12/01/20012/01/20066

P5P5 3250032500

0600906009 12/01/20012/01/20066

P6P6 3250032500

0601006010 13/01/20013/01/20066

P1P1 1200012000

0601006010 13/01/20013/01/20066

P2P2 1200012000

Page 8: Perancangan Database Bagian II

Bentuk Normal PertamaBentuk Normal Pertama(Lanjutan…)(Lanjutan…)

Kadangkala bentuk normal masih memiliki masalahKadangkala bentuk normal masih memiliki masalah Masalah yang paling umum adalah Masalah yang paling umum adalah kemubazirankemubaziran

No_PesanNo_Pesan Tgl_PesanTgl_Pesan ItemItem TotalTotal0600806008 12/01/20012/01/200

66P1P1 4500045000

0600806008 12/01/20012/01/20066

P2P2 4500045000

0600806008 12/01/20012/01/20066

P3P3 4500045000

0600806008 12/01/20012/01/20066

P4P4 4500045000

0600906009 12/01/20012/01/20066

P3P3 3250032500

0600906009 12/01/20012/01/20066

P5P5 3250032500

0600906009 12/01/20012/01/20066

P6P6 3250032500

0601006010 13/01/20013/01/20066

P1P1 1200012000

0601006010 13/01/20013/01/20066

P2P2 1200012000

Kemubazirannya dimana????

Page 9: Perancangan Database Bagian II

Bentuk Normal KeduaBentuk Normal Kedua Suatu relasi memenuhi bentuk Suatu relasi memenuhi bentuk

normal kedua jika:normal kedua jika: Relasi telah berada dalam Relasi telah berada dalam bentuk bentuk

normal pertamanormal pertama Setiap Setiap atribut non-kunci-primeratribut non-kunci-primer

memiliki memiliki dependensi sepenuhnya dependensi sepenuhnya terhadap terhadap kunci primerkunci primer

Page 10: Perancangan Database Bagian II

Pengertian Dependensi Pengertian Dependensi SepenuhnyaSepenuhnya

Definisi:Definisi: Suatu atribut Y mempunyai dependensi Suatu atribut Y mempunyai dependensi

sepenuhnya terhadap atribut X jikasepenuhnya terhadap atribut X jika Y mempunyai dependensi terhadap XY mempunyai dependensi terhadap X Y Y tidaktidak mempunyai dependensi terhadap mempunyai dependensi terhadap

bagian dari Xbagian dari X

Page 11: Perancangan Database Bagian II

Contoh Tidak Memenuhi Contoh Tidak Memenuhi Bentuk Normal KeduaBentuk Normal Kedua

NipNip NamaNama JabatanJabatan Bahasa_AsingBahasa_Asing TingkatTingkat

187187 ANDI AKBARANDI AKBAR STAFFSTAFF INGGRISINGGRIS AKTIFAKTIF

187187 ANDI AKBARANDI AKBAR STAFFSTAFF JERMANJERMAN PASIFPASIF

188188 DIANA LUBISDIANA LUBIS STAFFSTAFF INGGRISINGGRIS AKTIFAKTIF

189189 PUSPA NUGRAHANIPUSPA NUGRAHANI MANAJERMANAJER INGGRISINGGRIS AKTIFAKTIF

189189 PUSPA NUGRAHANIPUSPA NUGRAHANI MANAJERMANAJER JEPANGJEPANG AKTIFAKTIF

Nip

Bahasa_Asing

Nama

Jabatan Tingkat

Diagram dependensi fungsional

Page 12: Perancangan Database Bagian II

Penyelesaian Bentuk Penyelesaian Bentuk Normal KeduaNormal Kedua

Terdapat Relasi R:Terdapat Relasi R:R (A, B, C, D)R (A, B, C, D)

Kunci Primer (A, B)Kunci Primer (A, B)A → DA → D

R didekomposisi menjadi R1 dan R2R didekomposisi menjadi R1 dan R2R1 (A, D)R1 (A, D)

Kunci Primer (A)Kunci Primer (A)R2 (A, B, C)R2 (A, B, C)

Kunci Primer (A, B)Kunci Primer (A, B) Kunci Tamu (A) Referensi R1Kunci Tamu (A) Referensi R1

Page 13: Perancangan Database Bagian II

Penyelesaian Bentuk Penyelesaian Bentuk Normal KeduaNormal Kedua

NipNip NamaNama JabatanJabatan Bahasa_AsingBahasa_Asing TingkatTingkat187187 ANDI AKBARANDI AKBAR STAFFSTAFF INGGRISINGGRIS AKTIFAKTIF187187 ANDI AKBARANDI AKBAR STAFFSTAFF JERMANJERMAN PASIFPASIF188188 DIANA LUBISDIANA LUBIS STAFFSTAFF INGGRISINGGRIS AKTIFAKTIF189189 PUSPA NUGRAHANIPUSPA NUGRAHANI MANAJERMANAJER INGGRISINGGRIS AKTIFAKTIF189189 PUSPA NUGRAHANIPUSPA NUGRAHANI MANAJERMANAJER JEPANGJEPANG AKTIFAKTIF

NipNip NamaNama JabatanJabatan

187187 ANDI AKBARANDI AKBAR STAFFSTAFF

187187 ANDI AKBARANDI AKBAR STAFFSTAFF

188188 DIANA LUBISDIANA LUBIS STAFFSTAFF

189189 PUSPA NUGRAHANIPUSPA NUGRAHANI MANAJERMANAJER

189189 PUSPA NUGRAHANIPUSPA NUGRAHANI MANAJERMANAJER

NipNip Bahasa_AsingBahasa_Asing TingkatTingkat

187187 INGGRISINGGRIS AKTIFAKTIF187187 JERMANJERMAN PASIFPASIF188188 INGGRISINGGRIS AKTIFAKTIF189189 INGGRISINGGRIS AKTIFAKTIF189189 JEPANGJEPANG AKTIFAKTIF

Page 14: Perancangan Database Bagian II

Contoh LainContoh Lain

No_PesaNo_Pesann

Tgl_PesaTgl_Pesann

ItemItem TotalTotal

0600806008 12/01/2012/01/200606

P1P1 4500045000

0600806008 12/01/2012/01/200606

P2P2 4500045000

0600806008 12/01/2012/01/200606

P3P3 4500045000

0600806008 12/01/2012/01/200606

P4P4 4500045000

0600906009 12/01/2012/01/200606

P3P3 3250032500

0600906009 12/01/2012/01/200606

P5P5 3250032500

0600906009 12/01/2012/01/200606

P6P6 3250032500

0601006010 13/01/2013/01/200606

P1P1 1200012000

0601006010 13/01/2013/01/200606

P2P2 1200012000

No_PesanNo_Pesan Tgl_PesanTgl_Pesan TotalTotal0600806008 12/01/20012/01/200

664500045000

0600906009 12/01/20012/01/20066

3250032500

0601006010 13/01/20013/01/20066

1200012000

No_PesanNo_Pesan ItemItem0600806008 P1P10600806008 P2P20600806008 P3P30600806008 P4P40600906009 P3P30600906009 P5P50600906009 P6P60601006010 P1P10601006010 P2P2

Page 15: Perancangan Database Bagian II

Bentuk Normal KetigaBentuk Normal Ketiga Suatu relasi berada dalam bentuk Suatu relasi berada dalam bentuk

normal ketiga jika:normal ketiga jika: Memenuhi Memenuhi bentuk normal keduabentuk normal kedua Dan tidak ada Dan tidak ada dependensi transitifdependensi transitif

Page 16: Perancangan Database Bagian II

Pengertian Dependensi Pengertian Dependensi TransitifTransitif

Suatu atribut Z mempunyai Suatu atribut Z mempunyai dependensi transitif terhadap X jika:dependensi transitif terhadap X jika: Y memiliki dependensi terhadap X danY memiliki dependensi terhadap X dan Z memiliki dependensi terhadap YZ memiliki dependensi terhadap Y

X → ZX→Y→Z

Page 17: Perancangan Database Bagian II

Contoh Dependensi Contoh Dependensi TransitifTransitif

Kuliah Ruang Tempat Waktu

Jaringan Komputer Merapi Gedung Utara Senin, 08.00-09.50

Pengantar Basis Data Merbabu Gedung Utara Selasa, 08.00-09.50

Matematika I Rama Gedung Selatan Rabu, 10.00-11.50

Sistem Pakar Sinta Gedung Selatan Kamis, 08.00-09.50

Kecerdasan Buatan Merapi Gedung Utara Selasa, 10.00-11.50

Kuliah → { Ruang, Waktu }

Ruang → TempatKuliah → Ruang → Tempat

Page 18: Perancangan Database Bagian II

Contoh Lain Dependensi Contoh Lain Dependensi TransitifTransitif

Id_Pelanggan Nama Salesman Area

A-001 Andi Farkan Jateng

A-002 Kurnia Jati Dian Jabar

B-001 Fika Dewi Joned Jatim

B-002 Gani Wirawan Farkan Jateng

C-001 Cici Kusuma Joned Jatim

Id_Pelanggan Nama Salesman Area

Page 19: Perancangan Database Bagian II

Contoh Lain Dependensi Contoh Lain Dependensi TransitifTransitif

No_Pesan No_Urut Kode_Item Nama_Item

No_PesanNo_Pesan No_UrutNo_Urut Kode_ItemKode_Item Nama_ItemNama_Item JumlahJumlah

0600806008 11 P1P1 PensilPensil 550600806008 22 P2P2 Buku TulisBuku Tulis 10100600806008 33 P3P3 PenggarisPenggaris 660600806008 44 P4P4 PenghapusPenghapus 440600906009 11 P3P3 PenggarisPenggaris 110600906009 22 P5P5 PulpenPulpen 10100600906009 33 P6P6 SpidolSpidol 550601006010 11 P1P1 PensilPensil 440601006010 22 P2P2 Buku TulisBuku Tulis 1010

Jumlah

Page 20: Perancangan Database Bagian II

Problem pada Dependensi Problem pada Dependensi TransitifTransitif

Id_Pelanggan Nama Salesman Area

A-001 Andi Farkan Jateng

A-002 Kurnia Jati Dian Jabar

B-001 Fika Dewi Joned Jatim

B-002 Gani Wirawan Farkan Jateng

C-001 Cici Kusuma Joned Jatim

Anomali penyisipan:

Seorang salesman baru yang bertugas di Jateng tidak dapat dimasukkan dalam tabel sampai salesman tersebut mendapatkan seorang pelanggan

Anomali penghapusan:

Jika pelanggan A-002 dihapus, informasi bahwa Dian menangani daerah Jabar ikut hilang

Anomali peremajaan:

Jika katakanlah Farkan mendapat penugasan baru untuk menangani daerah Kalimantan, maka sejumlah baris harus diremajakan agar data tetap konsisten

Page 21: Perancangan Database Bagian II

Penyelesaian Bentuk Penyelesaian Bentuk Normal KetigaNormal Ketiga

Terdapat Relasi R:Terdapat Relasi R:R (A, B, C)R (A, B, C)

Kunci Primer (A)Kunci Primer (A)B → CB → C

R didekomposisi menjadi R1 dan R2R didekomposisi menjadi R1 dan R2R1 (B, C)R1 (B, C)

Kunci Primer (B)Kunci Primer (B)R2 (A, B)R2 (A, B)

Kunci Primer (A)Kunci Primer (A) Kunci Tamu (B) Referensi R1Kunci Tamu (B) Referensi R1

Page 22: Perancangan Database Bagian II

Contoh Dekomposisi Contoh Dekomposisi RelasiRelasi

Id_Pelanggan Nama Salesman Area

A-001 Andi Farkan Jateng

A-002 Kurnia Jati Dian Jabar

B-001 Fika Dewi Joned Jatim

B-002 Gani Wirawan Farkan Jateng

C-001 Cici Kusuma Joned Jatim

Id_Pelanggan Nama Salesman

A-001 Andi Farkan

A-002 Kurnia Jati Dian

B-001 Fika Dewi Joned

B-002 Gani Wirawan Farkan

C-001 Cici Kusuma Joned

Salesman Area

Farkan Jateng

Dian Jabar

Joned Jatim

Farkan Jateng

Joned Jatim

Page 23: Perancangan Database Bagian II

Contoh SoalContoh Soal Terdapat relasi Terdapat relasi

PENGIRIMAN(No_Kirim, Asal, Tujuan, PENGIRIMAN(No_Kirim, Asal, Tujuan, Jarak)Jarak)

Gambarkan diagram dependensi Gambarkan diagram dependensi fungsionalnya!fungsionalnya!

Page 24: Perancangan Database Bagian II

Contoh SoalContoh Soal Perhatikan sampel data berikut:Perhatikan sampel data berikut:

No_PartNo_Part DeskripsiDeskripsi Nama_VendoNama_Vendorr

AlamatAlamat Harga_Per_UnitHarga_Per_Unit

00010001 Keping CPUKeping CPU ABCABCXYZXYZ

YogyaYogyaJakartaJakarta

600.000600.000610.000610.000

00020002 Keping Keping memorimemori

ABCABCDDDDDDWWWWWW

YogyaYogyaBandungBandungSoloSolo

150.000150.000135.000135.000152.000152.000

1. Bentuklah relasi dengan nama PART_SUPPLIER yang memenuhi 1NF (struktur maupun sampel datanya)

2. Gambarkan diagram dependensi fungsional untuk relasi PART_SUPPLIER!

3. Analisalah terhadap kemungkinan anomali pada relasi tersebut!

4. Bagaimana dekomposisi yang tepat untuk relasi tersebut?

5. Apakah hasil dekomposisi memenuhi 3NF? Kalau tidak, bagaimana pendekomposisiannya?