SOFTWARE MySQL Tabellenarten und -typen Datenbanken Tabellenarten Grundsätzlich unterscheidet MySQL zwei unterschiedliche Arten von Tabellen: transaktionssichere Tabellen InnoDB, NDB, BDB nicht transaktionssichere Tabellen ISAM, MyISAM, MERGE Transaktionen Bei Transaktionen geht es um folgendes Problem: Wie stellt man sicher, dass eine Abfolge von einzelnen Datenbankoperationen als ganzes, untrennbares Paket durchgeführt wird. Es soll beispielsweise verhindert werden, dass nur ein Teil der Operationen ausgeführt wird, und der andere Teil – aus welchen Gründen auch immer – nicht. Sofern auch nur eine einzige Operation der gesamten Transaktion fehlschlägt, müssen alle Änderungen, die bis dahin durchgeführt wurden, rückgängig gemacht werden. Transaktionen sind: A tomic - Atomar: Eine Transaktion soll als unzertrennbares Atom betrachtet werden, entweder als ganzes erfolgreich, oder als ganzes nicht erfolgreich („Das Atom darf nicht gespalten werden“). C onsistent - Konsistent: Einzelne Operationen innerhalb einer Transaktion müssen bereits konsistent sein. Sie dürfen nicht bestehende Datenbank oder Business Regeln weder explizit noch implizit verletzen. I solated - Isoliert: Das System muss noch nicht bestätigte Veränderungen einer Transaktion vor allen anderen Transaktionen schützen (durch Locking). D urable - Beständig: Wenn eine Transaktion bestätigt wurde, dann muss die Datenbank in der Lage sein, alle vorgenommenen Veränderungen permanent zu speichern. Transaktionssichere Tabellen (TST) InnoDB, NDB, BDB Transaktionssichere Tabellen beherrschen Transaktionen. Man kann Statements kombinieren und alle auf einmal mit dem COMMIT-Befehl ausführen, ROLLBACK ausführen, um Änderungen rückgängig zu machen, Nicht Transaktionssichere Tabellen (NTST) ISAM, MyISAM, Merge Da bei nicht Transaktionssichere Tabellen der Transaktionsoverhead wegfällt, sind diese schneller, benötigen weniger Speicherplatz und Arbeitsspeicher. Tabellentypen Beim Erzeugen einer neuen Tabelle in MySQL muss man einen Tabellentyp (Storage Engine) wählen. MySQL legt beim Erstellen einer neuen Tabelle immer eine .frm-Datei an, die die Tabellenund Spaltendefinitionen enthält. Abhängig vom Tabellentyp werden Index und Daten in anderen Dateien gespeichert. Die Tabellentypen für den "alltäglichen" Einsatz sind: MyISAM standardmäßiger Tabellentyp InnoDB maximale Performance, transaktionssicher Der standardmäßige Tabellentyp in MySQL ist MyISAM. Wenn man versucht, einen Tabellentyp zu benutzen, der nicht einkompiliert oder aktiviert ist, erzeugt MySQL statt dessen eine Tabelle vom Typ MyISAM. MyISAM-Tabellen MyISAM ist der standardmäßige Tabellentyp. Er basiert auf dem ISAM-Code und hat viele nützliche Erweiterungen. Der Index wird in einer Datei mit der Endung .MYI (MYIndex) gespeichert, die Daten in einer Datei mit der Endung .MYD (MYData). InnoDB-Tabellen InnoDB wurde für maximale Performance bei der Bearbeitung großer Datenmengen entworfen. Die Prozessor-Effizienz wird wahrscheinlich von keiner anderen Festplatten-basierenden relationalen Datenbank-Engine erreicht. BHAK/BHAS Amstetten Helmut Wurzer