Entity Data Model 關聯性
關聯性 (Relationship) 是指兩個或多個實體 (Entity) 之間的邏輯連接。應用程式中的有意義資料包括其構成部分之間的關聯性。關聯性對於資料模型化很重要,但是關聯性資料庫模型不會明確支援關聯性。不過,主索引鍵、外部索引鍵和參考完整性 (Referential Integrity) 可用來實作關聯性所隱含的某些條件約束 (Constraint)。
反之,實體資料模型 (EDM) 會針對資料模型中的關聯性提供明確支援,進而產生彈性的模型化功能。由於關聯性支援會擴充至 EDM 查詢,所以允許根據關聯性進行明確的參考和巡覽。
EDM 支援稱為關聯的點對點關聯性模型。如需詳細資料,請參閱 關聯 (EDM)。
在下列情況中,關聯的需求便清晰可見:客戶下了一筆或多筆訂單、每筆訂單都包含識別所訂購之產品的訂單詳細資料、所訂購的產品可向一個或多個供應商取得,依此類推。
在 EDM 中,實體之間的關聯指定於定義實體和關聯的結構描述中。
關聯性的特性
關聯性具備程度、重數和方向等特性。在資料模型化案例中,關聯性具有程度 (一元 (Unary)、二元 (Binary)、三元 (Ternary) 或 N 元),以及重數 (一對一、一對多或多對多)。方向在某些關聯中可能會很重要。例如,如果關聯介於相同型別的實體之間。
關聯性的特性如下圖所示。
每個圖表中關聯性的程度都由矩形的數目代表。關聯性則由菱形圖形代表。菱形和矩形之間的線條代表關聯性的重數。單一線條代表一對一關聯性 (One-To-One Relationship)。在連接至型別的位置分成三段的線條代表一對多關聯性 (One-To-Many Relationship) 或多對多關聯性 (Many-To-Many Relationship) 的許多端點。
程度
關聯性的程度是存在此關聯性之型別的數目。最常見的關聯性程度是使兩個型別相關的「二元」(Binary)。在一元關聯性中,型別的某個執行個體 (Instance) 會與相同型別的另一個執行個體相關,例如某位員工和另一位員工之間的主管關聯性。「三元」(Ternary) 關聯性會使三個型別相關,而「N 元」(N-ary) 關聯性會使任何數目 (N) 的型別相關。三元和 N 元關聯性主要是理論的。EDM 支援一元和二元關聯性。
重數
重數是某個型別中相關執行個體的數目。
例如,書籍及其作者之間便存在二元關聯性,因為每本書至少都有一位作者。雖然關聯性是在 Book
類別 (Class) 與 Author
類別之間指定,但是這個關聯性的重數不一定是一本書對一位作者。關聯性的重數會指出某本書的作者數目以及每位作者所撰寫的書籍數目。在此範例中,關聯性的程度是二元。關聯性的重數是多對多。
方向
在 EDM 中,所有關聯性都是反向關聯。您可以從任一端開始巡覽 EDM 關聯。
如果位於關聯兩端的實體都屬於相同型別,EDM 關聯 End 屬性 (Property) 的角色屬性 (Attribute) 就可以用來指定方向。員工與員工主管之間的關聯在語意上與關聯的兩端不同。雖然關聯的兩端都是員工,但是它們具有不同的 Role 屬性 (Attribute)。如需使用參考條件約束來實作這個情況的範例,請參閱Association 項目 (SSDL)。
下列主題包含關聯性的相關詳細資訊。
本章節內容
- 關聯 (EDM)
描述建立點對點關聯性之模型的關聯性。
- 導覽屬性 (EDM)
描述保存用來巡覽關聯性之巡覽路徑的屬性。