處理階層式資料模型

SQL Server 的階層式與遞迴查詢

Jasmin Ludolf

Content Developer

階層式資料模型

階層式資料模型的特性:

  • 以樹狀結構表示
  • 僅有一個根元素
  • 每個子記錄僅有一個父記錄

階層式資料的樹狀表示

優點:

  • 易於理解
  • 查詢快速

缺點:

  • 結構僵硬
  • 調整結構複雜
SQL Server 的階層式與遞迴查詢

階層式資料模型範例

Customer-bill-article 關係:

一位客戶可有多張帳單,而每張帳單可包含多個品項

CREATE TABLE Customer (   
    ID INT NOT NULL);
CREATE TABLE Bill (   
    BillID INT NOT NULL,  
      CustomerID INT);
CREATE TABLE Article (   
    ArticleID INT NOT NULL,  
      BillID INT);

customer-bill-article 關係的階層式表示

SQL Server 的階層式與遞迴查詢

網路式資料模型

網路式資料模型的特性:

  • 類似階層式資料模型
  • 多對多關係
  • 存在多條搜尋路徑

網路式資料的樹狀表示

優點:

  • 無嚴格階層
  • 解法路徑多
  • 貼近多數真實情境

缺點:

  • 大型資料模型的清晰度降低
SQL Server 的階層式與遞迴查詢

網路式資料模型範例

Customer-order-article 關係:

多位客戶可有多筆訂單,而每張訂單可包含多個品項。

CREATE TABLE Customer (   
    ID INT NOT NULL);
CREATE TABLE Order (   
    OrderID INT NOT NULL,  
      CustomerID INT);
CREATE TABLE Article (   
    ArticleID INT NOT NULL,  
      OrderID INT);

customer-order-article 關係的網路式表示

SQL Server 的階層式與遞迴查詢

一起來練習吧!

SQL Server 的階層式與遞迴查詢

Preparing Video For Download...