SlideShare a Scribd company logo
Manajemen
DATA
Adam Mukharil Bachtiar, M.T.
Normalisasi
Pemahaman Normalisasi & Anomali
Teknik mendekomposisi satu tabel menjadi beberapa
buah tabel agar tidak terjadi anomali pada tabel tersebut
apa itu anomali?
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
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
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?
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
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
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
Semua solusi dari anomali
adalah memecah tabel,
itulah normalisasi
Ada aturannya ga
pak?
Apakah memecah
tabelnya boleh asal-
asalan?
tentu tidak, kan ada aturan
dependensi!!!
Pemahaman Dependensi
mulai dari istilah di
dependensi!!!
Menggambarkan relasi/hubungan, batasan, dan
keterkaitan antara atribut-atribut dalam suatu relasi
No_KTP à Nama
Determinan/Penentu Dependent
Atribut No_KTP menentukan atribut Nama dan atribut Nama
bergantung pada atribut No_KTP
Dependensi paling dasar
adalah dependensi
fungsional
Dependensi Fungsional
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
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
Selain dependensi
fungsional, ada 4 jenis
dependensi lainnya, yaitu:
Dependensi Total
Atribut y memiliki dependensi fungsional total
terhadap atribut x jika y berdependensi fungsional terhadap x
begitu juga sebaliknya (x ↔ y)
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
Dependensi
Fungsional Penuh
Atribut y memiliki dependensi fungsional penuh
terhadap atribut x jika y berdependensi fungsional terhadap x
dan y hanya berdependensi fungsional
terhadap subset dari x
{x,y} à z
Dikatakan dependensi fungsional penuh jika z tidak hanya cukup
bergantung pada x saja atau y saja
Dependensi
Fungsional Sebagian
Atribut y memiliki dependensi fungsional
sebagian terhadap atribut x jika Y berdependensi
fungsional terhadap X dan Y tidak berdependensi fungsional
terhadap subset dari X
{x,y} à z
x à z
Maka z berdependensi fungsional sebagian terhadap x
Dependensi
Fungsional Transitif
Atribut z memiliki dependensi fungsional
transitif terhadap atribut x jika y berdependensi fungsional
terhadap x dan z berdependensi fungsional terhadap y
x à y
y à z
Jadi x à z
Maka z berdependensi fungsional transitif terhadap x
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
Mari kita mulai
normalisasi!
Proses Normalisasi
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
Bagian pada dokumen akan menjadi atribut apabila isian atau
nilainya bersifat dinamis (data bisa berubah nilai)
Contoh Atribut
Contoh Nilai
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
Diberikan suatu kasus
bentuk unnormalized
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
Bentuk normal pertama
(1st normal form)
• Eliminasi nilai null pada repeating groups
• Identifikasi primary key (Suggestion)
• Identifikasi seluruh dependensi (Suggestion)
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
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
Bentuk normal kedua
(2nd normal form)
• Pastikan tabel sudah dalam bentuk normal pertama
• Eliminasi depedensi fungsional sebagian
• Tentukan atribut yang berdepedensi terhadap atribut lain
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
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)
Bentuk normal ketiga
(3rd normal form)
• Pastikan tabel sudah dalam bentuk normal kedua
• Eliminasi depedensi transitif
• Tentukan kembali depedensi antar atribut
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
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)
Bentuk normal Boyce-Codd
(Boyce-Codd normal form)
• Pastikan tabel sudah dalam bentuk normal ketiga
• Hanya dilakukan jika dan hanya jika semua determinan
merupakan candidate key
CA B
{A,B} à C, D
C à B
3rd normal form but not BCNF
D
DA C
{A,C} à D
3rd normal form and BCNF
BC
C à B
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
Pada kasus sebelumnya,
tabel sudah dalam bentuk
normal ketiga dan BCNF
Latihan Normalisasi
Normalisasi Basis Data (Revisi)

More Related Content

PDF
Data Management (Relational Database)
PDF
Data Management (Enhanced ERD and Mapping ERD)
PDF
Data Management (Database Environment)
PDF
Software Engineering 1 (Requirement Engineering)
PDF
Scrum: How to Implements (Update)
PDF
E-Business (Business Process and Process Model)
PDF
Software Engineering 1 (Software Development Process Model)
PDF
Scrum: How to Implement
Data Management (Relational Database)
Data Management (Enhanced ERD and Mapping ERD)
Data Management (Database Environment)
Software Engineering 1 (Requirement Engineering)
Scrum: How to Implements (Update)
E-Business (Business Process and Process Model)
Software Engineering 1 (Software Development Process Model)
Scrum: How to Implement

What's hot (20)

