Hvad er den nestede sætmodel?
Den indlejrede sætmodel er også kendt som den ændrede forhåndsbestillede trætraversalgoritme og er en måde at lagre hierarkiske data i relationelle databaser. Denne model har fordelen ved at give meget hurtig adgang og implementeres bedst i hierarkier, der læses oftere end skrevet til. Hver knude i informationsmodellen er tildelt to numre, der er gemt som attributter. Det er ret let at spørge efter den indlejrede sætmodel, fordi begge værdier kan bruges til at trække de nødvendige data ud. At lave indsættelser, sletninger, træk og opdateringer er dog langt mere besværlige, fordi de kan involvere omnummerering af knudepunkter.
Typisk brugt til at repræsentere indlejrede sæt eller hierarkiske oplysninger i form af træer blev den indlejrede sætmodel introduceret af Joe Celko. Et træ er i dette tilfælde en datastruktur, der indeholder et antal sammenkoblede noder. For eksempel kan en forældreknude oprette forbindelse til flere underordnede knudepunkter, og denne struktur gentages gennem træet gennem flere niveauer.
Træer er en fantastisk måde at lagre information i en bestemt rækkefølge i en relationel database, som er et datasæt, der lagrer data afhængigt af fælles egenskaber. For eksempel kan produktinformation inden for fødevaresektionen i en butik starte med mad, forgrening i frugt, grøntsager og kød. Frugt kan yderligere opdeles i bær, meloner og æbler og grøntsager i knolde, greener og andre og kød i svinekød, fårekød og kalvekød.
En relationsdatabase gemmer alle disse oplysninger i en letforståelig form, og en indlejret sætmodel gør det muligt at styre træstrukturen effektivt. Ved hjælp af ovenstående eksempel vil rodnoden være mad, der er repræsenteret af to værdier. Givet den venstre værdi for mad som 1, tildeles de andre elementer i træet et nummer til venstre i rækkefølge. Frugt ville have en værdi af 2 på venstre side, bær ville være 3 osv. Værdierne tildeles derefter på højre side og arbejder hele vejen igennem træet, bunden opad, gennem hver gren, indtil den sidste værdi er tildelt mad på højre side.
Hvert element i træet ender med to værdier, f.eks. Lft for venstre og rgt for højre, som kan bruges til at identificere dem og indikere deres forhold til andre emner. For eksempel, hvis frugter har en værdi på 2 og 15, er alle noder, der har venstre værdier større end 2 og højre værdier mindre end 15, efterkommere af frugttræet 2-15. Det bliver nemt at trække oplysninger om alle frugter på én gang, fordi disse værdier kan specificeres i en enkelt forespørgsel til databasen.
Denne model er fremragende til at gemme information, der ofte fås adgang til, men indsættelser, sletninger og ombestilling af oplysninger i den indlejrede sætmodel bliver meget trættende. Omskrivning af indekser og omnummerering af informationen kan forårsage, at databasen går ned, især hvis træet vokser til at omfatte hundreder af tusinder af noder. Den indlejrede sætmodel er bedst til lette indholdsstyringssystemer, der har minimale indsættelser og ændringer. Indsætninger kan gøres meget hurtigere i den indlejrede intervalmodel, fordi den gemmer placeringen af hver knude i træet ved hjælp af flydende punkter, mens der også kodes kodestien.