Praca z hierarchicznymi modelami danych

Hierarchiczne i rekurencyjne zapytania w SQL Server

Jasmin Ludolf

Content Developer

Hierarchiczny model danych

Właściwości hierarchicznych modeli danych:

  • Reprezentowane jako struktura drzewiasta
  • Posiada jeden element główny
  • Każdy rekord podrzędny ma jeden rekord nadrzędny

Przykładowa reprezentacja danych hierarchicznych jako drzewo

Zalety:

  • Prosta do zrozumienia
  • Szybkie wyszukiwanie

Wady:

  • Sztywna struktura
  • Trudna do modyfikacji
Hierarchiczne i rekurencyjne zapytania w SQL Server

Przykład hierarchicznego modelu danych

Relacja klient–rachunek–artykuł:

Jeden klient może mieć wiele rachunków, a każdy rachunek może zawierać wiele artykułów

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

Hierarchiczna reprezentacja relacji klient–rachunek–artykuł

Hierarchiczne i rekurencyjne zapytania w SQL Server

Sieciowy model danych

Właściwości sieciowych modeli danych:

  • Podobne do hierarchicznych modeli danych
  • Relacja wiele-do-wielu
  • Wiele ścieżek wyszukiwania

Przykładowa reprezentacja danych sieciowych jako drzewo

Zalety:

  • Brak sztywnej hierarchii
  • Wiele ścieżek rozwiązania
  • Wiele rzeczywistych zastosowań

Wada:

  • Czytelność spada przy dużych modelach danych
Hierarchiczne i rekurencyjne zapytania w SQL Server

Przykład sieciowego modelu danych

Relacja klient–zamówienie–artykuł:

Wielu klientów może mieć wiele zamówień, a każde zamówienie może zawierać wiele artykułów.

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

Sieciowa reprezentacja relacji klient–zamówienie–artykuł

Hierarchiczne i rekurencyjne zapytania w SQL Server

Czas na ćwiczenia!

Hierarchiczne i rekurencyjne zapytania w SQL Server

Preparing Video For Download...