Lohnt sich eine Datenbank??

  • Hallo,

    ich habe folgendes Problem. Derzeit existiert eine Datenbank in der sich Daten, wie z.B. IP Adresse, Hostname usw. befinden. Diese Datenbank dient als Grundlage für ein Webbasiertes Monitoring von ca. 2000 Servern.

    Lohnt es sich bei dieser Datenmenge eine Datenbank anzulegen? Speziell unter dem Punkt der Kosten.

    Der Vergleich hierbei ist: Speichern der Daten in einzelnen Dateien, d.h. pro Server 1 oder mehrere Dateien mit den entsprechenden Daten, oder eine entsprechende relationale Datenbank.

    Derzeit existiert bereits eine nicht normierte Datenbank.Auf die Anfrage hin die Datenbank zu normieren wurde mir allerdings gesagt, aufgrund der größe (20MB) der Datenbank würde sich dieser Aufwand nicht lohnen.

    Das ganze wird ein IHK Abschlussprojekt bei mir, deswegen würd es mich sehr interessieren, da ich im Internet derzeit keine Angaben diesbezüglich gefunden habe. Weiterhin würden mich die entstehenden Kosten interessieren um einen Vergleich zu erstellen. Damit meine ich die Kosten die bei einzelnen Befehlen entstehen unter berücksichtigung der Laufzeit eines Befehls. Gibt es da irgendwelche Informationen im Internet die mir weiterhelfen könnten.

    vielen Dank für jeden Hinweis und Tipp

    mit freundlichen Grüßen

    Matthias

    P.S.: Ich hoffe das ganze ist nicht zu verwirrend geschrieben.

  • Zitat von izemann

    Lohnt es sich bei dieser Datenmenge eine Datenbank anzulegen?

    Ich verstehe dich wie folgt:

    • Mit "Datenbank" meinst du "relationale Datenbank" bzw. "SQL-Datenbank".
    • Deine Schreibzugriffe bestehen vor allem in Anhängen von Hits an eine oder mehrere flache, chronologisch geordnete Liste von Hits.
    • Deine Lesezugriffe erfolgen hauptsächlich zum Anzeigen von irgendwelchen Statistiken auf einer Webseite.
    • Deine Tabellentypen, graphisch dargestellt, bilden einen einfachen Baum mit nur zwei oder drei Ebenen.

    Wenn ich richtig liege, solltest du wahrscheinlich einfache Dateien verwenden, also von SQL die Finger lassen.

    Ich bin im Lauf der Zeit zu der Ansicht gelangt, dass ca. neunzig Prozent der eingesetzten SQL-Datenbanken überflüssige Spielereien sind und dass es sich mit SQL-Datenbanken so verhält wie mit schmutzigen Optimiertricks und allen anderen Arten künstlicher Komplikation: ein guter Programmierer verwendet sie nur, wenn er klar beweisen kann, dass sie notwendig sind.

    .

  • Zitat von Georg Kraml

    Ich bin im Lauf der Zeit zu der Ansicht gelangt, dass ca. neunzig Prozent der eingesetzten SQL-Datenbanken überflüssige Spielereien sind und dass es sich mit SQL-Datenbanken so verhält wie mit schmutzigen Optimiertricks und allen anderen Arten künstlicher Komplikation: ein guter Programmierer verwendet sie nur, wenn er klar beweisen kann, dass sie notwendig sind.

    .

    Was für Vorteile bringt die "normale" Date(ei)enverarbeitung?

    grüsse
    laborg

  • Zitat von laborg

    Was für Vorteile bringt die "normale" Date(ei)enverarbeitung?

    Sie ist einfacher, portabler, wird auch von den Minderbegabteren unter den Maintainance-Programmierern verstanden und funktioniert auch ohne Installation eines Datenbanksystems. Und so als Draufgabe ist sie vermutlich auch noch schneller.

    Solange du die Mächtigkeit von SQL nicht wirklich brauchst, lass die Finger davon. Hint: wenn du nicht beweisen kannst, dass du es wirklich brauchst, brauchst du es nicht wirklich.

    Das klingt vielleicht puristisch, aber ich habe schon einige Webprojekte gesehen, die genau daran gescheitert sind, dass ein unerfahrener (überbegeisterter, technikverliebter, verspielter) Programmierer (Marketroid, Management-Idiot) geglaubt hat, dass SQL (Java, JavaScript, Flash, ASP, Servlets) "einfach dazugehören".

    .

  • Zitat von Georg Kraml


    Das klingt vielleicht puristisch, aber ich habe schon einige Webprojekte gesehen, die genau daran gescheitert sind, dass ein unerfahrener (überbegeisterter, technikverliebter, verspielter) Programmierer (Marketroid, Management-Idiot) geglaubt hat, dass SQL (Java, JavaScript, Flash, ASP, Servlets) "einfach dazugehören".
    .


    Portabler, schneller ok. Aber einfacher? mhm. Wenn ich mir jetzt überlege wie ich eine Personenverwaltung mit normalen Dateien verwirkliche hab ich auf den ersten Gedanke keine tolle Lösung. SELECT Statements sind für mich etwas Wunderschönes und keine Komplikation. Aber vieleicht gibst du mir nen Link wie man SQL Anwendungen beweisen kann, sodass ich mir ein Bild über deine Anforderungen machen kann.

    ps.: Ahnlich kann man gegen das objektorientierte Programmieren argumentieren. (nur bin ich da der Ansicht, dass auch mal nur c ausreicht)

    grüsse
    laborg


  • Wirkt schon arrogant aber ich weis einfach nicht von welchen Level hier geredet wird. Und dass das Thema C++/C bzw SQL/nichtSQL eine Diskussion wert ist finde ich schon. Dabei gehts ja um Paradigmen, welche sich toppen wollen. Nur aus dem Gefühl heraus zu sagen dass dir das komisch vorkommt ist dein gutes Recht, nur wärs für den Thread besser es ein bisschen zu kommentieren(Linkwunsch, Analogon).

    Ad: Selber überlegen: Ich kann mir sehr gut selber überlegen ob eine Db sinnvoll ist oder nicht, hat aber mit meinem Punkt nichts zu tun. Ich will ja mein Wissen vergleichen mit anderem.

    grüsse
    laborg

  • Man kann jede Technologie dadurch in den Dreck ziehen, dass man sagt, "ja könnte ja sein, dass der Programmierer damit nicht richtig umgehen kann" (=> "schauderhaften DB design, seltsamsten Queries"). Was ist das für eine perverse Argumentation?!
    Wenn er damit nicht umgehen kann, soll er gefälligst einen anderen Beruf erlernen.

    Richtig verwendet, können DB's in vielen Fällen sehr wohl angebracht sein:

    Zitat

    Sie ist einfacher, portabler, wird auch von den Minderbegabteren unter den Maintainance-Programmierern verstanden und funktioniert auch ohne Installation eines Datenbanksystems.Und so als Draufgabe ist sie vermutlich auch noch schneller.

    Portabler? So portabel wie die Programmiersprache, in der der Code verfasst ist. (Eine SQL-Datenbank hingegen kann man über das Netzwerk ansprechen, und das ganze ist in einem halbwegs einheitlichen Standard verfasst - in den Code müsste ich mich erst einlesen)
    Einfacher? Ansichtssache. (Für mich nicht)
    Performance:
    Indizes sind in einer DB mit 2 Klicks angelegt und bringen ab einer gewissen Datengrösse entscheidende Vorteile. -> in einer Programmiersprache einen Index anlegen, nur um den Datenzugriff zu beschleunigen, dürfte etwas länger als 2 Klicks dauern.
    Außerdem, wird sich keiner die Mühe machen, für mehrfachen Zugriff einen Cache im RAM einzurichten. In einer ordentlichen DB ist das Standard.

    Wenn irgendwelche Daten gleichzeitig upgedatet werden sollen, und jemand implementiert da sein eigenes Transaktionssystem, weil ja Datenbanken so ein overkill sind, und überhaupt, ja und sie stinken lol. Und die sind so schwer zu bedienen, und deshalb sind die natürlich schlecht. Und so unnötig komplex...mit grafischem Admin-Userinterface und so...da ist es mir natürlich lieber, ich schreibe meine einfachen binären Suchen, und lege mir ein paar ganz simple Index-Suchbäume an, implementiere mein total einfaches Transaktionsmanagementsystem, dass gleichzeitigen Zugriff serialisiert und speichere meine Daten schön binär, damit's ja keiner außerhalb des Programms lesen kann.

    Total schlüssig ;)

  • Muss mich Usher anschließen. Man kann's mit dem Purismus übertreiben. Eine DB kann schon bei einer einfachen Relation vernünftig sein und ist dann vor allem auch zukunftsträchtiger, wenn man die Applikation später erweitern will.
    Z.B.: Für ein einfaches Gästebuch wird z.B. eine (CSV-)Datei reichen; programmiert man ein Forum, macht man sich mit Dateien das Leben nur schwer.

  • Zitat von izemann

    Webbasiertes Monitoring


    MRTG (Multi Router Traffic Grapher) bietet webbasiertes Monitoring. Hab' zwar mit diesem Thema praktisch nix zu tun, aber vielleicht hilfts ja Arbeit zu sparen ..

  • Zitat


    Richtig verwendet, können DB's in vielen Fällen sehr wohl angebracht sein:

    KLAR !!!!

    Meiner Erfahrung nach werden sie eben oft nicht angebracht verwendet.
    Daran kann ich nix ändern.

    Mit nicht angebracht mein ich nicht schlecht designte DBs (lassen wir mal das Thema), sondern Fälle wo DBs völlig unnötig sind.
    Datenbanken ansich sind nicht unnötig komplex, das ist/wär eine völlig unsinnige Aussage.
    Aber sie unnötigerweise einzusetzen ist sehrwohl unnötig komplex.

    Unsinnige Anwendungen machen Technologien nicht schlecht.
    Hab nie behauptet, daß DBen immer schlecht sind.
    Und schon gar nicht, daß sie stinken :D

    Natürlich ist es unsinnig, Transaktions-Managment-Systeme nachzuimplementieren.
    In diesen Fällen sind DBS eben sinnvoll.

    Amen und schönes WE, LB


    Trading for a living [equities,futures,forex]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!