舉例說明什么是主鍵和外鍵 數(shù)據(jù)庫ER關(guān)系模式如何找出圖主鍵與外鍵?
數(shù)據(jù)庫ER關(guān)系模式如何找出圖主鍵與外鍵?主鍵是唯一索引和實(shí)體數(shù)據(jù)目錄。外鍵是指具有主鍵以實(shí)現(xiàn)任務(wù)的實(shí)體。什么是主鍵和外鍵?這需要澄清幾個(gè)概念:1)候選鍵:關(guān)系中的屬性組,其值可以唯一標(biāo)識(shí)元組。如果從屬
數(shù)據(jù)庫ER關(guān)系模式如何找出圖主鍵與外鍵?
主鍵是唯一索引和實(shí)體數(shù)據(jù)目錄。外鍵是指具有主鍵以實(shí)現(xiàn)任務(wù)的實(shí)體。
什么是主鍵和外鍵?
這需要澄清幾個(gè)概念:1)候選鍵:關(guān)系中的屬性組,其值可以唯一標(biāo)識(shí)元組。如果從屬性組中刪除了任何屬性,則該屬性將不具有此屬性。這種屬性組稱為候選代碼。
2)主鍵:當(dāng)有多個(gè)候選代碼時(shí),可以選擇一個(gè)作為主代碼,選擇的候選代碼稱為主鍵。3) 外鍵:關(guān)系R中的一個(gè)屬性組,不是R的候選代碼,而是對(duì)應(yīng)關(guān)系s的另一個(gè)候選代碼,稱為R的外鍵或外鍵。例如:有兩個(gè)關(guān)系:student(s#,sname,D#),即student有三個(gè)屬性:student number,name,Department dep(D#,dName),也就是說,Department有兩個(gè)屬性:Department number和Department name,那么s和D是主鍵,也是它們各自關(guān)系的唯一候選鍵,D是student的外鍵。
主鍵與外鍵的關(guān)系?
外鍵必須是另一個(gè)表的主鍵。
1. 可以唯一地表示數(shù)據(jù)表中每條記錄的字段或字段組合稱為主鍵。主鍵唯一地標(biāo)識(shí)表中的每一行記錄,但這只是其功能的一部分。
2. 主鍵的主要功能是將記錄與存儲(chǔ)在其他表中的數(shù)據(jù)相關(guān)聯(lián)。在這方面,主鍵是不同表中記錄之間的簡(jiǎn)單指針。主鍵舍入是確定表中的每條記錄。
3. 主鍵不能為空。unique約束指定一個(gè)或多個(gè)列的組合值是唯一的,以防止在列中輸入重復(fù)的值。因此,主鍵的值對(duì)用戶來說是沒有意義的。
4. 如果有兩個(gè)表a、B和C作為a的主鍵,B中也有C字段,則C是表B的外鍵,外鍵約束主要用于維護(hù)兩個(gè)表之間數(shù)據(jù)的一致性。
5. 在數(shù)據(jù)庫中,常常有多個(gè)表,而且這些表不是相互獨(dú)立的。不同的表需要建立一種關(guān)系來相互傳遞它們的數(shù)據(jù)。
主鍵和外鍵有什么區(qū)別?
主鍵是定義表中的主要數(shù)據(jù)項(xiàng)。這些數(shù)據(jù)項(xiàng)的數(shù)據(jù)在表中是唯一的。同時(shí),系統(tǒng)根據(jù)主鍵為表建立索引。外鍵是定義表中某個(gè)數(shù)據(jù)項(xiàng)的數(shù)據(jù),并引用另一個(gè)表的主鍵數(shù)據(jù)。不允許在另一個(gè)表的主鍵數(shù)據(jù)中出現(xiàn)的數(shù)據(jù)出現(xiàn)在此表的外鍵數(shù)據(jù)項(xiàng)中。主鍵:表中記錄的唯一標(biāo)識(shí)。外鍵:依賴于其他表的數(shù)據(jù)。唯一鍵:表中唯一的鍵是一個(gè)或多個(gè)字段的組合。唯一鍵:您可以確定記錄的字段(或字段組合)。一個(gè)表可以有多個(gè)唯一鍵,就像您可以標(biāo)識(shí)您的身份證、學(xué)生證和軍人身份證主鍵一樣:您可以選擇其中一個(gè)唯一鍵作為主鍵。一個(gè)表只能有一個(gè)主鍵。外鍵:定義的外鍵是另一個(gè)表的主鍵。主鍵:表中記錄的唯一標(biāo)識(shí)符。外鍵:依賴于其他表的數(shù)據(jù)。唯一鍵:表中唯一。主鍵和唯一鍵的一個(gè)區(qū)別是:主鍵不允許為空,唯一鍵允許為空。當(dāng)然,您可以添加notnull來限制它