Hubungan:
Siswa(s_id,nama), Dept(d_id,nama), mata kuliah(d_id,c_id,nama) d_id FK, direferensikan dari Dept, Terdaftar di(s_id,d_id).

Dengan skema yang diberikan, bagaimana membentuk relasi terdaftar yang seharusnya memuat informasi mata kuliah yang didaftarkan oleh seorang mahasiswa tetapi dengan batasan mahasiswa hanya dapat mendaftar pada mata kuliah yang ditawarkan oleh mahasiswa jurusan yang telah didaftarkan tersebut.

Terima kasih sebelumnya!

0
sharath 2 Juni 2020, 11:42

1 menjawab

Jawaban Terbaik

Model data Anda menggunakan ID teknis tunggal. Sekarang Anda sedang mencari cara untuk menjamin konsistensi melalui pohon tabel Anda. Ini tidak mungkin dengan kunci pengganti hangus dan memang merupakan kelemahan utama dari desain ini. Gunakan kunci komposit sebagai gantinya:

Siswa (siswa_no, nama)

  • Kunci utama: (siswa_no)

Departemen (departemen_no, nama)

  • Kunci utama: (department_no)

Kursus (departemen_no, course_no, nama)

  • Kunci utama: (department_no, course_no)
  • Kunci asing: (department_no) referensi departemen (department_no)

Terdaftar_in (siswa_no, departemen_no)

  • Kunci utama: (mahasiswa_no, jurusan_no)
  • Kunci asing: (siswa_no) referensi siswa (siswa_no)
  • Kunci asing: (department_no) referensi departemen (department_no)

Terdaftar_in (mahasiswa_no, departemen_no, kursus_no)

  • Kunci utama: (siswa_no, departemen_no, kursus_no)
  • Kunci asing: (mahasiswa_no, jurusan_no) referensi terdaftar_di (mahasiswa_no, jurusan_no)
  • Kunci asing: (department_no, course_no) referensi kursus (department_no, course_no)
0
Thorsten Kettner 2 Juni 2020, 10:00