Monster: Welche Datenbank?

Hallo !
Ich hab da mal eine ganz grundsätzliche Frage:
Es geht darum, eine Datenbank aufzubauen ( nicht webbasiert ), die mit mehr als einer Million Datensätzen klarkommen soll. Sie sollte auch mit mehreren Usern klarkommen. Könnt Ihr mir da eine grundsätzliche Empfehlung geben ? ´
Ich hab bis jetzt nur Erfahrung mit Access und mySQL. Der Vorteil von Access wäre fur mich, dass man recht einfach Formulare o.ä. erstellen kann, damit auch ungeübte Benutzer leicht mit der DB umgehen können.
Für eure Infos bzgl. Performance, Kapazität usw. wäre ich sehr dankbar!
LG, Barbara

  1. Hallo Barbara,

    wir haben von "kleineren Datenbanken" wie mySQL, Access, bis zu Oracle und DB2 Datenbanken zahlreiche Produkte im Einsatz. Welche genau für ein bestimmetes Projekt verwendet werden soll, ist nicht leicht zu beantworten, wenn man die Rahmenbedingungen nicht kennt.

    Prinzipiell ein paar Überlegungen:

    mySQL kann auch Datensätze über 1 Mio verarbeiten und ist kostenlos, wogegen die kostenlosen DB2 und Oracle Versionen etc meist nicht mehruserfähig sind.

    Der Wartungsaufwand für kleinere wie mySQL, Acess,.. ist gering, für die grösseren wie DB2,... aber gewaltig

    Der Plattenplatz für kleinere hält sich in Grenzen (je nach Datenmenge), bei den grossen würd ich mit 2 gig Minimum rechnen

    Die kostenlose Doku für mysql, Access ist zahlreich im Web zu finden, bei grösseren ist das nicht mehr der Fall

    Für grössere musst du mit mit mehrwöchiger Einarbeitungszeit und Optimierungszeit rechnen (wenn das für dich Neuland ist), für mysql reicht ein Tag

    dafür sind Oracle, DB2,.. sicherer, wenn die Datenbank abstürzt, ist ein recovery von logfiles möglich - -falls wichtige Daten zu speichern sind,..

    Die performance von mysql ist aufgrund der geringeren Grösse, Funktionalität höher,

    Ich hoffe, das konnte einen Überblick geben,

    Viele Grüsse

    1. Servus,

      mySQL kann auch Datensätze über 1 Mio verarbeiten und ist kostenlos, wogegen die kostenlosen DB2 und Oracle Versionen etc meist nicht mehruserfähig sind.

      Falsch von Oracle gibt es keine Kostenlose Versionen und alle Versionen sind multi user fahig.
      Lediglich die Lizenzen erlauben dir bestimmte sachen nicht.

      Der Wartungsaufwand für kleinere wie mySQL, Acess,.. ist gering, für die grösseren wie DB2,... aber gewaltig

      Jetzt übertreib mal nicht gewaltig ist massgeblich übetrieben.
      Vieler unserer DB`s müssen kaum gewartet werden, sofern man diese richtig überwacht unt kontroliert. Mehr Aufwand wie bei einer Access ist jedoch schon vorhanden.

      Der Plattenplatz für kleinere hält sich in Grenzen (je nach Datenmenge), bei den grossen würd ich mit 2 gig Minimum rechnen

      Rechne lieber mit viel mehr so bis 50 Gig, wenn Du auch zuverlässig Daten speichern willst. Oder soll in einem knappen halben -_Jahr wieder der Tablespace ein fünftes mal erhöt werden damit jeder Select ne halbe Stunde dauert um durch die zerklüfteten Db Files zu wetzen?

      Wie gross es sein muss, muss man anhand des Datenzuwachs berechnen sowie einer Steigerungschätzung.

      Die kostenlose Doku für mysql, Access ist zahlreich im Web zu finden, bei grösseren ist das nicht mehr der Fall

      Richtig Oracle bietet keinen Download für die Datenbank und liefert mit dem nicht vorhanden Download keine Doku nicht mit.
      Das macht auch IBM nicht und Microsoft hat nicht einmal eine Knowledge Base, in der irgenwelche Fragen zu Problemen mit MS SQL gespeichert werden.

      Also ich hab noch jede Doku umsonst bekommen.

      Für grössere musst du mit mit mehrwöchiger Einarbeitungszeit und Optimierungszeit rechnen (wenn das für dich Neuland ist), für mysql reicht ein Tag

      Jawoll Myssql optimierung in 24 Stunden ...

      dafür sind Oracle, DB2,.. sicherer, wenn die Datenbank abstürzt, ist ein recovery von logfiles möglich - -falls wichtige Daten zu speichern sind,..

      Auch eine Oracle kann so abschmiern, dass die Datenbankfiles korrupt sind und ohne Backup sollte man keine einzige DB Betrieben.

      Die performance von mysql ist aufgrund der geringeren Grösse, Funktionalität höher,

      Mmmmh ich glaube nicht wirklich. Vieleicht bei ganz kleinen Aufgaben.
      Oracle hat den Vorteil viele Informationen in den Cache zu laden und
      ist deshalb schneller als jedes System, das auf der Platte rumsucht.

      Einer Oracle sollte man nur genügend Resourcen und vor alle Speicher geben.

      Das gilt auch für MS SQL un d DB/2 sowie einiger anderer Systeme.

      Sorry meine antwort war etwas zynsich und auch teilweise frech.
      Bei soviel Falsch information konnte ich mich jedoch nicht mehr zurückhalten.

      Vor allem Oracle umsonst... Wovon träumst Du nachts?
      Ruf mal bei Oracle an und sag denen, dass Du umsonst eine Datenbank betreibst. Du darfst das System 30 Tage umsonst testen aber auch nicht mehr.

    2. Hallo!

      mySQL kann auch Datensätze über 1 Mio verarbeiten und ist kostenlos, wogegen die kostenlosen DB2 und Oracle Versionen etc meist nicht mehruserfähig sind.

      kostenlos gibt es glaube ich hier nur Entwickler-Versionen, was die passende Version kostet kann man auf den  Internetseiten der Hersteller erfahren.

      Der Wartungsaufwand für kleinere wie mySQL, Acess,.. ist gering, für die grösseren wie DB2,... aber gewaltig

      warum? Zumal ich Access für eien DB dieser Größe nicht ernsthaft in Erwägung ziehen würde.

      Der Plattenplatz für kleinere hält sich in Grenzen (je nach Datenmenge), bei den grossen würd ich mit 2 gig Minimum rechnen

      woher willst Du das wissen?

      Die kostenlose Doku für mysql, Access ist zahlreich im Web zu finden, bei grösseren ist das nicht mehr der Fall

      Ja, das ist ein Vorteil, vor allem MySQL ist sehr gut und auch deutsch dokumentiert.

      Für grössere musst du mit mit mehrwöchiger Einarbeitungszeit und Optimierungszeit rechnen (wenn das für dich Neuland ist), für mysql reicht ein Tag

      Genau, das ist das Problem, udn ich bezweifele auch dass man sich so ohen weiteres mal eben in Oracle einarbeiten kann, ich habe mir sagen lassen dass es da ohne einen Mitarbeiter der Oracle-Erfahrung hat sehr schwierig wird.

      dafür sind Oracle, DB2,.. sicherer, wenn die Datenbank abstürzt, ist ein recovery von logfiles möglich - -falls wichtige Daten zu speichern sind,..

      Wie unterscheidet sich das von MySQL? Da kann man auch logfiles mitlaufen lassen und die irgendwo einlesen. Außerdem werden Transaktionen unterstützt.

      Die performance von mysql ist aufgrund der geringeren Grösse, Funktionalität höher,

      Die Leseperformance vielleicht, aber die Schreibperformance sicher nicht, da die "schnellen" myISAM Tabellentreiber kein Row-Level Locking erlauben. Und wenn es viele Schreibzugriffe gibt werden die Lesezugriffe auch sehr langsam.

      Eine weitere bedenkenswerte Alternative wäre noch PostreSQL, die kann im Prinzip dasselbe wie die großen - im Gegensatz zu MySQL.

      Grüße
      Andreas

      1. Hi Andreas,

        dafür sind Oracle, DB2,.. sicherer, wenn die Datenbank abstürzt, ist ein recovery von logfiles möglich - -falls wichtige Daten zu speichern sind,..
        Wie unterscheidet sich das von MySQL? Da kann man auch logfiles mitlaufen lassen und die irgendwo einlesen. Außerdem werden Transaktionen unterstützt.

        von welchen Tabellentreibern?

        Viele Grüße
              Michael

        --
        T'Pol: I apologize if I acted inappropriately.
        V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
        (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
        Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.
        1. Hi Michael!

          Wie unterscheidet sich das von MySQL? Da kann man auch logfiles mitlaufen lassen und die irgendwo einlesen. Außerdem werden Transaktionen unterstützt.

          von welchen Tabellentreibern?

          InnoDB, siehe
          http://www.mysql.com/doc/en/Binary_log.html
          http://www.mysql.com/doc/en/InnoDB_transaction_model.html
          http://www.mysql.com/doc/en/InnoDB_foreign_key_constraints.html

          Das ist selbst in halbwegs neuen 3er Versionen von MySQL enthalten, sofern InnoDB Treiber vorhanden sind.

          Grüße
          Andreas

          1. Hi!

            von welchen Tabellentreibern?

            InnoDB, siehe

            Mal ne Frage: Ich brauche Fremdschlüssel und Transaktionen, und weiß nicht ob ich entweder MySQL(innodb), PostgreSQL oder DB2 nehmen soll. Das wichtigste ist absolute Zuverlässigkeit, und da scheidet MySQL für mich doch schon recht früh aus, da mir die innodb-Treiber noch viel zu neu und zu wenig getestet sind, zumindest in Bezug auf die oben genannten Kriterien. Und in der MySQL Doku steht das ja sogar explizit drin dass die von PostgreSQL zuverlässiger sind:
            "Die Transaktionsunterstützung in MySQL ist noch nicht so gut getestet wie das System von PostgreSQL."
            http://www.mysql.com/doc/de/MySQL-PostgreSQL_features.html

            Wobei der Satz schon etwas älter ist, und in der englischen Version nicht mehr vorkommt. Trotzdem bestärkt das mein Vertrauen nicht wirklich.

            PostgreSQL ist in dieser hinsicht natürlich schon viel länger entsprechend getestet und das wird auch eigentlich imme reingesetzt udn es gehört zu den Grundbestandteilen von PostgreSQl, im Gegensatz zu MySQL. Gut eine kleine DB2 Lizenz ist wirklich nicht teuer, so dass der Preis hier überhaupt nicht ins Gewicht fällt. Nur hört man immer dass DB2 nach Oracle eigentlich das non-plus-ultra auf dem Markt darstellt(wobei da auch viel Marketing-Gequatsche mit reinspielt). Mein Problem bei der Sache ist, dass ich das eigentlich nicht vollkommen umfassend testen kann, und ich will nicht erst bei einem aufgetretenen Problem im Live-Betrieb feststellen - na das war dann wohl nicht die richtige Entscheidung. Und wirklich fundierte, objektive Meinungen habe ich zu diesem Thema eigentlich noch nie bekommen, außer hier mal von Klaus Mock, aber ich glaube der kannte DB2 nicht. Was ich meist lese ist "ach, PostgreSQL reicht vollkommen", nur will ich kein "reicht vollkommen" sondern ich will eben das bessere, also stabilere, zuverlässigere, weniger fehleranfällige... Im Prinzip reicht MySQL von der Funktionalität vollkommen, aber das scheidet aus den oben genannten Gründen aus.

            Worin unterscheiden sich die beiden denn jetzt noch in dieser Hinsicht? hat da jemand Erfahrungen? Halt so Sachen mit "Disaster-Recovery", oder Zuverlässigkeit, Datenverluste... oder wie sollte ich vorgehen um die für mich richjtige DB auszuwählen? Ich habe ja schon nach einigen Kriterien gefiltert, da sind halt diese beiden übrig geblieben, die eigentlich beide die Bedürfnisse erfüllen, aber wie bewerte ich jetzt die Zuverlässigkeit? Oder hat es vielleicht auch Einfluss dass ich Linux verwende und sich evtl. PostgreSQL mehr auf Linux zu Hause fühlt als DB2? Wobei DB2 da ja sehr viel tut und bestimmte Kernel speziell zertifiziert...

            Was könnte Ihr mir empfehlen? Oder weiß jemand wo ich solche Informationen finde, halt objektive!

            Viele Grüße
            Andreas

  2. Hi,

    de Frage nach der besten DB ist eigentlich schon eine sehr umfangreiche und komplexe Frage...eigentlich.

    Es kommt darauf an was Du wirklich vor hast. nachdem Du gesagt hast es ist nicht webasiert. Setze ich gleich mal die Oracle in den hintergrund.

    Leider kenne ich Deine Plattform nicht worauf die DB Laufen sollte.
    Spielt eigentlich keine Rolle, jedoch wennn Du ein Windows System hast spricht sehr viel für eine MS SQL DB.
    Ohnehin muss ich mit wiederwillen aber ehrlich gestehen, ist die aktuelle MS SQL allein aus sicht der Performance so ziemlich das beste auf dem Markt.

    Inzwischen hat sich auch die MS SQL DB etabliert. Und ist ein recht gutes System. Vom Preis her hat MS ein durchschaubares Lizenzierungsystem. Vor allem kosten die Lizenzen einen nicht das letzte Hemd.

    Die Oracle mein persönlicher Liebling ganz ehrlich gesagt ist wie die DB/2 von IBM teuer. Wer sehr Webbasiert arbeitet, hat jedoch mit der Oracle ganz klar Vorteile. Bietet Oracle inzwischen Feature was es wirklich angenehm macht im Web zu arbeiten z.B: direkte Stored Procedures Calls aus dem Web. Klasse einfach.
    Ebenfalls bietet Oracle wenn man sich umfangreich damit befasst, Viele Administrationsmöglichkeiten und nützliche Tools. Es gibt zwar auf dem Freien Markt deutlich bessere aber das sei ne andere Geschichte. Empfehlen würde ich die Oracle jedoch nur auf Unix Systemen speziell Sun Solaris.

    Wie schon angesprochen die IBM DB/2 Mein Statement dazu fällt recht kurz aus. Ebenfalls der Oracle in nichts nachstehende DB. IBM eiffert nur der MS Verkaufstrategie so nach, dass es MS völlig überschatet. IBM hätte es sehr gern wer ein Produkt von Ihnen hat diese auf den gesamen Umfang der Produktpallete zu binden.

    Pech es ´Wert sich fast jeder dagegen, der halbwegs schlau ist.

    Alles in allem alle 3 genannten DBs sind gleich "stakr und performant"
    Wesentloch nachteile bei der verwendung der einen oder andere gibt es eigentlich nicht. Mit einem grossen Datenaufkomme, kommen alle gut zurecht.

    Gruss Matze

    1. Hi!

      Es kommt darauf an was Du wirklich vor hast. nachdem Du gesagt hast es ist nicht webasiert. Setze ich gleich mal die Oracle in den hintergrund.

      Wieso? IMHO braucht man gerade bei Webprojekten die nicht gerade Amazon... Ausmaße erreichen nicht so ein Teil wie Oracle.

      Ohnehin muss ich mit wiederwillen aber ehrlich gestehen, ist die aktuelle MS SQL allein aus sicht der Performance so ziemlich das beste auf dem Markt.

      Ja? IMHO kann man das nicht pauschal sagen, es kommt stark auf die Anforderungen an, wenn man z.B. keine Transaktionen... verwendet, bringt es nichts ein RDBMS zu verwenden was das standardmäßig unterstützt, da das zwangsweise Performance kostet ohne was zu bringen.

      Die Oracle mein persönlicher Liebling ganz ehrlich gesagt ist wie die DB/2 von IBM teuer.

      Ja? Oracle kostet sicher 10 mal so viel wie DB2, zumindest wenn man nur wenige Benutzer braucht.

      Wie schon angesprochen die IBM DB/2 Mein Statement dazu fällt recht kurz aus. Ebenfalls der Oracle in nichts nachstehende DB. IBM eiffert nur der MS Verkaufstrategie so nach, dass es MS völlig überschatet.

      in wiefern?

      IBM hätte es sehr gern wer ein Produkt von Ihnen hat diese auf den gesamen Umfang der Produktpallete zu binden.

      wer will das nicht ;-)

      Grüße
      Andreas

  3. Hi Monster,

    Es geht darum, eine Datenbank aufzubauen ( nicht webbasiert ), die mit mehr als einer Million Datensätzen klarkommen soll.

    definiere "klarkommen". Die Anzahl der Zeilen ist ja interessant, aber nicht entscheidend.

    • Hast Du Zahlen darüber, wie oft lesend bzw. schreibend auf diese Daten zugegriffen werden muß?
    • Benötigst Du transaktionsfähige Tabellen?
    • Sind bestimmte Mechanismen zwingend erforderlich, welche nur in bestimmten SQL-Ausbaustufen
        verfügbar sind, die wiederum nur von hinreichend guten RDBMS unterstützt werden?
        (Constraints, Trigger, Stored Procedures, Views, ...)

    Viele Grüße
          Michael

    --
    T'Pol: I apologize if I acted inappropriately.
    V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
    (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
    Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.