Wie der Name schon sagt ist Datenbankunabhängigkeit wenn Websites/Webanwendungen nicht ein eine spezielle Datenbanksoftware (MySQL,MSSQL,ODBC,PostgreSQL...) gebunden ist sondern eben jede x-beliebige akzeptiert.
Gerade PHP ist eine Sprache die sehr viele Datenbankarten von Haus aus unterstützt.
Das Prinzip ist einfach:
Da alle ernsten Datenbanken mit der Sprache SQL arbeiten brauchen wir nur unseren SQL-Befehl an die jeweilige Datenbank übereichen und das was diese uns zurücksendet in ein einheitlichen Format packen.
Sogesehen ist Datenbankunabhängigkeit ein Kinderspiel.
Aber diese Art von Lösung bringt uns nicht wirklich viel.
Das liegt daran weil SQL nicht gleich SQL ist. Ich meine die Sprache SQL selbst unterliegt schon festen Standarts den die aktuellen Datenbanken auch konsequent einhalten.. jedoch doch die Funktionen und Features die über SQL genutzt werden sind von Datenbank zu Datenbank unterschiedlich. Eine SQLite Datenbank kann nunmal nicht mit Oracle mithalten. Darüber hinaus: Unterschiedliche Datenbankformate und Spaltentypen.
Es hängt also vom Programmierer ab ob er in seiner Anwendung die Features einer speziellen Datenbank nutzen will oder lieber einfaches datenbankunabhängiges SQL.
So und jetzt denken wir einmal in einem größerem Rahmen.
Nehmen wir mal wir hätten ein großes CMS System mit Framework und allem was dazugehört. Da haben wir auf der einen Seite die eingebildeten Kunden die umbedingt ihre n Microsoft SQL Server nutzen wollen und die "verückten" Programmierer die für das Framework fleisig Erweiterungen schreiben und dabei ohne Rücksicht auf das Gesamtprodukt zu nehmen ihren Programmierstil mit sammt den Vorlieben für exotische Features die eben nicht alle Datenbanken bieten durchsetzen.
Jetzt kann man A: Dem Kunden sagen das eine MySQL Datenbank noch niemandem geschadet hat. Sehr wahrscheinlich wird der Kunde der für sein Geld Leistung erwartet sich damit nicht zufrienden geben
Oder B: Wir frustrieren die freihe Entwicklergemeinde
Oder C: Wir machen das was alle machen Nämlich allen gut zureden und hoffen das keine Probleme zwischen den verschiedenen Datenbanken auftreten.. und wenn doch dann schieben wir das Problem auf den Datenbank-Hersteller und/oder behandeln es wie einen Bug in der Anwendung obwohl es eigendlich keiner ist.
In der Vergangenheit hab ich versucht das Problem zu lösen in dem ich SQL durch eine schicke OOP-API ersetzt habe. Das ist zwar ganz nett.. besonders für jüngere Programmierer die sich mit SQL noch ein wenig überfordert fühlen aber man kann leider alle Einsatzzwecke abdecken. Hinzu kommt die unnötige Verschwendung von Resourcen (Rechenpower).
===
So und jetzt zum eigendlichen Grund für diesen Thread:
Was ist eure Einstellung zum Thema Datenbankunabhängigkeit?
Wichtig/Unwichtig?
Lösungsvorschläge?
===
Gerade PHP ist eine Sprache die sehr viele Datenbankarten von Haus aus unterstützt.
Das Prinzip ist einfach:
Da alle ernsten Datenbanken mit der Sprache SQL arbeiten brauchen wir nur unseren SQL-Befehl an die jeweilige Datenbank übereichen und das was diese uns zurücksendet in ein einheitlichen Format packen.
Sogesehen ist Datenbankunabhängigkeit ein Kinderspiel.
Aber diese Art von Lösung bringt uns nicht wirklich viel.
Das liegt daran weil SQL nicht gleich SQL ist. Ich meine die Sprache SQL selbst unterliegt schon festen Standarts den die aktuellen Datenbanken auch konsequent einhalten.. jedoch doch die Funktionen und Features die über SQL genutzt werden sind von Datenbank zu Datenbank unterschiedlich. Eine SQLite Datenbank kann nunmal nicht mit Oracle mithalten. Darüber hinaus: Unterschiedliche Datenbankformate und Spaltentypen.
Es hängt also vom Programmierer ab ob er in seiner Anwendung die Features einer speziellen Datenbank nutzen will oder lieber einfaches datenbankunabhängiges SQL.
So und jetzt denken wir einmal in einem größerem Rahmen.
Nehmen wir mal wir hätten ein großes CMS System mit Framework und allem was dazugehört. Da haben wir auf der einen Seite die eingebildeten Kunden die umbedingt ihre n Microsoft SQL Server nutzen wollen und die "verückten" Programmierer die für das Framework fleisig Erweiterungen schreiben und dabei ohne Rücksicht auf das Gesamtprodukt zu nehmen ihren Programmierstil mit sammt den Vorlieben für exotische Features die eben nicht alle Datenbanken bieten durchsetzen.
Jetzt kann man A: Dem Kunden sagen das eine MySQL Datenbank noch niemandem geschadet hat. Sehr wahrscheinlich wird der Kunde der für sein Geld Leistung erwartet sich damit nicht zufrienden geben
Oder B: Wir frustrieren die freihe Entwicklergemeinde
Oder C: Wir machen das was alle machen Nämlich allen gut zureden und hoffen das keine Probleme zwischen den verschiedenen Datenbanken auftreten.. und wenn doch dann schieben wir das Problem auf den Datenbank-Hersteller und/oder behandeln es wie einen Bug in der Anwendung obwohl es eigendlich keiner ist.
In der Vergangenheit hab ich versucht das Problem zu lösen in dem ich SQL durch eine schicke OOP-API ersetzt habe. Das ist zwar ganz nett.. besonders für jüngere Programmierer die sich mit SQL noch ein wenig überfordert fühlen aber man kann leider alle Einsatzzwecke abdecken. Hinzu kommt die unnötige Verschwendung von Resourcen (Rechenpower).
===
So und jetzt zum eigendlichen Grund für diesen Thread:
Was ist eure Einstellung zum Thema Datenbankunabhängigkeit?
Wichtig/Unwichtig?
Lösungsvorschläge?
===
EDIT:
link entfernt - wenn du hier nur werbung für dein eigenes forum machen willst (wo ich diese posting nahezu identisch vorfand), dann nutze gefälligst die user pages dafür.
wahsaga
Kommentar