Modul 1 · Studi kasus dan pemetaan ERD ke skema relasional
Aturan pemetaan ERD ke tabel
Sedang peninjauan: materi sedang ditelaah pengampu dan dapat berubah.
Kamu sedang melihat pratinjau. Masuk dan daftar ke kursus ini (gratis) agar kemajuanmu tersimpan dan kuis serta latihan dapat diperiksa.
MasukSetelah materi ini, kamu dapat:
- Menerapkan aturan pemetaan entitas, relasi 1:N, relasi M:N, dan atribut bernilai banyak menjadi tabel.
- Menentukan kunci primer, kunci asing, dan kunci kandidat setiap tabel.
ERD menggambarkan data secara konseptual. Basis data relasional menyimpannya dalam tabel (relasi, dalam istilah Codd, 1970). Bacaan ini membahas aturan untuk mengubah yang pertama menjadi yang kedua.
Tiga jenis kunci
| Kunci | Arti | Contoh di tabel pegawai |
|---|---|---|
| Kunci kandidat | Kolom (atau gabungan kolom) yang nilainya unik untuk setiap baris | id, dan juga nip |
| Kunci primer (PK) | Satu kunci kandidat yang dipilih sebagai pengenal resmi baris | id |
| Kunci asing (FK) | Kolom yang merujuk ke kunci primer tabel lain | pegawai_id di tabel pengisian |
Mengapa memakai id sebagai PK padahal NIP sudah unik? Karena NIP dapat berubah (misalnya salah ketik saat
pendataan) dan panjang. Bila NIP dipakai sebagai PK, perubahan NIP harus diikuti di semua tabel yang
merujuknya. Kolom id tidak bermakna apa-apa sehingga tidak pernah perlu diubah. NIP tetap dijaga keunikannya
dengan constraint UNIQUE, sebagai kunci kandidat.
Aturan pemetaan
1. Entitas kuat menjadi satu tabel. Atribut sederhana menjadi kolom, dan salah satu kunci kandidat dipilih menjadi PK. Atribut komposit dipecah menjadi kolom-kolom bagiannya. Atribut turunan tidak disimpan.
2. Relasi 1:N: kunci asing di sisi "banyak". Satu Survei memiliki banyak Pertanyaan, jadi tabel
pertanyaan mendapat kolom survei_id yang merujuk ke survei.id.
Mengapa tidak sebaliknya? Bila kunci asing ditaruh di sisi "satu", tabel survei harus menyimpan banyak
pertanyaan_id dalam satu baris, dan itu mustahil tanpa melanggar aturan satu nilai per kolom.
3. Relasi M:N: tabel penghubung. Relasi banyak-ke-banyak tidak dapat diwakili oleh satu kunci asing. Ia
menjadi tabel tersendiri (junction table) berisi kunci asing ke kedua tabel. Kunci primernya adalah gabungan
kedua kunci asing, atau sebuah id sendiri ditambah constraint unik pada gabungan keduanya.
Di studi kasus kita, relasi M:N Pegawai–Survei diwujudkan oleh tabel pengisian, dengan UNIQUE (survei_id,
pegawai_id). Karena relasinya punya atribut sendiri (status, waktu, token), tabel penghubung ini sekaligus
menyimpan atribut tersebut.
4. Relasi 1:1: kunci asing di salah satu sisi, ditambah UNIQUE. Biasanya kunci asing diletakkan di sisi yang partisipasinya total.
5. Atribut bernilai banyak menjadi tabel tersendiri dengan kunci asing ke pemiliknya, satu baris untuk setiap nilai.
6. Entitas lemah menjadi tabel dengan kunci asing ke pemiliknya, dan pengenalnya adalah gabungan kunci
asing itu dengan atribut pembedanya. Di tabel pertanyaan: UNIQUE (survei_id, nomor_urut).
Skema Tahap 1
Menerapkan aturan di atas pada studi kasus menghasilkan lima tabel berikut. Kolom id di setiap tabel adalah
kunci primer; panah menunjukkan kunci asing.
pegawai (id, nip UNIQUE, nama, kategori, unit_kerja)
survei (id, kode_survei UNIQUE, judul, target_role, tanggal_mulai, tanggal_selesai, is_active)
pertanyaan (id, survei_id → survei, nomor_urut, teks_pertanyaan, tipe_pertanyaan)
UNIQUE (survei_id, nomor_urut)
pengisian (id, survei_id → survei, pegawai_id → pegawai, response_token UNIQUE, status,
waktu_mulai, waktu_selesai)
UNIQUE (survei_id, pegawai_id)
jawaban (id, response_token, pertanyaan_id → pertanyaan, nilai_likert, jawaban_esai)
UNIQUE (response_token, pertanyaan_id)
Perhatikan bahwa jawaban.response_token tidak diberi panah ke pengisian. Itu bukan kelalaian. Alasannya
dibahas di bacaan "Keputusan desain: anonimitas jawaban".
Daftar periksa
Sebelum menganggap skemamu selesai, periksa tiga hal ini:
- Setiap relasi M:N sudah punya tabel penghubung.
- Setiap kunci asing merujuk ke kunci primer yang ada.
- Tidak ada atribut bernilai banyak yang tersisa dalam satu kolom.
Rujukan
- Codd, E. F. (1970). A relational model of data for large shared data banks. Communications of the ACM, 13(6), 377–387. https://doi.org/10.1145/362384.362685
- Silberschatz, A., Korth, H. F., & Sudarshan, S. (2019). Database system concepts (7th ed.). McGraw-Hill Education. ISBN 978-0-07-802215-9. Bab 6 membahas perancangan dengan model E-R dan pemetaannya ke skema relasional.