Anzeige
Anzeige
Entwicklung
Artikel merken

Endlich Enterprise: Eine Datenbank wird erwachsen: MySQL 5

Der Datenbankserver MySQL ist jetzt in der Version 5 erschienen. MySQL selbst bezeichnet diese neue Version als das bisher wichtigste Release.

6 Min. Lesezeit
Anzeige
Anzeige

Die selbstbewusste Sichtweise basiert insbesondere auf neuen
Funktionen, die für geschäftskritische Anwendungen wichtig sind. Hierzu gehören in der Datenbank hinterlegte
Funktionen und Prozeduren (Stored Procedures), automatisch ablaufende
Prozeduren (Trigger) und die Definition von SQL Modes zur Unterstützung der
serverseitigen Datenintegrität sowie die
seit Weiterentwicklung des mit Version 4.1 eingeführten Datenbankcluster. Mit diesen neuen Features
beseitigt MySQL auch weitgehend den jahrelangen Vorwurf unzureichender Funktionen für Anwendungen,
die ein Höchstmaß an Datensicherheit verlangen.

Anzeige
Anzeige

Zu den weiteren
Neuerungen der Version 5 gehören Datensichten (Views), die Einführung von Metadateninformationen
(Information Schema) und die Unterstützung von Transaktionen über verschiedene
Datenbanken in heterogenen Umgebungen (XA Transactions). Für die
Datenbankadministration steht ein neues Migration-Toolkit zur Übernahme von
Daten aus MS Access, MS SQL-Server und Oracle zur Verfügung. Die Möglichkeiten der Fernwartung der Datenbank sind
durch den Instance-Manager gegeben, der einen direkten externen Zugriff auf
die Datenbankprozesse und deren Parameter erlaubt.

MySQL hat in den vergangenen Jahren die bekannte
Massendurchdringung insbesondere bei Internetanwendungen erreicht. Laut
Marktforschern von Evans Data hält dieser Trend auch unvermindert an. Von 400
befragten Datenbankentwicklern in den USA setzen 44 Prozent MySQL ein, der Einsatz
von MySQL ist im vergangenen halben Jahr um 25 Prozent gestiegen. Dieser Trend wird im Moment durch eine Professionalisierung
des gesamten MySQL-Umfelds unterstützt.

Anzeige
Anzeige

Ein Blick auf die Neuerungen

Funktionen und Prozeduren (Stored Procedures) bieten die
Möglichkeit, Programmlogik direkt in der Datenbank zu speichern. Während
Funktionen auch in SQL-Befehlen aufgerufen werden können und einen gewünschten
Rückgabewert liefern, werden Prozeduren mit einem „CALL“ aufgerufen. Ein einfaches Beispiel illustriert dies: Eine häufig
wiederkehrende Funktion in Anwendungen ist die Berechnung von
Mehrwertsteuerzuschlägen. Die Regel ist, dass Sie den Nettowert
sowie den Mehrwertsteuersatz in der Datenbank hinterlegen, um zur Laufzeit
der Anwendung den entsprechenden Bruttosatz zu berechnen. Sie können diese
Berechnung in der Programmiersprache oder im SQL-Befehl realisieren. Mit den Stored Procedures steht die Möglichkeit zur
Verfügung, die Funktion direkt in der Datenbank zu hinterlegen. Im Vergleich
zu Funktionen in der Programmiersprache haben diese den Vorteil, dass sie
wesentlich schneller ausgeführt werden. Stored Procedures verfügen im Deklarationsteil über die
Möglichkeit, Variablen und Bedingungen zu definieren oder sogar Schleifen
auszuführen. Hierfür stehen IF-, CASE-, LOOP- oder WHILE-Befehle zur Verfügung. Für den Einsatz von Stored Procedures sind
Programmierkenntnisse notwendig. Stored Procedures können sowohl zur
Automatisierung von Aufgaben (z B. zur automatischen Generierung von
Datenbankauszügen), aber auch in Anwendungen zur Performancesteigerung
eingesetzt werden.

