Melola MOOC
Basis Data: Studi Kasus Sistem Survei "UHO Mendengar" Daftar isi

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.

Masuk

Setelah 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:

  1. Setiap relasi M:N sudah punya tabel penghubung.
  2. Setiap kunci asing merujuk ke kunci primer yang ada.
  3. 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.