Konsep Basis Data Relasional
Basis data relasional (Relational Database) menyimpan data dalam bentuk tabel (relasi) yang terdiri dari baris (record/tuple) dan kolom (field/atribut). Hubungan antar tabel dibangun menggunakan kunci (key).Primary Key (PK)
Kolom atau kombinasi kolom yang secara unik mengidentifikasi setiap baris dalam tabel. Nilainya tidak boleh NULL dan tidak boleh duplikat. Contoh:
nim pada tabel mahasiswa.Foreign Key (FK)
Kolom dalam satu tabel yang merujuk ke Primary Key tabel lain, menciptakan relasi antar tabel. Contoh:
id_prodi pada tabel mahasiswa yang merujuk ke tabel program_studi.Tabel (Relasi)
Unit penyimpanan dasar dalam basis data relasional. Setiap tabel merepresentasikan satu entitas atau relasi antar entitas. Baris = satu data konkret; kolom = atribut entitas.
DBMS (Database Management System)
Perangkat lunak yang mengelola basis data, contoh: MySQL, PostgreSQL, Oracle, SQLite. DBMS menangani penyimpanan, keamanan, konkurensi, dan pemulihan data.
Entity Relationship Diagram (ERD)
ERD adalah diagram visual yang menggambarkan entitas dalam sistem, atribut-atributnya, dan hubungan (relasi) antar entitas sebelum basis data diimplementasikan. ERD merupakan langkah pertama dalam perancangan basis data.Komponen Utama ERD
Jenis Kardinalitas Relasi
One-to-One (1:1)
Satu entitas di sisi A berelasi dengan tepat satu entitas di sisi B. Contoh: satu mahasiswa memiliki satu kartu tanda mahasiswa.
One-to-Many (1:N)
Satu entitas di sisi A berelasi dengan banyak entitas di sisi B. Contoh: satu dosen mengajar banyak mata kuliah.
Many-to-Many (M:N)
Banyak entitas di sisi A berelasi dengan banyak entitas di sisi B. Contoh: banyak mahasiswa mengambil banyak mata kuliah. Direalisasikan dengan tabel perantara.
Normalisasi
Normalisasi adalah proses pengorganisasian tabel dalam basis data untuk mengurangi redundansi data (duplikasi) dan mencegah anomali data saat operasi insert, update, atau delete dilakukan.1
Bentuk Normal Pertama (1NF)
Syarat: setiap kolom hanya boleh berisi nilai atomik (tidak dapat dibagi lagi), dan tidak boleh ada kelompok kolom yang berulang.Pelanggaran 1NF (contoh buruk):
Setelah 1NF (setiap sel berisi satu nilai):
2
Bentuk Normal Kedua (2NF)
Syarat: sudah memenuhi 1NF, dan setiap kolom non-kunci harus sepenuhnya bergantung pada seluruh primary key (bukan hanya sebagian). Masalah ini muncul ketika primary key bersifat komposit.Contoh: Dalam tabel
nilai (id_mhs, id_mk, nama_mhs, nama_mk, nilai_angka), kolom nama_mhs hanya bergantung pada id_mhs, bukan pada kombinasi (id_mhs, id_mk). Solusinya: pisahkan ke tabel mahasiswa dan mata_kuliah yang terpisah.3
Bentuk Normal Ketiga (3NF)
Syarat: sudah memenuhi 2NF, dan tidak ada kolom non-kunci yang bergantung pada kolom non-kunci lain (tidak ada ketergantungan transitif).Contoh: Dalam tabel
mahasiswa (id_mhs, nama, id_prodi, nama_prodi), kolom nama_prodi bergantung pada id_prodi, bukan pada id_mhs. Solusinya: pindahkan nama_prodi ke tabel program_studi yang terpisah.Dalam praktik industri, normalisasi hingga 3NF sudah cukup untuk sebagian besar kasus. Normalisasi lebih tinggi (BCNF, 4NF, 5NF) digunakan pada skenario khusus dengan kompleksitas tinggi, namun kadang mengorbankan performa query karena membutuhkan lebih banyak operasi JOIN.