Una distinta base, acronimo Diba[1] (in inglese Bill of Materials - BOM), è l'elenco di tutti i componenti, sottoassiemi, semilavorati e materie prime necessari per realizzare un prodotto. Nel mondo alimentare, chimico e farmaceutico essa si chiama ricetta o anche formula.
Una distinta base è organizzata gerarchicamente, e si rappresenta come un albero, con la forma simile ad un albero genealogico, con in testa il prodotto finito, ed a scendere nei vari livelli si trovano i sottoassiemi, i semilavorati e le materie prime. Per convenzione la cima dell'albero, ovvero il prodotto finito, si trova a livello zero. I suoi componenti diretti sono a livello uno, e così via.
Una distinta base definisce quindi un prodotto così com'è progettato, come è costruito o come è manutenuto, rappresentando diverse viste della struttura del prodotto. Di conseguenza, in funzione del metodo utilizzato per definirla o dello scopo per cui è stata pensata, sono diversi i tipi di distinte base disponibili e quindi l'insieme di attributi associati alle singole voci; la scelta è da effettuare di volta in volta in funzione dall'ambito a cui è destinata:
La distinta base rappresenta una sequenza ordinata di legami, detti legame padre(composto)-figlio(componente), che collegano ogni articolo con il suo componente. I prodotti finiti non hanno mai padri, i componenti di acquisto non hanno mai figli, e gli oggetti prodotti o assemblati dall'azienda hanno sempre figli. Laddove c'è un legame padre figlio, vi è collegato un documento che si chiama "ciclo di produzione", che contiene l'elenco di tutte le operazioni necessarie per trasformare un figlio nel padre, dettagliate per tipologia di macchina utensile o di risorsa umana utilizzata. Per ogni operazione è definito un tempo di operazione, chiamato anche tempo standard, distinto in un tempo di attrezzaggio-preparazione macchina e in un tempo di contatto effettivo per la lavorazione del materiale grezzo. Ad esempio per trasformare del tubo in un telaio bisogna eseguire le seguenti operazioni:
La distinta base quindi può essere messa in relazione, "mappata" sul ciclo di produzione (es. un ciclo montaggio): per ogni operazione viene indicato in tabella il part number identificativo dei singoli materiali che in tale operazione subiscono una trasformazione, ad esempio perché le viti vengono montate sul tubo ed escono alla fine della fase di montaggio come un unico assieme. In questo modo, è possibile quantificare il ritardo nella consegna al cliente finale, e l'ulteriore danno in termini di fermo-uomo e fermo-macchina, quando per qualche motivo il materiale non è disponibile in tempo utile per iniziare il ciclo di produzione. L'importanza delle distinte base risiede nella possibilità di conoscere analiticamente cosa occorre (e in quali quantità, e quando) per costruire un prodotto, ovvero quali e quanti componenti o materiali occorre acquistare per produrlo (vedi Materials Requirements Planning).
L'algoritmo MRP, però, ragiona sempre a capacità infinita, non tenendo conto dei vincoli di produzione, per questo esso viene seguito dall'algoritmo CRP, che combina insieme l'output del MRP ed i cicli di produzione. Il CRP permette di bilanciare le risorse di produzione.
Per dire che A è padre di B in qtà 2, e B padre di C in qtà 3 (3 unità di C per produrre una unità di B, 2 unità di B per produrre una unità di A):
A questi campi, possono aggiungersi altri come:
Nell'ambito di una rappresentazione Entità-Relazione, una distinta base è formata da una tabella con un minimo di quattro campi:
In genere, è presente anche una descrizione testuale del part number o del part document.
L'identificativo di ogni riga è formato da almeno due campi, dalla coppia di attributi "codice materiale padre" e "codice materiale figlio", ma nulla a priori esclude che lo stesso assieme e componente figlio possano ripetersi più di una volta e in altri livelli della distinta base.
Lo stesso codice materiale è figlio di un codice e a sua volta padre di altri materiali componenti, formando un grafo ramificato ad albero. Alcuni codici materiale possono essere componente di più di un assieme superiore e quindi comparire più volte in distinta base (si pensi ai normalizzati o ai materiali di consumo).
In un database non esiste fisicamente la distinta base, ma singoli legami fra codice padre e figlio, a partire dai quali la distinta multilivello viene "ricostruita" ogni volta. La distinta base può essere interrogata dal sistema informativo e visualizzata dall'utente in due modi:
Si dice numerical list una rielaborazione della distinta base che indica la quantità totale di ogni componente di acquisto e semilavorato necessarie per produrre una unità del prodotto finito (end item). Il numerical list è una distinta base "piatta" (di un unico livello), nella quale esiste una sola occorrenza per ogni part number, vale a dire che il componente è unìvoco, e compare una sola volta senza ripetizioni.
Microsoft Excel e Open Office Calc hanno una funzione che consente di creare automaticamente una struttura ad albero della distinta base, con possibilità di navigarla top-down (dal nodo 0 fino alle ultime foglie) e di esplodere il dettaglio dei componenti del singolo p/n, così come livello per livello.
La funzionalità utilizza il livello di BOM riportato in ogni singola riga, e il primo campo calcolato con formula presente nell'area selezionata (ad esempio il campo "costo totale item" che avrà delle somme intermedie, per tutti livelli della distinta ad eccezione dell'ultimo).