Einsatz von Datenbanken sinnvoll?



  • Datenbanken bieten sich vor allem an wenn viele Anwendungen mit den Daten arbeiten (das wäre mit nackten Files die Hölle).
    Aber auch wenn die Daten sehr komplex abgelegt werden müssen, zb bei einer Board-Software.



  • Ich mache mir vorher Gedanken welches Datenschema ich so brauche und baue mir eine entsprechende struct. Daraus erzeuge ich mir dann konstante Objekte und lade sie in den RAM. Da die Objekte konstant sind, wird der RAM in einem ROM (Read Only Memory) umfunktioniert, weshalb die Daten auch Neustarts überleben (klar, oder?).
    Wenn ich Daten ändern will, erzeuge ich einen neuen konstanten struct mit einem neuerem Zeitstempel. Beim Zugriff auf identische Keys wähle ich einfach den Eintrag mit dem neuesten Zeitstempel.
    Wichtig ist, sich vorher über das Datenschema Gedanken zu machen, denn nach meiner Erfahrung kann man den RAM-ROM nur drei mal mit 10 Volt flashen, bevor er dann wegen Lesefehlern unbrauchbar wird. So ein RAM-Riegel hält bei mir deswegen um die 18-24 Monate. Dann muss ich mir einen neuen kaufen.
    Momentan schreibe ich mir einen Treiber mit dem ich einzelne Speicherblöcke flashen kann, so dass nur diese nach dreimaligem Flashen unbrauchbar werden. Das klappt auch schon ganz gut. Momentan habe ich 6,79 GB von ursprünglichen 8 GB zur Verfügung.

    L. G.,
    IBV



  • IBV schrieb:

    Ich mache mir vorher Gedanken welches Datenschema ich so brauche und baue mir eine entsprechende struct. Daraus erzeuge ich mir dann konstante Objekte und lade sie in den RAM. Da die Objekte konstant sind, wird der RAM in einem ROM (Read Only Memory) umfunktioniert, weshalb die Daten auch Neustarts überleben (klar, oder?).
    Wenn ich Daten ändern will, erzeuge ich einen neuen konstanten struct mit einem neuerem Zeitstempel. Beim Zugriff auf identische Keys wähle ich einfach den Eintrag mit dem neuesten Zeitstempel.
    Wichtig ist, sich vorher über das Datenschema Gedanken zu machen, denn nach meiner Erfahrung kann man den RAM-ROM nur drei mal mit 10 Volt flashen, bevor er dann wegen Lesefehlern unbrauchbar wird. So ein RAM-Riegel hält bei mir deswegen um die 18-24 Monate. Dann muss ich mir einen neuen kaufen.
    Momentan schreibe ich mir einen Treiber mit dem ich einzelne Speicherblöcke flashen kann, so dass nur diese nach dreimaligem Flashen unbrauchbar werden. Das klappt auch schon ganz gut. Momentan habe ich 6,79 GB von ursprünglichen 8 GB zur Verfügung.

    L. G.,
    IBV

    Dafuq. 😕



  • Ethon_ schrieb:

    Aber auch wenn die Daten sehr komplex abgelegt werden müssen, zb bei einer Board-Software.

    Nö, umgekehrt. Datenbanken nur, wenn die Daten sehr einfach strukturiert sind, zb bei einer Board-Software.

    Bei SQL-Datenbanken zahlt man gerne mal 1000-mal so lange wie für native Datenstrukturen. Dafür bekommt man auch beim unglücklichen Stromausfall keinen kompletten Datenmüll und kann die Daten leicht persistent halten. Und dazu Nebensächlichkeiten wie SQL-Abfragen auch mit Sortierungen und Gruppierungen, parallelen Zugriff, Rest der Transaktionen,…



  • Selbst erstellte Lösungen sind meist flexibler und auch schneller, es sei denn man hat es wirklich mit enormen Datenmengen + Benutzerverwaltung zu tun.

    Aber selbst so was hatte mein damaliger Chef in C runter geschrieben. Die LinuxTerminals arbeiten immer noch Weltwelt zusammen mit vielen Filialen, Benutzern und Kunden. Da hat ein Mann ein Riesenprojekt in den Jahren entwickelt und kann bis heute keinen SQL-Syntax. Der hat sogar seine Treiber selbst geschrieben, für Kassenautomaten, wo es keine Treiber gab. Alles allein und er hat nicht mehr Probleme, in den 30 Jahren gehabt, wie andere Entwickler auch.

    Die Produkte sind in einer gewissen Branche sehr bekannt und er ist immer noch ziemlich konkurrenzlos und das nicht nur in DE. Er hat damit soviel verdient, dass er schon lange nicht mehr arbeiten bräuchte.

    Ein Mann, nur C und eine eigene Datenbank. Das geht alles und muss nicht schlechter sein, als das zusammen schustern von Frameworks etc. mit modernen Hype-Sprachen.

    Mir brauch keiner mehr erzählen was man für größere Projekte alles brauch, da ich auch der Praxis das Gegenbeispiel über Jahre kennen gelernt habe. Achja und seine IDE hieß steht Vi über irgendeine SSH-Sitzung und er hat wirklich jeden gemeldeten Fehler in ein paar Minuten bis zu einem Tag fixen können.

    Achja und grobe Fehler kann er sich gar nicht erlauben, denn mit der Software setzten die Kunden Millionen um. Das Basispaket kostet so um die 10 000 EUR Wartung und Hardware exkl. und die Leute kaufen dass weil es sich seit vielen Jahren bewährt hat und einfach wie ein Schweizer-Uhrwerk funktioniert und minimale Anforderungen an die Hardware stellt.


  • Mod

    SelbstIstDerMann schrieb:

    ...

    Du klingst wie eine Werbeanzeige für Vollbitverschlüsselung. Da sollte man doch lieber bei bewährter Qualitätssoftware vom Weltmarktführer aus Redmond bleiben.



  • SelbstIstDerMann schrieb:

    irgendeine SSH-Sitzung und er hat wirklich jeden gemeldeten Fehler in ein paar Minuten bis zu einem Tag fixen können.

    Jo. hot fixes sind *viel* besser als ihr Ruf. Ich ärgerte mich mal riesig, als ich wo (in ein kleines Forum) einen Dreizeiler einbauen wollte und der Admin war zwar dafür, aber wollte von mir, daß ich eine Testumgebung aufbaue, seinen kompletten Code kopiere, meine Änderungen einbaue, den Testbetrieb dokumentiere und bla, langweil, wasserkopf… Hab dann für diesen Chef auch nie mehr angeboten, irgendas zu reparieren.

    SelbstIstDerMann schrieb:

    VI

    Ach, wie produktiv wäre der Mann noch geworden, wenn er einen ordentlichen Editor gehabt hätte!



  • Er ist immer noch produktiv und hat seinen Firmensitz jetzt in England. Soweit ich mich erinnern kann, hat er alles mit der Maus verabscheut. Er hat zwei Titel einen in Mathematik und einen in Informatik und anscheinend C mit der Muttermilch aufgesogen. Wenn wir Prototypen von Siemens-Nixdorf in Form von Termodrucker, Barcodleser, Kassensystemen etc bekamen, hat er sich ran gesetzt und erst mal dafür Linux-Treiber geschrieben. Der war beim Programmieren definitiv viel schneller als ich beim normalen Schreiben.

    So einen Menschen habe ich aber danach nie wieder kennengelernt, leider. Sich organisiert hat er mit einer Todo-Textdatei. Wir waren damals für die Webanbindung zuständig.

    Auf jeden Fall hat mir die jahrelange Arbeit mit ihm gezeigt, was man wirklich braucht und wie man auch an Sachen ran gehen kann und damit über Jahrzehnte erfolgreich ist. Einfach C + Linux und damit hat der wirklich gezaubert. Pragmatismus in seiner reinsten Form.

    Auch wenn ich Firma und seinen Namen nicht nennen will, habe ich doch immer noch Hochachtung vor Herrn ..... Schade dass die Zusammenarbeit irgendwann zu Ende war.



  • SelbstIstDerMann schrieb:

    Einfach C + Linux und damit hat der wirklich gezaubert. Pragmatismus in seiner reinsten Form.

    Nö. Pragmatismus sieht ganz anders aus.



  • hustbaer schrieb:

    SelbstIstDerMann schrieb:

    Einfach C + Linux und damit hat der wirklich gezaubert. Pragmatismus in seiner reinsten Form.

    Nö. Pragmatismus sieht ganz anders aus.

    Im Pragmatismus bemisst sich die Wahrheit einer Theorie an ihrem praktischen Erfolg, weshalb pragmatisches Handeln nicht an unveränderliche Prinzipien gebunden ist.

    Aus Wiki. So gesehen dürfte das Wort Pragmatismus schon auf diesen Herrn zutreffen.... 😃



  • Billiger Troll. OP stellt eine Nicht-Frage, die für einen anderen Unreg Vorlage für ein paar lustige Geschichten bietet und taucht dann nicht mehr auf. Tip: Sowas wirkt mit mehr OP-Beteiligung überzeugender.



  • Da liegst du völlig falsch. Meine Erfahrung mit dem Entwickler, der nur seine eigene Datenbank nutzt passte halt gut zu dem Thema. Nicht alles ist eine Verschwörung hier. Und ja es gibt Leute die machen alles alleine ohne Superduperplaung und den ganze Buzzword-Hype-Kram. Er war zwar der einzige den ich so kennen lernen durfte, aber das hat mich halt extrem beeindruckt. Da kann man dann hinterher nur noch lächeln wenn man so ließt was man heute alles für ein erfolgreiches Softwareprojekt braucht. Er hat aber auch viel Erfahrung bei einem sehr großen Autohersteller, vor seinem Ein-Mann-Groß-Projekt, sammeln können, dort hat er eine Interpretersprache entwickelt und vertrieben, auch alles reines C gewesen.



  • nman schrieb:

    Billiger Troll. OP stellt eine Nicht-Frage, die für einen anderen Unreg Vorlage für ein paar lustige Geschichten bietet und taucht dann nicht mehr auf. Tip: Sowas wirkt mit mehr OP-Beteiligung überzeugender.

    Ich lese hier interessiert mit.

    Es ist halt keine Verständnisfrage, sondern eher nach Erfahrungen und Geschichten, daher habe ich nicht viel hinzuzufügen.

    Bevor der Thread nach Pragmatismus und Trollvorwürfe abgedriftet ist, fand ich die Antworten sehr spannend!



  • Die denken hier nun einmal in ganz engen Schienen und dabei kommt folgender Unsinn heraus, deren Gegenbeweis ich gesehen habe, also brauche ich mir hier keinen Bären aufbinden lassen in der neuen tollen Buzzword IT Welt.

    - Große Projekte müssen im Team erarbeitet werden
    - Man implementiert nicht mehr alles selbst(gut er nutzt Ncurses, im Terminal Mode, GUI soll wohl dazugekommen sein für die Standautomaten weiß ich jetzt haben nicht. Ich kenne nur die Schnittstelle zum Web, denn die habe ich mit umgesetzt, allerdings von der PHP Seite her, aber noch ohne OOP)
    - C ist schlecht für große Projekte
    - Seine Datenbank schreibe man nicht selbst
    - Man braucht eine GUI/IDE für größere Projekte
    - Man braucht für große Projekte den OOP-Schnickschnack von C++



  • Natürlich _kannst_ du dein Pseudo-DBMS selbst schreiben. Nur ist es nicht "pragmatisch" Zeit damit zu verbringen, eine schlechtere Version von etwas zu schreiben, was es schon in sehr guten Varianten fertig verwendbar gibt.

    Das heißt nicht, dass man das nicht machen darf, oder dass ein echtes DBMS immer besser als eine selbstgestrickte Lösung sein muss. Aber ich habe schon solche Unmengen mittelmäßige handoptimierte Eigenbau-DBMSs gesehen, dass mich solche Beschreibungen nicht mehr sehr beeindrucken. (Häufig haben die Leute, die sowas selbstgestrickt haben und sehr stolz darauf sind, einfach keine Ahnung von Datenbanksystemen und den Problemen, die sie lösen.) Klar _kann_ man sowas selbst basteln. Die Frage ist, ob es auch sinnvoll ist.

    Wenn ich ein DBMS schreiben möchte, schreibe ich ein DBMS. Wenn ich ein Projekt machen möchte, das ein DBMS braucht, dann verwende ich ein fertiges DBMS.

    Zum OP: Ja, ein echtes DBMS bietet in vielen Situationen einen "echten Mehrwert für ein allgemeines Programm".



  • Ja schon klar, dass in den meisten Fällen fertige Lösungen besser sind. Ich persönlich würde auch was fertiges nutzen. Nur der Mann hat damals sogar Benchmarks mit seiner DB-Lösung gemacht und diese verglichen. Seine war um Längen ressourcenschonender und schneller. Sie war halt perfekt auf sein Produkt maßgeschneidert und es wurde nichts verschenkt. Wie gesagt, es ging nur um die Daten EINER Anwendung, er hat nie was anderes programmiert mit dieser DB und seine Sachen sind halt mit dem Projekt gewachsen. Ich glaube das Buzzword ist evolutionäre Entwicklung, oder so. Wie beim Linux-Kernel, keine große Planung, sondern einfach auf einen zu kommen lassen und die Probleme lösen.

    Es sollte halt nur erwähnt werden, dass es durchaus auch heute noch erfolgreiche Projekte gibt die jenseits der Buzzword-Entwickler existieren, die um wirklich alles einen Riesen Hype machen.

    Viele Wege führen nach Rom und nicht nur der den die meisten in der aktuellen Zeit beigebracht bekommen. Die denken dann wirklich es geht nicht anderes, bis sie vor zehn Schichten und Generalisierung den Wald voller Bäumen nicht mehr sehen.



  • Ich will das Projekt und den Entwickler nicht kritisieren, weil ich beide nicht kenne. Ich möchte aber darauf hinweisen, mit solchen Aussagen vorsichtig zu sein. Wie erfolgreich ein Projekt ist, kann man nicht immer so schnell feststellen. Das ist jetzt grad vielleicht erfolgreich, weil es funktioniert. Aber jetzt stell dir z.B. vor, dass der eine Entwickler in Rente geht oder sonst aus irgendeinem Grund hinschmeißt. Und die Firma oder Firmen, die das benutzen, müssen eine andere Firma beauftragen, das Produkt weiterzupflegen. Und die Firma, die dafür angeheuert wird sieht erstmal einen Haufen selbstgestrickten proprietären Scheiß, den kein Mensch versteht. Es wird mit Sicherheit darauf hinauslaufen, dass überhaupt nichts davon wiederverwendet wird, sondern alles viel teueren komplett from scratch umgesetzt werden muss.
    Oder stell dir mal vor, dass zusätzlich ODER alternativ dazu das System auch erweitert werden muss. Das mag jetzt vielleicht wunderbar funktionieren, aber dann will man das ganze an ein anderes Buzzword System koppeln, oder Business Intelligence machen, oder Daten fürs Finanzamt aufbereiten, oder das ganze als Service anbieten, was weiß ich was, gibt tausende Möglichkeiten. Und dann steht man mit einem selbstgebastelten System da, das nichts kann und jede Erweiterung mit Mannjahren Arbeit veranschlagt wird.
    Das ist das typische Ende solcher erfolgreichen Projekte.



  • Ein Projekt das seit 20 Jahren viele Menschen da ernährt und dem Entwickler zum Millionär gemacht ist, würde ich schon als sehr erfolgreich ansehen.

    Klar, wenn der Mann weg ist ist Schicht im Schacht.In der Branche wird auch sehr sehr viel Geld umgesetzt und die Software ist da der Dreh und Angelpunkt. Vertrauen spielt auch eine große Rolle und das haben die gut 500 Kunden anscheinend über Jahre hinweg.

    Firmen und komplexe Software kann man gar nicht über Jahre planen, das ist viel zu dynamisch. Sicher wird man durch den Einsatz von bekannten Frameworks, bekannten Datenbanken und populären einfachen Sprachen die Chance wesentlich erhöhen, gescheiten Nachwuchs zu finden, aber eine Garantie für den Erfolg eines Projektes ist es auch nicht.

    Er hat halt sein Risko gut eingeschätzt und gewonnen, der Erfolg gibt ihm recht, das ist Pragmatismus. Wenn es funktioniert ist es richtig und die Software hat so einige Änderungen mitgemacht. Von Videotext bis Internetanbindung ist alles eingebaut und beliebig erweiterbar und das alles in reinem C unter Linux von einem Mann der auch noch das meiste selbst implementiert. Alles möglich und erfolgversprechend. Die Grenzen sind meist nur im Kopf und die Menschen schränken sich künstlich ein, weil sie denke das klappt doch nie so und deswegen gehen sie nur die bekannten Wege der Masse.

    Also Leute, allein und mit einfachen Mitteln könnt ihr extrem viel erreichen. Lasst euch nicht zu viele Grenzen aufzeigen und einschüchtern. Macht selbst die Erfahrung.



  • Ich wollte nicht behaupten, dass dein Bekannter nicht erfolgreich ist. Mir passen nur drei Sachen überhaupt nicht:

    1. Datenbanksysteme sind keine Buzzword-Technologie. Niemand findet Datenbanken sexy und verwendet sie weil sie so furchtbar in sind. Ein DBMS verwendet man eher obwohl die Dinger keinen besonders guten Ruf haben – weil sie manchmal eben doch verdammt praktisch sind.
    2. Fertige DBMSe lösen eine Menge Probleme, für die praktisch kein selbstgestricktes System ausgelegt ist. Wenn man diese Probleme nicht lösen möchte, braucht man nicht unbedingt ein DBMS, aber häufig wäre ein fertiges DBMS langfristig trotzdem günstiger.
    3. Ich bin mir nicht sicher, ob du wirklich weißt, was Pragmatismus ist. Dass ein Projekt erfolgreich ist, heißt doch nicht dass alle Entscheidungen, die dabei getroffen wurden, pragmatisch waren. (Es heißt noch nichtmal, dass die Technologie dahinter gut ist.) Ich glaube dir schon, dass dein Bekannter viel Ahnung hatte, aber ich würde nicht sagen, dass jemand der alles mit Linux, C und vim erschlägt, unbedingt ein großer Pragmatiker ist. Das macht natürlich nichts, es gibt viele tolle Techniker, die unglaublich gut, aber keine Pragmatiker sind. Im Gegenteil, in vielen Fällen ist die pragmatischste Lösung nicht die technisch sauberste und hübscheste und das mögen viele Techies (mich eingeschlossen) überhaupt nicht.


  • SelbstIstDerMann schrieb:

    Er hat halt sein Risko gut eingeschätzt und gewonnen, der Erfolg gibt ihm recht, das ist Pragmatismus.

    Wenn ich gut genug bin, kann ich gleichzeitig aus Sturheit viel dummes machen, und werde immer noch erflogreich sein.
    Das ist für mich aber nicht Pragmatismus. Es ist an Dummheit grenzende Sturheit.

    Ist ja nicht so dass ich das was du schreibst das erste mal höre bzw. lese.
    Kein einziges mal war es dabei aber so dass Herr Schlau (tm) dabei erstmal (oder auch danach) ernsthaft versucht hätte mit den passenden Tools zu arbeiten.

    Angenommen ich kann mit einem Schraubenzieher schneller Nägel einklopfen als die meisten mit einem Hammer. Und angenommen ist wäre nicht irgendwie ganz komisch veranlagt, so dass man davon ausgehen kann dass ich mit einem Hammer noch viel schneller wäre.
    Nennst du es dann Pragmatismus wenn ich trotzdem jahrelang den Schraubenzieher verwende?
    Wenn ja, dann gebe ich dir Recht, dann musst du das was du beschrieben hast natürlich auch als Pragmatismus bezeichnen.

    Für mich bedeutet das Wort aber was anderes.


Anmelden zum Antworten