Организация типичной СУБД и состав ее компонентов соответствует рассмотренному набору основных функции СУБД:
- управление данными во внешней памяти;
- управление буферами оперативной памяти;
- управление транзакциями;
- ведение журнала БД;
- поддержание языков БД.
Логически в современной реляционной СУБД можно выделить четыре основные компоненты:
- ядро СУБД (часто его называют Database Engine);
- компилятор языка БД (обычно SQL);
- подсистема поддержки времени выполнения;
- набор утилит.
В некоторых СУБД эти части выделяются явно, в других — нет, но логически такое разделение можно провести во всех СУБД.
Ядро СУБД является основной резидентной частью СУБД и отвечает за управление данными во внешней памяти, управление буферами оперативной памяти, управление транзакциями и журнализацию. Соответственно, можно выделить такие компоненты ядра, как менеджер данных, менеджер буферов, менеджер транзакций и менеджер журнала. Функции этих компонентов взаимосвязаны, и для обеспечения корректной работы СУБД все эти компоненты должны взаимодействовать но тщательно продуманным и проверенным протоколам. Ядро СУБД обладает собственным интерфейсом, не доступным пользователям напрямую и используемым в программах, производимых компилятором SQL (или в подсистеме поддержки выполнения таких программ) и утилитах БД. Ядро СУБД является основной составляющей серверной части системы при использовании архитектуры "клиент-сервер".
Основной функцией, выполняемой компилятором языка БД, является компиляция операторов языка в выполняемую программу. Главная проблема реляционных СУБД состоит в том, что языки этих систем (обычно SQL) являются непроцедурными. Известно, что в операторе языка SQL описывается определенное действие над БД, но это описание не является процедурой. Оператор языка SQL описывает в специфицированной форме условия совершения требуемого действия. Задача компилятора — решить, каким образом выполнять оператор языка прежде, чем создать объектный код. Для решения этой задачи применяются достаточно сложные методы оптимизации операторов языка SQL. Результат работы компилятора — объектный код, наиболее часто в выполняемом внутреннем машинно-независимом коде. Реальное выполнение оператора языка SQL происходит с привлечением подсистемы поддержки времени выполнения, представляющей собой интерпретатор этого внутреннего языка.
В отдельные утилиты СУБД обычно выделяют следующие системные часто применяемые процедуры:
- загрузка и выгрузка БД;
- сбор статистики;
- глобальная проверка целостности БД и т.д.
Такие утилиты программируются с использованием интерфейса ядра СУБД.