Pirmas sakinys is wiki yra "In computer science, ACID (atomicity, consistency, isolation, durability) is a set of properties that guarantee database transactions are processed reliably." Esminis zodis sitam sakiny yra reliably, t.y. bet kuri DBVS, kur yra imanomas duomenu redagavimas, privalo uztikrinti tai, kad duomenys be transakcijos nebutu redaguojami niekada (be isimciu!), taigi "Ar galima situacija, kad be tranzakcijos kažkas bus sugadinta?" - normaliomis aplinkybemis ne, normalios aplinkybes = naudojant DML (insert, update, delete) duomenu redagavimui. Nenormaliomis aplinkybemis, zinoma, galima viska sugadinti, bet tam jau reiktu naudoti DDL (pvz. alter / drop table nera transakcija ir tokios operacijos rezultatas negali buti atsauktas). "Ar tuo rūpinasi pati DB?" - taip, kitaip db, kuri tuo nesirupina, neturetu buti naudojama duomenu redagavimui. Toks principas yra realizuotas net failinese sistemose, kur 2 vartotojai negali redaguoti to paties failo vienu metu. > Mane labiau domina kelių vartotojų darbas su DB tuo pačiu metu. Na cia platesne tema nei tiesiog transakcijos, kadangi DBVS uztikrina, kad db yra stabili bet kuriuo laiko momentu, sakykim taip, fiziniam lygyje, bet tai nereiskia, kad 2 vartotojai negali pakeisti tu paciu duomenu net nezinodami vienas apie kita. DBVS tiesiog uztikrins, kad tie pakeitimai butu ivykdyti tam tikra tvarka ir tik vienas po kito. Tarkim turim toki scenariju: 1. vartotojas A vykdo update orders set quantity = quantity + 10 where order_id = 1 2. tuo paciu metu vartotojas B vykdo update orders set quantity = quantity + 10 where order_id = 1 (bando redaguoti ta pacia eilute kaip ir A) Kaip elgsis DBVS? Ji prades transakcija A ir uztikrins, kad transakcija B butu pradeta tik po to, kai uzsibaigs transakcija A (commit arba rollback). Jei del kazkokiu priezasciu transakcija A pakibs, transakcija B taip pat kabes, kol nebus uzbaigta transakcija A.Tai yra viskas, ka daro DBVS. Paprastai to neuztenka, nes dauguma atveju norima perspeti vartotoja B, kad duomenys buvo pakeisti kito vartotojo ir jis nera mates nauju duomenu ir net nezinodamas to jis prides 20 prie originalios reiksmes, vietoj 10, kuriuos norejo prideti. Ar puo sakiniu "Mane labiau domina kelių vartotojų darbas su DB tuo pačiu metu." slepiasi butent toks scenarijus?