Petr Gola wrote:

Zdravim konferenci,

tak jsem se nad tim trosku vic zamyslel. Nejprve proc jsem to tak
chtel. Zde jsou duvody pro rozdeleni do jednotlivych tabulek pro
kazdeho klienta (terminal):

1) bezpecnost - mozna vychazi z dob Foxky apod. starsich databazi, kdy
kazda tabulka byla jednim souborem. Proste jsem mel pocit, ze pri
poruseni integrity dat (ke kteremu by teoreticky nemelo nikdy dojit,
ze... ale...:) takhle system na chvili prijde jen o jednoho klienta
(nez se pripadne obnovi ze zalohy).

Bezpecnot by mela resit 2 vrstva. Nikoliv DB, rozumna databaze by nemela mit problemy s porusenim integrity dusledkem vypadku. K tomu je prece C v ACID vlastnostech transakci.


2) efektivnost - mozna opet zastaraly nazor, ale rozdelenim na vice
tabulek jsem chtel dosahnout i vyssi efektivnosti prace s daty
tabulky. Kazdy den totiz budou pribyvat do tabulky stovky, mozna
tisice novych zaznamu (radku). Tim se dostavam k 3 duvodu...

Toto resi napr. Oracle nebo MS SQL server resi pomoci "table partitioning". Na disku to pak mohou byt ruzne soubory. Behaji nad tim rychleji transakce, ktere pouzivaji jen jednu partition ... dalsi dusledky jsem moc nezkoumal, pouzili jsme to pri vyrobe extraktu produkcni databaze do "privatniho ODS" nasi aplikace (meli jsme vice verzi replik, jedna partion byla pro jednu repliku).


PS: ted kdyz vidim, k cemu to chcete pouzit si take myslim, ze v dobe modernich databazi je to nesmysl.

Odpovedet emailem