Физическое описание модели


        На этом этапе мы должны составить проекты таблиц, которые будут в дальнейшем реализовываться в конкретной СУБД. На этапе физического проектирования мы должны задуматься о такой серьезной проблеме, как обеспечение безошибочности и точности информации, хранящейся в БД. Это называется обеспечением целостности базы данных.
 
        Обеспечением целостности базы данных называется система мер, направленных на поддержание правильности данных в базе в любой момент времени.
        В СУБД целостность данных обеспечивается набором специальных предложений, называемых ограничениями целостности.
        Ограничения целостности - это набор определенных правил, которые устанавливают допустимость данных и связей между ними.
        Ограничения целостности в большинстве случаев определяются особенностями предметной области.
        Ограничения целостности могут относиться к разным объектам БД: атрибутам (полям), записям, отношениям, связям между ними и т. п.
        Для полей могут использоваться следующие виды ограничений:

  • Тип и формат поля автоматически допускают ввод только данных определенного типа. Выбор типа поля Date в формате ДД.ММ.ГГ позволит пользователю ввести только шесть чисел. При этом первая пара цифр не сможет превысить в лучшем случае значения 31, а вторая - 12.
  • Задание диапазона значений, как правило, используется для числовых полей. Диапазон допустимых значений может быть ограничен с двух сторон (закрытый диапазон), а может с какой-то одной: верхней или нижней (открытый диапазон).
  • Недопустимость пустого поля позволяет избежать появления в БД «ничейных» записей, в которых пропущены какие-либо обязательные атрибуты.
  • Задание списка значений позволяет избежать излишнего разнообразия данных, если его можно ограничить.
  • Проверка на уникальность значения какого-то поля позволяет избежать записей-дубликатов. Вряд ли будет удобно в справочнике клиентов иметь несколько записей для одного и того же лица.
        Для реализации ограничений целостности, имеющих отношение к записям таблицам или связям между ними, в СУБД используются триггеры.