Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Белобжеский_Лекции_по_ББД.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
5.5 Mб
Скачать

Реляционная целостность

В предыдущем разделе была рассмотрена структурная часть реляционной модели данных. Как упоминалось, модель данных имеет две другие части: управляющую часть, которая определяет типы допустимых операций с данными, и набор ограничений целостности, которые гарантируют корректность данных. В этом разделе рассматриваются реляционные ограничения целостности.

Поскольку каждый атрибут связан с некоторым доменом, для множества допус­тимых значений каждого атрибута отношения определяются так называемые ограничения домена. Помимо этого, задаются два важных правила целостности, которые, по сути, являются ограничениями для всех допустимых состояний базы данных. Этих два основных правила реляционной модели называются целостностью сущностей и ссылочной целостностью. Однако, прежде чем приступить к изучению этих правил, следует рассмотреть понятие NULL.

Определитель NULL

Определитель NULL указывает, что значение атрибута в настоящий момент неизвестно или неприемлемо для этого кортежа.

Определитель NULL следует воспринимать как логическую величину "неизвестно". Другими словами, либо это значение не входит в область определения некоторого кортежа, либо никакое значение еще не задано. Ключевое слово NULL представляет собой способ обработки неполных или необычных данных. Однако определитель NULL не следует понимать как нулевое численное значение или заполненную пробелами текстовую строку. Нули и пробелы представляют собой некоторые значения, тогда как ключевое слово NULL призвано обозначать отсутствие какого-либо значения. Следовательно, определитель NULL следует рассматривать иначе, не так, как другие значения. Некоторые авторы используют термин "значение NULL", но на самом деле определитель NULL не является значением, а лишь обозначает его отсутствие, а потому термин "значение NULL" использовать не рекомендуется.

Например, если есть отношение УСПЕВАЕМОСТЬ, в котором приводятся оценки студентов за сданные экзамены, то атрибут Оценка для ряда студентов, еще не сдававших экзамен, может не иметь определенного значения до тех пор, пока эти студенты не сдадут этот экзамен. И тогда в этих местах таблицы должен стоять NULL. В противном случае для представления этого состояния без использования ключевого слова NULL потребуется либо ввести какие-то ложные данные, либо создать дополнительные ат­рибуты, которые могут быть бессмысленными для пользователей.

Применение определителя NULL может вызвать проблемы на этапе реализации. Трудности возникают из-за того, что реляционная модель основана на исчислении предикатов первого порядка, которое обладает двузначной, или булевой, логикой, т.е. допустимыми являются только два значения: истина и ложь. Применение опре­делителя NULL означает, что придется вести работу с логикой более высокого порядка, например трехзначной или даже четырехзначной (Codd, 1986, 1987, 1990).

Использование понятия NULL в реляционной модели является спорным вопросом. Кодд (1990) рассматривает понятие NULL как составную часть этой модели, а другие специалисты считают этот подход неправильным, полагая что проблема отсутствующей информации еще не до конца понята, удовлетворительное ее решение не найдено, а потому включение определителя NULL в реляционную модель является преждевременным (Date, 1995). Следует отметить, что не во всех реляционных системах поддерживается работа с определителем NULL.