Viele Leute scheinen noch nicht begriffen zu haben, dass MySQL gar keine relationale Datenbank ist. Der Versuch im nachhinein SQL92 Komformität zu schaffen, ist aus gravierenden konzeptionellen Designschwächen zum Scheitern verurteilt. Nur ein Redesign würde MySQL in die Liga der ernst zu nehmenden relationalen Datenbanken befördern. So bleibt MySQL zwar eine beliebte Datenbank, vor allem fürs Web mit überwiegender Ausrichtung auf Lesezugriffe, aber umfangreichere Projekte mit MySQL durchzuziehen grenzt an Selbstbestrafung.
Von Felix Schwarz am Mi, 13. November 2002 um 01:08 #
Trotzdem hat mySQL doch durchaus mit diesem Spezialgebiet eine echte Daseinsberechtigung, oder nicht? Mir ist jedenfalls für kleine Webprojekte eine schnelle Datenbank lieber als eine langsame, die dafür komplett SQL92 implementiert. (Im übrigen würde ich gerne Gründe hören, warum MySQL keine relationale Datenbank ist. SQL-Konformität hin oder her, als relational würde ich MySQL trotzdem einstufen oder gibt es da gravierende, informatik-theoretische Argumente, die eine solche Einstufung nicht erlauben?)
Von Felix Schwarz am Mi, 13. November 2002 um 19:35 #
Na ja, hier würde ich aber schon sehr stark differenzieren und so pauschal würde ich deine Aussage nach Durchsicht (nicht: intensiven Studiums) obiger Links als falsch bezeichnen.
Schon aus "Comparison of Oracle, MySQL and PostgreSQL DBMS": This document contains a comparison of Oracle, MySQL and PostgreSQL databases in the context of selection of a DBMS for ALICE experiment. (...) first of all we determined what features of DBMS are important from the point of view of such a large experiment. We chose the following features: (...) (Hervorhebungen von mir)
Schon mit diesen Prämissen kann man nicht mehr begründen, warum MySQL keine relationale Datenbank sein kann. Hier wird ein spezieller Kontext verwendet und daraufhin werden dei Datenbank-Systeme evaluiert. Klar, MySQL ist nicht für alles geeignet, ich würde sogar weiter gehen und es nur für Spezialfälle als geeignet erklären. Trotzdem ist es weiterhin eine relationale Datenbank.
Aus "Why Not MySQL?" Wenn ich den Artikel (dessen Verfasser ich übrigens als nicht unbefangen in dieser Entscheidung ansehen würde) richtig verstanden habe, wird hier hauptsächlich dasd Fehlen von ACID, also Transaktionen bemängelt. Diese gibt es aber inzwischen mit speziellen Tabellen-Arten auch in MySQL - gerade Nuspheres Gemmini-Tabellen haben Transaktionen möglich gemacht.
Subquerys, Triggers, Views und ähnliches sind zwar für bestimmte Aufgabenbereich sicherlich sehr nützlich oder sogar notwendig, jedoch halte ich es für absolut praxisfern, von ihrem Vorhandensein den Status einer relationalen Datenbank abhängig zu machen, denn Relationen kennt MySQL durchaus.
Von Horst Rechner am Mi, 13. November 2002 um 18:33 #
Full ACK
MySQL ein Layer über den man per SQL Befehle auf ASCII- und Binärdateien zugreifen kann. Eine Datenbank kann man MySQL so lange nicht nennen wie die ACID Regeln (Atomicity, Concurrency, Durability, Isolation ) nicht berücksichtigt werden.
Der Versuch im nachhinein SQL92 Komformität zu schaffen, ist aus gravierenden konzeptionellen Designschwächen zum Scheitern verurteilt. Nur ein Redesign würde MySQL in die Liga der ernst zu nehmenden relationalen
Datenbanken befördern. So bleibt MySQL zwar eine beliebte Datenbank, vor allem fürs Web mit überwiegender Ausrichtung auf Lesezugriffe, aber umfangreichere Projekte mit MySQL durchzuziehen grenzt an Selbstbestrafung.
fs
Comparison of Oracle, MySQL and PostgreSQL DBMS
http://www.fh-sbg.ac.at/~entacher/Beispiele/Beispiele02/db_compar.htm
Why Not MySQL?
http://openacs.org/philosophy/why-not-mysql.html
Schon aus "Comparison of Oracle, MySQL and PostgreSQL DBMS":
This document contains a comparison of Oracle, MySQL and PostgreSQL databases in the context of selection of a DBMS for ALICE experiment. (...) first of all we determined what features of DBMS are important from the point of view of such a large experiment. We chose the following features: (...) (Hervorhebungen von mir)
Schon mit diesen Prämissen kann man nicht mehr begründen, warum MySQL keine relationale Datenbank sein kann. Hier wird ein spezieller Kontext verwendet und daraufhin werden dei Datenbank-Systeme evaluiert. Klar, MySQL ist nicht für alles geeignet, ich würde sogar weiter gehen und es nur für Spezialfälle als geeignet erklären. Trotzdem ist es weiterhin eine relationale Datenbank.
Aus "Why Not MySQL?"
Wenn ich den Artikel (dessen Verfasser ich übrigens als nicht unbefangen in dieser Entscheidung ansehen würde) richtig verstanden habe, wird hier hauptsächlich dasd Fehlen von ACID, also Transaktionen bemängelt. Diese gibt es aber inzwischen mit speziellen Tabellen-Arten auch in MySQL - gerade Nuspheres Gemmini-Tabellen haben Transaktionen möglich gemacht.
Subquerys, Triggers, Views und ähnliches sind zwar für bestimmte Aufgabenbereich sicherlich sehr nützlich oder sogar notwendig, jedoch halte ich es für absolut praxisfern, von ihrem Vorhandensein den Status einer relationalen Datenbank abhängig zu machen, denn Relationen kennt MySQL durchaus.
fs
MySQL ein Layer über den man per SQL Befehle auf ASCII- und Binärdateien zugreifen kann. Eine Datenbank kann man MySQL so lange nicht nennen wie die ACID Regeln (Atomicity, Concurrency, Durability, Isolation ) nicht berücksichtigt werden.