Consejo sobre Estructura y Relaciones uno a uno 1 a 1

10/08/2006 - 13:49 por GenioMaestro | Informe spam
Hola a todos:

Tengo una duda sobre la estructura de la Base de Datos de mi Sistema de
Calculo Bursatil. Os cuento:

Sobre estructura de datos, normalizacion, entidades y limites de Sql Server
creo saber bastante.

Al diseñar la estructura tengo tres entidades o tablas principales
clarisimas, con relacion uno a muchos, que son Mercados, Valores de esos
Mercados, y Cotizaciones de esos Valores. Hasta aqui bien, todo claro.

Ahora veamos el resto. Tengo Calculos de esas Cotizaciones en relacion uno a
uno (1 a 1), y en la siguiente fase tengo Análisis de esas Cotizaciones,
tambien en relacion uno a uno (1 a 1), y luego Proyecciones de esas
Cotizaciones, tambien en relacion uno a uno (1 a 1).

Por análisis de entidades, son tablas distintas, pero por análisis de
normalizacion, deberia estar en una sola tabla, ya que se relacionan uno a
uno (1 a 1).

El volumen de datos no es grande, porque casi todos los campos son money y
tengo unos 50 o 60 campos en Calculos, 10 o 15 en Analisis y casi 300 en
Proyecciones. Lejos del limite de 1024 campos por tabla, que segun creo
permite Sql Server, y creo que tambien lejos de los 8 k'as por fila.

Pero eso si, esoy hablando de millones y millones de registros, voy por 25
millones y puedo llegar a 75 o 125 millones de registros.

Hacerlo en una sola tabla elimina todos los join de millones de registros, y
los correspondientes indices y datos duplicados para unir las tablas, pero
una sola mega tabla con cientos de campos y millones de registros me da
miedo, sobre todo en rendimiento, estabilidad , necesidad de particionar y
demas.

Según vuestra experiencia, cual sería la mejor manera de estructurarlo, en
una tabla o en tres. Y los pros y los contras.

Gracias.
 

Leer las respuestas

#1 Alejandro Mesa
10/08/2006 - 14:19 | Informe spam
GenioMaestro,

si hablamos de normalizacion, entonces una sola tabla. Hablemos ahora de la
practica, que tan frecuente accesas la informacion de calculos y analisis
respecto a la informacion de cotizaciones?. Si la frecuencia es menor,
entonces tendras ventaja al particionar la tabla verticalmente, cuando
hablamos de lectura.


AMB

"GenioMaestro" wrote:

Hola a todos:

Tengo una duda sobre la estructura de la Base de Datos de mi Sistema de
Calculo Bursatil. Os cuento:

Sobre estructura de datos, normalizacion, entidades y limites de Sql Server
creo saber bastante.

Al diseñar la estructura tengo tres entidades o tablas principales
clarisimas, con relacion uno a muchos, que son Mercados, Valores de esos
Mercados, y Cotizaciones de esos Valores. Hasta aqui bien, todo claro.

Ahora veamos el resto. Tengo Calculos de esas Cotizaciones en relacion uno a
uno (1 a 1), y en la siguiente fase tengo Análisis de esas Cotizaciones,
tambien en relacion uno a uno (1 a 1), y luego Proyecciones de esas
Cotizaciones, tambien en relacion uno a uno (1 a 1).

Por análisis de entidades, son tablas distintas, pero por análisis de
normalizacion, deberia estar en una sola tabla, ya que se relacionan uno a
uno (1 a 1).

El volumen de datos no es grande, porque casi todos los campos son money y
tengo unos 50 o 60 campos en Calculos, 10 o 15 en Analisis y casi 300 en
Proyecciones. Lejos del limite de 1024 campos por tabla, que segun creo
permite Sql Server, y creo que tambien lejos de los 8 k'as por fila.

Pero eso si, esoy hablando de millones y millones de registros, voy por 25
millones y puedo llegar a 75 o 125 millones de registros.

Hacerlo en una sola tabla elimina todos los join de millones de registros, y
los correspondientes indices y datos duplicados para unir las tablas, pero
una sola mega tabla con cientos de campos y millones de registros me da
miedo, sobre todo en rendimiento, estabilidad , necesidad de particionar y
demas.

Según vuestra experiencia, cual sería la mejor manera de estructurarlo, en
una tabla o en tres. Y los pros y los contras.

Gracias.




Preguntas similares