MySQL - Kunci Alternatif: Panduan Komprehensif untuk Pemula

Halo sana, para entusiasta basis data yang sedang berkembang! Hari ini, kita akan melakukan perjalanan yang menarik ke dunia MySQL, khususnya fokus pada Kunci Alternatif. Jangan khawatir jika Anda baru dalam pemrograman - saya akan mengarahkan Anda melalui konsep ini secara langkah demi langkah, sama seperti yang telah saya lakukan untuk ribuan murid selama tahun-tahun mengajar. Jadi, ambil secangkir kopi, dan mari kita masuk ke dalamnya!

MySQL - Alternate Key

Apa Itu Kunci Alternatif?

Sebelum kita masuk ke detailnya, mari kita mulai dari dasar. Kunci Alternatif, juga dikenal sebagai Kunci Kandidat, adalah kolom (atau kumpulan kolom) dalam tabel basis data yang secara potensial dapat melayani sebagai kunci utama. Itu seperti memiliki kunci cadangan untuk rumah Anda - itu dapat membuka pintu, tetapi Anda biasanya menggunakan kunci utama saja.

Dalam istilah basis data, Kunci Alternatif secara unik mengidentifikasi setiap rekord dalam tabel, sama seperti Kunci Utama. Perbedaan utamanya adalah bahwa meskipun dapat ada beberapa Kunci Alternatif, hanya satu yang dipilih menjadi Kunci Utama.

Analogi Dunia Nyata

Bayangkan Anda sedang mengorganisir perpustakaan kecil. Setiap buku dapat diidentifikasi secara unik oleh nomor ISBN-nya, kombinasi judul dan penulis, atau barcode unik yang Anda tetapkan. Semua ini dapat melayani sebagai kunci untuk mengidentifikasi buku, tetapi Anda mungkin memilih ISBN sebagai cara utama pengkatalogan. Yang lain akan menjadi Kunci Alternatif Anda.

Fitur Kunci Alternatif

Sekarang kita mengerti apa itu Kunci Alternatif, mari kita jelajahi fitur-fiturnya:

  1. Unik: Seperti Kunci Utama, Kunci Alternatif harus memiliki nilai unik untuk setiap rekord dalam tabel.

  2. Non-Null: Kunci Alternatif tidak dapat mengandung nilai NULL. Mereka harus selalu memiliki nilai valid.

  3. Minimal: Mereka seharusnya menggunakan jumlah kolom minimum yang diperlukan untuk memastikan keunikan.

  4. Stabil: Nilai dalam kolom Kunci Alternatif seharusnya tidak berubah sering.

  5. Kandidat untuk Kunci Utama: Setiap Kunci Alternatif dapat secara potensial dipilih sebagai Kunci Utama.

mari kita lihat contoh untuk mengilustrasikan fitur ini:

CREATE TABLE students (
student_id INT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(50) UNIQUE,
social_security_number VARCHAR(11) UNIQUE,
first_name VARCHAR(50),
last_name VARCHAR(50)
);

Dalam tabel students ini, baik email maupun social_security_number adalah Kunci Alternatif. Mereka unik, non-null (diberikan oleh constraint UNIQUE), dan dapat melayani sebagai Kunci Utama jika kita belum memilih student_id.

Tipe Kunci dalam Tabel

Untuk memahami Kunci Alternatif lebih baik, itu membantu untuk mengetahui tentang jenis-jenis kunci yang berbeda dalam tabel MySQL. Berikut adalah penjelasan singkat:

Tipe Kunci Deskripsi
Kunci Utama Identifier utama untuk setiap rekord dalam tabel
Kunci Alternatif (Kunci Kandidat) Kolom atau kumpulan kolom yang dapat melayani sebagai Kunci Utama
Kunci Asing Kolom yang merujuk ke Kunci Utama dalam tabel lain
Kunci Komposit Kunci yang terdiri dari dua atau lebih kolom
Kunci Surrogate Kunci buatan yang diciptakan hanya untuk tujuan identifikasi

Aturan untuk Kunci Alternatif

Saat bekerja dengan Kunci Alternatif, ada beberapa aturan penting yang perlu diingat:

  1. Unik adalah Penting: Setiap Kunci Alternatif harus secara unik mengidentifikasi setiap rekord dalam tabel. Tidak ada dua baris yang memiliki nilai yang sama untuk Kunci Alternatif.
