回覆列表
  • 1 # 使用者7169188564904

    先說候選碼,候選碼就是可以區別一個元組(即表中的一行資料)的屬性或屬性的集合,比如學生表student(id,name,age,sex,deptno),其中的id是可以唯一標識一個元組的,所以id是可以作為候選碼的,既然id都可以做候選碼了,那麼id和name這兩個屬性的組合可不可以唯一區別一個元組呢?顯然是可以的,此時的id可以成為碼,id和name的組合也可以成為碼,但是id和name的組合不能稱之為候選碼,因為即使去掉name屬性,剩下的id屬性也完全可以唯一標識一個元組,就是說,候選碼中的所有屬性都是必須的,缺少了任何一個屬性,就不能唯一標識一個元組了,給候選碼下一個精確的定義就是:可以唯一標識一個元組的最少的屬性集合。而碼是沒有最少屬性這個要求的。另外,一個表的候選碼可能有多個,從這些個候選碼中選擇一個做為主碼,至於選擇哪一個候選碼,這個是無所謂的,只要是從候選碼中選的就行。

    至於主屬性,剛才提到了,一個表可以有多個候選碼,那麼對於某個屬性來說,如果這個屬性存在於所有的候選碼中,它就稱之為主屬性

    說了這麼多,有點亂,希望你明白了

  • 中秋節和大豐收的關聯?
  • 汽車空調查漏熒光劑怎麼加?