Pendahuluan
Normalisasi database adalah metode dalam desain database relasional yang membantu mengatur tabel data dengan benar. Proses ini bertujuan untuk menciptakan sistem yang dengan setia mewakili informasi dan hubungan tanpa kehilangan atau redundansi data.
Artikel ini menjelaskan normalisasi database dan cara menormalkan database melalui contoh langsung.
Apa itu Normalisasi Basis Data?
normalisasi basis data adalah teknik untuk membuat tabel database dengan kolom dan kunci yang sesuai dengan menguraikan tabel besar menjadi unit logis yang lebih kecil. Proses tersebut juga mempertimbangkan tuntutan lingkungan di mana database berada.
Normalisasi adalah proses berulang. Biasanya, normalisasi database terjadi melalui serangkaian tes. Setiap langkah selanjutnya menguraikan tabel menjadi informasi yang lebih mudah dikelola, membuat keseluruhan basis data logis dan lebih mudah digunakan.
Mengapa Normalisasi Basis Data Penting?
Normalisasi membantu perancang database mendistribusikan atribut secara optimal ke dalam tabel. Teknik ini menghilangkan hal berikut:
- Atribut dengan banyak nilai.
- Digandakan atau diulang atribut.
- Non-deskriptif atribut.
- Atribut dengan berlebihan informasi.
- Atribut dibuat dari fitur lain .
Meskipun normalisasi basis data total tidak diperlukan, ia menyediakan lingkungan informasi yang berfungsi dengan baik. Metode ini secara sistematis memastikan:
- Struktur basis data cocok untuk kueri umum.
- Meminimalkan redundansi data , meningkatkan efisiensi memori pada server database.
- Integritas data yang dimaksimalkan melalui penyisipan, pembaruan, dan penghapusan anomali yang dikurangi.
Normalisasi basis data mengubah konsistensi basis data secara keseluruhan, menyediakan lingkungan yang efisien.
Redundansi dan Anomali Basis Data
Saat mengubah entitas dalam tabel dengan redundansi , Anda harus mengubah semua informasi yang berulang, dan informasi lain apa pun yang terkait dengan data yang diubah. Jika tidak, database menjadi tidak konsisten dan anomali terjadi saat membuat perubahan.
Misalnya, dalam tabel yang tidak dinormalisasi berikut:
Tabel berisi data redundansi , yang pada gilirannya menyebabkan tiga anomali saat membuat perubahan data:
1. Sisipkan anomali . Saat mencoba memasukkan pegawai baru di bidang keuangan, Anda juga harus mengetahui nama manajernya. Jika tidak, Anda tidak dapat memasukkan data ke dalam tabel.
2. Perbarui anomali. Jika seorang karyawan berpindah sektor, nama manajer akhirnya salah. Misalnya, jika Yakub berubah menjadi keuangan, Adam tetap sebagai manajernya.
3. Hapus anomali . Jika Joshua memutuskan untuk keluar dari perusahaan, menghapus baris juga akan menghapus informasi bahwa ada sektor keuangan.
Solusi untuk anomali ini ada di normalisasi database konsep dan langkah.
Konsep Normalisasi Basis Data
Konsep dasar yang digunakan dalam normalisasi database adalah:
- Kunci . Atribut kolom yang mengidentifikasi record database secara unik.
- Ketergantungan Fungsional . Batasan antara dua atribut dalam suatu relasi.
- Bentuk Normal . Langkah-langkah untuk mencapai kualitas database tertentu.
Bentuk Normal Basis Data
Normalisasi database dicapai melalui seperangkat aturan yang dikenal sebagai bentuk normal . Konsep utamanya adalah membantu perancang basis data mencapai kualitas basis data relasional yang diinginkan.
Semua level normalisasi bersifat kumulatif. persyaratan bentuk normal sebelumnya harus dipenuhi sebelum pindah ke bentuk berikut.
Tahapan normalisasi adalah:
Panggung | Anomali Redundansi Ditangani |
---|---|
Bentuk Tidak Normal (UNF) | Status sebelum normalisasi apa pun. Ada nilai yang berlebihan dan kompleks. |
Bentuk Normal Pertama (1NF) | Nilai yang berulang dan kompleks terpecah, membuat semua instance atomik. |
Bentuk Normal Kedua (2NF) | Ketergantungan sebagian terurai ke tabel baru. Semua baris secara fungsional bergantung pada kunci utama. |
Bentuk Normal Ketiga (3NF) | Ketergantungan transitif terurai ke tabel baru. Atribut non-kunci bergantung pada kunci utama. |
Bentuk Normal Boyce-Codd (BCNF) | Ketergantungan fungsional transitif dan parsial untuk semua kunci kandidat terurai ke tabel baru. |
Bentuk Normal Keempat (4NF) | Penghapusan dependensi multinilai. |
Bentuk Normal Kelima (5NF) | Penghapusan dependensi GABUNG. |
Basis data dinormalisasi jika memenuhi bentuk normal ketiga . Langkah lebih lanjut dalam normalisasi membuat desain database menjadi rumit dan dapat membahayakan fungsionalitas sistem.
Apa itu KUNCI?
Kunci database adalah atribut atau sekelompok fitur yang secara unik menggambarkan entitas dalam sebuah tabel. Jenis kunci yang digunakan dalam normalisasi adalah:
- Kunci Super . Sekumpulan fitur yang secara unik mendefinisikan setiap record dalam sebuah tabel.
- Kunci Kandidat . Kunci dipilih dari kumpulan kunci super dengan jumlah bidang minimal.
- Kunci Utama . Pilihan yang paling tepat dari kumpulan kunci kandidat berfungsi sebagai kunci utama tabel.
- Kunci Asing . Kunci utama dari tabel lain.
- Kunci Gabungan . Dua atau lebih atribut bersama-sama membentuk kunci unik tetapi bukan kunci satu per satu.
Saat tabel terurai menjadi beberapa tabel yang lebih sederhana, kunci menentukan titik referensi untuk entitas database.
Misalnya, dalam struktur database berikut:
Beberapa contoh kunci super dalam tabel adalah:
- ID karyawan
- (ID karyawan, nama)
Semua kunci super dapat berfungsi sebagai pengidentifikasi unik untuk setiap baris. Di sisi lain, nama atau usia karyawan bukanlah pengidentifikasi unik karena dua orang dapat memiliki nama atau usia yang sama.
Kunci kandidat berasal dari set kunci super di mana jumlah bidang minimal. Pilihannya ada pada dua opsi:
- ID karyawan
Kedua opsi berisi jumlah bidang minimal, menjadikannya kunci kandidat yang optimal. Pilihan paling logis untuk kunci utama adalah ID karyawan karena email karyawan bisa berubah. Kunci utama dalam tabel mudah dirujuk sebagai kunci asing di tabel lain.
Ketergantungan Basis Data Fungsional
Sebuah ketergantungan database fungsional mewakili hubungan antara dua atribut dalam tabel database. Beberapa jenis dependensi fungsional adalah:
- Ketergantungan Fungsional Sepele . Ketergantungan antara atribut dan sekelompok fitur di mana elemen asli berada dalam grup.
- Ketergantungan Fungsional Non-Sepele . Ketergantungan antara atribut dan grup di mana fitur tidak ada dalam grup.
- Ketergantungan Transitif. Ketergantungan fungsional antara tiga atribut di mana atribut kedua bergantung pada atribut pertama dan atribut ketiga bergantung pada atribut kedua. Karena transitivitas, atribut ketiga bergantung pada atribut pertama.
- Ketergantungan Multinilai. Ketergantungan di mana beberapa nilai bergantung pada satu atribut.
Ketergantungan fungsional merupakan langkah penting dalam normalisasi database. Dalam jangka panjang, dependensi membantu menentukan kualitas database secara keseluruhan.
Contoh Normalisasi Basis Data - Bagaimana Menormalkan Basis Data?
Langkah-langkah umum dalam normalisasi database bekerja untuk setiap database. Langkah-langkah spesifik untuk membagi tabel serta apakah akan melewati 3NF bergantung pada kasus penggunaan.
Contoh Basis Data Tidak Normal
Tabel yang tidak dinormalisasi memiliki beberapa nilai dalam satu bidang, serta informasi yang berlebihan dalam kasus terburuk.
Misalnya:
managerID | managerName | area | ID karyawan | namakaryawan | ID sektor | sectorName |
---|---|---|---|---|---|---|
1 | Adam A. | Timur | 1 2 | David D. Eugene E. | 4 3 | Keuangan ITU |
2 | Betty B. | Barat | 3 4 5 | George G. Henry H. Ingrid I. | 2 1 4 | Keamanan Administrasi Keuangan |
3 | Carl C. | Utara | 6 7 | James J. Katy K. | 1 4 | Administrasi Keuangan |
Memasukkan, memperbarui, dan menghapus data adalah tugas yang kompleks. Melakukan perubahan apa pun pada tabel yang ada berisiko tinggi kehilangan informasi.
Langkah 1:Bentuk Normal Pertama 1NF
Untuk mengerjakan ulang tabel database menjadi 1NF, nilai dalam satu bidang harus atomik. Semua entitas kompleks dalam tabel dibagi menjadi baris atau kolom baru.
Informasi di kolom managerID , namapengelola , dan luas ulangi untuk setiap karyawan untuk memastikan tidak ada kehilangan informasi.
managerID | managerName | area | ID karyawan | namakaryawan | ID sektor | sectorName |
---|---|---|---|---|---|---|
1 | Adam A. | Timur | 1 | David D. | 4 | Keuangan |
1 | Adam A. | Timur | 2 | Eugene E. | 3 | TI |
2 | Betty B. | Barat | 3 | George G. | 2 | Keamanan |
2 | Betty B. | Barat | 4 | Henry H. | 1 | Administrasi |
2 | Betty B. | Barat | 5 | Ingrid I. | 4 | Keuangan |
3 | Carl C. | Utara | 6 | James J. | 1 | Administrasi |
3 | Carl C. | Utara | 7 | Katy K. | 4 | Keuangan |
Tabel yang dikerjakan ulang memenuhi bentuk normal pertama.
Langkah 2:Bentuk Normal Kedua 2NF
Bentuk normal kedua dalam normalisasi database menyatakan bahwa setiap baris dalam tabel database harus bergantung pada kunci utama.
Tabel dibagi menjadi dua tabel untuk memenuhi bentuk normal:
- Manajer (managerID, managerName, area)
managerID | managerName | area |
---|---|---|
1 | Adam A. | Timur |
2 | Betty B. | Barat |
3 | Carl C. | Utara |
- Karyawan (employeeID, employeeName, managerID, sectorID, sectorName)
ID karyawan | namakaryawan | managerID | ID sektor | sectorName |
---|---|---|---|---|
1 | David D. | 1 | 4 | Keuangan |
2 | Eugene E. | 1 | 3 | TI |
3 | George G. | 2 | 2 | Keamanan |
4 | Henry H. | 2 | 1 | Administrasi |
5 | Ingrid I. | 2 | 4 | Keuangan |
6 | James J. | 3 | 1 | Administrasi |
7 | Katy K. | 3 | 4 | Keuangan |
Basis data yang dihasilkan dalam bentuk normal kedua saat ini adalah dua tabel tanpa ketergantungan parsial.
Langkah 3:Bentuk Normal Ketiga 3NF
Bentuk normal ketiga menguraikan semua ketergantungan fungsional transitif. Saat ini, tabel Karyawan memiliki ketergantungan transitif yang terurai menjadi dua tabel baru:
- Karyawan (employeeID, employeeName, managerID, sectorID)
ID karyawan | namakaryawan | managerID | ID sektor |
---|---|---|---|
1 | David D. | 1 | 4 |
2 | Eugene E. | 1 | 3 |
3 | George G. | 2 | 2 |
4 | Henry H. | 2 | 1 |
5 | Ingrid I. | 2 | 4 |
6 | James J. | 3 | 1 |
7 | Katy K. | 3 | 4 |
- Sektor (ID sektor, Nama sektor)
sectorID | sectorName |
---|---|
1 | Administrasi |
2 | Keamanan |
3 | TI |
4 | Keuangan |
Basis data saat ini dalam bentuk normal ketiga dengan total tiga relasi. Struktur terakhir adalah:
Pada titik ini, database dinormalisasi . Langkah normalisasi lebih lanjut bergantung pada kasus penggunaan data.