CREATE TABLE products (
product_id INT AUTO_INCREMENT PRIMARY KEY,
sku VARCHAR(20) UNIQUE,
name VARCHAR(100),
price DECIMAL(10, 2)
);

Dalam contoh ini, sku (Stock Keeping Unit) adalah Kunci Alternatif. Itu ditandai sebagai UNIQUE untuk memastikan tidak ada dua produk yang memiliki SKU yang sama.

  1. Tidak Diperbolehkan Nilai NULL: Kunci Alternatif harus selalu memiliki nilai. Mereka tidak boleh dibiarkan kosong.
ALTER TABLE products
MODIFY sku VARCHAR(20) UNIQUE NOT NULL;

Modifikasi ini memastikan bahwa field sku tidak boleh NULL.

  1. Komposisi Minimal: Gunakan jumlah kolom paling sedikit mungkin untuk mencapai keunikan.
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
order_date DATE,
customer_id INT,
UNIQUE KEY (order_date, customer_id)
);

Di sini, kombinasi order_date dan customer_id membentuk Kunci Alternatif. Kita menggunakan keduanya karena tidak ada yang unik secara individual, tetapi bersama-sama mereka secara unik mengidentifikasi pesanan.

  1. Imutabilitas Disukai: Meskipun tidak selalu mungkin, itu terbaik jika nilai dalam kolom Kunci Alternatif tidak berubah sering.

  2. Perhatikan Kinerja: Ingat bahwa MySQL akan membuat indeks untuk setiap constraint UNIQUE, yang dapat mempengaruhi kinerja pada tabel yang besar.

CREATE TABLE large_table (
id INT AUTO_INCREMENT PRIMARY KEY,
column1 VARCHAR(50) UNIQUE,
column2 VARCHAR(50) UNIQUE,
-- Hati-hati dalam menambah terlalu banyak constraint UNIQUE
data VARCHAR(1000)
);

Dalam kasus ini, memiliki beberapa constraint UNIQUE dapat memperlambat penyisipan dan pembaruan pada tabel yang sangat besar.

Contoh Praktis: Database Buku

Ayo menerapkan semua pengetahuan ini dengan contoh yang lebih kompleks. Bayangkan kita membuat database untuk sebuah toko buku:

CREATE TABLE books (
book_id INT AUTO_INCREMENT PRIMARY KEY,
isbn VARCHAR(13) UNIQUE NOT NULL,
title VARCHAR(200) NOT NULL,
author_first_name VARCHAR(50) NOT NULL,
author_last_name VARCHAR(50) NOT NULL,
publication_year INT,
price DECIMAL(10, 2),
UNIQUE KEY (title, author_last_name, author_first_name)
);

Dalam tabel books ini:

  • book_id adalah Kunci Utama.
  • isbn adalah Kunci Alternatif (setiap buku memiliki ISBN unik).
  • Kombinasi title, author_last_name, dan author_first_name membentuk Kunci Alternatif lainnya (asumsi bahwa tidak ada penulis yang menulis dua buku dengan judul yang sama).

Struktur ini memungkinkan kita untuk mengidentifikasi buku secara unik dalam beberapa cara, memberikan fleksibilitas dalam query dan pemeriksaan integritas data.

Kesimpulan

Dan begitulah, teman-teman! Kita telah melakukan perjalanan melalui dunia Kunci Alternatif di MySQL, dari definisi dasar hingga fitur, jenis, dan aturan penggunaannya. Ingat, Kunci Alternatif adalah seperti pahlawan tak dikenal basis data - mereka menyediakan cara ekstra untuk memastikan integritas data dan keunikan.

Sekarang Anda melanjutkan perjalanan MySQL Anda, terus eksperimen dengan struktur tabel dan kombinasi kunci yang berbeda. Semakin banyak Anda berlatih, semakin intuitif desain basis data akan menjadi. Dan siapa tahu? Mungkin suatu hari, Anda akan menemukan diri Anda sendiri mengajarkan orang lain tentang keajaiban Kunci Alternatif!

Selamat coding, dan semoga query Anda selalu mengembalikan hasil yang Anda harapkan!

Credits: Image by storyset