Открыть сервисСервис

Валид — термин в информатике и математике

Валид (от англ. 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
  • Классические учебники по математической логике (Клейни С. «Математическая логика»)
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru