Anomali data dan kebutuhan normalisasi

From OnnoWiki
Jump to navigation Jump to search

Tujuan Pembelajaran

Setelah mempelajari modul ini, mahasiswa diharapkan mampu:

  • Memahami konsep anomali data dalam basis data relasional
  • Menjelaskan pentingnya normalisasi dalam desain skema relasional
  • Menerapkan proses normalisasi hingga bentuk normal ketiga (3NF)
  • Mendesain skema relasional yang efisien dan bebas dari anomali data

Anomali Data dalam Basis Data Relasional

  • Anomali data adalah masalah yang muncul akibat desain tabel yang tidak optimal, seringkali disebabkan oleh redundansi data. Anomali ini dapat mengganggu integritas dan konsistensi data.

Jenis-Jenis Anomali:

1. Anomali Penyisipan (Insertion Anomaly):

  • Terjadi ketika penambahan data baru tidak dapat dilakukan tanpa adanya data lain yang belum tersedia.
  • Contoh: Tidak dapat menambahkan data mahasiswa baru karena belum memiliki data mata kuliah yang diambil.

2. Anomali Penghapusan (Deletion Anomaly):

  • Terjadi ketika penghapusan data menyebabkan hilangnya informasi penting lainnya.
  • Contoh: Menghapus data mahasiswa terakhir yang mengambil mata kuliah tertentu menyebabkan informasi tentang mata kuliah tersebut hilang.

3. Anomali Pembaruan (Update Anomaly):

  • Terjadi ketika perubahan data pada satu tempat tidak konsisten dengan data di tempat lain.
  • Contoh: Mengubah nama dosen di satu baris tidak secara otomatis mengubahnya di baris lain yang terkait.

Normalisasi: Solusi untuk Anomali Data

  • Normalisasi adalah proses sistematis untuk mengorganisasi data dalam basis data guna mengurangi redundansi dan meningkatkan integritas data. Proses ini melibatkan pemecahan tabel menjadi tabel-tabel yang lebih kecil dan mendefinisikan hubungan di antara merea.

Manfaat Normalisasi:

  • Mengurangi redundansi data.
  • Meningkatkan konsistensi dan integritas data.
  • Mempermudah pemeliharaan dan pembaruan data.
  • Meningkatkan efisiensi penyimpanan.


Proses Normalisasi: Dari UNF ke 3F

Proses normalisasi dilakukan melalui beberapa tahap, masing-masing dengan tujuan spesifik:

1. Unnormalized Form (UNF):

  • Data belum terstruktur dengan baik; mungkin terdapat grup berulang atau atribut multivalued.

2. First Normal Form (1NF):

  • Menghilangkan grup berulang; setiap atribut harus memiliki nilai atomik (tidak dapat dibagi lagi).

3. Second Normal Form (2NF):

  • Memenuhi 1NF dan semua atribut non-kunci harus sepenuhnya bergantung pada kunci utama.

4. Third Normal Form (3NF):

  • Memenuhi 2NF dan tidak ada ketergantungan transitif antara atribut non-kunci.

Studi Kasus: Normalisasi Data Mahasiswa

Data Awal (UNF):

NIM Nama Mahasiswa Kode MK Nama MK Dosen
101 MK001 Basis Data Dr. Budi
101 MK002 Algoritma Dr. Siti
102 MK001 Basis Data Dr. Budi

Setelah 1F:

  • Setiap entri memiliki nilai atomik; tabel tetap sama namun struktur data lebih terdefiisi.

Setelah 2F:

  • Pisahkan data menjadi dua tabel untuk menghilangkan ketergantungan parial.

Tabel Mahasiswa:

NIM Nama Mahasiswa
101 Andi
102 Budi

Tabel Mata Kuliah:

Kode MK Nama MK Dosen
MK001 Basis Data Dr. Budi
MK002 Algoritma Dr. Siti

Tabel Pengambilan:

NIM Kode MK
101 MK001
101 MK002
102 MK001

Setelah 3F:

  • Pisahkan informasi dosen ke dalam tabel tersendiri untuk menghilangkan ketergantungan transtif.

Tabel Dosen:

ID Dosen Nama Dosen
D001 Dr. Budi
D002 Dr. Siti

Tabel Mata Kuliah (revisi):

Kode MK Nama MK ID Dosen
MK001 Basis Data D001
MK002 Algoritma D002


Implementasi Skema Relasional di MySQL (Ubuntu 24.04)

Setelah melakukan normalisasi hingga 3NF, kita dapat mengimplementasikan skema relasional tersebut di MySQL. Berikut adalah contoh implementasi berdasarkan studi kasus sebelumnya

1. Tabel Mahasiswa

Menyimpan data mahasiswa dengan atribut `nim` sebagai primary key

CREATE TABLE mahasiswa (
    nim VARCHAR(10) PRIMARY KEY,
    nama_mahasiswa VARCHAR(100)
);

2. Tabel Dosen

Menyimpan data dosen dengan atribut `id_dosen` sebagai primary key

CREATE TABLE dosen (
    id_dosen VARCHAR(10) PRIMARY KEY,
    nama_dosen VARCHAR(100)
);

3. Tabel Mata Kuliah

Menyimpan data mata kuliah dengan atribut `kode_mk` sebagai primary key dan `id_dosen` sebagai foreign key yang mereferensikan tabel `dosen`

CREATE TABLE mata_kuliah (
    kode_mk VARCHAR(10) PRIMARY KEY,
    nama_mk VARCHAR(100),
    id_dosen VARCHAR(10),
    FOREIGN KEY (id_dosen) REFERENCES dosen(id_dosen)
);

4. Tabel Pengambilan

Menyimpan relasi antara mahasiswa dan mata kuliah yang diambil, dengan kombinasi `nim` dan `kode_mk` sebagai composite primary key

CREATE TABLE pengambilan (
    nim VARCHAR(10),
    kode_mk VARCHAR(10),
    semester VARCHAR(10),
    PRIMARY KEY (nim, kode_mk),
    FOREIGN KEY (nim) REFERENCES mahasiswa(nim),
    FOREIGN KEY (kode_mk) REFERENCES mata_kuliah(kode_mk)
);


Evaluasi Desain Skema

Setelah implementasi, penting untuk mengevaluasi desain skema untuk memastikan

  • Integritas Data: Apakah relasi antar tabel sudah tepat dan mencegah anomali data
  • Efisiensi Query: Apakah struktur tabel mendukung query yang efisien
  • Kebutuhan Aplikasi: Apakah skema mendukung kebutuhan fungsional dari aplikasi yang akan dibangun

Kesimpulan

  • Normalisasi hingga 3NF membantu dalam mengurangi redundansi dan mencegah anomali data.
  • Implementasi skema relasional di MySQL harus mengikuti hasil normalisasi untuk memastikan integritas dan efisiensi data.
  • Evaluasi desain skema setelah implementasi penting untuk memastikan bahwa skema tersebut memenuhi kebutuhan sistem dan aplikasi yang akan digunakan.

Pranala Menarik