Ответ
Constraint (ограничение) — это правило, применяемое к столбцу или таблице в базе данных для обеспечения целостности данных и соблюдения бизнес-логики.
Основные типы ограничений:
- PRIMARY KEY: Уникально идентифицирует каждую строку в таблице. Комбинация
NOT NULLиUNIQUE. - FOREIGN KEY: Обеспечивает ссылочную целостность, связывая столбец с
PRIMARY KEYдругой таблицы. - NOT NULL: Запрещает вставку
NULLзначений в столбец. - UNIQUE: Гарантирует, что все значения в столбце (или комбинации столбцов) различны.
- CHECK: Проверяет, что значение в столбце удовлетворяет заданному условию (например,
age >= 18). - DEFAULT: Задает значение по умолчанию для столбца при вставке новой строки.
Пример создания таблицы с ограничениями:
CREATE TABLE Employees (
employee_id INT PRIMARY KEY,
email VARCHAR(100) UNIQUE NOT NULL,
department_id INT,
salary DECIMAL(10,2) CHECK (salary > 0),
hire_date DATE DEFAULT CURRENT_DATE,
CONSTRAINT fk_department
FOREIGN KEY (department_id)
REFERENCES Departments(department_id)
);
С точки зрения тестирования (QA):
- Валидация данных: Тесты должны проверять, что приложение корректно обрабатывает попытки нарушения ограничений (например, вставку дубликата
PRIMARY KEY), возвращая понятные ошибки. - Регрессионное тестирование: Изменение или добавление ограничений в БД требует проверки существующего функционала.
- Тестирование миграций: Проверка скриптов миграции БД на корректное применение/удаление ограничений.