Structuri de date ierarhice în baze de date relaționale

structuri cu cheie de biți

Într-o structură cu o cheie dreaptă biți, copiii imediați au chei primare cu o altă cifră nenuloasă și aceeași ca și cheia primară a strămoșului în cifra inferioară. În cazul considerat anterior de noi, descendenții primului element rădăcină (ID = 1) vor avea ID 11,21,31,41, ... 91. Cerere de selecție:







SELECTAȚI "ID" DE LA "CATALOGUL4" CU "ID" IN (11,21,31,41,51,61,71,81,91)

Preluarea tuturor copiilor

Destul de des apare problema obținerii tuturor, inclusiv a descendenților direcți ai acestui element. Să luăm în considerare soluția acestei probleme pentru structurile reduse.

structura cu referire la strămoș și modificarea acestuia cu suport pentru informația de nivel a elementului

Nu există o cale simplă, din păcate. Trebuie să organizăm recursul la întrebări.

structura cu depozitare la nivel de nivel

Descendenții acestui element sunt conținute în tabelele "inferioare" și au, ca parte dintr-o referință compusă la strămoșul unuia dintre câmpuri, valoarea identității strămoșilor. O listă comună de descendenți poate fi obținută prin combinarea interogărilor (UNION).

Introducerea unui câmp NIVEL suplimentar în interogare se datorează faptului că descendenții elementului din diferite tabele pot avea aceleași ID-uri și atunci când interogările sunt combinate în loc de mai multe rânduri, rezultatul va fi unul. O altă problemă care duce la necesitatea introducerii unui câmp suplimentar în interogare, deoarece Este necesar să știți din ce tabel este selectat acest ID.







bit cheie

Această structură conține informații despre calea completă spre element. Aceasta facilitează selectarea tuturor descendenților.

Cheia din stânga

Cheia corectă

Și aici, totul este simplu. Primul element al ierarhiei ID = 1, în al doilea nivel primul strămoș 11, etc. Astfel, descendenții vor avea la sfârșit numerele de identificare care se potrivesc cu ID-ul strămoșilor.

structură cu depozitare a limitelor sucursalelor

Elementele structurii LOW și HIGH stochează limitele gama de chei primare ale tuturor descendenților.

Obtinerea nivelului de cuibare a unui element

Deseori, nivelul de cuibare al unui element al ierarhiei este legat de un anumit criteriu de clasificare a domeniului. De aici apare problema stabilirii nivelului de cuibare a unui element arbitrar.

structură cu referire la strămoș, structură cu depozitare a limitelor ramurii

Construirea căii complete la rădăcina copacului și determinarea numărului de strămoși. Este destul de incomod, dar nu există altă cale.

structura cu referire la strămoș și depozitarea nivelului de cuibărit

Nu fără motiv, am intrat într-un câmp pentru stocarea nivelului de cuibărit. Este ceva care conține informațiile de care avem nevoie.

structura cu depozitare la nivel de nivel

Nivelul de cuibare este determinat de tabelul în care este stocată intrarea despre element.

bit cheie

Nivelul de cuibare este determinat de poziția ultimului bit non-zero din cheie.

Obținerea căii complete de la element la rădăcina ierarhiei

structura cu referire la strămoș și modificarea acestuia cu suport pentru informații despre nivelul elementului, structura cu spațiul de depozitare a ramificațiilor

Din nou, pentru a calcula calea completă, trebuie să obțineți strămoși folosind interogări secvențiale. O întrebare simplă aici este indispensabilă. Următorul text este textul procedurii stocate pentru a obține calea completă dintr-un element arbitrar:

structură cu depozitare la nivel de tabel, structură cu o cheie bitwise

Calea completă este cuprinsă în cheia primară a elementului.

Operațiile de inserare, ștergere, mutare a unui element și descendenții acestuia

structura cu referire la strămoș

Adăugarea unui element nou:







Trimiteți-le prietenilor: