Normalisasi database

 Normalisasi database adalah teknik untuk menyusun data agar lebih terstruktur dan efisien, dengan tujuan mengurangi duplikasi dan menjaga konsistensi. Berikut adalah tahap-tahap utamanya:


Tentu! Berikut adalah penjelasan rinci tentang tahapan normalisasi database dengan phrasing yang diubah:


 1. First Normal Form (1NF)

Tujuan: Menghilangkan grup data berulang dan memastikan bahwa setiap kolom berisi nilai yang tidak terpecah.


Kriteria:

- Nilai Atomik: Kolom dalam tabel harus menyimpan nilai tunggal dan tidak boleh memuat beberapa nilai dalam satu sel.

- Keunikan Baris: Setiap baris dalam tabel harus unik, biasanya dicapai dengan kunci utama.


Contoh:

Jika tabel `Mahasiswa` memiliki kolom `MataKuliah` yang menyimpan beberapa mata kuliah dalam satu sel, tabel tersebut harus dipecah sehingga setiap mata kuliah memiliki baris terpisah:


| Nama       | MataKuliah    | Nilai |

|------------|---------------|-------|

| Andi       | Matematika    | A     |

| Andi       | Fisika        | B     |

| Budi       | Kimia         | A     |


 2. Second Normal Form (2NF)

Tujuan: Menghapus ketergantungan parsial, yaitu memastikan setiap kolom non-primer sepenuhnya bergantung pada kunci utama.


Kriteria:

- 1NF Terpenuhi: Harus mematuhi 1NF.

- Ketergantungan Penuh: Kolom non-primer harus bergantung sepenuhnya pada kunci utama, tanpa ketergantungan parsial.


Contoh:

Jika tabel `Kursus` memiliki kunci utama yang terdiri dari `ID_Mahasiswa` dan `ID_Kursus`, dan kolom `Nama_Mahasiswa` yang hanya bergantung pada `ID_Mahasiswa`, maka informasi `Nama_Mahasiswa` harus dipindahkan ke tabel lain:


Tabel Mahasiswa:


| ID_Mahasiswa | Nama_Mahasiswa |

|--------------|----------------|

| 1            | Andi           |

| 2            | Budi           |


Tabel Kursus:


| ID_Mahasiswa | ID_Kursus | Nilai |

|--------------|-----------|-------|

| 1            | 101       | A     |

| 1            | 102       | B     |

| 2            | 103       | A     |


 3. Third Normal Form (3NF)

Tujuan: Menghilangkan ketergantungan transitif, sehingga kolom non-primer hanya bergantung langsung pada kunci utama.


Kriteria:

- 2NF Terpenuhi: Harus mematuhi 2NF.

- Tanpa Ketergantungan Transitif: Kolom non-primer harus bergantung langsung pada kunci utama, bukan pada kolom non-primer lainnya.


Contoh:

Jika tabel `Karyawan` memiliki kolom `Alamat_Kota` yang menentukan `Kode_Pos`, maka `Kode_Pos` harus dipindahkan ke tabel terpisah:


Tabel Karyawan:


| ID_Karyawan | Nama    | Alamat_Kota |

|-------------|---------|-------------|

| 1           | Andi    | Jakarta     |

| 2           | Budi    | Bandung     |


Tabel Kota:


| Alamat_Kota | Kode_Pos |

|-------------|----------|

| Jakarta     | 12345    |

| Bandung     | 67890    |


 4. Boyce-Codd Normal Form (BCNF)

Tujuan: Memperbaiki batasan 3NF dengan memastikan bahwa setiap determinan adalah kunci kandidat.


Kriteria:

- 3NF Terpenuhi: Harus memenuhi 3NF.

- Kunci Kandidat: Setiap atribut yang menentukan nilai atribut lain harus menjadi kunci kandidat.


Contoh:

Jika dalam tabel `Penyewa`, `Nama_Penyewa` juga menentukan `Alamat`, maka `Nama_Penyewa` harus menjadi kunci utama jika dia adalah determinan:


Tabel Penyewa:


