Работа с иерархическими моделями данных

Иерархические и рекурсивные запросы в 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

Давайте потренируемся!

Иерархические и рекурсивные запросы в SQL Server

Preparing Video For Download...