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
22
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
44
Slide DevCoach
shabillarestu
0
42
Slide DevCoach
shabillarestu
0
25
Slide DevCoach
shabillarestu
0
10
Slide DevCoach
shabillarestu
0
24
Slide DevCoach
shabillarestu
0
19
Slide DevCoach
shabillarestu
0
13
Slide DevCoach
shabillarestu
0
19
Slide DevCoach
shabillarestu
0
22
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
328
21k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
25k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
28
1.6k
Writing Fast Ruby
sferik
628
61k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
17
1.1k
For a Future-Friendly Web
brad_frost
176
9.6k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
320
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