В общем смысле, для многих РСУБД:.
а) этап анализа синтаксиса принимает входные данные от настройки сервера (розетки, что угодно) и превращает этот SQL в действительный AST или иной промежуточная форма.
b) Затем он передает эту информацию механизму хранения, который превращает это описание запроса в набор поисков по индексам, таблицам, разделам, реплицированным данным и другим элементам, которые составляют семантику хранения схемы
c) Двигатель затем возвращает набор данных, который затем предоставляется клиенту в любой форме (XML, CSV, Client specific).
Но нет один истинный ответ. Вы найдете сходства в алгоритмах индексирования, алгоритмах распределения, кешировании, блокировке и других вещах ...но основным сходством является языковой интерфейс самого языка SQL. Помимо этого, они могут быть реализованы любым способом, который они желают ... обеспечивая их результаты в соответствии с ожидаемой семантикой входного запроса.
Действительно, RDBM содержат все виды структур из компьютерных наук ... и каждый из них имеет высокоразвитые и специализированные методы для перевода подразумеваемой семантики SQL в конкретное хранилище.
Подумайте, как разные MySQL и Oracle ... или PostgreSQL и Microsoft SQL. Они все пытаются выполнить, чтобы выполнить какую-то общую SQL-подобную спецификацию ... но как эта спецификация выполнена, разнообразна.
Двигатели включают в себя все виды экзотики, специализированные индексы, чтобы найти физическое местоположение данных, системы кеширования и многое другое.
Есть тонн с открытым исходным кодом баз данных, таких как MySQL, PostgreSQL и поисковые системы, такие как Sphinx вы можете посмотреть на их реализацию. Открытый исходный код предназначен для обучения как угодно! Попытайтесь найти «наставника», чтобы вести вас через источник.
См. Также: http://stackoverflow.com/questions/751236/relational-databases-there-has-to-be-more-right –