Db design allgemein

hi,

eine Frage zum Design von Datenbanken:

Was macht mehr Sinn in Hinsicht auf die allgemeine DB-Performance, besonders unter dem Gesichtspunkt dass mehrere Spalten einen Index kriegen sollen:

  • eher wenige Tables zu haben, wobei jeder Table fuer eine Klasse zustaendig ist. Wenn verschiedene Klassen gleiche Eigenschaften haben, ist die Redundanz sehr hoch.
  • oder viele kleine Tables zu haben, und die identischen Eigenschaften verschiedener Klassen in eigene Tables auszugliedern (und somit Redundanz zu vermeiden).

Fuer mich hoert sich Variante 2 besser an, Redundanz ist immer oll. Habe aber noch nicht viel Ahnung vom DB-Design und wuerde gerne ein bisschen Input zu dem Thema bekommen.

Muss man diese Entscheidung von der Datenbank abhaengig machen? (Momentan liebaeugel ich mit Firebird oder MySQL, werde jedoch noch die naechste iX abwarten, in der ein Bericht ueber XML-Datenbanken kommt, und dann eventuell auf eine XML-DB umsteigen.)

Gruss,
Uwe

Obwohl ich immer zur maximalen Normalisierung einer Datenbank neige denke ich, dass weniger Tables (gerade bei MySQL) der Performance sehr dienlich sind.

Umso weniger Tagles, Foreignkeys und Constraints man hat, umso besser wird die Performance. Wenn die paar wenigen Tables gut indiziert sind, sollte es keine Probleme geben.

Es ist halt mehr eine Frage der Funktionalität. Wo will man die Logik haben? Im Frontend bzw. Middleware oder eher in der Datenbank? Nutzt man z.B. Oracle, dann kann man sehr viel schon in der DB abfangen - gerade Datenqualitätsaspekte und I/O-Interfaces sind dort gut aufgehoben. Will man eher ein schnelles und vor allem billiges Websystem, dann kann ein guter Applicationserver (Java/PHP/Perl) ebenso DB-Aufgaben übernehmen.

Oder wie oft wird die DB adaptiert? Wenn klar ist, dass jedes Monat was zu ändern ist, das ist eine optimale Normalisierung unumgänglich. Nix blöderes, als die „flache“ DB umzuändern und darauf hin alle Frontends/Middlware extra verändern zu müssen.

Also wie Du siehst, ist dieses Thema philosophisch - vielleicht widerspricht hier wer auf das heftigste…

VG, Stefan.