Робота з ієрархічними моделями даних

Ієрархічні та рекурсивні запити в 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...