Junior — Middle
შეგიძლიათ ახსნათ, რა იგულისხმება ტრანზაქციაში მონაცემთა ბაზების კონტექსტში?
sobes.tech AI
პასუხი AI-სგან
დატვირთვის პროცესში მონაცემთა ბაზაში ტრანზაქცია წარმოადგენს ოპერაციების სერიას, რომელიც ერთ მთლიანად შესრულებად ერთეულად. ტრანზაქცია ან წარმატებით სრულდება (commit), ან მთლიანად უკან იხევს (rollback) შეცდომის შემთხვევაში. ეს უზრუნველყოფს მონაცემების მთლიანობას და თავიდან აცილებს ნაწილობრივ განახლებებს.
ტრანზაქციების ძირითადი თვისებები აღწერილია ACID-ს მოკლე სახელწოდებით:
- Atomicity (ატომარობა) — ყველა ოპერაცია within ტრანზაქციის ან სრულად ხორციელდება, ან საერთოდ არა.
- Consistency (კონსისტენცია) — ტრანზაქციის დასრულების შემდეგ, მონაცემთა ბაზა რჩება სწორ მდგომარეობაში.
- Isolation (იზოლაცია) — პარალელური ტრანზაქციები ერთმანეთზე გავლენას არ ახდენენ.
- Durability (მტკიცეობა) — ტრანზაქციის დამტკიცების შემდეგ, ცვლილებები ინახება, მიუხედავად სერვერის გაჩერებისა.
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();
}
}