Bases de Datos - Diseño de base de datos. Una db grande o muchas pequeñas?

 
Vista:

Diseño de base de datos. Una db grande o muchas pequeñas?

Publicado por Jaro98 (1 intervención) el 09/10/2015 19:01:46
Hola amigos,

primero de todo quería decirles que recién comencé con bases de datos y quizás estoy preguntando algo muy absurdo pero busqué información sobre ello y no encontré nada.

Expongo mi situación: Supongamos que tenemos una base de datos con las siguientes columnas (variables)
0. id
1. parámetro1
2. parámetro2
3. parámetro3
4. fecha

y tenemos un cierto numero de individuos digamos N.


El programa coge esta base de datos y hace "evolucionar" los parámetros de los individuos, y esta nueva información tiene que quedar registrada. Mi idea era crear nuevas observaciones con la misma id pero cambiando el valor de los parámetros que hayan cambiado y poniendo la nueva fecha de recogida de datos.

De esta forma si tenemos que buscar la evolución de un individuo bastaría con filtrar por ID y al ordenar por fecha veriamos la evolución en los parámetros. Hasta aquí más o menos o menos todo bien, aunque quizás no sea la manera óptima de hacerlo (acepto sugerencias), todo funciona. Veo cierto problema en repetir datos que no cambian una y otra vez en el registro en vez de solo guardar los datos que cambian, pero esto no se me ocurre como modelarlo.

Mi problema viene cuando esta base de datos empieza a ser muy grande. Digamos que cada hora los datos se actualizan y la base de datos incorpora una nueva observación por cada individuo inicial (suponiendo para simplificar que el número de individuos no se incrementa con el tiempo).

En esta base de datos tengo que hacer dos tipos de consultas comúnmente.
- Buscar el historial de un individuo, filtrando por ID por ejemplo
- O por fecha, para observar los valores de todos los individuos en un momento dado

Dudo entre, por ejemplo, hacer una gran base de datos que albergue todo o separarla; digamos, por ejemplo, una base de datos por año o una base de datos por individuo. Pero en ambos casos al hacer una de las consultas tendré que abrir varias bases de datos en lugar de buscarlo todo en una.
Ejemplo:
1. Si para simplificar la gran base de datos hago una por año, cuando quiera buscar el historial de un individuo tendré que abrir tantas bases de datos como tenga para comprobar si mi individuo está ahí y coger sus datos.
2. En el caso de que cree una base de datos por individuo tendré el problema cuando quiera ver los valores de todos los individuos en una fecha determinada.

No sé si me explicado bien, pero si alguien tiene alguna idea le ruego me la comunique. Muchas gracias y si algo no ha quedado muy claro preguntadme e intentaré explicarme mejor.

Mil gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 71
Bronce
Ha mantenido su posición en Bases de Datos (en relación al último mes)
Gráfica de Bases de Datos

Diseño de base de datos. Una db grande o muchas pequeñas?

Publicado por Juan R. (52 intervenciones) el 10/10/2015 01:33:12
Buenas Jaro

Primero creo que tienes que los conceptos un poco confusos, es normal cuando comienzas, pero necesitas la base teórica afianzarla bien para tratar de explicar las cosas de la manera más clara posible.

Vamos a empezar por el principio. Lo que nos estás hablando es más bien una tabla que una Base de Datos en sí, una Base de Datos puede tener infinitas tablas (no es lo ideal, pero conozco el caso de alguna de más de 2000 tablas).

Yo lo que haría es crear dos tablas:

1) Individuos con todos los datos personales que quieras y su propio ID.

2) Actualizaciones. Esta tabla tendría todos los campos que has descrito, pero a parte le añadirías una clave externa que sería por ejemplo "ID_INDIVIDUO". De manera que así puedes meter todas las actualizaciones que necesites dentro de esta tabla sin tener que crear más Individuos con el mismo ID.

Con esto, tienes solucionado todos los problemas de las consultas. Puedes filtrar por fecha, por individuo, por individuo y fecha, ... lo que quieras y necesites. Eso sí, te aconsejaría que vayas empezando a mirar el lenguaje SQL porque es el que se suele usar para crear Bases de Datos en modo consola y, sobre todo, para hacer las consultas (sean del tipo que sean) en las BD.

Un saludo y espero haberte ayudado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar