舉栗子?:假設我們有乙個關係模式:s(sno,sid,sname,cno,grade),其中sid表示的是學生的身份證號碼。
1、候選碼(candidate key):若關係中的乙個屬性或屬性組的值能夠唯一地標識乙個元組,且他的真子集不能唯一的標識乙個元組,則稱這個屬性或屬性組做候選碼。
用人話來解釋:想要知道某位學生的某門課程的成績grade,那我們必須要知道該學生的學號sno以及課程號cno。此時x[sno,cno]稱為s的乙個候選碼。
當然,因為sid也是唯一的,也就是說[sid,cno]也是可以對映到唯一的grade、sname、sno,所以[sid,cno]也是候選碼。
這也說明了候選碼可以存在多個,這時候我們取其中乙個作為主碼就可以了。
2、超碼(surpkey):是指乙個或多個屬性的集合,這些屬性的組合可以使我們在乙個實體集中唯一地標識乙個實體。
留意到」超碼「說的是乙個集合,也就說[sno,cno]是乙個超碼,[sno,sid,cno]也是乙個超碼,甚至[sno,sid,sname,cno,grade]也是乙個超碼。也就是說,只要你能唯一表出乙個元組,那你就是超碼!很明顯,候選碼是最小的超碼。
主屬性(prime attribute):包含在任意乙個候選碼中的屬性。
?如:sno,sid,cno
非主屬性(nonprime attribute):不包含在任何乙個候選碼中的屬性。
?如:sname,grade
資料庫中的超碼 候選碼 主碼
碼是資料系統中的基本概念。所謂碼就是能唯一標識實體的屬性,他是整個實體集的性質,而不是單個實體的性質。它包括超碼,候選碼,主碼。超碼是乙個或多個屬性的 集合,這些屬性可以讓我們在乙個實體集中唯一地標識乙個實體。如果k是乙個超碼,那麼k的任意超集也是超碼,也就是說如果k是超碼,那麼所有包含k的集合也是...
資料庫中什麼是超碼 候選碼 主碼?
碼是資料系統中的基本概念。所謂碼就是能唯一標識實體的屬性,他是整個實體集的性質,而不是單個實體的性質。它包括超碼,候選碼,主碼。超碼是乙個或多個屬性的集合,這些屬性可以讓我們在乙個實體集中唯一地標識乙個實體。如果k是乙個超碼,那麼k的任意超集也是超碼,也就是說如果k是超碼,那麼所有包含k的集合也是超...
資料庫超碼 候選碼 主碼 確定不看看?
可以唯一標識乙個元組屬性的集合就是候選碼 可能不止乙個 假設有學生表 學號 姓名 性別 班級 那麼在該表中 他們的共通之處就是可以通過任何乙個超碼去確定乙個元組 也就是一條記錄 但是乙個表有很多的超碼,所以其意義不大 可以唯一標識乙個元組最少屬性的集合就是候選碼 可能不止乙個 注 是最少 不包含多餘...