Введение
Проверка и ограничение входных данных — это фундаментальная практика, при разработке программного обеспечения и управления данными, у этого есть причины. Во-первых, это обеспечивает целостность данных за счет соблюдения ожидаемых форматов и критериев, предотвращая такие проблемы, как неправильные типы данных или слишком длинные значения, которые могут стать проблемой для вашей системы. Во-вторых, необходимо принудительно проверять входные данные на наличие фильтра шаблонов, защищаясь от вредоносных атак. Отфильтровывая вредоносные данные, мы защищаем систему от уязвимостей и возможных утечек информации.
В этой инструкции мы рассмотрим ограничения на данные в СУБД MySQL: PRIMARY KEY, UNIQUE, CHECK, NOT NULL.
Primary Key
Первая функция для идентификации значений в таблице — первичный ключ. Это абстрактный терминологический унифицированный список правил, который помогает построить связь с различными таблицами с помощью внешнего ключа. Значения должны быть уникальными и не NULL. Например, представим, что у нас есть интернет-магазин и нам необходимо пронумеровать наших клиентов, у которых могут совпадать имя, дата рождения и другие персональные данные. В этом случае мы будем использовать это ограничение для идентификации клиента:
identificator INT NOT NULL AUTO_INCREMENT,
first_name VARCHAR(30) NOT NULL,
PRIMARY KEY (identifier, first_name)
);
Создаем таблицу client со столбцами identificator и first_name, затем ниже пишем параметр PRIMARY KEY и столбцы identificate для этого. Проверим, как это работает, если наш менеджер или система добавит данные о двух клиентах:
И второго клиента — командой:
Посмотрим, что мы получим в результате этой манипуляции:
Теперь каждая запись в этом столбце является идентификатором и уникальна, и если наш менеджер попытается разместить новые данные с таким же именем или идентификатором, то получит сообщение об ошибке:
Это важное ограничение в информационной системе и приложениях, где необходимо хранить персональные данные, информацию о банковских платежах и другую конфиденциальную информацию, система должна работать корректно! Если вы хотите удалить PRIMARY KEY, то вам необходимо написать:
После этого ключ будет удален!
UNIQUE & NOT NULL
Следующее ограничение — имеет немного отличий от описанного выше метода. UNIQUE гарантирует, что все записи в столбце будут иметь уникальное значение! Мы уже создали таблицу и теперь нам необходимо изменить ее, добавив новый параметр:
Проверьте формат таблицы с помощью ранее описанной команды:
Сначала UNIQUE-ключ будет преобразован в PRIMARY KEY, если его еще не существует, так как необходимо идентифицировать каждую строку. В этом случае необходимо добавить первичный ключ, как мы описали выше, или создать еще один столбец с UNIQUE-ключом:
И просмотреть результат в таблице:
Как видно из примера, в первой таблице ключ — PRIVATE, но также мы добавили еще один столбец и значение ключа установили UNIQUE. Менеджер снова попробует добавить тот же столбец email:
Повторяющаяся строка:
Это позволяет сохранить целостность, избежать системных проблем и повысить производительность базы данных.
В последних двух методах мы не говорили еще об одном ограничении — NOT NULL. Ячейка в базе данных должна иметь определенный тип или значение, но бывают ситуации, когда мы определяем значения в процессе работы системы.
Важно отметить! NULL — это не значение, это буквально пустота. В качестве сравнения можно представить затычку, без значения!
DEFAULT & CHECK
Перейдем к рассмотрению ограничений на значения DEFAULT и CHECK. Они выполняют функции, ассоциированные с их названиями. DEFAULT предназначена для записи ранее подготовленного значения в ситуации, когда ячейка в БД не получает данных, что позволяет избежать проблем и установить значение по умолчанию. CHECK представляет собой список правил фильтрации вводимых данных, если данные соответствуют правилам, то они попадают в ячейку, в противном случае они запрещаются. В нашем магазине мы не можем продавать товар детям и подросткам, тогда нам нужно добавить правило фильтрации, и по умолчанию будет стоять значение восемнадцать:
Для проверки примененных правил фильтрации мы можем ввести данные и увидеть результат:
Просмотрим введенные значения:
В таблице появляется сущность с id четыре и указанным по умолчанию возрастом, что позволяет избежать проблемы пустого поля. Но если данные не проходят проверку, то система не может добавить строку в таблицу:
Примечание! Если мы строим информационную систему или программу, то можем определить проблему по идентификатору или коду ошибки БД.
Вывод
Применение ограничений на данные в системе управления базами данных — важнейшая практика для обеспечения качества данных, безопасности системы и ее надежности в целом. Реализация этих ограничений позволяет создавать надежные и безопасные приложения, обеспечивающие эффективное управление и защиту данных.