2.3. Пример: System R
Основными целями разработчиков
System R являлись следующие:
- обеспечить ненавигационный
интерфейс высокого уровня
пользователя с системой,
позволяющий достичь
независимости данных и дать
возможность пользователям
работать максимально
эффективно;
- обеспечить многообразие
допустимых способов
использования СУБД, включая
программируемые транзакции,
диалоговые транзакции и
генерацию отчетов;
- поддерживать динамически
изменяемую среду баз данных, в
которой отношения, индексы,
представления, транзакции и
другие объекты могут легко
добавляться и уничтожаться без
приостановки нормального
функционирования системы;
- обеспечить возможность
параллельной работы с одной
базой данных многих
пользователей с допущением
параллельной модификации
объектов базы данных при
наличии необходимых средств
защиты целостности базы
данных;
- обеспечить средства
восстановления согласованного
состояния баз данных после
разного рода сбоев аппаратуры
или программного обеспечения;
- обеспечить гибкий механизм,
позволяющий определять
различные представления
хранимых данных, и
ограничивать этими
представлениями доступ
пользователей к базе данных по
выборке и модификации на
основе механизма авторизации;
- обеспечить производительность
системы при выполнении
упомянутых функций,
сопоставимую с
производительностью
существующих СУБД низкого
уровня.
Структурная организация System R
вполне согласуется с поставленными
при ее разработке целями. Основными
структурными компонентами System R
являются система управления
реляционной памятью (Relational Storage System
- RSS) и компилятор запросов языка SQL.
RSS обеспечивает интерфейс довольно
низкого, но достаточного для
реализации SQL уровня для доступа к
хранимым в базе данным.
Синхронизация транзакций,
журнализация изменений и
восстановление баз данных после
сбоев также относятся к числу
функций RSS. Компилятор запросов
использует интерфейс RSS для доступа
к разнообразной справочной
информации (каталогам отношений,
индексов, прав доступа, условий
целостности, условных воздействий
и т.д.) и производит рабочие
программы, выполняемые в
дальнейшем также с использованием
интерфейса RSS. Таким образом,
система естественно разделяется на
два уровня - уровень управления
памятью и синхронизацией,
фактически, не зависящий от
базового языка запросов системы, и
языковой уровень (уровень SQL), на
котором решается большинство
проблем System R. Заметим, что эта
независимость скорее условная, чем
абсолютная: язык SQL можно заменить
на другой язык, но он должен
обладать примерно такой же
семантикой.
Предыдущая
глава || Оглавление
|| Следующая глава
|