Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Slide DevCoach
Search
shabilla
April 11, 2024
0
28
Slide DevCoach
DevCoach 125 : Back-End | Memperbaiki schema database dengan normalisasi
shabilla
April 11, 2024
Tweet
Share
More Decks by shabilla
See All by shabilla
Slide DevCoach #151
shabillarestu
0
51
Slide DevCoach
shabillarestu
0
51
Slide DevCoach
shabillarestu
0
28
Slide DevCoach
shabillarestu
0
22
Slide DevCoach
shabillarestu
0
31
Slide DevCoach
shabillarestu
0
27
Slide DevCoach
shabillarestu
0
17
Slide DevCoach
shabillarestu
0
25
Slide DevCoach
shabillarestu
0
28
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
140
7.2k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Building Adaptive Systems
keathley
44
2.8k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Documentation Writing (for coders)
carmenintech
75
5.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
The Invisible Side of Design
smashingmag
302
51k
Rails Girls Zürich Keynote
gr2m
95
14k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6k
Transcript
None
None
Developer Coaching #122 • Mengenal autentikasi • Mengenal otorisasi •
Perbedaan autentikasi dan otorisasi • Implementasi autentikasi dan otorisasi pada REST API Back-End
Desain basis data yang tidak tepat menjadi masalah umum yang
menyebabkan performa database. ̶F̶u̶n̶ fact Back-End
Agenda • Mengenal anomali pada Database • Mengenal normalisasi Database
• Tahapan normalisasi Database Back-End
Anomali pada Database Back-End
Anomali Anomali adalah masalah yang terjadi akibat dari perubahan data
di database seperti insert, update, dan delete. Anomali ada 3 jenis yaitu insert, update, delete anomali. Back-End
Insert Anomali Back-End Back-End
Update Anomali Back-End Back-End
Delete Anomali Back-End Back-End
Dependensi (ketergantungan) Back-End
Dependensi Back-End Dependensi adalah hubungan antara suatu atribut dan nilai
atribut tersebut yang menentukan nilai atribut lainnya.
Jenis Dependensi Back-End • Dependensi fungsional • Dependensi fungsional sepenuhnya
• Dependensi total • Dependensi transitif
Dependensi fungsional Back-End Suatu atribut Y mempunyai dependensi fungsional terhadap
atribut X jika dan hanya jika setiap nilai X berhubungan dengan sebuah nilai Y. Notasi: X --> Y
Dependensi fungsional Back-End Contoh: ID -> Nama
Dependensi fungsional Back-End Contoh: NIK -> Nama
Dependensi fungsional sepenuhnya Back-End Dependensi fungsional sepenuhnya, jika: • Y
mempunyai dependensi fungsional terhadap X, • Y tidak memiliki dependensi terhadap bagian dari X.
Dependensi fungsional sepenuhnya Back-End Contoh: ID ITEM -> Harga ID
ITEM, ID SUPPLIER -> Harga
Dependensi fungsional sepenuhnya Back-End Contoh: NIM, ID Mata Kuliah ->
Nilai
Dependensi total Back-End Dependensi total, jika • Y memiliki dependensi
fungsional terhadap X dan • X memiliki dependensi fungsional terhadap Y. Notasi: X <-> Y
Dependensi total Back-End Contoh: ID SUPPLIER -> Nama Nama ->
ID SUPPLIER ID SUPPLIER <-> Nama
Dependensi total Back-End Contoh: NO KARYAWAN -> Nama Nama ->
NO KARYAWAN NO KARYAWAN <-> Nama
Dependensi transitif Back-End Suatu atribut Z dikatakan memiliki dependensi transitif
terhadap X, jika • Z memiliki dependensi fungsional terhadap Y dan • Y memiliki dependensi fungsional terhadap X. Notasi: X --> Y -> Z
Dependensi transitif Back-End Contoh: ID -> Nama -> Alamat
Dependensi transitif Back-End Contoh: NO KARYAWAN -> Nama -> Nama
Tim
Back-End nama_lengkap jabatan gaji nama_proyek Dimas Maulana Sales 5000000 Iklan
produk A, Iklan produk B, Iklan produk C Budi Customer Service 4000000 Survey produk A Gilang Ramadhan Sales Manager 5500000 Iklan produk B Back-End
Normalization (Normalisasi) Back-End
Normalisasi Normalisasi adalah teknik mendesain database untuk mengurangi redundancy dan
menghindari insert/update/delete anomaly. Back-End
Back-End Tahapan Normalisasi
1NF (First Normal Form) Back-End Aturan dari 1NF adalah: •
Setiap kolom tidak boleh memiliki nilai lebih dari satu.
Setelah tahap 1NF nama_lengkap jabatan gaji nama_proyek Dimas Maulana Sales
5000000 Iklan produk A Dimas Maulana Sales 5000000 Iklan produk B Dimas Maulana Sales 5000000 Iklan produk C Budi Customer Service 4000000 Survey produk A Gilang Ramadhan Sales Manager 5500000 Iklan produk B Back-End
2NF (Second Normal Form) Back-End Aturan dari 2NF adalah: •
Memenuhi kriteria 1NF • Semua kolom yang bukan merupakan suatu key (non-attributed key) harus bergantung secara penuh dengan satu primary key.
id_karyawan (pk) nama_lengkap jabatan gaji DCD0001 Dimas Maulana Sales 5000000
DCD0002 Budi Customer Service 4000000 DCD0003 Gilang Ramadhan Sales Manager 5500000 Tabel Karyawan Back-End Setelah tahap 2NF
Tabel Proyek id_proyek (pk) nama_proyek PR0001 Iklan produk A PR0002
Iklan produk B PR0003 Iklan produk C PR0004 Survey produk A Back-End
Tabel Proyek_Karyawan Id_karyawan (fk) Id_proyek (fk) DCD0001 PR0001 DCD0001 PR0002
DCD0001 PR0003 DCD0002 PR0004 DCD0003 PR0002 Back-End
3NF (Third Normal Form) Back-End Aturan dari 3NF adalah: •
Memenuhi kriteria 2NF • Tidak boleh ada kolom yang transitive functional dependencies
id_karyawan (pk) nama_lengkap id_jabatan DCD0001 Dimas Maulana ROLES0001 DCD0002 Budi
ROLES0002 DCD0003 Gilang Ramadhan ROLES0003 Tabel Karyawan Back-End
id_jabatan nama_jabatan gaji ROLES0001 Sales 5000000 ROLES0002 Customer Service 4000000
ROLES0003 Sales Manager 5500000 Tabel Jabatan Back-End
More.. more.. more.. Back-End
Feedback! Hadiah: • 2 Token Langganan Academy (30 Hari) *untuk
pengisi feedback terpilih! dicoding.id/devcoachfeedback
Thank You arasopraza
[email protected]
arasopraza Back-End arsyopraza