Database Programming & Design

       

Зависимости данных в существующих системах


Как уже отмечалось, статья 1970-го г. в гораздо большей степени касается вопроса независимости данных, чем ее предшественница 1969-го г. В аннотации Кодд говорит: "Пользователи больших банков данных должны быть избавлены от потребности знаний о том, как данные организованы в машине. На действия пользователей с терминалов и большинство прикладных программ не должно оказывать влияние изменение внутренних представлений данных". Другими словами, мы хотим иметь физическую независимость данных. Он продолжает: "[На такие действия и программы также не должно оказываться влияние] даже при изменении некоторых аспектов внешнего представления". Другими словами, мы хотим иметь и логическую независимость данных.

Кодд рассматривает различные примеры отсутствия независимости данных в существовавших в то время системах баз данных; он также обсуждает зависимости, связанные с упорядочиванием, индексацией и путями доступа. Потом он приводит один пример, иллюстрирующий такие зависимости в системах, которые обеспечивают "древовидные или немного более общесетевые модели данных" (другими словами, иерархические системы, такие как IMS, и сетевые системы, такие как IDS). Замечание: IDS была предшественником более известной системы IDMS; Кодд писал статью до того, как IDMS появилась на сцене.

Это говорит о том, как далеко мы ушли! С точки зрения пользователей решением проблемы зависимости от упорядочивания (в терминах SQL) является раздел ORDER BY; пользователи не ограничены предопределенным упорядочиванием, а в состоянии потребовать в динамике любое желательное упорядочивание. И если пользователи требуют упорядочивания, не отражаемого напрямую в хранимом варианте данных, то система должна быть в состоянии динамически сортировать или индексировать данные.

Аналогично, решение проблемы независимости от индексации состоит в том, чтобы исключит ссылки на индексы из приложений. Вместо этого приложения должны запрашивать доступ к данным через любой предпочтительный метод, и компонент системы -- который теперь мы назвали бы оптимизатором -- берет на себя ответственность за решения использовать индексы, чтобы ответить за это требование доступа.
Отдельные операции CREATE и DROP INDEX доступны для использование в любое время в независимости от существования приложений и их логических требований к данным.

Подобно этому, решение проблемы зависимости от путей доступа заключается в том, чтобы исключить все пути доступа из пользовательского представления данных (как делается в реляционных системах, но не в системах типа IMS и IDS). Современных читателей может озадачить проводимое Коддом различие между зависимостями от индексации и от путей доступа; в конце концов, индекс - это всего лишь специальный случай пути доступа. Однако вот что имел в виду Кодд: данные, которые пользователь видит в иерархической или сетевой системе, включают некоторые конструкции (иногда зазываемые связями - links), которые -- неважно, что говорят их защитники -- на самом деле, были действительно путями доступа. Эти пути неизменно служили и путями физического доступа. Например, если такой "логический" путь доступа удалялся, то некоторые приложения могли бы перестать работать.


Содержание раздела