SQL - Kunci Alternatif

Selamat datang, para ahli basis data masa depan! Hari ini, kita akan mempelajari dunia yang menarik dari SQL dan mengeksplorasi konsep yang sering diabaikan tapi sangat penting: Kunci Alternatif. Jadi ambil tongkat sihir virtualmu (atau keyboard), dan mari kita mulai perjalanan magis ini bersama!

SQL - Alternate Key

Kunci Alternatif SQL

Apa Itu Kunci Alternatif?

Kunci Alternatif, juga dikenal sebagai Kunci Kandidat, adalah kolom atau himpunan kolom dalam tabel basis data yang dapat melayani sebagai kunci utama. Itu seperti memiliki superhero cadangan siap untuk menyelamatkan hari jika pahlawan utamamu (kunci utama) tidak tersedia.

mari kitauraikan ini dengan contoh yang menyenangkan. Bayangkan Anda menjalankan sekolah sihir (kenapa tidak?), dan Anda memiliki tabel murid:

CREATE TABLE wizards (
wizard_id INT PRIMARY KEY,
wand_serial_number VARCHAR(20) UNIQUE,
email_address VARCHAR(50) UNIQUE,
wizard_name VARCHAR(100),
house VARCHAR(20)
);

Dalam tabel ini, wizard_id adalah kunci utama kami. Tetapi perhatikanlah wand_serial_number dan email_address. Ini juga dapat mengidentifikasi setiap sihir secara unik, membuat mereka kandidat yang sempurna untuk kunci alternatif!

Karakteristik Kunci Alternatif

  1. Unik: Seperti nomor serial tongkat sihir kami, kunci alternatif harus unik untuk setiap rekord.
  2. Bukan Null: Mereka tidak dapat mengandung nilai null. Setiap sihir perlu memiliki tongkat dan email!
  3. Minimal: Mereka seharusnya menggunakan jumlah kolom minimum yang diperlukan untuk memastikan keunikan.

Kunci dalam Tabel

Sekarang kita telah memperkenalkan pemain utamanya, mari kita kenal tim keseluruhan kunci yang Anda mungkin temui dalam tabel SQL.

Jenis Kunci

Jenis Kunci Deskripsi Contoh dalam Tabel Sihir Kami
Kunci Utama Identifikasi unik untuk setiap rekord wizard_id
Kunci Alternatif Kandidat untuk kunci utama, unik tetapi belum dipilih wand_serial_number, email_address
Kunci Asing Refrensi kunci utama di tabel lain house_id (jika kita memiliki tabel Houses terpisah)
Kunci Komposit Kombinasi beberapa kolom untuk membentuk identifikasi unik (wizard_name, date_of_birth)
Kunci Super Setiap kombinasi kolom yang dapat mengidentifikasi rekord secara unik (wizard_id, wand_serial_number)

Mengapa Kunci Alternatif Penting?

  1. Fleksibilitas: Mereka menyediakan cara alternatif untuk mengidentifikasi rekord.
  2. Integritas Data: Mereka membantu menjaga keunikan data.
  3. Optimasi Query: Mereka dapat digunakan untuk membuat indeks efisien.

Lihatlah bagaimana kita dapat menggunakan kunci alternatif dalam query:

SELECT wizard_name, house
FROM wizards
WHERE wand_serial_number = 'OL-123456';

Di sini, kita menggunakan wand_serial_number (sebuah kunci alternatif) untuk menemukan sihir tertentu. Itu sama efektifnya seperti menggunakan kunci utama, dan dalam beberapa kasus, itu mungkin lebih mudah!

Implementasi Kunci Alternatif

Sekarang, mari kita roll up our sleeves dan lihat bagaimana kita dapat mengimplementasikan kunci alternatif dalam basis data sihir kita.

Menggunakan Constraint UNIQUE

Cara termudah untuk membuat kunci alternatif adalah dengan menggunakan constraint UNIQUE:

CREATE TABLE wizards (
wizard_id INT PRIMARY KEY,
wand_serial_number VARCHAR(20) UNIQUE,
email_address VARCHAR(50) UNIQUE,
wizard_name VARCHAR(100),
house VARCHAR(20)
);

Dalam contoh ini, keduanya wand_serial_number dan email_address diatur sebagai UNIQUE, membuat mereka kunci alternatif.

Menggunakan UNIQUE INDEX

Cara lain untuk membuat kunci alternatif adalah dengan menggunakan UNIQUE INDEX:

CREATE TABLE wizards (
wizard_id INT PRIMARY KEY,
wand_serial_number VARCHAR(20),
email_address VARCHAR(50),
wizard_name VARCHAR(100),
house VARCHAR(20)
);

CREATE UNIQUE INDEX idx_wand_serial ON wizards(wand_serial_number);
CREATE UNIQUE INDEX idx_email ON wizards(email_address);

Metode ini khusus berguna ketika Anda ingin menambahkan kunci alternatif ke tabel yang sudah ada.

Praktik Terbaik untuk Menggunakan Kunci Alternatif

  1. Pilih Bijak: Tidak semua kolom unik perlu menjadi kunci alternatif. Pilih yang memiliki makna logis untuk data Anda.

  2. Perhatikan Kinerja: Meskipun kunci alternatif sangat berguna, terlalu banyak dapat memperlambat operasi masukkan dan perbaruan.

  3. Perbaiki Keserasian: Jika Anda menggunakan kunci alternatif di beberapa tabel (seperti wand_serial_number), pastikan itu konsisten diformat dan divalidasi.

  4. Dokumentasikan Pilihan Anda: Selalu dokumentasikan mengapa Anda memilih kunci alternatif tertentu. Pribadi Anda masa depan (dan rekan kerja Anda) akan berterima kasih!

Kesimpulan

Dan begitu, para sihir muda! Kita telah mengeksplorasi realm magis Kunci Alternatif dalam SQL. Ingat, meskipun Kunci Utama mungkin dipilih, Kunci Alternatif adalah pahlawan tak dikenal, siap untuk bergerak jika diperlukan.

Sekarang, maju dan semoga permintaan Anda selalu optimal dan integritas data Anda tetap utuh!

Credits: Image by storyset