Pemodelan ER dan Kardinalitas Relasi
Menerjemahkan kebutuhan menjadi entitas, relasi, dan tabel penghubung.
Pemodelan ER dan Kardinalitas Relasi adalah pelajaran SQL Interview Prep gratis di CoddyKit. Ini adalah pelajaran 2 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 SQL Interview Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Interview Prep mencakup 4 pelajaran total.
Mengapa Pemodelan ER Muncul dalam Wawancara
Setelah normalisasi, pewawancara menguji apakah Anda dapat mengubah persyaratan menjadi skema. Pertanyaannya biasanya terbuka: "Rancang basis data untuk aplikasi berbagi tumpangan" atau "Modelkan sistem perpustakaan."
Ini adalah latihan pemodelan entitas-relasi (ER). Pewawancara mengamati cara Anda mengidentifikasi entitas, atribut, dan hubungan di antara semuanya, termasuk kardinalitas.
Keterampilan yang diuji adalah mengubah kata benda dan kata kerja bahasa Inggris menjadi tabel dan kunci asing.
Entitas, Atribut, dan Hubungan
Tiga komponen dasar membentuk setiap model ER:
- Entitas: sesuatu yang datanya Anda simpan (Pelanggan, Pesanan, Produk). Biasanya menjadi tabel.
- Atribut: properti suatu entitas (nama, harga, created_at). Biasanya menjadi kolom.
- Hubungan: cara entitas saling terhubung (seorang Pelanggan membuat Pesanan). Diimplementasikan dengan kunci asing atau tabel penghubung.
Petunjuk dari pertanyaan: kata benda menjadi entitas/atribut, kata kerja menjadi hubungan.
Kardinalitas: Konsep Inti
Kardinalitas menjelaskan berapa banyak instans suatu entitas yang berhubungan dengan entitas lain. Tiga kelompoknya:
- Satu-ke-satu (1:1): satu baris di sini cocok dengan paling banyak satu baris di sana.
- Satu-ke-banyak (1:N): satu baris di sini cocok dengan banyak baris di sana (yang paling umum).
- Banyak-ke-banyak (M:N): baris di kedua sisi masing-masing cocok dengan banyak baris di sisi lainnya.
Kardinalitas yang tepat menentukan letak kunci asing dan apakah Anda memerlukan tabel penghubung.
Menerapkan Hubungan Satu-ke-Banyak
Hubungan satu-ke-banyak diimplementasikan dengan menempatkan kunci asing pada sisi "banyak". Seorang pelanggan memiliki banyak pesanan, sehingga setiap baris pesanan membawa customer_id.
Dalam wawancara, selalu nyatakan arahnya secara jelas: "Satu pelanggan ke banyak pesanan, jadi FK berada pada orders."
CREATE TABLE customers (
customer_id INT PRIMARY KEY,
name VARCHAR(100)
);
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT NOT NULL,
order_date DATE,
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);Menerapkan Hubungan Banyak-ke-Banyak
Basis data relasional tidak dapat menyimpan M:N secara langsung. Jawaban yang diharapkan pewawancara adalah tabel penghubung (juga disebut tabel jembatan, tabel tautan, atau tabel asosiatif).
Siswa mengikuti banyak kursus; kursus memiliki banyak siswa. Buat tabel enrollments yang kuncinya menggabungkan kedua kunci asing. Dengan demikian, M:N diubah menjadi dua hubungan 1:N.
CREATE TABLE students (
student_id INT PRIMARY KEY,
name VARCHAR(100)
);
CREATE TABLE courses (
course_id INT PRIMARY KEY,
title VARCHAR(100)
);
CREATE TABLE enrollments (
student_id INT,
course_id INT,
enrolled_at DATE,
PRIMARY KEY (student_id, course_id),
FOREIGN KEY (student_id) REFERENCES students(student_id),
FOREIGN KEY (course_id) REFERENCES courses(course_id)
);Tabel Penghubung Dapat Menyimpan Data
Pertanyaan lanjutan yang umum: "Di mana Anda menyimpan nilai yang diperoleh siswa dalam suatu kursus?"
Nilai tersebut termasuk dalam hubungan, bukan hanya milik siswa atau kursus. Jadi, nilai tersebut ditempatkan pada tabel penghubung. Inilah pemahaman yang ingin diuji pewawancara: atribut dari hubungan M:N berada pada jembatan.
Contoh: tanggal pendaftaran, nilai, kuantitas pada baris pesanan, dan peran dalam keanggotaan proyek.
ALTER TABLE enrollments
ADD COLUMN grade CHAR(2);
-- grade describes THIS student in THIS course,
-- so it belongs on the junction tableMenerapkan Hubungan Satu-ke-Satu
Hubungan 1:1 lebih jarang. Anda menerapkannya dengan memberikan tabel dependen sebuah kunci asing yang juga merupakan kunci unik (sering kali kunci primernya sendiri).
Contoh: seorang user dan sebuah user_profile dengan detail tambahan yang bersifat opsional. Menjadikan user_id sebagai kunci primer tabel profil memastikan paling banyak ada satu profil untuk setiap pengguna.
CREATE TABLE users (
user_id INT PRIMARY KEY,
email VARCHAR(255)
);
CREATE TABLE user_profiles (
user_id INT PRIMARY KEY, -- 1:1 enforced here
bio TEXT,
avatar_url VARCHAR(255),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);Opsionalitas dan Partisipasi
Kardinalitas memiliki dimensi kedua yang disukai pewawancara: opsionalitas (juga disebut partisipasi).
- Wajib: setiap pesanan harus memiliki pelanggan, sehingga
customer_idadalahNOT NULL. - Opsional: seorang pengguna mungkin memiliki profil atau mungkin tidak, sehingga hubungan tersebut dapat tidak ada.
Anda menyatakan partisipasi wajib dengan NOT NULL pada kunci asing. Menyebutkan kemungkinan NULL menunjukkan bahwa Anda memikirkan batasan nyata, bukan hanya bentuknya.
Hubungan yang Merujuk ke Diri Sendiri
Beberapa hubungan mengarahkan suatu entitas kepada dirinya sendiri. Seorang karyawan memiliki manajer yang juga merupakan karyawan; suatu kategori memiliki kategori induk.
Anda memodelkannya dengan kunci asing yang merujuk ke tabel yang sama. Pewawancara mengharapkan hal ini untuk bagan organisasi dan struktur pohon, serta konsep ini secara alami cocok dengan penggabungan-diri dan ekspresi tabel umum rekursif.
CREATE TABLE employees (
employee_id INT PRIMARY KEY,
name VARCHAR(100),
manager_id INT NULL,
FOREIGN KEY (manager_id) REFERENCES employees(employee_id)
);
-- manager_id NULL = top of the hierarchy (e.g. CEO)Panduan Singkat Pemodelan
Latih metode mengubah kata kerja menjadi hubungan. Pertanyaan: "Pelanggan membuat pesanan; setiap pesanan berisi banyak produk; produk dimiliki oleh pemasok."
- Pelanggan 1:N Pesanan (FK customer_id pada orders).
- Pesanan M:N Produk -> tabel penghubung
order_items(dengan kuantitas). - Pemasok 1:N Produk (FK supplier_id pada products).
Nyatakan setiap kardinalitas dan lokasi kuncinya. Penjelasan itulah yang membuat Anda unggul dalam wawancara.
Pertanyaan Klarifikasi yang Perlu Diajukan
Pewawancara menghargai kandidat yang bertanya sebelum merancang. Contoh pertanyaan klarifikasi yang baik:
- "Dapatkah suatu produk dimiliki oleh lebih dari satu pemasok?" (menentukan 1:N atau M:N).
- "Haruskah setiap pesanan memiliki setidaknya satu item?" (partisipasi).
- "Apakah kita memerlukan riwayat, atau hanya keadaan saat ini?" (menentukan kebutuhan tabel tambahan).
Jawaban tersebut mengubah kardinalitas dan jumlah tabel, jadi jangan pernah berasumsi. Bertanya menunjukkan tingkat senioritas.
Pemeriksaan Singkat
Anda sedang memodelkan siswa dan kursus, dengan setiap siswa dapat mengikuti banyak kursus dan setiap kursus memiliki banyak siswa.
Ringkasan: Pemodelan ER dan Kardinalitas
Sekarang Anda dapat menangani pertanyaan terbuka tentang perancangan skema:
- Ubah kata benda menjadi entitas/atribut, kata kerja menjadi relasi.
- 1:N: kunci asing di sisi yang memiliki banyak baris.
- M:N: tabel penghubung yang menyimpan kedua kunci asing, ditambah atribut relasi apa pun.
- 1:1: kunci bersama/unik pada tabel yang bergantung.
- Gunakan
NOT NULLuntuk menyatakan keikutsertaan wajib, dan kunci asing yang merujuk diri sendiri untuk hierarki. - Ajukan pertanyaan klarifikasi sebelum menetapkan kardinalitas.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pemodelan ER dan Kardinalitas Relasi” gratis?
Ya — teks lengkap “Pemodelan ER dan Kardinalitas Relasi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Interview Prep, upgrade ke CoddyKit PRO. Kursus SQL Interview Prep mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pemodelan ER dan Kardinalitas Relasi”?
Menerjemahkan kebutuhan menjadi entitas, relasi, dan tabel penghubung. Kamu berlatih SQL 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 SQL Interview Prep?
Tidak diperlukan pengalaman sebelumnya. SQL 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 2 dari 4.
Berapa lama pelajaran “Pemodelan ER dan Kardinalitas Relasi” 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 SQL Interview Prep ini?
Ya. Setiap pelajaran SQL 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
- Normalisasi hingga 3NF
- Pemodelan ER dan Kardinalitas Relasi
- Skema Bintang dan Desain Gudang Data
- Kumpulan Soal Simulasi Wawancara Lengkap