PDF
Data Management (Introduction to Data Management)
PDF
Data Management (Basis Data Berbasis Dokumen)
PDF
Pengujian Perangkat Lunak
PDF
RPL 1 (Lama) - Perancangan Perangkat Lunak
PDF
Analisis Algoritma - Notasi Asimptotik
PDF
Analisis Algoritma - Pengantar Kompleksitas Algoritma
PDF
[RPL2] Class Diagram dan Konsep Object Oriented (1)
PPTX
Slideshow PowerPoint Software Testing
PPTX
Presentasi ERD
PDF
Interaksi manusia dan komputer
PPTX
Analisis Semantik - P 6 Teknik Kompilasi
PDF
[PBO] Pertemuan 10 - Generic Programming & Collection
PDF
Software Engineering 1 (Scrum)
PDF
UML dan Use Case View
PDF
RPL 1 (Lama) - Analisis Kebutuhan Perangkat Lunak (2)
PDF
Teori bahasa-dan-otomata
PPTX
ERD (Entity Relationship Diagram)
PDF
Bab 8 pendeteksian tepi
PPT
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada Java
PDF
ERD Sistem Informasi Pemesanan Tiket Bioskop Online
Data Management (Introduction to Data Management)
Data Management (Basis Data Berbasis Dokumen)
Pengujian Perangkat Lunak
RPL 1 (Lama) - Perancangan Perangkat Lunak
Analisis Algoritma - Notasi Asimptotik
Analisis Algoritma - Pengantar Kompleksitas Algoritma
[RPL2] Class Diagram dan Konsep Object Oriented (1)
Slideshow PowerPoint Software Testing
Presentasi ERD
Interaksi manusia dan komputer
Analisis Semantik - P 6 Teknik Kompilasi
[PBO] Pertemuan 10 - Generic Programming & Collection
Software Engineering 1 (Scrum)
UML dan Use Case View
RPL 1 (Lama) - Analisis Kebutuhan Perangkat Lunak (2)
Teori bahasa-dan-otomata
ERD (Entity Relationship Diagram)
Bab 8 pendeteksian tepi
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada Java
ERD Sistem Informasi Pemesanan Tiket Bioskop Online
Ad

Similar to Normalisasi Basis Data (Revisi) (20)

PDF
6 Materi Kuliah Normalisasi Tabel Database
PDF
Pertemuan%203.pdf
DOC
Modul Normalisasi
PPT
Bab 8 - NORMALISASI DATA yang berkaitan dengan data yang ada
PPT
normalisasi data
PPT
Normalisasi data
PPTX
Pertemuan-12-normalisasi.pptx
PPT
PPTX
Normalisasi Basis Data
PPT
Rsi 13
PPT
Rsi 13
PPT
Rsi 9 normalisasi dan buble
PPTX
Normalisasi.pptx
PPTX
W2 Normalisasi.pptx
PPTX
Normalisasi data - Basis Data
PPTX
Pert 5 (normalisasi)
PDF
Normalisasi
PDF
Normalisasi
PPT
Teknik Normalisasi Data Pada Visual Basic
PPTX
Normalisasi Basis Data (Teknik Informatika).pptx
6 Materi Kuliah Normalisasi Tabel Database
Pertemuan%203.pdf
Modul Normalisasi
Bab 8 - NORMALISASI DATA yang berkaitan dengan data yang ada
normalisasi data
Normalisasi data
Pertemuan-12-normalisasi.pptx
Normalisasi Basis Data
Rsi 13
Rsi 13
Rsi 9 normalisasi dan buble
Normalisasi.pptx
W2 Normalisasi.pptx
Normalisasi data - Basis Data
Pert 5 (normalisasi)
Normalisasi
Normalisasi
Teknik Normalisasi Data Pada Visual Basic
Normalisasi Basis Data (Teknik Informatika).pptx
Ad

More from Adam Mukharil Bachtiar (20)

