先說候選碼,候選碼就是可以區別乙個元組(即表中的一行資料)的屬性或屬性的集合,比如學生表student(id,name,age,***,deptno),其中的id是可以唯一標識乙個元組的,所以id是可以作為候選碼的,既然id都可以做候選碼了,那麼id和name這兩個屬性的組合可不可以唯一區別乙個元組呢?顯然是可以的,此時的id可以成為碼,id和name的組合也可以成為碼,但是id和name的組合不能稱之為候選碼,因為即使去掉name屬性,剩下的id屬性也完全可以唯一標識乙個元組,就是說,候選碼中的所有屬性都是必須的,缺少了任何乙個屬性,就不能唯一標識乙個元組了
碼是沒有最少屬性這個要求的
。另外,乙個表的候選碼可能有多個,從這些個候選碼中選擇乙個做為主碼,至於選擇哪乙個候選碼,這個是無所謂的,只要是從候選碼中選的就行。
至於主屬性,剛才提到了,乙個表可以有多個候選碼,那麼對於某個屬性來說,如果
這個屬性存在於所有的候選碼中,它就稱之為
主屬性。
非主屬性
不包含在主碼中的屬性稱為非主屬性。
候選碼 主碼 主屬性 非主屬性
候選碼 指屬性 或多個屬性構成,此時叫屬性組 可以唯一標識元組 行 且其子集不能。候選碼可以1個,也可以多個。當有多個的時候,任意選乙個作為主碼 也可以簡稱 碼,也就是通俗我們講的primary key 非常像 復合主鍵 這個概念,因為有些表的主鍵是多個屬性構成的,沒人規定主鍵只能由乙個屬性構成啊,...
關聯式資料庫中的碼,主碼,候選碼,主屬性,非主屬性
在資料庫的表 關係 中能夠用於唯一區分開每個記錄 元組 的屬性或屬性的集合,我們稱之為碼 若關係中的某一屬性或屬性組的值能唯一的標識乙個元組,而其任何 子集都不能再標識,則稱該屬性組為 超級碼 候選碼。例如 在學生實體中,學號 是能唯一的區分學生實體的,同時又假設 姓名 班級 的屬性組合足以區分學生...
超碼 候選碼 主碼 全碼 主屬性和非主屬性
乙個或多個屬性的集合,這些屬性的組合可以使我們在乙個關係中唯一地標識乙個元組。這個集合可以用來區分同乙個表中的元組,比如id可以作為超碼,因為它是唯一的。當乙個屬性就能區分同乙個表中的元組,這個屬性就是超碼,而且它和同乙個表中的任意屬性組成集合,這個組合都是超碼。舉例 id這個屬性,在該表中,任意不...