Валид — термин в информатике и математике¶
Валид (от англ. valid — «действительный, корректный») — термин, обозначающий состояние объекта, данных или процесса, при котором он соответствует заранее заданным правилам, требованиям или критериям. Валидность противопоставляется невалидности (invalid) — состоянию, при котором объект этим требованиям не удовлетворяет. Термин широко применяется в информатике, программировании, математической логике, базах данных, юриспруденции и метрологии.
¶Происхождение и этимология
Слово происходит от латинского validus — «сильный, крепкий, действительный». В математической логике и философии термин «валидный» используется для обозначения корректных умозаключений, вывод которых следует из посылок по правилам логики. В англоязычной программистской традиции термин valid получил широкое распространение с 1970-х годов вместе с развитием систем управления базами данных и языков программирования.
¶В программировании
В контексте программирования валидация — это процесс проверки данных на соответствие определённым правилам (валидатор, от англ. validator). Проверка может касаться формата, диапазона значений, обязательности полей, ссылочной целостности и других свойств.
Типичные примеры валидации:
- проверка корректности электронной почты (наличие символа
@, домена); - проверка формата даты, номера телефона, идентификатора;
- проверка паролей на соответствие требованиям к длине и составу символов;
- проверка JSON- или XML-структуры по схеме (JSON Schema, XSD).
В языках программирования валидация часто реализуется в виде отдельных функций или классов-валидаторов. В веб-разработке существуют библиотеки, такие как Joi, Yup, VeeValidate, Hibernate Validator (для Java) и другие. В .NET-экосистеме встроенный механизм DataAnnotations предоставляет декларативные атрибуты для проверки свойств моделей.
¶В базах данных
В реляционных базах данных валидность данных обеспечивается системой ограничений (constraints):
| Тип ограничения | Назначение |
|---|---|
| PRIMARY KEY | Уникальность и непустота ключевых полей |
| FOREIGN KEY | Ссылочная целостность между таблицами |
| NOT NULL | Запрет пустых значений |
| UNIQUE | Уникальность значений в столбце |
| CHECK | Проверка условия на уровне столбца или строки |
Нарушение любого из этих ограничений приводит к отклонению операции и, как правило, к ошибке в приложении. Системы валидации на уровне базы данных являются последним рубежом защиты целостности данных.
¶В веб-разработке
В веб-приложениях валидация выполняется на двух уровнях: на стороне клиента (в браузере, с помощью JavaScript) и на стороне сервера. Клиентская валидация улучшает пользовательский опыт, обеспечивая мгновенную обратную связь, но не является достаточной с точки зрения безопасности — данные, прошедшие клиентскую проверку, всё равно должны валидироваться на сервере. Классический пример — HTML-атрибуты required, pattern, min, max, type="email".
¶В математической логике
В логике валидным называется умозаключение, в котором из истинных посылок по правилам вывода всегда следует истинный заключение. В отличие от истинности, которая относится к отдельным высказываниям, валидность относится к структуре аргумента. Классический невалидный аргумент: «Все кошки — млекопитающие; некоторые млекопитающие летают; значит, некоторые кошки летают» — структура вывода не гарантирует истинности заключения.
¶В юриспруденции
В правовой терминологии «валидный» означает юридически действительный. Речь идёт о валидности договоров, нормативных актов, решений судов. Невалидный (ничтожный или оспоримый) документ не порождает правовых последствий. В международном праве валидность ратификации договора определяется соблюдением установленных процедур.
¶Валидность и верификация
В программной инженерии различают два близких понятия:
- Валидация (validation) — проверка того, что строится правильный продукт, отвечающий потребностям пользователя;
- Верификация (verification) — проверка того, что продукт построен правильно, соответствует спецификации.
Эти термины часто смешиваются, однако в стандартах ISO/IEC и в модели разработки V-модель им придаётся различное значение.
¶См. также
- Валидация данных
- Верификация программного обеспечения
- Схема данных
- Юридическая дееспособность
¶Источники
- ISO/IEC/IEEE 24765:2017 — Systems and software engineering — Vocabulary
- Date C. J. An Introduction to Database Systems
- Sommerville I. Software Engineering
- Классические учебники по математической логике (Клейни С. «Математическая логика»)
