1

如果沒有唯一的列可以標識表中的每一行,那麼我的主鍵將至少有一組兩個字段。實體中的主鍵

這是正確的嗎?

如果它是正確的,那麼當我繪製關係圖時,我必須強調構成主鍵的兩個屬性?

三江源

回答

2

下面是一些術語:

  • 超密鑰是一組,加在一起,唯一標識行的列。
  • A 候選鍵(或者只是:「鍵」)是最小的超鍵。有時一個關鍵字只包含一列,有時包含多個關鍵字(在這種情況下稱爲「複合關係」)。
  • 對於practical reasons,我們將密鑰分類爲主要備用。一個表有一個主鍵和零個或多個備用鍵。
  • 關鍵是「自然」如果它來自數據的固有屬性。換句話說,它意味着什麼。
  • 一個關鍵是「替代」如果它本身沒有任何意義 - 它只是爲了識別目的。它通常作爲自動遞增整數實現,但可能還有其他策略,如GUID(對於複製有用)。自然鍵是複合的,但是對於替代品幾乎不會發生。

如果沒有「明顯的」自然鍵,全行總能充當關鍵。但是,這很少實用,在這種情況下,您通常會引入一個代理鍵,僅用於識別行。

Sometimes,但並非總是如此,將替代品另外引入到現有的自然鍵中是有用的。

ER圖將清楚地識別PK ,無論是天然的還是替代的,以及它是否合成。這看起來究竟如何取決於所使用的符號,但PK通常會以圖形不同的方式繪製,並可能以「PK」作爲前綴。


即如果您要刪除任何列,它將不再是唯一的。

數據庫表格是「關係」的數學概念的物理表示。因爲關係是設置的,所以沒有兩個相同行的目的,所以至少整行必須是唯一的(一個元素在集合中或者不是 - 它不能在集合中「兩次」,就像反對multiset)。

假設它不只是公司層面的所以沒有屬性展示。

0

如果沒有主鍵,您可以識別您的DATAS但它不是高性能。

而最佳做法是在桌上使用primary。

偏好是使用自動遞增列作爲主鍵

1

你是對的,在時尚之後。從技術上講,主鍵和唯一鍵可以是兩個截然不同的東西。您可以在表或實體上具有唯一標識該實體的主鍵。在同一張桌子上,您可以有一個唯一鍵約束,然後可以使用該約束確保根據您選擇的條件不會有兩行最終具有相同的屬性。所以你可以有一個主鍵和一個唯一的約束在同一張桌子上。 只需在您的數據庫中自動生成一個主鍵列,然後選取要用於強制執行唯一鍵約束的表中的兩列,即