Asociatyvinis vienetas

Asociatyvinis vienetas () – objektas, įterpiamas tarp dviejų logiškai susietų objektų taip, jog sąsają „daug į daug“ pakeistų dvi sąsajos „vienas į daug“.

Pavyzdys 
Yra daug studentų ir daug neprivalomų (papildomų) paskaitų kursų universitete. Kiekvieną kursą studijuoja daug studentų, ir kiekvienas studentas studijuoja daugelį tokių kursų. Jei tenka rašyti tokią duomenų struktūrą turinčią programą, reikalingi algoritmai šios informacijos išsaugojimui ir paieškoms.

Dauguma programavimo kalbų turi lentelės struktūrą, kuri leidžia efektyviai dirbti kuomet vieną objektą (studentą ar kursą) atitinka susietas vienas kitas objektas. Duomenų bazių indeksai efektyviai palaiko ir „vienas į daug“ sąsajas (paieška pagal eilutės laukelio reikšmę). Tačiau galimybių tiesiogiai dirbti su sąsajomis „daug į daug“ paprastai nebūna.

Asociatyvinis vienetas yra pagalbinė struktūra, turinti nuorodas, indeksus ar duomenų bazės raktus į dvi kitas lenteles. Mūsų pavyzdyje kiekvienam kursui priklauso daug asociatyvinių vienetų ir kiekvienam studentui priklauso daug asociatyvinių vienetų, tačiau kiekvienas vienetas turi nuorodą tik į vieną kursą ir tik į vieną studentą. Tokią sistemą jau paprasta realizuoti naudojant dvi lenteles (kurso numeris į kursą ir studento numeris į studentą) ir bet kokią kolekciją, vektorių ar dar vieną lentelę visiems esantiems asociatyviniams vienetams saugoti.

Duomenų struktūros