Классика баз данных - статьи

       

и доменов, спецификация первичного ключа


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

Косвенные ссылки: Язык Alpha включает операцию "разыменования" (dereference), называемую PER, в соответствии с которой (например) операция

GET W2 PER (W1.X)

Выбирает в рабочее пространство W2 отношение, имя которого задается компонентом рабочего пространства W1. В языке QUEL имеется в чем-то похожее свойство; в SQL такой возможности не было до появления "динамического SQL".

Миграция доменов: В [3] имеются некоторые замечания, касающиеся того, что называется миграцией доменов. (Лучше было бы называть это миграцией атрибутов.) Основная идея состоит в том, что некоторый атрибут, говоря нестрого, может "мигрировать" из одного базового отношения в другое, и мы хотели бы иметь возможность корректного продолжения использования запросов и приложений при таких изменениях.

Другими словами. Кодд говорит об одном аспекте того, что теперь называется логической независимостью данных. Общее решение состоит в том, чтобы обеспечить представления, делающие новые отношения похожими на старые, пока к ним применимы эти запросы и приложения. И решение заключается в том, что предлагает Кодд (хотя он вообще не использует термин "представление"). В [5] он касается этих идей косвенным образом, не вдаваясь в детали.

Трехзначная логика: В статье про Alpha -- очень неудачно, по моему мнению -- допускается операция выборки с уточнением MAYBE_TOO, относящимся к тем кортежам, для которых условие выборки вырабатывает значение uknown (это истинностное значение в статье называется maybe), а также к тем кортежам, для которых значением условия является true.Другими словами, Кодд полагал, что система должна основываться на трехзначной логике и должна поддерживать некоторый род неопределенных значений (в статье они называются "отсутствующими значениями"). Он не развивает эту идею, кроме a) простого примера вставки кортежей с неспецифицируемыми компонентами ("сама система [внесет] отсутствующее значение [этих неспецифицированных компонентов]") и b) замечания относительно того, что "более подробная разработка [этого подхода] не является уместной".

Думаю, что это наблюдение правильно. Постоянные читатели этой серии знают, что мы с Коддом абсолютно не согласны с подходом неопределенных значений и трехзначной логики, и я сожалею о том, что он просто упомянул об этой возможности в 1971 г. Он ничего не делал по этому поводу до 1979 г. [7]; другими словами, реляционная модель прекрасно работала без неопределенных значений в течение десяти лет.


Содержание  Назад  Вперед