HX3 Foren  

  HX3 Foren > Konstruktiv > Software- und Webentwicklung

Software- und Webentwicklung Planung, Programmierung und Administration
UML, JavaScript/DOM, ASP, JSP, PHP, Apache, MySQL, Python, Perl (...)

Antwort
 
Themen-Optionen Ansicht
Alt 15.01.2005, 16:55   #1 (permalink)
Administrator 10 Jahre hx3
5000 Beiträge
 
Benutzerbild von Atomic
 
Registriert seit: 21.02.2003
Ort: Freiburg im Breisgau
Alter: 32
Beiträge: 5.139
Atomic eine Nachricht über ICQ schicken Atomic eine Nachricht über Skype™ schicken
Standard Datenbankunabhängigkeit in PHP

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?
__________________
http://webagentur-walde.de/

Geändert von Atomic (15.01.2005 um 20:59 Uhr).
Atomic ist offline   Mit Zitat antworten
Alt 17.01.2005, 00:02   #2 (permalink)
50 Beiträge
 
Registriert seit: 20.11.2004
Beiträge: 59
Standard AW: Datenbankunabhängigkeit in PHP

Zitat von AtomicHX3

Wichtig/Unwichtig?

Auf jeden Fall WICHIG!

Zitat von AtomicHX3

Lösungsvorschläge?

Ja, die Lösung ist eigentlich die SQL Sprache simpel zu halten. Die eigentliche Arbeit muss die DB leisten. Sonderfunktionen für mySQL (ja, ich schreib vorrangig für mySQL) werden gefiltert bzw. so umgebaut, dass sie auch in anderen DBs funktionieren.
Dr. Doom ist offline   Mit Zitat antworten
Alt 18.02.2005, 17:28   #3 (permalink)
Newbie
 
Registriert seit: 18.02.2005
Beiträge: 3
Icon10 AW: Datenbankunabhängigkeit in PHP

Im Prinzip entscheidet der Kunde über den Auftrag und wenn auch durch gute Argumente der Kunde nicht auf eine "freie" Datenbank wie zum Beispiel MySQL gebracht werden kann, muss auf die Technologie aufgesetzt werden die der Kunde entscheidet. Allgemein halte ich es für sinnovoll generischen Code zu schreiben und damit die Skalierbarkeit der Anwendung weigehends zu unterstüzen. Gerade hinsichtlich der Datenbank wahl gibt es genial einfachen Klassen wie PEAR:B oder AdoDB, die die spätere Datenbankauswahl sehr flexibel gestalten lässt.

Fazit: Schreibt sauberen und guten Code und haltet euch möglichst frei von der Technik. Es gibt wirklich keinen Grund Datenbankspezifische Anwendungen zu schreiben.

Gruss,

Michel
Michel ist offline   Mit Zitat antworten
Alt 18.02.2005, 20:40   #4 (permalink)
Administrator 10 Jahre hx3
5000 Beiträge
 
Benutzerbild von Atomic
 
Registriert seit: 21.02.2003
Ort: Freiburg im Breisgau
Alter: 32
Beiträge: 5.139
Atomic eine Nachricht über ICQ schicken Atomic eine Nachricht über Skype™ schicken
Standard AW: Datenbankunabhängigkeit in PHP

Zitat von Michel

Fazit: Schreibt sauberen und guten Code und haltet euch möglichst frei von der Technik. Es gibt wirklich keinen Grund Datenbankspezifische Anwendungen zu schreiben.

Das sehe ich mittlerweile genauso.
__________________
http://webagentur-walde.de/
Atomic ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Kontakt - HX3.de - Archiv - Nach oben

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias



SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116