Findung der geeigneten Datenbank

  • Hallo liebe Community,

    bin noch ganz neu hier und hoffe, dass ihr mir vielleicht bei meiner Entscheidung helfen könnt! [Blockierte Grafik: http://www.datenbanken-verstehen.de/forum/images/smilies/icon_e_smile.gif]

    Es geht wie im Titel schon beschrieben darum, die geeignete Datenbank für ein geplantes Internet-Projekt zu finden, mit dem ich mich gerne selbstsständig machen will. Da eine Datenbank dafür natürlich ein zentrales Element ist und auch die Basis für die weitergehende Entwicklung darstellt, habe ich mich in den letzten Wochen über verschiedene Systeme und Datenbanken schlau gemacht.

    Zwar habe ich ein gutes technisches Verständnis (bin selber Mediengestalter und programmiere auch), jedoch habe ich im Bereich Datenbanken und Website-Entwicklung nicht das nötige Know-How und vor allem nicht die Erfahrung, um hier die richtige Entscheidung zu treffen.

    Vor allem will ich diese Entscheidung halt auch mit Bedacht treffen! Nicht nur weil ich selber hohe Ansprüche an das Projekt lege sondern auch zukunftsorientiert handeln will. Soweit ich bisher erfahren hab, ist es eben ein nicht gerade unerheblicher Aufwand eine Datenbank, die nicht ordentlich konzipiert wurde umzustellen oder gar in ein anderes System zu übertragen.

    So, jetzt aber mal Klar-Text [Blockierte Grafik: http://www.datenbanken-verstehen.de/forum/images/smilies/icon_e_smile.gif]

    Oberste Priorität bei dieser Entscheidung hat bei mir Performance und Sicherheit!

    Im geplanten Projekt werden neben unterschiedlichen (teils sensiblen) Nutzerdaten auch jede Menge andere Daten, wie Video-/Grafikdaten, statistische Daten und auch Kunden- und Auftragsdaten gepeichtert. Es wird (wenn alles gut geht) auf jeden Fall ein BigData-Projekt, welches jedoch Datenschutzkonform realisiert werden soll und mehree Mandanten mit unterschiedlichen Rechten verwaltet.

    Neben dem Streamen und Darstellen der Binärdaten wie Videos und Grafiken, sollen in der Frontend-Umgebung auf jeden Fall auch Schnittstellen existieren, die gespeicherte Daten statistisch wiedergeben (z.B. Nutzungsstatistiken). Es wir auf jeden Fall viele Datenbankzugriffe geben, nicht nur Abfrage-, sondern vor allem auch Insert- und Update-Operationen.

    Nun gibt es ja den großen Hype um NoSQL, welches (wenn auch meist spezialisiert auf gewisse Anwendungsbereiche) ja einige Vorteile mitbringt. Nachdem ich eine Masterarbeit eines Studenten gelesen habe zum Thema "Entwicklung des Datenbanksegments
    einer Videostreaming-Plattform", in der er sich bei der Umsetzung für MongoDB entschieden hatte, bin ich in meiner Planung nun etwas unschlüssig.

    Die Vorteile der einfachen horizontalen und vertikalen Skalierbarkeit, der schnellen Datenverarbeitung (teilweise ja auch direkt aus der DBMS heraus in die Anwendung),das flexible Datenschema, welches den sich schnell ändernden Anforderungen an Webprojekte entgegen kommt und es somit ermöglicht neue Datenfelder oder komplett neue Datentypen ohne aufwändige Umstrukturierung der Datenbank hinzuzufügen, waren die entscheidenen Argumente für Ihn ein NoSQL-System wie MongoDB zu verwenden.

    Wie seht ihr das?


    Liebe Grüße
    Maddin

  • naja selbst große onlineshops greifen auf ne mysql-db zurück, warum auch nicht.
    da wird es dann verkauft als in memory computing solution (große worthülsen für ne imdb von mysql auf nem dicken server mit viiiiieeeel RAM)

    die zeiten, wo dieses ding ne verbesserte tabellenkalkulation war, sind vorbei.
    und nur weil alle auf mongo-db stehen und auf no-sql muss man es denen nicht gleich tun!
    SQL = Structured Query Language

    wenn du also strukturierte daten hast, wieso solltest du die dann unstrukturiert ablegen?
    ich denke mysql is durchaus wartbarer als mongodb (die hierarchien bei mongo sind einfach viel komplexer).
    klar man kann sich alle queries so stricken, wie man sie braucht...... und an seine datensätze rankommen.

    wenn du schwimmen willst und die wahl hast zwischen pool oder badewanne, nimmste wohl den pool.
    was is denn wenn du die wahl hast zwischen see und pool oder meer und pool?

    worauf ich hinaus will ist: wenn du strukturiert arbeiten willst nimm ne sql-datenbank.
    und da isses egal ob mysql oder oracle oder sonst eine entsprechende Datenbank, da ist es nur ne frage des preises und des geschmacks.
    und da du mit sql werkst, sollte das auch ohne viel aufsehen kompatibel bleiben.

    mein rat: fang mit mysql an und wenn dein projekt läuft und du merkst, dass es wirklich nicht mehr ausreichen sollte, kannst du immer noch umsteigen auf oracle. (und selbst auf den beiden systemen kannste mit no-sql schaffen, denn no-sql is ja nur die technik und nich das system worauf es läuft. die mongo is zm beispiel dokumentenorientiert statt schemenbasiert)

  • Hey synaptic!

    Erstmal vielen Dank für deinen Input! :)

    Ich denke auch, dass SQL für mein Vorhaben absoult ausreicht und vielleicht sogar die bessere Variante ist, da natürlich schon hauptschlich strukturierte Daten abgebildet werden müssen.

    Doch wenn man jetzt auch Punkte wir Erweiterbarkeit, Skalierbarkeit und Lastverteilung unter Betracht zieht, gibt es doch bestimmt Systeme die darauf besser ausgelegt sind als z.B. MySQL oder? Also was die Clusterfähigkeit angeht.

    Denn gemäß dem Fall, dass die Nutzungszahlen steigen, will ich darauf vorbereitet sein und die Lastverteilung möglichst reibungslos und in überschaubarer Zeit lösen, ohne dann an diesem Punkt auf ein komplett neues System unzusteigen.

    MariaDB und postgresSQL sollen dies nach ersten Recherchen ja erfüllen, doch wie sind eure Erfahrungen damit? Könnt ihr mir hier eine Empfehlung aussprechen oder kommt dafür dann sogar noch ein anderes System in Frage?

    Liebe Grüße
    Maddin

  • Bei deinem Vorhaben brauchst du dich nur zu fragen, wie das die anderen Grossen wohl mit Mysql machen.
    Mysql oder Postgres bieten da alles, was man braucht, auch um Last zu verteilen oder zu Clustern.

  • wie der kollege sysop schon sagt: mysql bringt alles nötige mit.
    wieso wohl is mysql so weit verbreitet und in nahezu jedem paket enthalten?
    nich weil das system schrott is..
    klar seine macken hat es wohl auch hin und wieder, aber das haste bei jedem system und ich glaube nich dass du von ausmaßen sprichst wie google oder facebook, dass du direkt cluster benötigen wirst ;)
    ja, sich vorher gedanken dazu zu machen is ok, aber nicht in dem umfang, dass du gleich mit load-balancer und cluster agieren musst, da brauchste schon mehr als nur 100 oder 1000 oder gar 10000 user weit mehr^^