Anda terlalu memikirkan hubungan antara opsionalitas dan identitas. Sampai semuanya menjadi lebih alami bagi Anda, yang terbaik adalah menganggapnya sebagai sama sekali tidak berhubungan .
Tentang opsionalitas, penting untuk diingat bahwa opsionalitas itu terarah. Untuk menggunakan contoh employee_equipment
:Tentu, karyawan tidak membutuhkan peralatan. Hubungan satu-ke-banyak dari employee
ke employee_equipment
adalah opsional. Pada saat yang sama, melihatnya dari perspektif yang berlawanan, hubungan itu wajib. Anda tidak dapat memiliki catatan di employee_equipment
kecuali ada employee
untuk mengasosiasikannya.
Identitas tidak ada hubungannya dengan opsionalitas, kecuali secara kebetulan hubungan mengidentifikasi adalah wajib dari anak ke orang tua. Apakah itu juga wajib dari orang tua kepada anak tidak ada di sini atau di sana sejauh menyangkut identitas.
Apa yang membuat suatu hubungan mengidentifikasi adalah bahwa Anda harus tahu orang tua apa yang Anda bicarakan (dan juga beberapa hal lain) untuk mengetahui anak apa yang Anda bicarakan. Artinya, kunci utama anak harus menyertakan kunci asing ke orang tua.
Tabel persimpangan murni (mis. employee_equipment
) adalah contoh yang baik untuk ini. Kunci utama dari persimpangan murni adalah kombinasi dari kunci asing ke kedua tabel induk. Perhatikan bahwa beberapa orang mungkin juga menambahkan kunci pengganti ke jenis tabel ini. Tidak masalah dari perspektif identitas jika ada beberapa kunci kandidat. Yang penting dalam menentukan identitas adalah apakah kunci asing merupakan bagian dari kunci kandidat, apakah kunci kandidat itu adalah kunci utama atau bukan.
Contoh bagus lainnya adalah sesuatu seperti katalog metadata database, di mana sebuah kolom diidentifikasi oleh tabel tempatnya berada, seperti halnya tabel diidentifikasi oleh skemanya, dan seterusnya. Mengetahui bahwa sebuah kolom disebut NAME
tidak memberi tahu Anda kolom mana itu. Mengetahui bahwa itu adalah NAME
kolom di CUSTOMER
tabel membantu. (Anda juga harus mengetahui skema mana CUSTOMER
ada di dalam, dan seterusnya).