Lessico IT › Database › Nested set

Nested set

Database Svenska → Aggiornato: 2026-10-02

Un modello ad albero in cui ogni nodo riceve due numeri, uno sinistro e uno destro, assegnati «girando intorno» all'albero. Un sottoalbero diventa così un semplice intervallo: i discendenti di un nodo hanno tutti valori sinistro/destro compresi in quelli del nodo. Letture veloci, modifiche costose.

Meccanismo: si attraversa l'albero in preordine e si numera ogni nodo quando si «scende» (sinistro) e quando si «risale» (destro). Vantaggio: «recupera l'intero sottoalbero» diventa WHERE lft BETWEEN node.lft AND node.rgt, una sola query a intervallo senza ricorsione, e i discendenti si contano con la sola aritmetica. Prezzo: inserire o spostare un nodo richiede di rinumerare ampie parti dell'albero (tutti i nodi con valori più alti vanno traslati), il che è molto costoso se le modifiche sono frequenti. Ideale per gerarchie con molte letture e poche modifiche (l'albero delle categorie di un negozio). Più complesso della lista di adiacenza ma più veloce nelle letture di sottoalberi. La closure table offre una via di mezzo. Imparentato con materialized path e closure table.

← Torna al lessico