| Nomor_Penyewa | Nama_Penyewa | Alamat       |

|---------------|--------------|--------------|

| 101           | Andi         | Jakarta      |

| 102           | Budi         | Bandung      |


Tabel Nama:


| Nama_Penyewa | Alamat       |

|--------------|--------------|

| Andi         | Jakarta      |

| Budi         | Bandung      |


 5. Fourth Normal Form (4NF)

Tujuan: Menangani ketergantungan multi-nilai dengan memastikan tabel hanya mengandung satu set data yang independen.


Kriteria:

- BCNF Terpenuhi: Tabel harus memenuhi BCNF.

- Tidak Ada Ketergantungan Multi-Nilai: Setiap kolom harus menyimpan informasi yang terpisah dari kolom lain yang independen.


Contoh:

Jika tabel `Karyawan` mencatat keterampilan dan bahasa yang dikuasai dalam kolom yang sama, informasi tersebut harus dipisahkan:


Tabel Karyawan_Keterampilan:


| ID_Karyawan | Keterampilan |

|-------------|--------------|

| 1           | Pemrograman  |

| 1           | Manajemen    |


Tabel Karyawan_Bahasa:


| ID_Karyawan | Bahasa   |

|-------------|----------|

| 1           | Inggris  |

| 1           | Mandarin |


 6. Fifth Normal Form (5NF)

Tujuan: Menghindari redundansi yang disebabkan oleh ketergantungan join, memastikan tabel hanya berisi data yang tidak dapat dipecah lebih lanjut.


**Kriteria:**

- **4NF Terpenuhi:** Tabel harus memenuhi 4NF.

- **Tidak Ada Ketergantungan Join:** Tabel harus dipecah sehingga tidak ada redundansi data yang disebabkan oleh penggabungan.


Contoh:

Jika tabel `Proyek` mengaitkan karyawan dan manajer dalam proyek, data ini harus dipisahkan untuk menghindari redundansi:


Tabel Proyek_Karyawan:


| ID_Proyek | ID_Karyawan |

|-----------|-------------|

| 1         | 101         |

| 1         | 102         |


Tabel Proyek_Manajer:


| ID_Proyek | ID_Manajer |

|-----------|------------|

| 1         | 201        |


7. Sixth Normal Form (6NF)

Tujuan: Menangani data yang berubah seiring waktu, serta kasus-kasus data temporal.


Kriteria:

- 5NF Terpenuhi: Tabel harus memenuhi 5NF.

- Data Temporal: Menyusun data yang melibatkan perubahan nilai sepanjang waktu dengan mempertahankan integritas historis.


Contoh:

Jika tabel `Harga_Produk` mencatat harga produk yang berubah setiap bulan, data tersebut harus disusun untuk mencerminkan periode waktu perubahan:


Tabel Harga_Produk:


| ID_Produk | Tanggal   | Harga |

|-----------|-----------|-------|

| 1         | 2024-01-01| 100   |

| 1         | 2024-02-01| 110   |


Dengan mengikuti tahapan normalisasi ini, struktur database dapat lebih efisien, mengurangi redundansi, dan menjaga keakuratan data.



Normalisasi

- Tujuan: Menyusun data dalam tabel untuk mengurangi pengulangan dan menjaga konsistensi.

- Fokus: Struktur tabel dan hubungan antar tabel.

- Proses: Menghapus data yang redundan dan memastikan kolom bergantung sepenuhnya pada kunci utama.


 Entity-Relationship Diagram (ERD)

- Tujuan: Merancang struktur database dengan menggambarkan entitas, atribut, dan hubungan di antara entitas.

- Fokus: Desain konseptual dan representasi visual hubungan data.

- Proses: Menentukan entitas dan hubungan di dalam diagram untuk merancang struktur database.


Normalisasi berfokus pada penyusunan data dalam tabel, sedangkan ERD berfokus pada perancangan hubungan data secara grafis.

Normalisasi bertujuan untuk menjaga data tetap konsisten dan menghindari duplikasi.









Komentar

Postingan populer dari blog ini