2. Membuat NormalisasiÂ
Normalisasi adalah proses pengaturan struktur data dalam tabel untuk mengurangi redundansi (pengulangan) dan memastikan integritas data. Dalam proses ini, data diatur dalam beberapa bentuk normalisasi (normal forms), mulai dari 1NF (First Normal Form) hingga 3NF (Third Normal Form). Berikut penjelasan mengenai normalisasi dari 1NF hingga 3NF, serta syarat-syarat untuk mencapai setiap bentuk normal tersebut.
a. 1NF (First Normal Form)
1NF adalah bentuk normalisasi paling dasar. Dalam 1NF, tabel harus memenuhi beberapa syarat:
- Setiap kolom dalam tabel hanya mengandung nilai atom (nilai tunggal) atau tidak boleh ada kelompok nilai.
- Setiap kolom hanya memiliki satu jenis atribut atau tipe data yang konsisten.
Contoh tabel sebelum 1NF:
- Tabel yang mengandung kolom dengan beberapa nilai dalam satu sel, misalnya kolom produk berisi lebih dari satu nama produk dalam satu pesanan.
Contoh tabel setelah 1NF:
- Setiap produk dalam pesanan memiliki baris tersendiri, sehingga setiap kolom hanya berisi satu nilai tunggal.
b. 2NF (Second Normal Form)
Setelah tabel memenuhi syarat 1NF, langkah berikutnya adalah memastikan bahwa tabel memenuhi syarat 2NF. Syarat untuk mencapai 2NF adalah:
- Tabel sudah dalam bentuk 1NF.
- Semua atribut non-kunci harus bergantung secara penuh pada kunci utama (tidak ada ketergantungan parsial).
Ketergantungan parsial terjadi ketika atribut non-kunci hanya bergantung pada sebagian dari kunci gabungan (kunci primer yang terdiri dari lebih dari satu kolom). Dalam 2NF, kita menghilangkan ketergantungan parsial dengan memisahkan data yang tergantung pada sebagian kunci ke dalam tabel tersendiri.
Struktur Tabel untuk 2NF dalam Database Pesanan Shopee:Untuk memenuhi 2NF, kita dapat membagi tabel menjadi beberapa tabel yang terpisah berdasarkan entitas utama dalam sistem, yaitu:
- Tabel Pesanan: menyimpan informasi pesanan (no_pesanan, metode_pembayaran, waktu, total_bayar).
- Tabel Pembeli: menyimpan data pembeli (id_pembeli, nama_pembeli, alamat_pembeli, no_hp).
- Tabel Penjual: menyimpan data penjual (id_penjual, nama_penjual).
- Tabel Kurir: menyimpan informasi kurir (id_kurir, kurir).
- Tabel Produk: menyimpan informasi produk (kode_produk, nama_produk, harga).
Dengan pembagian ini, setiap tabel hanya menyimpan data yang relevan, dan tidak ada atribut non-kunci yang bergantung secara parsial pada kunci utama.