Bei den meisten Programmieraufgaben haben Sie eine große Auswahl an Sprachen zur Auswahl und gute, starke Communities hinter vielen. Aber wenn Sie mit einer Datenbank arbeiten müssen, gibt es heutzutage wirklich nur eine praktikable Wahl: SQL. Sicher, es gibt verschiedene Unternehmen mit verschiedenen Implementierungen und Dialekten, aber Sie suchen immer noch nach Dingen mit
%Vor%Es war jedoch nicht immer so. Noch in den frühen 90ern gab es keinen einzigen offensichtlichen Weg, mit einer Datenbank zu interagieren. Aber heute gibt es. Und mit der Art und Weise, wie Computersprachen sich eher vermehren als zusammenlaufen, finde ich das ein bisschen merkwürdig. Welche historischen und technischen Faktoren führten dazu, dass SQL die Datenbankzugriffsdomäne fast vollständig dominierte?
Es ist wie dieses Zitat von Winston Churchill:
Tatsächlich wurde gesagt, dass Demokratie die schlimmste Form der Regierung ist, mit Ausnahme all dieser anderen Formen, die von Zeit zu Zeit versucht wurden.
Vor 1970 gab es alternative Datenbanktechnologien, als das relationale Modell erstmals vorgeschlagen wurde. Seither gab es die ganze Zeit Alternativen, und heute gibt es neue Alternativen .
Aber von allen Alternativen bietet keine Lösung neben SQL eine so gute Balance für:
Hier ist eine Referenz aus dem Wikipedia-Artikel von Codd - einige Details darüber, wie sich SQL 'durchgesetzt hat.
Codd und Churchill beiseite, SQL ist keine schrecklich schlechte Sprache für die Definition und Abfrage von Tabellen-basierten Datensätzen. Wie ein anderer General sagte: "Es ist dort das erste Mal mit den meisten."
Ein Faktor besteht darin, dass Daten bestehen bleiben. Es ist viel schwieriger, die Daten eines Unternehmens zu ersetzen / zu migrieren als seine Anwendungen. Anwendungen können kommen und gehen, codiert in der neuesten "Geschmack des Monats" Sprache, aber die Datenbank-Plattform lebt weiter. Dies ist ein bisschen wie ein QWERTY-Effekt. Während das QWERTY-Tastaturlayout als ineffizient bekannt ist, besteht es weiterhin, weil es bei der Umstellung auf etwas anderes massive Kosten verursachen würde.
Zweitens gibt es eine massive Marktbeherrschung durch Oracle und IBM (und neuerdings Microsoft). Auch wenn sie nicht in jedem Detail übereinstimmen, hat keiner von ihnen einen Vorteil für eine Nicht-SQL-Schnittstelle zu ihren Datenbanken gesehen. Ich habe Ingres in den frühen 90ern benutzt, als sein QUEL von SQL verdrängt wurde.
Drittens gibt es einen Vorteil für die Anwendungsentwickler (insbesondere für SAP und Oracle), eine Standardplattform (ish) zu haben, auf der sie sitzen können.
Ich nehme an, die Kehrseite dieser Frage ist, warum wir so viele verschiedene Programmiersprachen brauchen / wollen.