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

       

я должен сказать, что совсем


Отклоняясь от темы, я должен сказать, что совсем не очевидно то, что средства RM/V2 в этой области являются «неотличимыми от средств Tutorial D» (и на самом деле, это не так; например, в RM/V2 выполнение некоторых операций удаления приводит к появлению в базе данных неопределенных значений, и в то же время не поддерживается множественное присваивание). Более того, в тексте книги о RM/V2 на стр. 87-94 содержится много материала, не имеющего непосредственного отношения к семантике операций, включая многие детали, вообще не относящиеся к абстрактной модели – например, «Когда СУБД запрещает вставку строк (чтобы избежать появления в результате дублирующих строк), включается индикатор строк-дубликатов)»; «Если для целевого отношения существуют один или несколько индексов, то СУБД будет автоматически обновлять эти индексы для поддержки вставленных строк» и т.д. Имеется также несколько предписаний, непосредственно конфликтующих с Третьим Манифестом – например, «Домен любого столбца T, в котором значения порождаются посредством функции, определяются [в каталоге] как порождаемые функцией (function-derived), поскольку СУБД обычно не может быть более конкретной»; «Реляционная модель включает в некоторые манипуляционные операции опцию каскадирования (cascading option) и т.д. При всем этом я, конечно, согласен с Хью в том, что общие функциональные возможности, определяемые в этой части книги про RM/V2, по существу, аналогичны соответствующим возможностям Tutorial D.

В дополнение ко всему сказанному выше замечу, что еще в 1971 г. Кодд предлагал явную поддержку INSERT, DELETE и UPDATE (хотя и не присваивания как такового; я имею в виду его статью про «Подъязык данных ALPHA» [5], в которой 12 примеров (из 32-х, т.е. почти 40%) являлись примерами операций обновления.


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