In einem grundlegenden Sinn, für viele RDBMS.
a) Die Syntaxanalyse Stufe nimmt die Eingabe von dem Server-Setup (Steckdosen, was auch immer) und macht diese SQL in eine gültige AST oder ein anderes Zwischenform.
b) Es leitet diese Informationen dann an eine Speicher-Engine weiter, die diese Abfragebeschreibung in eine Menge von Nachschlagen auf Indizes, Tabellen, Partitionen, replizierte Daten und andere Elemente umwandelt, die die Semantik zum Speichern des Schemas bilden. C) Die Engine gibt dann eine Reihe von Daten zurück, die dem Client in welcher Form auch immer zur Verfügung gestellt werden (XML, CSV, Client-spezifisch).
Aber es gibt keine eine wahre Antwort. Sie werden Ähnlichkeiten in Indexierungsalgorithmen, Verteilungsalgorithmen, Caching, Sperren und anderen Dingen finden ...Die wichtigsten Gemeinsamkeiten sind jedoch die Sprachschnittstelle der SQL-Sprache selbst. Darüber hinaus können sie beliebig implementiert werden ... sofern ihre Ergebnisse die erwartete Semantik der Eingabeabfrage erfüllen.
Wirklich RDBMs enthalten alle Arten von Strukturen aus der Informatik ... und jede hat hochentwickelte und spezialisierte Methoden, um die implizite Semantik von SQL in konkreten Speicher umzuwandeln.
Denken Sie daran, wie unterschiedlich MySQL und Oracle sind ... oder PostgreSQL und Microsoft SQL. Sie alle Versuch, um eine Art von gemeinsamen SQL-ähnliche Spezifikation zu erfüllen ... aber wie diese Spezifikation erfüllt wird, ist vielfältig.
Engines enthalten alle Arten von Exotica, spezielle Indizes, um Daten physischer Standort, Caching-Systeme und vieles mehr zu finden.
Es gibt Tonnen Open-Source- Datenbanken wie MySQL, PostgreSQL und Suchsysteme wie Sphinx Sie einen Blick auf ihre Umsetzung haben. Open Source ist zum Lernen so viel wie alles! Versuchen Sie, einen "Mentor" zu finden, der Sie durch die Quelle führt.
Siehe auch: http://stackoverflow.com/questions/751236/relational-databases-there-has-to-be-more-right –