| |
| * Link führt ins Internet |
|
| |
Aufbau des MySQL-Datenbanksystems
|
|
Wir werden nun versuchen, einen Blick hinter die Kulissen von MySQL zu riskieren. Dabei geht es noch nicht darum zu klären, was eine Datenbank ist bzw. darstellt. Vielmehr geht es um die Struktur und den Aufbau des MySQL-Datenbanksystems, kurz DBMS (Database-Management-System).
Es wurde bereits erwähnt, dass der Zugriff auf die Datenbank mit Hilfe von SQL-Befehlen erfolgt. Dies lässt natürlich den begründeten Verdacht zu, dass es sich bei MySQL um ein relationales Datenbanksystem handelt, das die in den Datenbanken gespeicherten Informationen mit Hilfe von Tabellen strukturiert. Schauen Sie sich nun als nächstes diese Struktur genauer an.
Jedes Datenbanksystem speichert seine Daten in ganz gewöhnlichen Dateien. Spätestens hier finden Sie eine wichtige Nahtstelle zum vorhandenen Betriebssystem, denn beim Anlegen und Verwalten dieser Dateien muss sich natürlich auch das DBMS an die vorgegebenen Spielregeln des Betriebssystems halten. Konkret geht es hierbei um Namenskonventionen oder eventuell vorhandene Größenbeschränkungen einzelner Dateien oder des definierten Filesystems.
Im vorliegenden Beispiel läuft auf dem Server der MySQL-Prozess und repräsentiert damit das DBMS. Dieser Prozess kann beim Starten natürlich auf verschiedenste Art und Weise konfiguriert werden. In der Praxis geschieht dies üblicherweise durch Verwendung einer Konfigurationsdatei, beispielsweise MY.INI, in der alle benötigten Parameter (Einstellungen) gespeichert sind. Für unsere aktuelle Fragestellung ist hierbei vor allem der Parameter datadir wichtig, mit dessen Hilfe Sie die Wurzel des Datenbankverzeichnisses spezifizieren können. Von hier aus wird jede vorhandene Datenbank durch ein gleichnamiges Unterverzeichnis repräsentiert, d.h. auf dem Server existieren die Datenbanken MYSQL, DB1000 und DB10001.
Die einzelnen Tabellen der Datenbank werden nun in das jeweilige Datenbankverzeichnis gespeichert, wobei jede Tabelle genau zu drei Dateien führt, deren Namen dem Tabellennamen entsprechen und die sich lediglich durch ihre Endungen unterscheiden.
| Endung | Beschreibung |
| frm | Enthält die Struktur der Tabelle |
| MYD | Enthält die in der Tabelle gespeicherten Daten für den Tabellentyp MYISAM (Standard). |
| MYI | Enthält alle zugehörigen Indizies der MYISAM-Tabelle. Selbst wenn Sie keine Indizies anlegen, wird diese Datei erzeugt. |
| ISD | Enthält die in der Tabelle gespeicherten Daten, wenn Sie sich bei der Anlage für den Typ ISAM entscheiden. |
| ISI | Analog zur MYI-Datei werden in der ISI-Datei alle Indizes der gleichnamigen ISD-Datei gespeichert. |
| ??? | Das waren die MySQL-Standarderweiterungen. Es gibt jedoch laufend weitere Endungen wie BD für Berkeley, da die Entwickler von MySQL stetig darum bemüht sind, immer weitere Zugriffsmechanismen in ihr Datenbanksystem zu integrieren. |
Das steckt hinter den Endungen
Sie sehen also, dass es bei MySQL eine ziemlich enge Verzahnung zwischen der Datenbankstruktur und dem Filesystem des darunter liegenden Betriebssystems gibt. In diesem Punkt unterscheidet sich MySQL dann auch deutlich von anderen Datenbankprodukten wie MS-Access, Oracle oder Sybase, die ihre Datenbankstrukturen abstrahieren, indem sie die einzelnen Tabellen irgendwie in spezielle Überdateien speichern. Das heisst, sowohl bei MS-Access, Oracle als auch Sybase entspricht die Datenbank genau einer Datei.
|
|
|
|
|
|
|