GNU/Linux >> Belajar Linux >  >> Cent OS

Apa itu Normalisasi Basis Data?

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)
  • email

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
  • email

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.


Cent OS
  1. Apa itu speedtest-cli?

  2. Apa itu Web3.0?

  3. Apa itu Basis Data Relasional?

  1. Apa itu Basis Data NoSQL? – Penjelasan NoSQL

  2. Apa itu Basis Data Relasional?

  3. Apa Itu Database Server &Untuk Apa Digunakan?

  1. Apa itu Database Berorientasi Objek

  2. Apa itu Basis Data Terdistribusi?

  3. Apa itu Basis Data Multi-Model?