Kako spriječiti pojavu petlje u hijerarhijskoj strukturi podataka

SAŽETAK

Često želimo spriječiti pojavu (zatvorene) petlje u podacima koji imaju hijerarhijsku strukturu. Npr. u poznatoj Oracle tablici “emp” želimo spriječiti da jedan djelatnik bude šef drugom djelatniku, a da istovremeno taj drugi djelatnik bude (direktno ili indirektno) šef prvom djelatniku.

Ovaj zahtjev je, očito relativno lako definirati, a dosta je čest u praksi. Međutim, nije ga lako realizirati (isključivo) u bazi podataka. Ovdje se prikazuje rješenje tog zahtjeva u Oracle bazi podataka, bez pomoći programa na klijentu ili aplikacijskom serveru.

Rješenje u jednokorisničkom radu je relativno jednostavno (malo ga komplicira problem mutirajućih tablica). Za rješenje u višekorisničkome radu primijenjena je simulacija “ROLLBACK TO SAVEPOINT ponašanja” u okidaču baze, korištenjem kvazi-udaljenih procedura (procedura koje pozivamo kao da se nalaze na drugoj bazi, iako se nalaze u lokalnoj bazi)