Anzeige
Anzeige

Trigger

Trigger sind automatisch ablaufende SQL-Befehle, die bei
einer Speicherung oder Änderung eines Datensatzes ausgelöst werden.
Trigger
werden zum Beispiel eingesetzt, um während des Einfügens oder Löschens
eines
Datensatzes Bedingungen abzuprüfen, die nicht in der eigentlichen
Abfrage
enthalten sind. Ein anderes praktisches Beispiel ist die Auslösung von
Bestellvorgängen, wenn der Warenbestand unter eine definierte Anzahl
fällt. Auf diese Weise kann in einer Bestellliste ein entsprechender
Eintrag generiert werden.

Aus dem Wesen von Triggern folgt, dass diese bei einem
bestimmten Ereignis ausgelöst werden. Dies kann ein Einfüge- (INSERT), Update-
(UPDATE) oder Lösch-Vorgang (DELETE) in
einer Tabelle sein. Des Weiteren bestimmt die Definition des Triggers, ob
vor (BEFORE) oder nach (AFTER) dem
Ereignis ausgelöst wird. Über den Zeitpunkt der Auslösung kann die Logik des
Triggers entsprechend gesteuert werden. Wenn Sie etwa über einen Trigger eine
Statistiktabelle aktualisieren (beispielweise eine Kundenstatistik), würden Sie
den Trigger erst nach der Neuanlage oder dem Löschen eines Kundendatensatzes
auslösen. Wenn Sie aber eine Überprüfung eines Einfügevorgangs unterstützen,
würden Sie das vor der Befehlsausführung tun.

Anzeige
Anzeige

Der folgende Trigger erhöht z.B. nach dem Einfügen eines
Datensatzes in einer Kundentabelle automatisch den Kundenzähler in einer
Statistiktabelle.

SQL
CREATE TRIGGER upstat AFTER INSERT
ON kunde 
FOR EACH ROW BEGIN 
 UPDATE statistik SET  kundenanzahl = kundenanzahl + 1;
 END

Listing 1

MySQL kennt für Trigger bislang nur den Auslösevorgang auf
Tabellen- und nicht auf Spaltenebene.

Views

Mit Version 5 wurden in MySQL Datensichten (Views)
integriert. Über Views können Abfragen gespeichert werden. Views verhalten sich
wie normale Tabellen und stellen dabei virtuelle Tabellen dar, weil Views keine
Daten enthalten, sondern nur auf die entsprechenden Spalten der Basistabellen
verweisen. Views bieten folgende Vorteile:

Anzeige
Anzeige
  • Es besteht die Möglichkeit, einen eingeschränkten
    Zugriff auf Informationen der Datenbank einzurichten.
  • Vereinfachung komplexer Datenbanklogik: Ein Update auf
    eine View, die aus mehreren Tabellen besteht, ist einfacher als ein Update aller
    Basistabellen.
  • Resultate von Berechnungen müssen nicht in die
    Basistabellen aufgenommen werden.

Eine View kann beispielsweise mit folgendem Befehl erzeugt
werden:

SQL
CREATE VIEW  v_rechnung (brutto, netto)
    AS
    SELECT rechnungsbetrag, rechnungsbetrag * (16/100+1) FROM bestellung

Listing 2

In diesem Beispiel wird zu einem Bruttobetrag gleich die
Mehrwertsteuer hinzuberechnet. Da eine View gespeichert ist, kann die
Abfrage später mit dem in Listing 3 angegebenen Code einfacher erfolgen.

SQL
SELECT  brutto, netto FROM v_rechnung;

Listing 3

Information Schema

Mit dem Information Schema stellt MySQL
Metadateninformationen, etwa für Tabellen, Tabellenspalten, Rechten, Zeichensätzen, definierte Views oder Trigger, bereit.

Anzeige
Anzeige

