數(shù)據(jù)庫基礎知識 數(shù)據(jù)庫中非碼是什么意思?
數(shù)據(jù)庫中非碼是什么意思?可以唯一地表示數(shù)據(jù)表中每條記錄的“字段”或“字段”組合稱為主鍵。沒有包含在任何代碼中的屬性是非代碼(非主鍵)。數(shù)據(jù)庫中的“主屬性”、“碼”、“主碼”的區(qū)別是什么?代碼:唯一標識
數(shù)據(jù)庫中非碼是什么意思?
可以唯一地表示數(shù)據(jù)表中每條記錄的“字段”或“字段”組合稱為主鍵。沒有包含在任何代碼中的屬性是非代碼(非主鍵)。
數(shù)據(jù)庫中的“主屬性”、“碼”、“主碼”的區(qū)別是什么?
代碼:唯一標識實體的屬性或?qū)傩越M合稱為代碼。
超代碼:唯一標識記錄的屬性或?qū)傩约?/p>
候選代碼:如果屬性組的值可以唯一標識元組,但其子集不能唯一標識元組,則該屬性組稱為候選代碼。候選碼是一種特殊的超碼,包含候選碼的屬性組必須是超碼。
主代碼:如果關系中有多個候選代碼,請選擇其中一個作為主代碼。
主屬性:候選代碼屬性組中的每個屬性稱為主屬性。
非主要屬性:候選代碼中未包含的屬性稱為非主要屬性。
完整代碼:如果關系模式的所有屬性都是關系的候選代碼,則屬性組稱為完整代碼。
示例:學生表(學生編號、姓名、性別、年齡、班級、部門)
學生編號可以唯一標識學生的身份,我們可以將學生編號設置為主代碼。這是最簡單的候選人。
當名稱不重復時,名稱也可以用作唯一標識符或候選代碼,因此名稱也可以用作候選代碼。以此類推,最極端的情況是使用整個表作為主代碼,主代碼也稱為全代碼。
因此,此處的候選代碼可以是學號或姓名(前提是姓名不重復),但學號名稱不是候選代碼。因為它的子集(如student number)可以唯一地標識元組,所以它不符合定義。這是一個超級代碼。也就是說,候選代碼中的所有屬性都是必需的。如果沒有任何屬性,元組就無法唯一標識。候選代碼是能夠唯一標識元組的最少屬性集。但是,對于超代碼沒有最低屬性要求。
根據(jù)主代碼的定義,主代碼可以從兩個代碼中選擇一個。主屬性是候選代碼的屬性組之間的屬性。例如,候選代碼:student number,主屬性為student number,非主屬性為name、gender、age、class、Department
注意:主屬性不能唯一標識元組,但主代碼必須能夠標識(因為主代碼必須是候選代碼)。兩者是不同的。
數(shù)據(jù)庫中的鍵、主碼、主鍵是什么意思?
代碼(鍵):表示數(shù)字的符號主代碼,即主鍵,是唯一標識表中每一行的字段或多個字段的組合。實現(xiàn)了表的實體完整性。每個表只能有唯一的主代碼,不能為空。這需要澄清幾個概念:1)候選鍵:關系中屬性組的值可以唯一地標識元組。如果從屬性組中刪除了任何屬性,則該屬性將不具有此屬性。這樣的屬性組稱為候選代碼。
2)主鍵:當有多個候選代碼時,可以選擇一個作為主代碼,所選的候選代碼稱為主鍵
3)外鍵:關系R中的一個屬性組,它不是R的候選代碼,而是對應于另一個關系s的候選代碼,稱為R的外碼或外鍵。例如:有兩個關系:student(s#,sname,D#),即student有三個屬性:student number,name,dep(D#,dName),即Department有兩個屬性:Department number,department name那么s和D是它們各自關系的主鍵和唯一候選鍵,D是學生的外鍵
main attribute——包含在任何候選關鍵字中的屬性稱為main attribute。非主屬性-主代碼中未包含的屬性稱為非主屬性。非主屬性是相對于主屬性定義的。候選代碼——如果關系中某個屬性組的值可以唯一地標識一個元組,而元組的任何適當子集都無法再標識,則該屬性組稱為候選代碼。例如,在學生實體中,“學生編號”是唯一能夠區(qū)分學生實體的屬性。同時,假設“姓名”和“年齡”的組合足以區(qū)分學生實體,那么{student number}和{name,age}都是候選關鍵碼——唯一能確定整個關系的代碼是關鍵碼關系模式R(a,B,C,d),f是建立在R上的FD集,f={ab→C,D→a}--D→a,ab→C--因為D決定a,ab可以決定C,這相當于DB決定C,所以DB可以決定a和C,也就是DB可以決定整個R關系