非主屬性是什么?
給定一個關系模式后,非主屬性是確定了么?有一種看法是所有候選碼包括的屬性統稱為主屬性,其余的屬性是非主屬性。還有一種看法是對于若干個碼,當前選定一個作為主碼,那么這個主碼包含的屬性之外的屬性就是非主屬性,哪個對?另外,非主屬性和非碼屬性是一回事么?不包含在主碼中的屬性稱為非主屬性。
非主屬性是相對與主屬性來定義的。內
例如:在關系——學生容(學號,姓名,年齡,性別,班級)中,主碼是“學號”,那么其他的“姓名”、“年齡”、“性別”、“班級”就都可以稱為非主屬性。
設有關系模式R(U,F),其中U={,,…,}是關系模式的屬性集合,記為U=,其中{,,…,},{,,…,},且,m為自然數且不大回于n.表示關系模式答R(U,F)的主屬性,表示R(U,F)的非主屬性.F為關系模式R(U,F)的數據依賴集.
那么上面的命題可以表述為:
關系模式R(U,F)的數據依賴集F中,不存在這樣的元素,X→Y,且X,Y.
也即對于數據依賴X→Y,如果滿足X,Y,那么X→YF .
這么深的問題想在這里問出很精準的答案是不可能的
主屬性是所有候選碼的屬性和,其他的為非主屬性。主要屬性,可以起到唯一標識的作用,例如:教師,有教師編號,姓名,性別等屬性,編號是主屬性,其他是非住屬性.
什么是碼,主碼,主屬性,非主屬性
碼:代表數目的符號
主碼
我們在建立數據庫的時候,需要為每張表回指定一個主碼,主碼也叫主鍵答。
所謂主碼就是在實體集中區分不同實體的候選碼。
一個實體集中只能有一個主碼,但可以有多個候選碼。
必須注意兩點:
1.主碼的選擇必須慎重。
例如:人的姓名是不可以做主碼的,因為可能有多個人重名,而身份證可以做主碼。
2.主碼的選擇應該是那些從不或極少變化的屬性。
例如:一個人的地址就不應該作為主碼的一部分,因為它很可能變化
候選碼
若關系中的某一屬性組的值能唯一的標識一個元組,而其任何真子集都不能再標識,則稱該屬性組為候選碼。
例如:在學生實體中,“學號”是能唯一的區分學生實體的,同時又假設“姓名”、“年齡”的屬性組合足以區分學生實體,那么{學號}和{姓名,年齡}都是候選碼
主屬性
包含在任一候選關鍵字中的屬性稱主屬性。
非主屬性
不包含在主碼中的屬性稱為非主屬性。
非主屬性是相對與主屬性來定義的。
例如:在關系——學生(學號,姓名,年齡,性別,班級)中,主碼是“學號”,那么其他的“姓名”、“年齡”、“性別”、“班級”就都可以稱為非主屬性
數據庫中的“主屬性”、“碼”、“主碼”的區別是什么?
在數據記錄(元組)的屬性或屬性的集合,我們稱之為碼(候選碼)。
當我們指定其中一個用來區分開每個記錄(元組)的碼為主碼。
主屬性是指包含在候選碼中的屬性。
換句話說:主碼和碼的關系就像班長和班長候選人之間的關系。
每個班長候選人,我們可稱之為主屬性,只不過在數據庫中,候選碼可能是多個屬性共同組成的。
先說候選碼,候選碼就是可以區別一個元組(即表中的一行數據)的屬性回或屬性的集合答,比如學生表student(id,name,age,sex,deptno),其中的id是可以唯一標識一個元組的,所以id是可以作為候選碼的,既然id都可以做候選碼了,那么id和name這兩個屬性的組合可不可以唯一區別一個元組呢?顯然是可以的,此時的id可以成為碼,id和name的組合也可以成為碼,但是id和name的組合不能稱之為候選碼,因為即使去掉name屬性,剩下的id屬性也完全可以唯一標識一個元組,就是說,候選碼中的所有屬性都是必須的,缺少了任何一個屬性,就不能唯一標識一個元組了,給候選碼下一個精確的定義就是:可以唯一標識一個元組的最少的屬性集合。而碼是沒有最少屬性這個要求的。另外,一個表的候選碼可能有多個,從這些個候選碼中選擇一個做為主碼,至于選擇哪一個候選碼,這個是無所謂的,只要是從候選碼中選的就行。
至于主屬性,剛才提到了,一個表可以有多個候選碼,那么對于某個屬性來說,如果這個屬性存在于所有的候選碼中,它就稱之為主屬性
以上來自熱心網友
在數據庫的表(關系)中能夠用于唯一區分開每個記錄(元組)的屬性或屬性的集合,我們稱之為碼(候選碼)。
當我們指定其中一個用來區分開每個記錄(元組)的碼為主碼。
主屬性是指包含在候選碼中的屬性。
換句話說:主碼和碼的關系就像班長和班長候選人之間的關系。
每個班長候選人,我們可稱之為主屬性,只不過在數據庫中,候選碼可能是多個屬性共同組成的。
相關推薦:
電子合同糾紛解決(簽電子合同糾紛怎么解決)
現戶籍所在地怎么填寫(戶籍所在地怎么填寫)
超生新生兒如何上戶(超生如何給孩子上戶口)
行政處罰會留案底嗎(行政處罰決定書會留案底嗎)
公民如何保護生命健康權(法律如何保護我們的健康)