0Pricing
Coding Interview Prep · Pelajaran

Kunci Utama, Kunci Asing, dan Batasan

Jelaskan kunci, keunikan, dan integritas referensial dengan cara yang ingin didengar pewawancara.

Kunci Utama, Kunci Asing, dan Batasan adalah pelajaran Coding Interview Prep gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Coding Interview Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Coding Interview Prep mencakup 4 pelajaran total.

Mengapa Kunci Selalu Dibahas

Setelah menjelaskan SQL, pewawancara beralih ke kunci dan batasan. Tema yang menghubungkan keduanya adalah integritas: aturan yang ditegakkan basis data agar data yang tidak valid tidak dapat masuk.

Apa Itu Kunci Utama

Kunci utama mengidentifikasi setiap baris secara unik. Kunci ini selalu unik dan NOT NULL, dan sebuah tabel paling banyak memiliki satu kunci utama. Sampaikan dengan jelas untuk mendapatkan nilai lebih.

CREATE TABLE customers (
  id INTEGER PRIMARY KEY,
  email VARCHAR(255) NOT NULL,
  name VARCHAR(100)
);

Kunci Alami vs Kunci Pengganti

Data nyata atau angka yang dihasilkan? Kunci alami menggunakan data unik yang sudah ada; kunci pengganti adalah ID yang dihasilkan. Sebagian besar tim lebih memilih kunci pengganti karena sifatnya stabil.

Kunci Utama Komposit

Kunci utama dapat mencakup lebih dari satu kolom, yang disebut kunci komposit. Kunci seperti ini terdapat pada tabel penghubung, tempat dua kunci asing bersama-sama mengidentifikasi setiap baris.

CREATE TABLE enrollments (
  student_id INTEGER,
  course_id INTEGER,
  enrolled_on DATE,
  PRIMARY KEY (student_id, course_id)
);

Kunci Utama vs Batasan Keunikan

Pertanyaan yang hampir pasti muncul: kunci utama vs batasan keunikan. Keduanya menegakkan keunikan, tetapi sebuah tabel memiliki satu kunci utama yang bersifat NOT NULL dan banyak batasan keunikan, yang masing-masing mengizinkan satu NULL.

CREATE TABLE users (
  id INTEGER PRIMARY KEY,
  email VARCHAR(255) UNIQUE,
  username VARCHAR(50) UNIQUE
);

Apa Itu Kunci Asing

Kunci asing merujuk pada kunci utama tabel lain dan menegakkan integritas referensial: Anda tidak dapat menambahkan baris anak yang menunjuk ke baris induk yang tidak ada.

CREATE TABLE orders (
  id INTEGER PRIMARY KEY,
  customer_id INTEGER REFERENCES customers(id),
  amount NUMERIC(10,2)
);

Tindakan Referensial: ON DELETE / ON UPDATE

"Apa yang terjadi pada pesanan jika pelanggan dihapus?" Itulah tindakan referensial: RESTRICT memblokirnya (nilai bawaan), CASCADE menghapus baris anak, dan SET NULL mengosongkan kuncinya.

CREATE TABLE order_items (
  id INTEGER PRIMARY KEY,
  order_id INTEGER REFERENCES orders(id) ON DELETE CASCADE
);

NOT NULL, CHECK, dan DEFAULT

Tiga batasan lain melengkapi integritas: NOT NULL melarang nilai yang tidak ada, CHECK menegakkan aturan seperti stock >= 0, dan DEFAULT menyediakan nilai pengganti.

CREATE TABLE products (
  id INTEGER PRIMARY KEY,
  price NUMERIC(10,2) NOT NULL DEFAULT 0,
  stock INTEGER CHECK (stock >= 0)
);

Contoh: Merancang dengan Integritas

Mari merancang tabel peminjaman untuk sebuah perpustakaan. Kode di bawah ini menggunakan dua kunci asing, tanggal jatuh tempo yang NOT NULL, dan aturan keunikan agar sebuah buku tidak dapat dipinjamkan dua kali pada waktu yang sama.

CREATE TABLE loans (
  id INTEGER PRIMARY KEY,
  book_id INTEGER NOT NULL REFERENCES books(id),
  member_id INTEGER NOT NULL REFERENCES members(id),
  due_date DATE NOT NULL,
  returned BOOLEAN DEFAULT false
);

Cara Menjelaskan Integritas

Sebutkan tiga jenis integritas untuk menunjukkan pemahaman yang mendalam: entitas dari kunci utama, referensial dari kunci asing, dan domain dari NOT NULL, CHECK, serta tipe data.

Menambahkan Batasan ke Tabel yang Sudah Ada

Diminta menambahkan batasan ke tabel yang sudah ada? Gunakan ALTER TABLE ... ADD CONSTRAINT. Hal penting yang perlu disampaikan: operasi ini dapat gagal jika baris yang ada sudah melanggar aturan baru tersebut.

ALTER TABLE orders
  ADD CONSTRAINT fk_orders_customer
  FOREIGN KEY (customer_id) REFERENCES customers(id);

Uji Cepat

Bedakan kunci utama dari batasan keunikan.

Ringkasan

Ringkasan: kunci utama bersifat unik dan NOT NULL, satu per tabel; batasan keunikan mengizinkan satu NULL dan jumlahnya dapat banyak; kunci asing menegakkan integritas referensial.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Kunci Utama, Kunci Asing, dan Batasan” gratis?

Ya — teks lengkap “Kunci Utama, Kunci Asing, dan Batasan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Coding Interview Prep, upgrade ke CoddyKit PRO. Kursus Coding Interview Prep mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Kunci Utama, Kunci Asing, dan Batasan”?

Jelaskan kunci, keunikan, dan integritas referensial dengan cara yang ingin didengar pewawancara. Kamu berlatih Coding Interview Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Coding Interview Prep?

Tidak diperlukan pengalaman sebelumnya. Coding Interview Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Kunci Utama, Kunci Asing, dan Batasan” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Coding Interview Prep ini?

Ya. Setiap pelajaran Coding Interview Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Apa Itu SQL dan Mengapa Pewawancara Menanyakannya
  2. Urutan Eksekusi Kueri secara Logis
  3. Kunci Utama, Kunci Asing, dan Batasan
  4. Membaca Skema di Bawah Tekanan
← Kembali ke Coding Interview Prep