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