Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Bab 5 - Normalisasi

Bab 5 - Normalisasi

Materi ini menjelaskan tentang proses normalisasi pada basis data

Adam Mukharil Bachtiar

October 15, 2016
Tweet

More Decks by Adam Mukharil Bachtiar

Other Decks in Education

Transcript

  1. Anomali Penyisipan (Insert) Apa yang terjadi jika B. Jerman ditambahkan

    ke Kursus? No_Siswa Kursus Biaya 10 B. Inggris 60000 10 B. Perancis 80000 10 B. Jepang 70000 15 B. Inggris 60000 20 B. Jepang 60000 No_Siswa Kursus Biaya 10 B. Inggris 60000 10 B. Perancis 80000 10 B. Jepang 70000 15 B. Inggris 60000 20 B. Jepang 60000 B.Jerman 90000
  2. Solusi Anomali Penyisipan (Insert) No_Siswa Kursus Biaya 10 B. Inggris

    60000 10 B. Perancis 80000 10 B. Jepang 70000 15 B. Inggris 60000 20 B. Jepang 60000 Kursus Biaya B. Inggris 60000 B. Jepang 70000 B.Jerman 90000 No_Siswa ... 10 .. 15 .. 20 .. No_Siswa Kursus 10 B. Inggris .. .. 20 B. Jepang
  3. Anomali Peremajaan (Update) Pemasok Kota Barang Jumlah Kartika Jakarta Mouse

    5 Citra Bandung Monitor 2 Yudi Medan CPU 2 Citra Bandung Printer 1 Apa yang terjadi jika Citra pindah kota ke Bogor?
  4. Solusi Anomali Peremajaan (Update) Pemasok Kota Barang Jumlah Kartika Jakarta

    Mouse 5 Citra Bandung Monitor 2 Yudi Medan CPU 2 Citra Bandung Printer 1 Pemasok Kota Kartika Jakarta Citra Bandung Yudi Medan Pemasok Barang Jumlah Kartika Mouse 5 Citra Monitor 2 Yudi CPU 2 Citra Printer 1
  5. Anomali Penghapusan (Delete) Apa yang terjadi jika No_Siswa 10 dihapus?

    No_Siswa Kursus Biaya 10 B. Inggris 60000 10 B. Perancis 80000 10 B. Jepang 70000 15 B. Inggris 60000 20 B. Jepang 60000 No_Siswa Kursus Biaya 15 B. Inggris 60000 20 B. Jepang 60000
  6. Solusi Anomali Penghapusan (Delete) No_Siswa Kursus Biaya 10 B. Inggris

    60000 10 B. Perancis 80000 10 B. Jepang 70000 15 B. Inggris 60000 20 B. Jepang 60000 Kursus Biaya B. Inggris 60000 B. Jepang 70000 B.Jerman 90000 No_Siswa ... 15 .. 20 .. No_Siswa Kursus 15 B. Inggris 20 B. Jepang
  7. Sebuah atribut berdependensi fungsional terhadap atribut lainnya jika dan hanya

    jika satu nilai pada atribut tersebut tepat dipetakan satu terhadap satu nilai dari atribut dependentnya
  8. Pembeli Kota Barang Jumlah P1 Yogyakarta B1 10 P1 Yogyakarta

    B2 5 P2 Jakarta B1 4 P2 Jakarta B2 7 P3 Solo B3 6 P3 Solo B4 6 Pembeli à Kota {Pembeli, Barang} à Kota Dependensi Fungsional
  9. Atribut y memiliki dependensi fungsional total terhadap atribut x jika

    y berdependensi fungsional terhadap x begitu juga sebaliknya (x ↔ y)
  10. Dependensi Fungsional Total Diasumsikan tidak pernah ada nama yang sama

    maka No_Siswa ↔ Nama No_Siswa Nama Alamat A1 Budi Bandung A2 Andi Bogor A3 Ani Serang A4 Dian Madura A5 Andri Ciamis
  11. Atribut y memiliki dependensi fungsional penuh terhadap atribut x jika

    y berdependensi fungsional terhadap x dan y hanya berdependensi fungsional terhadap subset dari x
  12. {x,y} à z Dikatakan dependensi fungsional penuh jika z tidak

    hanya cukup bergantung pada x saja atau y saja
  13. Atribut y memiliki dependensi fungsional sebagian terhadap atribut x jika

    Y berdependensi fungsional terhadap X dan Y tidak berdependensi fungsional terhadap subset dari X
  14. Atribut z memiliki dependensi fungsional transitif terhadap atribut x jika

    y berdependensi fungsional terhadap x dan z berdependensi fungsional terhadap y
  15. x à y y à z Jadi x à z

    Maka z berdependensi fungsional transitif terhadap x
  16. Dependensi Fungsional Transitif Kuliah à {Kampus, Waktu} Kampus à Ruang

    Kuliah à Waktu (Kuliah à Kampus à Waktu) Kuliah Kampus Ruang Waktu RPL 5 5406 Senin Basis Data 4 4417 Selasa Kalkulus 2 2505 Rabu Data Mining 1 1407 Kamis
  17. Tabel Pada Basis Data Penentuan Atribut Bentuk Normal 1 -

    BCNF Unnormalized Form Dokumen Manual • Atribut bawaan (dari dokumen) • Atribut bentukan (dari aturan bisnis atau asumsi) Jenis Input
  18. Bagian pada dokumen akan menjadi atribut apabila isian atau nilainya

    bersifat dinamis (data bisa berubah nilai) Contoh Atribut Contoh Nilai
  19. Bentuk Normalisasi Bentuk Tidak Normal Bentuk Normal Pertama Bentuk Normal

    Kedua Bentuk Normal Ketiga BCNF Bentuk Normal Keempat Bentuk Normal kelima Jarang Digunakan kecuali jika masih ada anomali
  20. PROJ_NUM PROJ_NAME EMP_NUM EMP_NAME JOB_CLASS CHG_HOUR HOURS 15 Evergreen 103

    Juni E. Arbough Elect. Engineer 84.50 23.8 101 John G. News Database Engineer 105.00 19.4 105 Alice K. Johnson Database Engineer 105.00 35.7 106 William Smithfield Programmer 35.75 12.6 102 David H. Senior System Analyst 96.75 23.8 18 Amber Wave 114 Annelise Jones Application Designer 48.10 24.6 118 James J. Frommer General Support 18.36 45.3 104 Anne K. Ramoras System Analyst 96.75 32.4 112 Darlene M. Smithson DSS Analyst 45.95 44.0 22 Rolling Tide 105 Alice K. Johnson Database Desginer 105.00 64.7 104 Anne K. Ramoras System Analyst 96.75 48.4 113 Delbert K. Joenbrood Application Designer 48.10 23.6 111 Geoff B. Wabash Clerical Support 26.87 22.0 106 William Smithfield Programmer 35.75 12.8 25 Starflight 107 Maria D. Alonzo Programmer 35.75 24.6 115 Travis B. Bawangi System Analyst 96.75 45.8 101 John G. News Database Designer 105.00 56.3 114 Annelise Jones Application Designer 48.10 33.1 108 Ralph B. Washington System Analyst 96.75 23.6 118 James J. Frommer General Support 18.36 30.5 112 Darlene M. Smithson DSS Analyst 45.95 41.4
  21. • Eliminasi nilai null pada repeating groups • Identifikasi primary

    key (Suggestion) • Identifikasi seluruh dependensi (Suggestion)
  22. PROJ_NUM PROJ_NAME EMP_NUM EMP_NAME JOB_CLASS CHG_HOUR HOURS 15 Evergreen 103

    Juni E. Arbough Elect. Engineer 84.50 23.8 15 Evergreen 101 John G. News Database Designer 105.00 19.4 15 Evergreen 105 Alice K. Johnson Database Engineer 105.00 35.7 15 Evergreen 106 William Smithfield Programmer 35.75 12.6 15 Evergreen 102 David H. Senior System Analyst 96.75 23.8 18 Amber Wave 114 Annelise Jones Application Designer 48.10 24.6 18 Amber Wave 118 James J. Frommer General Support 18.36 45.3 18 Amber Wave 104 Anne K. Ramoras System Analyst 96.75 32.4 18 Amber Wave 112 Darlene M. Smithson DSS Analyst 45.95 44.0 22 Rolling Tide 105 Alice K. Johnson Database Designer 105.00 64.7 22 Rolling Tide 104 Anne K. Ramoras System Analyst 96.75 48.4 22 Rolling Tide 113 Delbert K. Joenbrood Application Designer 48.10 23.6 22 Rolling Tide 111 Geoff B. Wabash Clerical Support 26.87 22.0 22 Rolling Tide 106 William Smithfield Programmer 35.75 12.8 25 Starflight 107 Maria D. Alonzo Programmer 35.75 24.6 25 Starflight 115 Travis B. Bawangi System Analyst 96.75 45.8 25 Starflight 101 John G. News Database Designer 105.00 56.3 25 Starflight 114 Annelise Jones Application Designer 48.10 33.1 25 Starflight 108 Ralph B. Washington System Analyst 96.75 23.6 25 Starflight 118 James J. Frommer General Support 18.36 30.5 25 Starflight 112 Darlene M. Smithson DSS Analyst 45.95 41.4
  23. Primary key: {PROJ_NUM,EMP_NUM} {PROJ_NUM,EMP_NUM} à PROJ_NAME, EMP_NAME, JOB_CLASS, CHG_HOUR, HOURS

    Dependensi Fungsional Sebagian: PROJ_NUM à PROJ_NAME EMP_NUM à EMP_NAME, JOB_CLASS, CHG_HOUR Dependensi Fungsional Transitif: JOB_CLASS à CHG_HOUR PROJ_NUM PROJ_NAME EMP_NUM EMP_NAME JOB_CLASS CHG_HOUR HOURS Primary key Partial Dependency Partial Dependency Transitive Dependency
  24. • Pastikan tabel sudah dalam bentuk normal pertama • Eliminasi

    depedensi fungsional sebagian • Tentukan atribut yang berdepedensi terhadap atribut lain
  25. PROJ_NUM PROJ_NAME EMP_NUM EMP_NAME JOB_CLASS CHG_HOUR HOURS Nama tabel: PROJECT

    PROJ_NUM à PROJ_NAME Nama tabel: EMPLOYEE EMP_NUM à EMP_NAME, JOB_CLASS, CHG_HOURS JOB_CLASS à CHG_HOUR PROJ_NUM EMP_NUM {PROJ_NUM,EMP_NUM} à HOURS Nama tabel: ASSIGNMENT
  26. Nama tabel: PROJECT Nama tabel: EMPLOYEE Nama tabel: ASSIGNMENT PROJ_NUM

    PROJ_NAME 15 Evergreen 18 Amber Wave .. .. EMP_NUM EMP_NAME JOB_CLASS CHG_HOUR 101 John G. News Database Engineer 105.00 102 David H. Senior System Analyst 96.75 .. .. .. .. PROJ_NUM EMP_NUM HOURS 15 103 23.8 15 101 19.4 .. .. .. Tabel hasil normalisasi bentuk kedua (2nd form)
  27. • Pastikan tabel sudah dalam bentuk normal kedua • Eliminasi

    depedensi transitif • Tentukan kembali depedensi antar atribut
  28. PROJ_NUM PROJ_NAME EMP_NUM EMP_NAME JOB_CLASS HOURS Nama tabel: PROJECT PROJ_NUM

    à PROJ_NAME Nama tabel: EMPLOYEE EMP_NUM à EMP_NAME, JOB_CLASS JOB_CLASS à CHG_HOUR PROJ_NUM EMP_NUM {PROJ_NUM,EMP_NUM} à HOURS Nama tabel: ASSIGNMENT JOB_CLASS CHG_HOUR Nama tabel: JOB
  29. Nama tabel: PROJECT Nama tabel: EMPLOYEE Nama tabel: ASSIGNMENT PROJ_NUM

    PROJ_NAME 15 Evergreen 18 Amber Wave .. .. EMP_NUM EMP_NAME JOB_CLASS 101 John G. News Database Engineer 102 David H. Senior System Analyst .. .. .. PROJ_NUM EMP_NUM HOURS 15 103 23.8 15 101 19.4 .. .. .. JOB_CLASS CHG_HOUR Database Engineer 105.00 System Analyst 96.75 .. .. Nama tabel: JOB Tabel hasil normalisasi bentuk ketiga (3rd form)
  30. • Pastikan tabel sudah dalam bentuk normal ketiga • Hanya

    dilakukan jika dan hanya jika semua determinan merupakan candidate key
  31. C A B {A,B} à C, D C à B

    3rd normal form but not BCNF D D A C {A,C} à D 3rd normal form and BCNF B C C à B
  32. SISWA KURSUS TUTOR Anwar B. Perancis Pierre Anwar B. Inggris

    Richard Budi B. Perancis Pierre Cecep B. Inggris Suzanne Ilustrasi tabel BCNF SISWA TUTOR Anwar Pierre Anwar Richard Budi Pierre Cecep Suzanne TUTOR KURSUS Pierre B. Perancis Richard B. Inggris Suzanne B. Inggris {SISWA,KURSUS} à TUTOR TUTOR à KURSUS TUTOR à KURSUS Relasi SISWA dengan TUTOR