Для пользователей информационной системы недостаточно, чтобы база данных просто отражала объекты реального мира. Важно, чтобы такое отражение было однозначным и непротиворечивым. В этом случае говорят, что база данных удовлетворяет условию целостности.
Для того чтобы гарантировать корректность и взаимную непротиворечивость данных, на базу данных накладываются ограничения, называющиеся ограничениями целостности. Ограничения целостности (целостная составляющая) реляционной модели можно разделить на две группы – требование целостности сущностей и требование целостности ссылок.
Первое из требований — требование целостности сущности — означает, что первичный ключ должен полностью идентифицировать каждую сущность, а поэтому не допускается наличие неопределенных (null) значений в составе первичного ключа. Требование целостности сущностей также подразумевает отсутствие полей с множественным характером значений атрибута, что обеспечивается нормализацией таблиц-отношений.
Требование целостности ссылок заключается в том, что внешний ключ не может быть указателем на несуществующую строку в таблице, т.е. для любой записи с конкретным значением внешнего ключа должна обязательно существовать связанная запись в родительской таблице с соответствующим значением первичного ключа. Ограничения целостности реализуются с помощью специальных средств, о которых речь пойдет далее.
Рассмотрим отношения ссылочной целостности и ограничения NOT NULL, которые отражены в ER модели учебной БД.
Внешние ключи AccountCD и GazServiceCD таблиц PaySummaи NachislSumma ссылаются на первичные ключи таблиц Abonent и Services соответственно. Эти внешние ключи объявлены как NOT NULL (нет белого ромбика у линии связи, примыкающей к родительской таблице), т.е. в таблицах PaySumma и NachislSumma не могут существовать записи с пустыми значениями полей AccountCD и GazServiceCD. Записи в этих таблицах могут существовать только в том случае, если в справочнике абонентов (таблица Abonent) и в справочнике услуг газоснабжения (таблица Services) есть абонент и услуга газоснабжения, которые указаны в полях внешних ключей AccountCD и GazServiceCD. Для всех связей рассматриваемых в данный момент внешних ключей определены условия ссылочной целостности: D:R и U:C. Это, например, означает, что удаление абонента из справочника абонентов будет запрещено, если в таблице PaySumma или NachislSumma существуют записи, связанные с этим абонентом через механизм внешних ключей, а при обновлении первичного ключа таблицы Abonent будет выполнено «каскадное» обновление соответствующих внешних ключей AccountCD в таблицах PaySumma и NachislSumma.
предыдущаяследующая