跳到內容

進階資料建模

關係模型

當今,最普遍理解和使用的數據模型是關係模型,其中所有數據都是根據表和列定義的。 RDM允許使用SQL主要的關係數據庫語言來定義數據庫。通過將一個表中的列值與另一個表中的公用值進行比較,可以定義純關係模型中的關係。索引編制是優化比較的常用方法。 RDM支持B +樹,AVL樹,R樹和哈希索引實現。

網絡模型

在RDM數據庫中的關係模型下是一個網絡模型,其中所有數據都是根據記錄類型和字段定義的。可以為字段建立索引,並且記錄類型之間可以具有設置的關係,這些關係被定義為一對多的所有者/成員關係。

集合關係佔用記錄中存儲數據文件的空間。所有者記錄將包含指向成員記錄的指針。成員記錄將包含指向所有者記錄的指針,以及下一個和上一個成員。這允許在集合的成員之間快速導航,並且在概念上與雙向鏈接列表數據結構非常相似。

RDM使用集合構造來表示關係等聯接。

 

RDM使用集合構造來表示關係等聯接。

 

建模實例

我們將為有學生和班級的學校建模一個簡單的示例。學生將參加多個課程,並且將有多個學生參加課程。因此,學生表和班級表之間存在多對多關係。在關係模型中,使用相交記錄對多對多關係進行建模。

 

在關係模型中,使用相交記錄對多對多關係進行建模。

 

我們將使用行業標準的SQL數據定義語言(DDL)定義數據庫。

創建數據庫學生;創建表類(class_id char(5)主鍵,class_name char(29));創建表student(名稱為char(35)主鍵);創建表相交(begin_date整數,end_date整數,status char(9),current_grade整數,my_students char(5)引用類,my_classes char(35)引用student);

 

結果數據庫將具有

  • 在class_id字段上具有主鍵B +樹索引的類表
  • 在名稱字段上具有主鍵B +樹索引的學生表
  • 沒有索引要求的交叉表
  • 類表和相交表之間的網絡模型關係,以類為所有者,相交為成員
  • 學生表和相交表之間的網絡模型關係,以學生為所有者,相交為成員

瀏覽班級和學生表之間的關係時,SQL優化器將選擇使用網絡模型集或主鍵列(已建立索引)。

免費試用RDM