Diese Metadateninformationen sind nützlich, um einen genauen
Einblick in die Datenbankdefinition zu erhalten und damit insbesondere für
Datenbank-Administratoren interessant. Die Metadateninformationen werden über
die Datenbank „information_schema“ bereitgestellt. Diese Datenbank
enthält für jede Metadatengruppe eine eigene Tabelle (z. B. TABLES für die
Tabelleninformationen oder VIEWS für die definierten Views). Die
Metadateninformationen können dann über einen SELECT-Befehl abgerufen werden.

Die folgende Abfrage liefert beispielsweise den eingestellten Zeichensatz, das
Erstellungsdatum, das letzte Update auf die Tabelle und den eingestellten
Tabellentyp der Tabelle „counter“:

SQL
USE information_schema;
SELECT TABLE_NAME, TABLE_COLLATION, CREATE_TIME, UPDATE_TIME, ENGINE
FROM TABLES WHERE TABLE_SCHEMA = "counter"

Listing 4

SQL Modes

Für den Server können ab Version 5 so genannte SQL Modes
definiert werden, die das Verhalten des Servers bei Lese- und
Schreibvorgängen
des Clients definieren. Diese SQL Modes dienen dazu, die
Datenüberprüfung sowie das Verhalten der Datenbank in heterogenen
Datenbankumgebungen zu regeln.

Anzeige
Anzeige

SQL Mode ist ein globaler
Serverparameter und kann beim Start des Servers (mit Startparamter
-sql-modes="modes") oder zur Laufzeit (mit SET [SESSION|GLOBAL]
sql_mode=’modes‘) gesetzt werden.

Mit den SQL Modes kann zum Beispiel eingestellt werden, dass
Datumswerte gültig sind (NO_ZEOR_DATE: keine 0000-00-00),
Division durch Null bei „UPDATE“ oder „INSERT“ verhindert wird
(ERROR_FOR_DIVISION_BY_ZERO) oder neue Benutzer nicht ohne Passwort erstellt
werden können (NO_AUTO_CREATE_USER).

Fazit

MySQL 5 enthält grundsätzlich wichtige
Neuerungen, mit denen der Datenbankbetrieb sicherer und effektiver
gestaltet
werden kann. Mit Views, Triggern und Prozeduren werden auch die
fortgeschrittenen Datenbankentwickler bedient. Mit einer Vielzahl an
neuen Befehlen und Optionen steigt aber auch die Anforderung an den
Datenbank-Administrator.

Anzeige
Anzeige

Bis sich die Neuerungen in der Praxis durchsetzen, wird noch einige Zeit vergehen. Da MySQL insbesondere in
Internetumgebungen eingesetzt wird, ist die eingesetzte MySQL-Version vom
Internetprovider abhängig, soweit ein
Standardangebot ohne eigenen Serverzugang
genutzt wird. In der Vergangenheit haben die Internetprovider die
Updates von MySQL nachvollzogen – meist jedoch mit einer
Verzögerung von sechs bis 18 Monaten. So ist die vor etwa einem Jahr für den
Produktiveinsatz freigegebene Version 4.1 heute noch unterrepräsentiert.

Die größte Bremse für die Verbreitung von MySQL 5 werden
aber sicherlich die Anwendungsentwickler sein. Gerade weit
verbreitete OpenSource-Projekte, wie auch TYPO3, räumen der Abwärtskompatibilität einen relativ
hohen Stellenwert ein. So findet man in vielen OpenSource-Projekten noch nicht einmal die
Neuerungen von Version MySQL 4.1, wie beispielsweise Unterabfragen. Ein nicht unbeträchtlicher Teil der Zielgruppe verfügt noch
nicht über die Voraussetzung für den Einsatz der aktuellen Version und würde somit ausgeschlossen. Die
Verbreitung von MySQL 5 wird deshalb wahrscheinlich über
Intranetanwendungen oder Individuallösungen erfolgen und erst dann verbreitet
in OpenSource-Anwendungen zu finden sein.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige