Što je model ugniježđenog skupa?

Model ugniježđenog skupa također je poznat kao modificirani algoritam prelaska stabla prednarudžbe i način je pohranjivanja hijerarhijskih podataka unutar relacijskih baza podataka. Ovaj model ima prednost pružanja vrlo brzog pristupa i najbolje se implementira u hijerarhijama koje se čitaju češće nego u koje se piše. Svakom čvoru unutar informacijskog modela dodijeljena su dva broja koji su pohranjeni kao atributi. Postavljanje upita modela ugniježđenog skupa prilično je jednostavno jer se obje vrijednosti mogu koristiti za izvlačenje potrebnih podataka. Međutim, umetanje, brisanje, premještanje i ažuriranje daleko je glomaznije jer može uključivati ​​prenumeraciju čvorova.

Obično se koristi za predstavljanje ugniježđenih skupova ili hijerarhijskih informacija u obliku stabala, model ugniježđenog skupa uveo je Joe Celko. Stablo je, u ovom slučaju, struktura podataka koja sadrži niz povezanih čvorova. Na primjer, roditeljski čvor može se povezati s nekoliko podređenih čvorova, a ova struktura se ponavlja kroz stablo kroz nekoliko razina.

Stabla su izvrstan način pohranjivanja informacija određenim redoslijedom unutar relacijske baze podataka, što je skup podataka koji pohranjuje podatke ovisno o zajedničkim karakteristikama. Na primjer, informacije o proizvodu unutar odjeljka s hranom u trgovini mogu početi s hranom, granajući se na voće, povrće i meso. Voće se dalje može podijeliti na bobičasto voće, dinje i jabuke, a povrće na gomolje, zelje i ostalo, a meso na svinjetinu, ovčetinu i teletinu.

Relacijska baza podataka pohranjuje sve te informacije u lako razumljivom obliku, a model ugniježđenog skupa omogućuje učinkovito upravljanje strukturom stabla. Koristeći gornji primjer, korijenski čvor bi bio hrana, što je predstavljeno s dvije vrijednosti. S obzirom da je lijeva vrijednost za hranu 1, ostalim stavkama u stablu dodjeljuje se broj s lijeve strane po redu. Voće bi s lijeve strane dobilo vrijednost 2, bobice bi bilo 3 itd. Vrijednosti se zatim dodjeljuju na desnoj strani, radeći cijelim putem kroz stablo, odozdo prema gore, kroz svaku granu sve dok se posljednja vrijednost ne dodijeli hrani s desne strane.

Svaka stavka u stablu završava s dvije vrijednosti, recimo lft za lijevo i rgt za desno, koje se mogu koristiti za njihovu identifikaciju i označavanje njihovog odnosa s drugim stavkama. Na primjer, ako plodovi imaju vrijednost 2 i 15, tada su svi čvorovi koji imaju lijevi vrijednosti veće od 2 i desni manje od 15 potomci voćke 2-15. Postaje lako izvući informacije o svom voću u jednom potezu jer se te vrijednosti mogu navesti u jednom upitu bazi podataka.

Ovaj model je izvrstan za pohranjivanje informacija kojima se često pristupa, ali umetanje, brisanje i preuređivanje informacija u modelu ugniježđenog skupa postaju vrlo zamorni. Ponovno pisanje indeksa i prenumeriranje informacija može uzrokovati pad baze podataka, osobito ako stablo naraste i uključuje stotine tisuća čvorova. Model ugniježđenog skupa najbolji je za lagane sustave upravljanja sadržajem koji imaju minimalno umetanje i promjene. Umetanje se može napraviti mnogo brže u modelu ugniježđenog intervala jer pohranjuje poziciju svakog čvora u stablu koristeći decimale s pomičnim zarezom, a također kodira informacije o putanji.