Корупція – джерело дефективності

corruption2

Корупція в державних закупівлях — одна з найбільш поширених та болючих проблем в Україні. Вона не тільки виснажує бюджет країни, але й підриває довіру громадян до державних інститутів. Розглянемо кілька найбільш розповсюджених схем корупції в цій сфері.

Псевдоконкуренція

Як працюєОфіційно проводиться конкурс, але всі учасники фактично є підконтрольними одній групі осіб або компаніям, які домовляються між собою, щоб «переможець» був уже відомий заздалегідь.
Як реалізується•Використовуються маніпуляції з умовами тендеру, щоб тільки одна компанія могла виконати роботи (наприклад, через вимоги до досвіду або специфікації, які відповідають лише одному учаснику). •Багато разів компанії, які насправді не конкурують, подають схожі заявки.
РизикиЗниження якості товарів/послуг, збільшення вартості, у результаті чого бюджети витрачаються неефективно.

Картельні угоди

Як працюєКомпанії домовляються між собою про ціни, умови і умови участі в тендерах, фактично усуваючи конкуренцію.
Як реалізується•Учасники тендера можуть «розподіляти» між собою лоти, роблячи так, щоб кожен із учасників отримав своє замовлення без конкуренції. •Використовуються схеми, коли учасники угоди подають ціни, що відрізняються на мінімальні суми, щоб створити вигляд конкуренції.
РизикиЗавищення вартості закупівель, можливість корупційних “відкатів” з постачальників на всіх етапах процесу.

“Розподіл” лотів

Як працюєЗамовник навмисно розбиває великий лот на кілька менших, що дозволяє уникнути конкурентних процедур, адже для кожного з менших лотів можна оголосити тендер без необхідності застосовувати більш жорсткі критерії.
Як реалізується•Великі державні закупівлі або інфраструктурні проекти, що повинні проводитися за великим тендером, поділяються на дрібніші частини, що дозволяє маніпулювати з переможцями. •Це дає змогу проводити окремі тендери для конкретних «потрібних» компаній.
РизикиПідвищення витрат, низька якість робіт через “дрібних” підрядників, які не можуть забезпечити необхідний рівень для великих проектів.

Завищення цін (фіктивні ціни)

Як працюєПідприємства завищують ціни на товари та послуги, щоб отримати більші фінансові ресурси через державне замовлення, а частину цих коштів передають організаторам тендера або чиновникам, які сприяли виграшу.
Як реалізується•Це може бути завищення вартості товару, який фактично стоїть значно дешевше на ринку. •Вартість робіт, які не виконуються в повному обсязі, але оплачуються за фіктивними рахунками.
РизикиПрямі фінансові втрати для держави, скорочення ресурсів, що йдуть на інші важливі потреби, і погіршення якості робіт, що виконуються.

“Вигідні” закупівлі у близьких осіб

Як працюєЧиновники або державні службовці організовують закупівлі у компаній, які належать їхнім родичам або знайомим. Ці компанії отримують контракт за завищеними цінами або без конкуренції.
Як реалізується•Використовуються тендери, де вказуються умови, що знижують конкуренцію, або де завищені вимоги до учасників. •Компанії з «потрібними» власниками стають переможцями тендерів.
РизикиКорупційні «відкати» чиновникам, які забезпечують виграш для «потрібних» постачальників.

“Тіньові” тендери (незаконні тендери)

Як працюєТендери, які офіційно проводяться, але зумисно приховуються від громадськості або регуляторів. Вони можуть бути проведені без публікації інформації, або з порушенням вимог законодавства.
Як реалізується•Виписуються умови або обмеження, які дають можливість виключити певних учасників. •Публікація тендера може бути затримана або прихована від громадськості до завершення процесу.
РизикиВідсутність прозорості, що призводить до “темних схем”, де велика частина бюджету може бути розкрадена.

Імітація перевірки постачальників

Як працюєІноді в тендерах беруть участь постачальники, що фактично не виконують умови контракту або мають нечесну репутацію, але це «не помічається» під час перевірок.
Як реалізується•Фіктивні перевірки, коли не перевіряються реальні можливості постачальника. •Аудити, що не виявляють важливі проблеми в репутації або діяльності учасників.
РизикиПоставки неякісних товарів або виконання робіт низької якості, втрати для бюджету.

Як боротися з цими схемами?

Прозорість тендерних процедурОперативне публікування даних про всі тендери, відкриті реєстри і доступ до інформації для громадян і медіа.
Роль антикорупційних органів•Зміцнення інститутів, таких як НАБУ, САП, і спеціальних судів, для ефективного реагування на корупційні правопорушення.
Електронні системиВпровадження електронних тендерів (як Прозорро), де кожен етап процесу можна перевірити онлайн.
Покарання за корупціюЧітке визначення та притягнення до відповідальності осіб, які займаються маніпуляціями на тендерах, з обов’язковими публічними розслідуваннями.

Тендери та закупівлі — одна з найбільш вразливих до корупції сфер, і боротьба з цими схемами потребує комплексного підходу з боку держави, громадських організацій та самих громадян. Пам’ятаємо, що корупція боїться розголосу!

Важливі складові SQL

DDLData Definition Language
DMLData Manipulation Language
DCLData Control Language
TCLTransaction Control Language

DDL

DDL (Data Definition Language) — Мова визначення даних. Використовується для створення, зміни та видалення структур бази даних, таких як таблиці, індекси, схеми тощо.
Основні команди•CREATE (створення об’єктів)
•ALTER (зміна структури об’єктів)
•DROP (видалення об’єктів)
•TRUNCATE (видалення всіх даних з таблиці без видалення самої таблиці)