PDF
Materi 8 - Data Mining Association Rule.pdf
PDF
Clean Code - Formatting Code
PDF
Clean Code - Clean Comments
PDF
PDF
Clean Code and Design Pattern - Meaningful Names
PDF
Model Driven Software Development
PDF
Data Mining Clustering
PPTX
Data Mining Klasifikasi (Updated 30 Desember 2020)
PDF
Analisis Algoritma - Strategi Algoritma Dynamic Programming
PDF
Analisis Algoritma - Strategi Algoritma Divide and Conquer
PDF
Analisis Algoritma - Strategi Algoritma Greedy
PDF
Analisis Algoritma - Penerapan Strategi Algoritma Brute Force
PDF
Analisis Algoritma - Strategi Algoritma Brute Force
PDF
Analisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
PDF
Analisis Algoritma - Teorema Notasi Asimptotik
PDF
Activity Diagram
PDF
Analisis Algoritma - Langkah Desain Algoritma
PDF
Validasi ide Menggunakan Javelin Board (Idea Validation)
PDF
Analisis Algoritma - Pengantar Analisis Algoritma
PDF
Mini Google Design Sprint
Materi 8 - Data Mining Association Rule.pdf
Clean Code - Formatting Code
Clean Code - Clean Comments
Clean Code and Design Pattern - Meaningful Names
Model Driven Software Development
Data Mining Clustering
Data Mining Klasifikasi (Updated 30 Desember 2020)
Analisis Algoritma - Strategi Algoritma Dynamic Programming
Analisis Algoritma - Strategi Algoritma Divide and Conquer
Analisis Algoritma - Strategi Algoritma Greedy
Analisis Algoritma - Penerapan Strategi Algoritma Brute Force
Analisis Algoritma - Strategi Algoritma Brute Force
Analisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
Analisis Algoritma - Teorema Notasi Asimptotik
Activity Diagram
Analisis Algoritma - Langkah Desain Algoritma
Validasi ide Menggunakan Javelin Board (Idea Validation)
Analisis Algoritma - Pengantar Analisis Algoritma
Mini Google Design Sprint

Normalisasi Basis Data (Revisi)

  • 3. Teknik mendekomposisi satu tabel menjadi beberapa buah tabel agar tidak terjadi anomali pada tabel tersebut
  • 5. 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
  • 6. 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
  • 7. 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?
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. Semua solusi dari anomali adalah memecah tabel, itulah normalisasi
  • 12. Ada aturannya ga pak? Apakah memecah tabelnya boleh asal- asalan?
  • 13. tentu tidak, kan ada aturan dependensi!!!
  • 15. mulai dari istilah di dependensi!!!
  • 16. Menggambarkan relasi/hubungan, batasan, dan keterkaitan antara atribut-atribut dalam suatu relasi
  • 17. No_KTP à Nama Determinan/Penentu Dependent Atribut No_KTP menentukan atribut Nama dan atribut Nama bergantung pada atribut No_KTP
  • 18. Dependensi paling dasar adalah dependensi fungsional
  • 20. 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
  • 21. 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
  • 22. Selain dependensi fungsional, ada 4 jenis dependensi lainnya, yaitu:
  • 24. Atribut y memiliki dependensi fungsional total terhadap atribut x jika y berdependensi fungsional terhadap x begitu juga sebaliknya (x ↔ y)
  • 25. 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
  • 27. Atribut y memiliki dependensi fungsional penuh terhadap atribut x jika y berdependensi fungsional terhadap x dan y hanya berdependensi fungsional terhadap subset dari x
  • 28. {x,y} à z Dikatakan dependensi fungsional penuh jika z tidak hanya cukup bergantung pada x saja atau y saja
  • 30. Atribut y memiliki dependensi fungsional sebagian terhadap atribut x jika Y berdependensi fungsional terhadap X dan Y tidak berdependensi fungsional terhadap subset dari X
  • 31. {x,y} à z x à z Maka z berdependensi fungsional sebagian terhadap x
  • 33. Atribut z memiliki dependensi fungsional transitif terhadap atribut x jika y berdependensi fungsional terhadap x dan z berdependensi fungsional terhadap y
  • 34. x à y y à z Jadi x à z Maka z berdependensi fungsional transitif terhadap x
  • 35. 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
  • 38. 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
  • 39. Bagian pada dokumen akan menjadi atribut apabila isian atau nilainya bersifat dinamis (data bisa berubah nilai) Contoh Atribut Contoh Nilai
  • 42. 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
  • 44. • Eliminasi nilai null pada repeating groups • Identifikasi primary key (Suggestion) • Identifikasi seluruh dependensi (Suggestion)
  • 45. 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
  • 46. 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
  • 47. Bentuk normal kedua (2nd normal form)
  • 48. • Pastikan tabel sudah dalam bentuk normal pertama • Eliminasi depedensi fungsional sebagian • Tentukan atribut yang berdepedensi terhadap atribut lain
  • 49. 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
  • 50. 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)
  • 52. • Pastikan tabel sudah dalam bentuk normal kedua • Eliminasi depedensi transitif • Tentukan kembali depedensi antar atribut
  • 53. 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
  • 54. 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)
  • 56. • Pastikan tabel sudah dalam bentuk normal ketiga • Hanya dilakukan jika dan hanya jika semua determinan merupakan candidate key
  • 57. CA B {A,B} à C, D C à B 3rd normal form but not BCNF D DA C {A,C} à D 3rd normal form and BCNF BC C à B
  • 58. 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
  • 59. Pada kasus sebelumnya, tabel sudah dalam bentuk normal ketiga dan BCNF