HIERARCHICZNY TYP DANYCH: HIERARCHYID

Kursy Online SQL Server Bazy Danych Microsotf Hierarchiczny Typ Danych HierarchyIds Andrzej Śmigielski

HIERARCHICZNY TYP DANYCH

 
          Główną cechą, właściwością danych hierarchicznych są związki między danymi tego typu. Związki te polegają na tym, że jeden element jest nadrzędny lub podrzędny względem drugiego elementu. Relacje tego typu przyjęło się ogólnie nazywać relacją RODZIC – DZIECKO.

Relację taką najlepiej przedstawia poniższa ilustracja – odwrócone drzewo:

Programowanie SQL Bazy Danych Hierarchiczny Typ Danych HierarchyId

 

Elementy struktury hierarchicznej:

Rodzic (Parent)
Dziecko (Child)
Węzeł (Node)
Korzeń (Root), nie posiadający rodzica
Liście (Leaf), nie posiadające dzieci
 

Najbardziej powszechne przykłady danych hierarchicznych:

Cyfrowy system katalogów i plików
Struktura organizacyjna firmy
MLM (Multi Level Marketing) – marketing sieciowy, zwany marketingiem wielopoziomowym.
 

Sposoby przechowywania danych hierarchicznych:

Dane hierarchiczne można przechowywać na kilka różnych sposobów w tabeli z kolumną:
zawierającą wskaźnik na rekord nadrzędny. Rekord nadrzędny może być w tożsamej tabeli lub w odrębnej
zawierającą ścieżkę definiującą pozycję elementu w hierarchii
w formacie XML.
 

Właściwości hierarchicznego typu danych:

możliwość przechowywania pozycji węzłów w tzw. kanonicznej postaci tekstowej, czyli za pomocą liczb, kropek oraz ukośnika
jest typem CLR (Common Language Runtime) i udostępnia sporo przydatnych metod (kod CLR jest omówiony w kursie na poziomie zaawansowanym)
dane przechowywane są w postaci binarnej o zmiennej długości
możliwość porównywania danych zarówno w pionie jak i w poziomie.
 

Strategie indeksowania hierarchicznego typu danych:

Według głębokości:

Programowanie SQL Bazy Danych Hierarchiczny Typ Danych HierarchyId

Według szerokości:

Programowanie SQL Bazy Danych Hierarchiczny Typ Danych HierarchyId

 

Metody HIERARCHYID:

GetRoot() Zwraca węzeł ROOT (korzeń).
Nie przyjmuje żadnych argumentów.
GetDescendant() Zwraca węzeł podrzędny (NODE).
Wymagane dwa argumenty.
GetAncestor() Zwraca węzeł nadrzędny (NODE).
Wymagany jeden argument.
GetLevel() Zwraca całą strukturę wg węzłów nadrzędnych z bezpośrednimi podrzędnymi.
Nie przyjmuje żadnych argumentów.
IsDescendantOf() Zwraca węzeł podrzędny.
Wymagany jeden argument.
GetReparentedValue() Reorganizuje hierarchię.
Wymagane dwa argumenty.

 
 

PLIKI DO ŚCIĄGNIĘCIA:

1. 008_Hierarchiczny_Typ_Danych.sql
 

KURSY SQL ONLINE