Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Superkey, kunci kandidat &kunci utama

Karena Anda tidak menginginkan definisi buku teks, secara umum, kunci super adalah kumpulan kolom yang secara unik mendefinisikan sebuah baris.

Set ini dapat memiliki satu atau lebih elemen, dan bisa ada lebih dari satu kunci super untuk sebuah tabel. Anda biasanya melakukan ini melalui dependensi fungsional.

Dalam contoh Anda, saya berasumsi:

StudentNumber    unique
FamilyName     not unique
Degree     not unique
Major      not unique
Grade      not unique
PhoneNumber    not unique

Dalam hal ini, superkey adalah kombinasi apa pun yang berisi nomor siswa.

Jadi berikut ini adalah superkey

StudentNumber
StudentNumber, FamilyName
StudentNumber, FamilyName, Degree
StudentNumber, FamilyName, Degree, Major
StudentNumber, FamilyName, Degree, Major, Grade
StudentNumber, FamilyName, Degree, Major, Grade, PhoneNumber
StudentNumber, Degree
StudentNumber, Degree, Major
StudentNumber, Degree, Major, Grade
StudentNumber, Degree, Major, Grade, PhoneNumber
StudentNumber, Major
StudentNumber, Major, Grade
StudentNumber, Major, Grade, PhoneNumber
StudentNumber, Grade
StudentNumber, Grade, PhoneNumber
StudentNumber, PhoneNumber

Sekarang asumsikan, jika PhoneNumber unik (yang berbagi ponsel akhir-akhir ini), maka berikut ini juga superkey (selain yang saya sebutkan di atas).

PhoneNumber
PhoneNumber, Grade, 
PhoneNumber, Major, Grade
PhoneNumber, Degree, Major, Grade
PhoneNumber, FamilyName, Degree, Major, Grade
PhoneNumber, Major
PhoneNumber, Degree, Major
PhoneNumber, FamilyName, Degree, Major
PhoneNumber, StudentNumber, FamilyName, Degree, Major
PhoneNumber, Degree
PhoneNumber, FamilyName, Degree
PhoneNumber, StudentNumber, FamilyName, Degree
PhoneNumber, FamilyName
PhoneNumber, StudentNumber, FamilyName

Kunci kandidat hanyalah superkey "terpendek". Kembali ke daftar superkey pertama (yaitu nomor telepon tidak unik), superkey terpendek adalah StudentNumber.

Kunci utama biasanya hanya kunci kandidat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa titik koma tidak dapat ditempatkan di CommandText dari OracleCommand ketika C #

  2. Tidak ditemukan driver yang cocok untuk jdbc:Oracle:thin:@**** Oracle/jdbc/driver/OracleDriver;

  3. ORA-01704:string literal terlalu panjang 'Kesalahan saat memasukkan dokumen XML dalam tipe kolom Oracle XMLTYPE'

  4. Oracle Update Query tidak memiliki kata kunci SET - ORA97100 &ORA-00904

  5. Excel ODBC Data Connection Query waktu yang dibutuhkan untuk me-refresh setiap query