DML

DML (Data Manipulation Language) — Мова маніпулювання даними. Використовується для роботи з даними: вставка, оновлення, видалення та вибірка.
Основні команди•SELECT (вибірка даних)
•INSERT (додавання даних)
•UPDATE (оновлення даних)
•DELETE (видалення даних)

DCL

DCL (Data Control Language) — Мова керування доступом до даних. Використовується для контролю доступу до бази даних, надання або відкликання прав доступу.
Основні команди•GRANT (надання прав доступу)
•REVOKE (відкликання прав доступу)

TCL

TCL (Transaction Control Language) — Мова керування транзакціями. Використовується для керування транзакціями, що дозволяє виконувати кілька операцій як єдину одиницю, з гарантованою атомарністю (якщо одна операція не успішна, то всі інші повертаються до початкового стану).
Основні команди•COMMIT (підтвердження транзакції)
•ROLLBACK (відкат транзакції)
•SAVEPOINT (створення контрольної точки в транзакції)
•SET TRANSACTION (налаштування параметрів транзакції)

Для додаткової візуалізації є відео:

Атрибут FOREIGN KEY

Атрибут FOREIGN KEY в MySQL використовується для встановлення зв’язків між таблицями в базі даних. Він дозволяє визначити, що значення в одному стовпці (або комбінації стовпців) однієї таблиці посилається на значення в іншій таблиці. Це забезпечує цілісність даних в базі, оскільки дозволяє уникати порушень зв’язків між таблицями, таких як наявність посилання на неіснуючі записи. Зовнішній ключ створює реляційний зв’язок між двома таблицями, зазвичай між первинним ключем однієї таблиці та зовнішнім ключем в іншій.
Зв’язок між таблицямиЗовнішній ключ визначає посилання між таблицями: значення у стовпці однієї таблиці посилаються на значення у стовпці іншої таблиці.
Цілісність данихВстановлення зовнішнього ключа дозволяє забезпечити referential integrity, тобто підтримувати консистентність даних між таблицями. Наприклад, ви не зможете вставити запис із посиланням на неіснуючий запис в іншій таблиці.
Типи обмеженьON DELETE: Описує, що відбувається з рядками в дочірній таблиці при видаленні запису в батьківській таблиці (наприклад, CASCADE, SET NULL). ON UPDATE: Описує, що відбувається з рядками в дочірній таблиці при оновленні значення в батьківській таблиці.

Приклад застосування при створенні таблиці

CREATE TABLE customers (
    customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    customer_name VARCHAR(100) NOT NULL
);
CREATE TABLE orders (
    order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    order_date DATE NOT NULL,
    customer_id INT,
    FOREIGN KEY (customer_id) REFERENCES customers (customer_id)
);
INSERT INTO customers (customer_name) VALUES ('John Doe');
INSERT INTO orders (order_date, customer_id) VALUES ('2025-05-20', 1);
INSERT INTO orders (order_date, customer_id) VALUES ('2025-05-20', 999);
-- останній INSERT не виконається, 
-- оскільки id 999 нема в таблиці customers

CASCADE, SET NULL, RESTRICT, NO ACTION

ON DELETE CASCADEЯкщо в таблиці customers буде видалено клієнта, то всі замовлення, які до нього відносяться, також будуть видалені.
ON DELETE SET NULLЯкщо клієнт буде видалений, то значення в стовпці customer_id таблиці orders буде встановлено в NULL замість видалення замовлень.
ON UPDATE CASCADEЯкщо значення в customer_id в таблиці customers зміниться, то це значення буде автоматично оновлено у всіх рядках таблиці orders, де воно використовується.

Типи обмежень

Тип обмеженняОпис
CASCADEОперація (видалення або оновлення) в батьківській таблиці буде автоматично застосована до дочірньої таблиці.
SET NULLПри видаленні або оновленні запису в батьківській таблиці значення в дочірній таблиці буде змінено на NULL.
RESTRICTЗабороняє операцію видалення або оновлення в батьківській таблиці, якщо є відповідні записи в дочірній таблиці.
NO ACTIONАналогічно до RESTRICT, але дія відбувається після виконання всіх інших перевірок.

Приклад використання FOREIGN KEY разом із CASCADE:

CREATE TABLE orders2 (
    order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    order_date DATE NOT NULL,
    customer_id INT,
    FOREIGN KEY (customer_id)
        REFERENCES customers (customer_id)
        ON DELETE CASCADE
        ON UPDATE CASCADE
);

Приклад використання FOREIGN KEY разом із SET NULL:

CREATE TABLE orders3 (
    order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    order_date DATE NOT NULL,
    customer_id INT,
    FOREIGN KEY (customer_id)
        REFERENCES customers (customer_id)
        ON DELETE SET NULL
);

Приклад використання FOREIGN KEY разом із RESTRICT:

CREATE TABLE orders4 (
    order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    order_date DATE NOT NULL,
    customer_id INT,
    FOREIGN KEY (customer_id)
        REFERENCES customers (customer_id)
        ON DELETE RESTRICT
        ON UPDATE RESTRICT
);

Приклад використання FOREIGN KEY разом із NO ACTION:

CREATE TABLE orders5 (
    order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    order_date DATE NOT NULL,
    customer_id INT,
    FOREIGN KEY (customer_id)
        REFERENCES customers (customer_id)
        ON DELETE NO ACTION
        ON UPDATE NO ACTION
);

Для додаткової візуалізації є відео: