grosse wenige Tabellen <=> kleine mehrere Tabellen



  • hallo zusammen.
    ich versuche mich gerade etwas in SQL.

    jetzt kam bei der planung die Frage auf, ob ich eine grosse Tabelle nehmen soll, oder die in mehrere kleine aufteilen. gibts da unterschiede in der Rechnerleistung oder Zugriffszeit?

    was ist eher zu empfehlen?

    vielen dank 🙂



  • Du solltest deine Tabelle normalisieren, um redudante Daten zu vermeiden.
    http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
    Durch dies ergibt sich meist die Verwendung mehrerer miteinander Verknüpften Tabellen.



  • Blöderweise habe ich die Erfahrung gemacht: wie man es auch macht, irgendeiner hat was zu meckern.
    Normalisierst du das ganze auf viele kleine Tabellen, beschwert sich einer, dass es seine Daten aus zich Tabellen mit zich Schlüsseln und zich Datenbankzugriffen zusammen sammeln muss.
    Machst du wenig grosse Tabellen, beschwert sich einer, dass so viele Daten doppelt gespeichert werden und unnötige Datenmengen hin- und hergeschaufelt werden.
    Mittlerweile bin ich der Meinung, man sollte einen sinnvollen Kompromis finden, um Datenbankzugriffe zu minimieren und um Daten-Redundanz zu vermeiden. Also Daten sinnvoll zusammenfassen. Ist aber auch nicht ganz einfach, weil dann mit Sicherheit auch wieder jemand meckert, weil kein klares Konzept zu erkennen ist...



  • Dann erstelle halt normalisierte Tabellen und für die Idioten die Meckern, weil sie keine Ahnung von DB-Design haben machst du einfach Views die den ganzen Schmonzes unter einem Namen abbilden. Die werden den Unterschied zwischen Tabelle und View sowieso nicht erkennen.



  • Ein Normalisierung macht man i.R. bis zur 2. oder 3ten Form. Nicht weiter.
    Gibt IMHO 9 Formen oder so.

    Wenn du kleine Tabellen hast dann ist alles schneller auch wenn die SQLQUERYS länger und komplexer werden.
    Für die Datenbank ist es ein Unterschied ob sie eine Datei mit 10 MB durchsuchen muss oder ob die Datei 100MB hat und daraus braucht man in der Mitte nur einen Datensatz.

    Hier kommt es aber auch auf das RDBMS an.
    MySQL würde eine Normalisierung mit Tempo begrüssen.


Anmelden zum Antworten