Жөнөкөй банк системасын моделдөө: - `accounts` таблицасы: - `id`, - `owner_id`, - `currency`, - `created_at`. - `transactions` таблицасы: - `id`, - `account_id`, - `amount`, - `created_at`. **Талаптар:** 1. Қажетті шектеулерімен схеманы құру үшін SQL жазыңыз (NOT NULL, FK, `amount` үшін CHECK). 2. Сұрау жазыңыз: - `account_id` бойынша есептің ағымдағы балансын алыңыз (сомасы `amount`). 3. Қосымша қиындық: дебет/кредитті қолдау (екі жазба). Тазалау
Golang
Goroutine'лердин OS жиптеринен артыкчылыктары эмнеде?
Go'догу garbage collector кантип иштейт? Фазалар жана алгоритмди сүрөттөп бериң.
Маектешүүнүн жалпы таасирлери, талапкердин деңгээли, сунуштар
Goда кандай синхрондоштуучу primitive-лер бар? Mutex менен RWMutexтин айырмасы эмнеде? Atomics качан колдонуш керек?
Go'догу карта кандай түзүлгөн? Ички түзүмү, buckets, кагылышуулар жөнүндө айтып бериңиз.
Маалыматтар базасында издөө кандай оптималдаштырылышы мүмкүн? Индекстер эмне жана алардын татаалдыгы кандай?
Go (scheduler) пландоочу жөнүндө айтып бериңиз. Ал кантип иштейт? Hand-off деген эмне?
3. Кыйынчылык: дебет/кредитти колдоо (көп жазуу). Тазалоо CREATE TABLE эсептер ( id BIGSERIAL PRIMARY KEY, owner_id BIGINT NOT NULL, currency VARCHAR(3) NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE TABLE транзакциялар ( id BIGSERIAL PRIMARY KEY, account_id BIGINT NOT NULL REFERENCES эсептер(id), amount NUMERIC(18,2) NOT NULL CHECK (amount <> 0), created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE INDEX idx_транзакциялар_account_id ON транзакциялар(account_id); SELECT COALESCE(sum(amount), 0) AS balance FROM транзакциялар WHERE account_id = :account_id; ALTER TABLE транзакциялар ADD COLUMN type VARCHAR(6) NOT NULL CHECK (type IN ('debit', 'credit')); ALTER TABLE транзакциялар DROP CONSTRAINT транзакциялар_amount_check, ADD CONSTRAINT транзакциялар_amount_check CHECK (amount > 0); SELECT COALESCE( SUM(CASE WHEN type = 'credit' THEN amount WHEN type = 'debit' THEN - amount ) AS balance FROM транзакциялар WHERE account_id = :account_id;
Жөнөкөй банк системасын моделдөө: - `accounts` таблицасы: - `id`, - `owner_id`, - `currency`, - `created_at`. - `transactions` таблицасы: - `id`, - `account_id`, - `amount`, - `created_at`. **Талаптар:** 1. Қажетті шектеулерімен схеманы құру үшін SQL жазыңыз (NOT NULL, FK, `amount` үшін CHECK). 2. Сұрау жазыңыз: - `account_id` бойынша шоттың ағымдағы балансын алыңыз (`amount` сомасы). 3. Қосымша қиындық: дебет/кредитті қолдау (екі жазба). Тазалау.