> 1. Duomenų bazėje dirbti galima ir privaloma naudojant tik transakcijas. Jei DBVS palaiko transakcijas, jos pacios uztikrina, kad duomenys redaguojami tik naudojant transakcijas. Skirtumai buna tame, kaip skirtingos DBVS nustato kur yra transakcijos pradzia, ir kur yra pabaiga. Tarkim, turim toki pseudo skripta update table_1 set col_1 = 15 where id = 7; if x > y then update table_2 set col_2 = 27 where id = 12; end if; Vienos DBVS transformuos jas i begin transacion update table_1 set col_1 = 15 where id = 7; if x > y then update table_2 set col_2 = 27 where id = 12; end if; commit; when exception rollback; kitos, transformuos i begin transacion update table_1 set col_1 = 15 where id = 7; commit; when exception rollback; if x > y then begin transaction update table_2 set col_2 = 27 where id = 12; commit; when exception rollback; end if; del to reikia skaityt konkrecios DBVS dokumentacija, skyriuje implicit transactions ar pan. paprastai buna aprasyta, kaip DBVS nustato kur yra transakcijos pradzia ir kur pabaiga. > 2.Visi duomenų importai, eksportai turi vykti tik tada kai baigiasi visos > transakcijos, siekiant turėti kuo tiksliasvius duomenis sistemoje. Duomenu importas, kaip ir bet koks insert sakinys, taip pat yra transakcija, taip pat kaip ir vieno iraso iterpimas taip pat yra duomenu importas. Del to DBVS traktuos taip lygiai taip pat kaip ir kitas transakcijas. Statys i eile ir vykdys is eile tas transakcijas, kurios ruosiasi redaguoti tuos pacius duomenis. Apskritai, dideliu duomenu kiekiu vartymas yra visiskai atskira tema, ten visai kitos problemos, palyginus su OLTP sistemom. > Iš to man išplaukia klausimas (duomenų bazė MySQL): Kiek zinau MySQL kazkuriam savo pavidale is viso nenaudoja transakciju, tokia baze gink dieve neturi buti naudojama duomenu redagavimui - isimtinai tik skaitymui (neskaitant duomenu krovimo i tokia baze, kur transakcijas atitinkantis mechanizmas turetu buti suskurtas kartu su krovimo kodu). > 1. Jai aš naudoju INSERT, UPDATE, DELETE tiesiog paprastai tai jos vyksta > per transakcijas ar reikia kazkaip kitaip pradeti transakciją įvygdyti > INSERT ir tik po gauto rezultato užbaigti transakcija su Commit arba > Rollback? zr. auksciau ir MySQL dokumentacija. Kiekvienas insert, update, delete vyksta per transakcija, problemos atsiranda tada, kai yra keletas komandu vienam skripte. > 2. Jai vienas vartotojas daro įrašo UPDATE tai kitas vartotojas gali > tapatį įrašą padaryti DELETE? Ar jis galės padaryti tik tada kai baigs > UPDATE? Priklauso nuo to kaip transaction manager'is sustatys transakcijas i eile. Jei pirmoji bus update, antroji delete, tai jos sekmingai ivyks viena po kitos. Jei pirma bus delete, update transakcija baigsis klaida "irasas neegzistuoja".