Найти в Дзене

DBA — DataBase Administrator уровень джуниора (2 часть)

Языки запросов и скриптов SQL — язык взаимодействия с СУБД SQL — основной язык работы с реляционными базами. Нужно понимать три группы команд: 🔶 DML (Data Manipulation Language) — работа с данными SELECT, INSERT, UPDATE, DELETE, MERGE Фильтрация (WHERE), сортировка (ORDER BY), группировка (GROUP BY) Соединения таблиц (JOIN) Подзапросы и оконные функции Пример: Найти топ-5 клиентов по сумме покупок за 2024 год. 🔶 DDL (Data Definition Language) — работа со структурой CREATE TABLE, ALTER TABLE, DROP TABLE Создание индексов, представлений (views), схем Пример: Создать таблицу заказов с внешним ключом на клиента 🔶 DCL (Data Control Language) — управление доступом GRANT, REVOKE Понимание ролей, пользователей, схем Пример: Выдать права на SELECT конкретному пользователю Что должен уметь Junior DBA: Писать и понимать базовые SELECT-запросы, знать отличия DDL и DML, уметь выдать доступ к таблице. Диалекты SQL и процедурные языки в СУБД Каждая СУБД имеет свой диалект SQL и язык процедурног
Оглавление

Языки запросов и скриптов

SQL — язык взаимодействия с СУБД

SQL — основной язык работы с реляционными базами. Нужно понимать три группы команд:

🔶 DML (Data Manipulation Language) — работа с данными

  • SELECT, INSERT, UPDATE, DELETE, MERGE
  • Фильтрация (WHERE), сортировка (ORDER BY), группировка (GROUP BY)
  • Соединения таблиц (JOIN)
  • Подзапросы и оконные функции

Пример: Найти топ-5 клиентов по сумме покупок за 2024 год.

🔶 DDL (Data Definition Language) — работа со структурой

  • CREATE TABLE, ALTER TABLE, DROP TABLE
  • Создание индексов, представлений (views), схем

Пример: Создать таблицу заказов с внешним ключом на клиента

🔶 DCL (Data Control Language) — управление доступом

  • GRANT, REVOKE
  • Понимание ролей, пользователей, схем

Пример: Выдать права на SELECT конкретному пользователю

Что должен уметь Junior DBA: Писать и понимать базовые SELECT-запросы, знать отличия DDL и DML, уметь выдать доступ к таблице.

Диалекты SQL и процедурные языки в СУБД

Каждая СУБД имеет свой диалект SQL и язык процедурного программирования.

🔷 PL/pgSQL (PostgreSQL)

  • Написание функций, триггеров, процедур
  • Переменные, циклы, IF, RETURN
  • Используется в автоматизации, валидации, расчётах

Пример: Функция, возвращающая среднюю сумму заказов клиента

🔷 T-SQL (Microsoft SQL Server)

  • Расширения SQL: переменные, курсоры, TRY…CATCH
  • BEGIN TRANSACTION, ROLLBACK, COMMIT
  • RAISERROR, временные таблицы, MERGE

Пример: Сценарий массового обновления записей с логированием

🔷 PL/SQL (Oracle)

  • Очень мощный процедурный язык
  • Анонимные блоки, процедуры, пакеты
  • Исключения, курсоры, bulk-операции

Пример: Обработка ошибок при массовой вставке

Что должен уметь Junior DBA: Читать и понимать простейшие скрипты на каждом из диалектов. Написать простую функцию с IF и RETURN. Создать триггер.

Скриптовые языки: Bash / PowerShell

Для автоматизации — резервного копирования, мониторинга, запуска cron-задач, развёртывания и миграций.

🐧 Bash (Linux-серверы)

  • Умение писать скрипты с pg_dump, mysqldump
  • Проверка ошибок, логирование, crontab
  • Передача аргументов, условия, циклы

Пример: Скрипт, сохраняющий ежедневный бэкап PostgreSQL с логами

PowerShell (Windows-серверы / SQL Server)

  • Подключение к SQL Server через sqlcmd
  • Работа с файлами, временем, планировщиком задач
  • Отправка уведомлений (например, почта/лог)

Пример: Скрипт, проверяющий свободное место и шлёт оповещение

Что должен уметь Junior DBA: Читать скрипты, запускать, немного редактировать под свои задачи. Настроить cron или планировщик.

Python / Perl — расширенная автоматизация

🐍 Python

  • Используется для:

Сложной логики автоматизации
Интеграции с другими системами
Визуализации отчётов

  • Работа с библиотеками psycopg2, pymysql, pyodbc
  • Примеры: отчёты, алерты, ETL, сравнение схем, парсинг логов

Пример: Скрипт, проверяющий, что объём бэкапа > 0 МБ, и шлёт письмо

🐪 Perl (уступает в популярности, но может встретиться)

  • Устаревшие админские скрипты
  • Легаси-наследие для Oracle и PostgreSQL
  • Знание не обязательно, но чтение кода приветствуется

Что должен уметь Junior DBA: Не обязательно программировать, но понимать логику скриптов, адаптировать под нужды, запускать, ловить ошибки.

Сводка — что должен уметь Junior DBA на старте:

-2

Заключение: Путь Junior DBA

Работа администратора баз данных — это про ответственность, наблюдательность и техническую аккуратность. Даже на джуниор-уровне от специалиста ждут, что он понимает, как работает его инструмент, умеет реагировать на проблемы и не делает хуже. Мы рассмотрели основные блоки, с которых начинается путь DBA — и каждый из них важен.

Что важно развивать дальше?

  • Практика — без неё теория мёртва. Учись развертывать базы, делать бэкапы, чинить репликацию.
  • Понимание архитектуры — как движутся данные, как работает запрос, что будет при сбое.
  • Наблюдательность — мониторинг, алерты, журналы, метрики — всё это глаза DBA.
  • Автоматизация — даже на младшем уровне полезно писать скрипты для типовых задач.
  • Внимательность к деталям — DBA не имеет права «на авось». Всегда проверяй и думай, что делаешь.