DBOMP (Database Organization and Maintenance Processor) este un sistem ierarhic timpuriu de gestionare a bazelor de date de la IBM pentru DOS/360 . DBOMP a fost introdus la sfârșitul anilor 1960 [1] ca un succesor al sistemului IBM BOMP ("Bill of Materials Processor") introdus în 1965 când DOS [2] a devenit disponibil . Înregistrările BOMP au fost stocate pe disc. BOMP însuși s-a concentrat pe stocarea datelor din lista de materiale (specificațiile produsului de resurse) [3] .
Deși, la fel ca BOMP, DBOMP a fost dezvoltat pentru a rezolva o aplicație de contabilitate specializată pentru industria prelucrătoare, a început rapid să fie folosit în afara scopului său inițial ca SGBD general. BOMP a fost denumit după specificațiile de manipulare a materialelor din industria de producție din SUA și se adresează în mod special acestui sector industrial. Fișierele principale în care sistemul a stocat datele au fost numite Fișierul principal al numărului de piesă și Fișierul Centrului de lucru, iar fișierele care stocau relațiile dintre înregistrări au fost numite Fișierul Structura produsului și Fișierul de rutare. Cu toate acestea, la scurt timp după prima introducere, BOMP era deja folosit în alte scopuri. De exemplu, un utilizator care a crescut porci premiați l-a folosit pentru a urmări originea animalelor lor, similar cailor de curse, deoarece originea acestor porci a afectat direct valoarea lor comercială. Capacitățile BOMP ca sistem de uz general au fost recunoscute de dezvoltator în anunțul DBOMP, în care structurile și relațiile de bază ale fișierelor au rămas aceleași, dar fișierele au fost redenumite pentru a le face mai puțin specifice producției.
Există unele controverse cu privire la dacă DBOMP ar trebui să fie numit un DBMS ierarhic sau de rețea [4] . Cu toate acestea, ele ar trebui atribuite concurenței de marketing dintre IBM și ofertele competitive: rețeaua a devenit populară, iar BOMP și DBOMP aveau capabilități de rețea, dar erau limitate.
Structura bazei de date a DBOMP și-a limitat utilizarea la discuri CKD cu cel mult 511 cilindri. A durat mult timp până când aceasta să devină o problemă, dar o limitare mai serioasă a fost aceea că fiecare adresă de pointer stocată într-o înregistrare pentru a fi conectată la alta era o adresă fizică (Cylinder/Head/Record) pe disc [5] . Mutarea unui fișier dintr-un pachet în altul a necesitat ca acesta să fie plasat exact în aceeași poziție fizică pe noul pachet. De asemenea, dacă instalarea a fost mutată pe discuri mai mari, întreaga bază de date trebuia să fie aruncată în fișiere secvențiale și reîncărcată folosind software-ul furnizat pentru a se potrivi noilor dimensiuni de pachet. Astfel, programatorul aplicației a fost nevoit să gestioneze pointerii către locația fizică a datelor aflate în antetul fiecărui fișier, chiar lângă datele normale de afaceri. IBM a înlocuit DBOMP cu o implementare DOS a bazei de date IMS , în care informațiile despre locația fizică a datelor erau izolate din programele de aplicație.
Structura fișierelor DBOMP a influențat puternic bazele de date ulterioare, cum ar fi Cincom's Total.