Als ich 2003 mein Computing-Abitur abschloss und 2007 einen Abschluss in Computing machte und mein Handwerk in einem Unternehmen mit viel SQL-Nutzung lernte, kam ich auf die Idee, relationale Datenbanken für die Speicherung zu verwenden.
Obwohl ich relativ neu in der Entwicklung war, war ich überrascht, einen Kommentar (auf /software//q/89994/12436 ) zu lesen , der besagte:
[Einige Entwickler] verachten [SQL] und denken, dass es und RDBMS eine Modeerscheinung sind
Natürlich wird ein kompetenter Entwickler das richtige Tool für den richtigen Job verwenden und keine relationale Datenbank erstellen, wenn z. B. eine Flatfile oder eine andere Lösung für die Speicherung geeignet ist. RDBMs sind jedoch unter einer Vielzahl von Umständen nützlich. Wie könnten sie also sein? als Modeerscheinung angesehen?
Antworten:
Der Schlüssel befindet sich im R im RDBMS, was für relational steht. Entgegen der landläufigen Meinung bedeutet dies nicht die Beziehung zwischen Tabellen, sondern die Tatsache, dass jede Tabelle eine Beziehung im mathematischen Sinne des Wortes ist .
Das relationale Modell hat erhebliche Auswirkungen. Sie müssen Ihre Daten modellieren, um sie an die Beziehungen anzupassen und dieses Modell zu normalisieren . Wenn Ihre Anwendung als objektorientiertes Modell konzipiert ist, passt das relationale Modell nicht gut. Dies ist allgemein als objektrelationale Impedanzfehlanpassung bekannt .
Ein Ansatz für diese Nichtübereinstimmung sind ORMs (Objekt-Beziehungs-Mapper), die sehr populär geworden sind. Aber sie sind nicht die wahre Lösung, sondern eher eine Lösung für das Problem. Sie lösen das Problem der Zuordnung der Klassenvererbung zum relationalen Modell immer noch nicht wirklich.
Die wahre Lösung für die objektrelationale Nichtübereinstimmung sind OODBMS , die leider nicht viel Anklang fanden. Beliebte Engine, die OOBDs nativ unterstützt, ist PostgreSQL, ein hybrides OO / RDBMS. Ein weiteres OODBMS ist Zope Object DB , das in Python erstellt wurde und in einem typischen Setup RDBMS als zugrunde liegende Engine verwendet.
Ein alternativer Ansatz besteht darin, mehr Logik in der Anwendungs- oder Middleware-Ebene zu implementieren und die NoSQL-Lösung für den zugrunde liegenden Speicher zu verwenden.
Weder OODBMS noch NoSQL sind "nur eine Flatfile".
quelle
Ich habe die Aussage gemacht, die Sie in der obigen Frage zitiert haben. Wenn Sie möchten, dass ein Zitat meine Vermutung über Entwickler auf dieser Website bestätigt, lesen Sie meine Antwort auf die folgende Frage und überprüfen Sie die Gegenreaktionen von Kommentaren und Abstimmungen, die ich für eine meiner Meinung nach noch akzeptable Antwort erhalten habe.
Sollten erfahrene Programmierer Datenbankabfragen kennen?
Ich habe die Behauptung aufgestellt, dass ein Entwickler trotz Linq oder ORM über fortgeschrittene SQL-Kenntnisse verfügen sollte, wenn eine RDBMS-Datenbank verwendet wird.
Dies war eine höchst unpopuläre Behauptung, die aufgrund respektabler Meinungsverschiedenheiten über die Bedeutung von SQL und der weniger respektablen Denkweise, dass RDBMS NoSQL-Datenbanken wie MongoDB von Natur aus unterlegen ist, zu sein scheint.
EDIT: Um meinen Anspruch weiter zu erweitern, zitiere ich Benutzer SK-Logik:
quelle
Modeerscheinung :
RDBMS gibt es schon seit Ewigkeiten (zumindest in Bezug auf CS), also wer auch immer das gesagt hat, wollte entweder etwas anderes sagen oder ist ahnungslos.
quelle
Die Alternative zu RDBMS ist nicht nur eine Flatfile. Als ich in der Schule war, war OODBMS das Neue und mein Professor hatte Recht, als er es als Modeerscheinung bezeichnete. Sie sollten sich die verschiedenen Modelle ansehen und die Trends beachten. Ich habe eine zunehmende Abhängigkeit von OLAP gesehen und wäre bereit zu wetten, dass ein neues mehrdimensionales System, das Daten schneller verarbeiten kann, gleich um die Ecke ist.
quelle
Das Problem ist, dass viele Entwickler RDBMS fälschlicherweise mit SQL gleichsetzen. SQL ist nach modernen Maßstäben eine wirklich schreckliche Sprache. Es ist eine fehlerhafte und unvollständige Implementierung einer "relationalen" Sprache (SQL ist überhaupt nicht wirklich relational und das ist Teil des Problems), die sich in den letzten 30 Jahren nicht wesentlich weiterentwickelt hat. Viele Leute, die SQL verwenden, verstehen das relationale Modell kaum - sie wissen nur SQL und gehen daher davon aus, dass das relationale Modell die Ursache für ihre Frustration ist.
quelle
Ohne Kontext ist es schwer zu bestimmen, wer / warum die Aussage, dass RDBMs als Modeerscheinung gelten.
Kurz- bis mittelfristig (5 - 10 Jahre) und ich würde noch länger darüber nachdenken, dass sie nicht verschwinden werden. Ein RDBM bietet eine effiziente und effektive Methode zum Speichern, Verarbeiten und Abrufen relationaler Daten. Dies ist das, was die meisten Unternehmen haben, sei es Kunden / Bestellungen, Passagiere / Tickets usw.
Es gibt andere Alternativen wie NoSQL, die mit Open-Source-Projekten immer beliebter zu werden scheinen.
Als OLAP sind dies (meiner Meinung nach) wirklich spezialisierte Datenbanken, die es einem Unternehmen ermöglichen sollen, zeitnahe und nützliche statistische Informationen über ein Unternehmen bereitzustellen und "Was wäre wenn" -Szenarien für aktuelle Daten auszuführen. Natürlich stammten diese aktuellen Daten in fast allen Fällen von RDMBs und wurden manipuliert und dann in die OLAP-Datenbank eingefügt.
quelle
Relationale Datenbanken sind eine Modeerscheinung in demselben Sinne wie Mikrocomputing eine Modeerscheinung.
quelle
Einfache Antwort ist nein. RDBMS sind keine Modeerscheinung. Wenn Sie etwas auf einer Website für LinqPad lesen, denken Sie daran, dass der Zweck darin besteht, Lizenzen für ihr Produkt zu verkaufen.
quelle
Modeerscheinung ist nicht das richtige Wort, da sie schon lange zusammen sind. Ich denke, Sie könnten anfangen zu argumentieren, dass die Technologie sehr alt ist und es an der Zeit sein könnte, die nächste Sache zu entwickeln - vielleicht NoSQL-Architekturen
quelle
Das Wiki Def. of Fad definiert den Begriff "Modeerscheinung" wie folgt: Eine Modeerscheinung ist jede Form von Verhalten, die sich in einer großen Bevölkerung entwickelt und für einige Zeit kollektiv mit Begeisterung verfolgt wird, im Allgemeinen als Folge davon, dass das Verhalten in irgendeiner Weise als neuartig wahrgenommen wird. Eine Modeerscheinung soll sich "durchsetzen", wenn die Zahl der Menschen, die sie adoptieren, schnell zunimmt. Das Verhalten wird normalerweise schnell verblassen, sobald die Wahrnehmung der Neuheit verschwunden ist.
Da RDBMS-Follower nicht schnell verblasst sind und in vielen Jahren nicht mehr verschwinden werden (dank des riesigen Haufens an Produktionsanwendungen, die es verwenden), können wir nicht sagen, dass es eine Modeerscheinung ist. Tatsächlich blieben die Kernkonzepte von RDBMS ziemlich stabil, wo sich so viele der anderen Technologien dramatisch änderten (und immer noch ändern).
Das Konzept von RDBMS (und seines Hauptvehikels SQL) stellt einen technologischen Schritt dar, der wie viele andere von besseren abgelöst werden kann, das ist alles.
quelle