終止符
終止符
題內關鍵詞索引中使用的表示文獻題名到此結束的符號。
終止符 題內關鍵詞索引中使用的表示文獻題名到此結束的符號。
當然,此處談論的終止符(terminator)並非阿諾德·施瓦辛格在電影里扮演的那種終結者--這裡的終止符是指放置在關係線上的端點。
關係線上的終止符傳達的關於資料庫性質的信息與實體本身所傳達的信息差不多或者更多。它們將告知你包括關係的基數在內的關係真實本質的信息。
最基本的基數是指關係兩端的記錄數。在提到一對多關係的時候,就是在說明基數。但是,基數能夠比0、l或許多通用的命名規則更加具體。基數可以表明具體細節,在關係圖中,基數常常擴充為兩個數字和一個冒號的形式,如:
1:M;
1:6(該表達式不但符合一對多的標準,而且描述更加詳細,說明了在關係的那一邊記錄的最大值為6)。
下面看一看終止符的組成部分,並查看其含義:
提醒一下,下面的終止符來自IE關係圖方法論。我之前說過,還有另一種廣泛使用(雖然我在IE中很少見到)的關係圖標準--IDEF1X。雖然它的實體框與IE的類似,但是關係線上的終止符卻完全不同。
圖5-3中終止符的上半部分指示出了關係的第一部分。此處為零方。圖的下半部分說明了關係的第二部分--此處為多方。在本例中,我們得到了關係的零、一或者多方。
在圖5-4中,關係中的這一端不允許為空--這是關係中的一方或多方。
在圖5-5中,再次允許關係的這一端為零,但是現在不允許大於1。這是關係的零方或者一方。
最後是圖5-6。這個圖的限制非常嚴格--它僅僅是關係的"一"方(不能多也不能少)。
因為只觀察終止符可能不太好理解,所以下面來看一些示例表和關係的實例(圖5-7所示)
關係圖5-7顯示了支持一個邏輯實體(訂單)的兩個表。Orders表用來跟蹤訂單的整體信息(此處只有一個CustomerNo,但是還可能包含運送地址、訂單日期、截至日期等信息)。另外,還有一個OrderDetails表,用來跟蹤訂單中的每一項。該關係圖不僅描述了Orders表和OrderDetails表,而且還顯示了兩個表之間的一(Orders方)對零、一或多(OrderDetails方)關係。該關係是標識關係(圖中是實線而非虛線),並且關係名為OrderHasDetails。
圖中新加入的關係與前面已經看到的關係非常類似。它也是一(這次是Products方)對零、一或多(OrderDetails方)關係,不過這裡的關係是非標識關係(以虛線表示)。IE表明,對於本表來說PartNo是一個倒置項或者只與外鍵有關的索引。通常加入倒置項是為了在外鍵欄位(由於它是經常查找的目標)上有索引。
綜合考慮三個表,會發現通過OrderDetails表,Orders與Products之間存在一種多對多關係。
注意倒置項可以不和任何項相關--在這種特殊的情況下,它只是恰好與外鍵相關。倒置項實質上是不唯一的或者與主鍵相關的。
前面已經指出,這裡只涉及到了ER圖能傳遞的各種信息的皮毛。儘管如此,當在本章後面講述SQL Server關係圖工具時,你將會發現,較之內置工具所提供的信息,使用更常用的方法學可以傳達更多的信息。此外,表顯示方式的本質使得信息(如鍵)更一目了然、便於閱讀。