Kunci terpelihara berarti 1 nilai kunci masuk ke 1 tabel. Memberi contoh balasan dapat membantu Anda memahami konsep ini dengan lebih baik.
Contoh 1:
Tampilan Anda mengandung agregasi. Misalkan Anda memiliki struktur tampilan berikut.
GroupID, AverageSalary
1 , 10000
2, 12000
3, 14000
Dalam contoh ini: nilai Anda berasal dari lebih dari satu baris. Jika Anda mencoba memperbarui AverageSalary dalam tampilan ini, database tidak memiliki cara untuk menemukan baris WHICH untuk diperbarui.
Contoh2:
Tampilan Anda menunjukkan nilai dari lebih dari satu tabel. Tampilan Anda menunjukkan nilai dari tabel PERSON dan PERSON_CONTACT_DETAILS (ID, PersonID, ContactType, ContactValue).
Baris contoh:
1,1,email,ddd@example.com
1,1,phone,898-98-99
Anda bergabung dengan 2 tabel ini dan menampilkan lebih banyak informasi yang ramah bisnis dalam tampilan.
PersonId, Name, LastName, Phone1, Email1
Di sini Anda ingin memperbarui Phone1 dan Email1. Tetapi personID Anda memetakan ke dua baris yang berbeda, mungkin lebih banyak baris, dalam contoh ini. Dalam pandangan ini, sekali lagi, basis data tidak memiliki cara untuk menemukan baris WHICH untuk diperbarui.
Catatan: Jika Anda membatasi tampilan sql Anda dan memperjelas untuk menemukan baris mana yang akan diperbarui itu berfungsi.
Dua contoh ini adalah contoh pertama yang muncul di benak saya. Mereka dapat ditingkatkan. Tapi konsepnya jelas. Database perlu memetakan 1 nilai kunci ke 1 tabel. Misalnya Anda memiliki tabel PERSON, PERSON_DETAILS, satu ke satu. Di sini tampilan dan pembaruan akan berfungsi karena itu adalah 1-1.