处理层次型数据模型

SQL Server 中的分层与递归查询

Jasmin Ludolf

Content Developer

层次型数据模型

层次型数据模型的特性:

  • 树形结构表示
  • 只有一个根元素
  • 每个子记录只有一个父记录

层次数据的树形表示示例

优点:

  • 易于理解
  • 查询速度快

缺点:

  • 结构刚性强
  • 修改结构复杂
SQL Server 中的分层与递归查询

层次型数据模型示例

客户-账单-商品关系:

一个客户可有多张账单,每张账单可含多个商品

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);

客户-账单-商品关系的层次表示

SQL Server 中的分层与递归查询

网络型数据模型

网络型数据模型的特性:

  • 与层次模型相似
  • 多对多关系
  • 存在多条检索路径

网络数据的树形表示示例

优点:

  • 无严格层次
  • 方案路径多
  • 贴近现实场景多

缺点:

  • 数据模型大时可读性下降
SQL Server 中的分层与递归查询

网络型数据模型示例

客户-订单-商品关系:

多个客户可有多个订单,每个订单可含多个商品。

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);

客户-订单-商品关系的网络表示

SQL Server 中的分层与递归查询

Passons à la pratique !

SQL Server 中的分层与递归查询

Preparing Video For Download...