Ventajas e inconvenientes de un modelo de datos

21/09/2004 - 08:47 por Xavi | Informe spam
Hola a todos.

Mi empresa está subdividida por departamentos. Cada departamento crea sus
propios albaranes. Entre ellos no existe ninguna relación; es decir, los
albaranes de un departamento sólo los ve ese departamento. Se crea un modelo
de datos relacional y se propone el siguiente modelo:

a) Todos los departamentos compartirán un mismo servidor.
b) Cada departamento tendrá una base de datos independiente con una "copia"
del modelo de datos propuesto.
c) Los datos que sean comunes a todos los departamentos estarán en otra base
de datos y serán replicados en cada una de las bases de datos.

La empresa consta de unos 50 departamentos. Se supone que el número de
albaranes crece bastante rápido y de esta forma, se supone que se optimiza
el acceso a ellos. Igualmente cada base de datos trabajará con vistas
particionadas ya que el número de albaranes es demasiado grande.

Mi propuesta es la de hacer que todos los departamentos estén en una misma
base de datos. Con esto creo que el modelo será más puro, más escalable y
óptimo. Es cierto que las tablas particionadas de albaranes serán 50 veces
más grandes pero no creo que sea ese problema para SQL Server.

Se supone que habrá unos 180 usuarios accediendo al servidor. En mi contra,
se achaca que el rendimiento de SQL Server bajará si todos los usuarios
acceden a una misma base de datos, e incluso, a una misma vista. Yo creo que
no es así, que el rendimiento del servidor no depende de "donde" accedas.
Cabe decir que no se hacen bloqueos de tablas ni de registros ( no es
necesario ) así que, no puede darse el caso de quedar todo "colgado".

¿Cuál os parece más acertado y por qué?

Gracias a todos


Xavi
 

Leer las respuestas

#1 Carlos Sacristan
21/09/2004 - 09:39 | Informe spam
Apoyo tu propuesta, Xavi. Creo que la complicación que supone tener que
replicar los datos comunes a distintas bases de datos únicamente por el
tamaño que podría tener una sola no compensa la ventaja de tener los datos
repartidos por bases de datos independientes por departamento.

El rendimiento no tiene porqué bajar por el simple hecho de que todos
los usuarios accedan a las mismas páginas de datos, siempre y cuando no
existan bloqueos exclusivos (y como has comentado que van a ser tablas de
consultas esto no va a suceder nunca)

Si las tablas están bien indexadas tampoco tiene que suponer un problema
el que sean grandes, así que por eso no te tienes que preocupar.

El número de usuarios no es indicativo de la carga que puede tener un
servidor. Puede darse el caso de que se conecten a la misma base de datos
miles de usuarios y sin embargo éstos le supongan un número de transacciones
por segundo muy bajo. En realidad, es esto lo que hay que tener en cuenta a
la hora de dimensionar un servidor: los picos de tps que pueda llegar a
tener (hay un capítulo muy interesante al respecto en el libro "A fondo SQL
Server 2000")


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Xavi" escribió en el mensaje
news:
Hola a todos.

Mi empresa está subdividida por departamentos. Cada departamento crea sus
propios albaranes. Entre ellos no existe ninguna relación; es decir, los
albaranes de un departamento sólo los ve ese departamento. Se crea un


modelo
de datos relacional y se propone el siguiente modelo:

a) Todos los departamentos compartirán un mismo servidor.
b) Cada departamento tendrá una base de datos independiente con una


"copia"
del modelo de datos propuesto.
c) Los datos que sean comunes a todos los departamentos estarán en otra


base
de datos y serán replicados en cada una de las bases de datos.

La empresa consta de unos 50 departamentos. Se supone que el número de
albaranes crece bastante rápido y de esta forma, se supone que se optimiza
el acceso a ellos. Igualmente cada base de datos trabajará con vistas
particionadas ya que el número de albaranes es demasiado grande.

Mi propuesta es la de hacer que todos los departamentos estén en una misma
base de datos. Con esto creo que el modelo será más puro, más escalable y
óptimo. Es cierto que las tablas particionadas de albaranes serán 50 veces
más grandes pero no creo que sea ese problema para SQL Server.

Se supone que habrá unos 180 usuarios accediendo al servidor. En mi


contra,
se achaca que el rendimiento de SQL Server bajará si todos los usuarios
acceden a una misma base de datos, e incluso, a una misma vista. Yo creo


que
no es así, que el rendimiento del servidor no depende de "donde" accedas.
Cabe decir que no se hacen bloqueos de tablas ni de registros ( no es
necesario ) así que, no puede darse el caso de quedar todo "colgado".

¿Cuál os parece más acertado y por qué?

Gracias a todos


Xavi


Preguntas similares