Введение в базы данных и SQL
Введение в базы данных и SQL
Современные приложения хранят данные не в файлах, а в базах данных. Тестировщик работает с БД каждый день: проверяет, что данные сохранились корректно, готовит тестовые данные, расследует баги. В этом уроке разберёмся, что такое база данных и почему SQL — обязательный инструмент QA-специалиста.
Что такое база данных
База данных (БД) — организованное хранилище структурированных данных, которые можно эффективно добавлять, искать, изменять и удалять.
СУБД (система управления базами данных) — программа, которая управляет базой: принимает запросы, хранит данные, обеспечивает безопасность и производительность.
Примеры СУБД:
| СУБД | Тип | Применение |
|---|---|---|
| PostgreSQL | Реляционная | Веб-приложения, аналитика |
| MySQL | Реляционная | WordPress, e-commerce |
| SQLite | Реляционная | Мобильные приложения, тесты |
| MongoDB | Документная (NoSQL) | Гибкие структуры данных |
| Redis | Ключ-значение | Кэш, сессии |
Что такое SQL
SQL (Structured Query Language) — язык для работы с реляционными базами данных. Это стандарт: один и тот же запрос с небольшими отличиями работает в PostgreSQL, MySQL и SQLite.
SQL состоит из нескольких групп команд:
| Группа | Назначение | Команды |
|---|---|---|
| DQL | Чтение данных | SELECT |
| DML | Изменение данных | INSERT, UPDATE, DELETE |
| DDL | Структура БД | CREATE, ALTER, DROP |
| TCL | Транзакции | BEGIN, COMMIT, ROLLBACK |
| DCL | Права доступа | GRANT, REVOKE |
Тестировщик чаще всего работает с DQL и DML — читает данные и при необходимости их изменяет.
Типы баз данных
Реляционные (SQL)
Данные хранятся в таблицах с чётко заданной структурой. Таблицы связаны между собой. Идеально подходят для структурированных данных с отношениями.
users таблица: orders таблица:
| id | name | email | | id | user_id | total |
|----|-------|-----------| |----|---------|-------|
| 1 | Анна | a@mail.ru | | 1 | 1 | 5000 |
| 2 | Пётр | p@mail.ru | | 2 | 1 | 1200 |
Документные (NoSQL)
Данные хранятся как JSON-документы. Гибкая схема — у разных документов могут быть разные поля. Пример: MongoDB.
Ключ-значение
Хранят пары ключ→значение. Очень быстрые. Используются как кэш. Пример: Redis.
Зачем тестировщику SQL
1. Проверка данных после действий в UI
Вы заполнили форму регистрации и нажали «Сохранить». Как убедиться, что данные реально записались в БД?
SELECT * FROM users WHERE email = 'test@example.com';
2. Подготовка тестовых данных
Некоторые состояния системы сложно воспроизвести через UI. Например, пользователь с заблокированным аккаунтом.
INSERT INTO users (name, email, is_active) VALUES ('Тест Юзер', 'test@example.com', false);
3. Расследование багов
Пользователь сообщает: «Мой заказ исчез». Смотрите напрямую в базу — данные там или нет?
SELECT * FROM orders WHERE user_id = 42 ORDER BY created_at DESC;
4. Очистка данных после тестов
После прогона тестов нужно вернуть базу в исходное состояние.
DELETE FROM users WHERE email LIKE 'test_%@example.com';
Инструменты для работы с БД
| Инструмент | Описание |
|---|---|
| DBeaver | Универсальный GUI-клиент, поддерживает все популярные СУБД |
| pgAdmin | Официальный клиент для PostgreSQL |
| MySQL Workbench | Официальный клиент для MySQL |
| TablePlus | Лёгкий GUI-клиент для macOS/Windows |
| psql | Консольный клиент PostgreSQL |
Совет: Изучите DBeaver — он работает с любой СУБД и часто используется в командах.
Правило безопасности №1
⚠️ Никогда не работайте с production-базой напрямую во время тестирования.
Один неверный UPDATE или DELETE без WHERE — и вы можете испортить данные реальных пользователей. Всегда используйте отдельную тестовую базу.
Итоги
- База данных — организованное хранилище данных приложения
- СУБД — программа для управления базой (PostgreSQL, MySQL, SQLite и др.)
- SQL — стандартный язык запросов для реляционных БД
- Тестировщик использует SQL для проверки данных, подготовки стендов и расследования багов
- DBeaver — универсальный инструмент для работы с любой СУБД
- Правило: только тестовая база, никогда production