Ce este modelul set imbricat?

Modelul de set imbricat este cunoscut și sub numele de algoritm de traversare a arborelui de precomandă modificat și este o modalitate de stocare a datelor ierarhice în bazele de date relaționale. Acest model are avantajul de a oferi un acces foarte rapid și este cel mai bine implementat în ierarhii care sunt citite mai des decât în ​​care sunt scrise. Fiecărui nod din modelul de informații îi sunt atribuite două numere care sunt stocate ca atribute. Interogarea modelului set imbricat este destul de ușoară, deoarece ambele valori pot fi folosite pentru a extrage datele necesare. Efectuarea de inserări, ștergeri, mutari și actualizări, totuși, este mult mai greoaie, deoarece pot implica renumerotarea nodurilor.

Folosit de obicei pentru a reprezenta seturi imbricate sau informații ierarhice sub formă de arbori, modelul set imbricat a fost introdus de Joe Celko. Un arbore, în acest caz, este o structură de date care conține un număr de noduri legate. De exemplu, un nod părinte se poate conecta la mai multe noduri copil, iar această structură se repetă prin arbore pe mai multe niveluri.

Arborii sunt o modalitate excelentă de stocare a informațiilor într-o anumită ordine într-o bază de date relațională, care este un set de date care stochează date în funcție de caracteristicile comune. De exemplu, informațiile despre produse din secțiunea de alimente a unui magazin pot începe cu alimente, ramificandu-se în fructe, legume și carne. Fructele pot fi subdivizate în fructe de pădure, pepeni și mere și legume în tuberculi, verdeață și altele, iar carnea în carne de porc, oaie și vițel.

O bază de date relațională stochează toate aceste informații într-o formă ușor de înțeles, iar un model de set imbricat permite ca structura arborescentă să fie gestionată eficient. Folosind exemplul de mai sus, nodul rădăcină ar fi food, care este reprezentat de două valori. Având în vedere valoarea din stânga pentru alimente ca 1, celorlalte elemente din arbore li se atribuie un număr în stânga în ordine. Fructele ar primi o valoare de 2 în stânga, fructele de pădure ar fi 3 și așa mai departe. Valorile sunt apoi atribuite în partea dreaptă, lucrând până la capăt prin copac, de jos în sus, prin fiecare ramură până când ultima valoare este atribuită alimentelor din partea dreaptă.

Fiecare element din arbore se termină cu două valori, să spunem lft pentru stânga și rgt pentru dreapta, care pot fi folosite pentru a le identifica și a indica relația lor cu alte elemente. De exemplu, dacă fructele au o valoare de 2 și 15, atunci toate nodurile care au valori din stânga mai mari de 2 și valori din dreapta mai mici de 15 sunt descendenți ai pomului fructifer 2-15. Devine ușor să scoți informații despre toate fructele dintr-o singură mișcare, deoarece aceste valori pot fi specificate într-o singură interogare la baza de date.

Acest model este excelent pentru stocarea informațiilor care sunt accesate des, dar inserările, ștergerile și reordonarea informațiilor în modelul set imbricat devin foarte obositoare. Rescrierea indecșilor și renumerotarea informațiilor pot cauza blocarea bazei de date, mai ales dacă arborele crește pentru a include sute de mii de noduri. Modelul set imbricat este cel mai bun pentru sistemele ușoare de gestionare a conținutului care au inserții și modificări minime. Inserările pot fi făcute mult mai rapid în modelul de interval imbricat, deoarece stochează poziția fiecărui nod în arbore folosind zecimale cu virgulă mobilă, în timp ce codifică și informațiile despre cale.