Прежде, чем перейти к детальному и последовательному изучению реляционных систем
БД, остановимся коротко на ранних (дореляционных) СУБД. В этом есть смысл по трем
причинам: во-первых, эти системы исторически предшествовали реляционным, и для
правильного понимания причин повсеместного перехода к реляционным системам нужно
знать хотя бы что-нибудь про их предшественников; во-вторых, внутренняя организация
реляционных систем во многом основана на использовании методов ранних систем;
в-третьих, некоторое знание в области ранних систем будет полезно для понимания
путей развития постреляционных СУБД.
Заметим, что в этой лекции мы ограничиваемся
рассмотрением только общих подходов к организации трех типов ранних систем, а
именно, систем, основанных на инвертированных списках, иерархических и сетевых
систем управления базами данных. Мы не будем касаться особенностей каких-либо
конкретных систем; это привело бы к изложению многих технических деталей, которые,
хотя и интересны, находятся несколько в стороне от основной цели нашего курса.
Детали можно найти в рекомендованной литературе.
Начнем с некоторых наиболее
общих характеристик ранних систем:
Эти системы активно использовались
в течение многих лет, дольше, чем используется какая-либо из реляционных СУБД.
На самом деле некоторые из ранних систем используются даже в наше время, накоплены
громадные базы данных, и одной из актуальных проблем информационных систем является
использование этих систем совместно с современными системами.
Все ранние системы
не основывались на каких-либо абстрактных моделях. Как мы упоминали, понятие модели
данных фактически вошло в обиход специалистов в области БД только вместе с реляционным
подходом. Абстрактные представления ранних систем появились позже на основе анализа
и выявления общих признаков у различных конкретных систем.
В ранних системах
доступ к БД производился на уровне записей. Пользователи этих систем осуществляли
явную навигацию в БД, используя языки программирования, расширенные функциями
СУБД. Интерактивный доступ к БД поддерживался только путем создания соответствующих
прикладных программ с собственным интерфейсом.
Можно считать, что уровень
средств ранних СУБД соотносится с уровнем файловых систем примерно так же, как
уровень языка Кобол соотносится с уровнем языка Ассемблера. Заметим, что при таком
взгляде уровень реляционных систем соответствует уровню языков Ада или APL.
Навигационная
природа ранних систем и доступ к данным на уровне записей заставляли пользователя
самого производить всю оптимизацию доступа к БД, без какой-либо поддержки системы.
После появления реляционных систем большинство ранних систем было оснащено
"реляционными" интерфейсами. Однако в большинстве случаев это не сделало
их по-настоящему реляционными системами, поскольку оставалась возможность манипулировать
данными в естественном для них режиме.