Sobes.tech
Junior — Middle

Կարող եք բացատրել, թե տվյալների բազաների համատեքստում ինչ է ենթադրվում տրանզակցիա բառով?

sobes.tech AI

Պատասխան AI-ից

Տվյալների բազաներում գործարքը՝ դա գործողությունների հաջորդականություն է, որը կատարվում է որպես միավոր: Գործարքը կամ ամբողջությամբ հաջողությամբ ավարտվում է (commit), կամ ամբողջությամբ հետ է տարվում (rollback), եթե տեղի է ունենում սխալ: Սա ապահովում է տվյալների ամբողջականությունը և կանխում մասնակի թարմացումները:

Գործարքների հիմնական հատկությունները նկարագրվում են ACID կարճատառով:

  • Ատոմայնություն — բոլոր գործողությունները կամ ամբողջությամբ կատարվում են, կամ ընդհանրապես ոչինչ:
  • Կոնսիստենտություն — գործարքի ավարտից հետո տվյալների բազան մնում է ճիշտ վիճակում:
  • Իզոլացիա — միաժամանակյա գործարքները միմյանց վրա ազդեցություն չեն ունենում:
  • Տևականություն — գործարքի հաստատումից հետո փոփոխությունները մնում են պահպանված, նույնիսկ սխալների դեպքում:

Node.js-ում pg գրադարանի օգտագործմամբ PostgreSQL-ի համար օրինակ:

const { Client } = require('pg');

async function runTransaction() {
  const client = new Client();
  await client.connect();

  try {
    await client.query('BEGIN');
    await client.query('INSERT INTO users(name) VALUES($1)', ['Alice']);
    await client.query('INSERT INTO accounts(user_id, balance) VALUES($1, $2)', [1, 100]);
    await client.query('COMMIT');
  } catch (e) {
    await client.query('ROLLBACK');
    throw e;
  } finally {
    await client.end();
  }
}