Was ist die DBMS?
die eingesetzte Software, die für das Datenbanksystem installiert und konfiguriert wird
Datenbank
Datenbank

=== Datenbankmanagementsystem ===
Das Datenbankmanagementsystem (DBMS) ist die eingesetzte Software, die für das Datenbanksystem installiert und konfiguriert wird. Das DBMS legt das Datenbankmodell fest, hat einen Großteil der unten angeführten Anforderungen zu sichern und entscheidet maßgeblich über Funktionalität und Geschwindigkeit des Systems. Datenbankmanagementsysteme selbst sind hochkomplexe Softwaresysteme.
Für ''Datenbankmanagementsystem'' wird (selten) auch der Begriff ''Datenbankverwaltungssystem'' (DBVS) verwendet.
Gängig ist die Abkürzung RDBMS für ein ''relationales Datenbankmanagementsystem''.
Datenbank Abfrageoptimierer
Der Abfrageoptimierer ist Teil eines Datenbankmanagementsystems, der versucht, für eine Datenbankabfrage einen optimalen Auswertungsplan zu berechnen.
Nicht alle DBMS haben einen Abfrageoptimierer. Das DBMS IMS z. B. braucht keinen Abfrageoptimierer, da es sich um ein hierarchisches DBMS handelt und die Zugriffe auf die Daten nicht in SQL-Syntax formuliert werden, sondern der Auswertungsplan bei jeder Abfrage mit angegeben werden muss.
Abfrageoptimierer kommen in der Regel bei relationalen DBMS zum Einsatz. Denn die SQL-Syntax spezifiziert nur, ''welche Daten'' ermittelt werden sollen, nicht aber ''wie'' es geschehen soll.
Es lassen sich zwei Typen von Abfrageoptimierern unterscheiden: regelbasierte und kostenbasierte Abfrageoptimierer. Db2
Datenbank

=== Datenbank ===
In der Theorie versteht man unter ''Datenbank'' (engl. ''database'') einen logisch zusammengehörigen Datenbestand. Dieser Datenbestand wird von einem laufenden DBMS verwaltet und für Anwendungssysteme und Benutzer unsichtbar auf nichtflüchtigen Speichermedien abgelegt. Um einen effizienten Zugriff auf die Datenbank zu gewährleisten, verwaltet das DBMS in der Regel eine Speicherhierarchie, die insbesondere auch einen schnellen Zwischenspeicher (Pufferpool) umfasst. Zur Wahrung der Konsistenz des Datenbestandes müssen sich alle Anwendungssysteme an das DBMS wenden, um die Datenbank nutzen zu können. Allein administrativen Tätigkeiten, wie zum Beispiel der Datensicherung, ist der direkte Zugriff auf den Speicher erlaubt. Die logische Struktur der zu speichernden Daten wird bei der Datenmodellierung als Datenmodell erarbeitet und festgelegt und in ihrer finalen Form im und nach den Syntaxregeln des DBMS gespeichert. Hierzu erzeugt, nutzt und verwaltet das DBMS einen „Systemkatalog“ (Data-Dictionary) mit Metainformationen zum Datenbestand, beispielsweise über seine Struktur, seine Datenfelder (Name, Länge, Format …), Zugriffsregeln, Integritätsbedingungen usw. 
Einzelne DBMS-Hersteller verwenden geringfügig voneinander abweichende Begrifflichkeiten dafür, was man genau unter ''einer'' Datenbank versteht: entweder alle Daten, die von einem laufenden DBMS bzw. der Instanz verwaltet werden, oder nur die jeweils inhaltlich zusammengehörigen Daten. Bei verteilten Datenbanken gibt es auch im Modell mehrere Datenbanken auf unterschiedlichen Systemen, die miteinander verbunden sind. Abfrageoptimierer
Der Abfrageoptimierer ist Teil eines Datenbankmanagementsystems, der versucht, für eine Datenbankabfrage einen optimalen Auswertungsplan zu berechnen.
Nicht alle DBMS haben einen Abfrageoptimierer. Das DBMS IMS z. B. braucht keinen Abfrageoptimierer, da es sich um ein hierarchisches DBMS handelt und die Zugriffe auf die Daten nicht in SQL-Syntax formuliert werden, sondern der Auswertungsplan bei jeder Abfrage mit angegeben werden muss.
Abfrageoptimierer kommen in der Regel bei relationalen DBMS zum Einsatz. Denn die SQL-Syntax spezifiziert nur, ''welche Daten'' ermittelt werden sollen, nicht aber ''wie'' es geschehen soll.
Es lassen sich zwei Typen von Abfrageoptimierern unterscheiden: regelbasierte und kostenbasierte Abfrageoptimierer. Db2

== Skalierbarkeit (Db2 LUW) ==
Das DBMS kann auf unterschiedlichen Hardware-Konfigurationen installiert werden.
Wenn ein kleines Datenvolumen verwaltet werden soll und nur wenige Transaktionen ihre Anforderungen an das DBMS stellen, dann ist eine Installation auf einer Einzelprozessormaschine eine kostengünstige Lösung.
Bei einer größeren Anzahl von zu bearbeitenden Transaktionen wäre eine Mehrprozessormaschine die nächstgrößere Einheit zur Leistungssteigerung. Das System kann die Evaluierung einer einzigen Abfrage auf mehreren Prozessoren parallel bearbeiten. Dadurch wird sowohl die Bewältigung des gesamten Transaktionsvolumens als auch die Ausführung einzelner verarbeitungsintensiver Abfragen beschleunigt. Es sind jedoch nicht alle Abfragen für eine Parallelisierung geeignet. Das DBMS verwaltet die Verteilung der Arbeitsschritte auf die einzelnen Prozessoren (Symmetrisches Multiprozessorsystem). Diese Hardware-Konfiguration wird auch als Shared-everything Architecture bezeichnet, denn die einzelnen Prozessoren müssen sich alle anderen Hardware-Komponenten miteinander teilen.
Wenn sich die Nutzung der anderen Hardware-Komponenten (Plattenspeicher, Controller, Arbeitsspeicher) als Engpass herausstellt, dann kann die Leistung weiter gesteigert werden durch eine Verteilung des DBMS auf mehrere Einzelprozessormaschinen. Diese Hardware-Konfiguration wird auch als Shared Nothing Architecture bezeichnet, da jeder Prozessor seinen eigenen Hauptspeicher, Controller und Plattenspeicher besitzt. Wenn das DBMS auf mehreren Rechnerknoten installiert wird, dann muss eine Datenbankpartitionierung eingesetzt werden. Das bedeutet, dass auf jedem Rechnerknoten eine (oder auch mehrere) Datenbankpartition eingerichtet wird. Ein einzelnes DBMS kann auf maximal 512 Rechnerknoten installiert werden.
Um die maximale Hardware-Leistung für ein DBMS zur Verfügung zu stellen, können für die einzelnen Rechnerknoten Mehrprozessormaschinen gewählt werden. Eine solche Hardware-Architektur wird auch als SMP-Cluster bezeichnet.