diseño de tablas maestras

14/04/2008 - 17:57 por Abraham Uribe | Informe spam
Cordial saludos

mi inquietud es la siguiente, estoy diseñando un sistema el cual tiene
varios maestros, de estos maestros muchos tiene la estructura Codigo y
descripcion. (unos 60 por lo menos)

he pensado en agrupar todos estos maestros en una sola tabla y asi disminuir
el volumen de tablas de la base de datos.

ejemplo.

Maestros:

-ClasesVehiculo
codigo | entero | autonumerico
Descripcion | varchar

-MarcasVehiculo
codigo | entero | autonumerico
Descripcion | varchar

-CarroceriasVehiculo
codigo | entero | autonumerico
Descripcion | varchar


Agrupando estas 3 maestros el modelo seria asi:

-Maestra_Maestros
codigo | entero | autonumerico
Descripcion | varchar

-Maestras
codigo de Maestra_maestros | entero
codigo de maestra | entero | autonumerico
Descripcion | varchar

Vista del modelo

-Maestra_maestros
1 Clases de vehiculo
2 Carrocerias
3 Marca de vehiculos

-Maestras
1 1 Camion
1 2 Ttractocamion

2 1 Estacas
2 2 Articulados

3 1 Mazda
3 2 chevrolet

Mi duda es referente a la eficiencia en la recuperacion de datos, trabajar
con el modelo una sola tabla para los maestros impactara en la eficiencia de
las consultas ?

ya que obviamente cualquier consulta que tenga que obtener informacion de un
maestro tendra que consultar sobre esta tabla de maestros "agrupados" que
tendra un volumen grande de registros, que si fueran maestros individules
(o sea tabla por maetro)

Segun la experiencia de muchos de ustedes que tienen un conocimiento mas
avanzado en sql server cual podria ser la mejor opcion?


Gracias de antemano por cualquier comentario que puedan enviarme

Abraham Uribe
Medellin - Colombia

Preguntas similare

Leer las respuestas

#6 Tabla Maestra
15/07/2008 - 00:26 | Informe spam
No creo que tenga mucho que ver el tema de la normalización, ya que puedo
definir una vista lógica donde muestro cada tabla según la semántica de los
datos y sin embargo implementar una sola para contenerlos, aprovechando su
estructura similar (se me ocurre).
En términos de perfomance de consultas la diferencia es despreciable si no
es que puede incluso mejorar, debido a la distribución física de los datos y
la cantidad de registros por "tabla lógica" ya que esto depende más de la
cantidad de registros por página de datos (creo que cada página tiene 8MB) y
la indización que de la cantidad de registros de la tabla física. Un ejemplo,
si tu consulta incluye registros de 5 tablas maestras, tienes 5 accesos a
disco para cargar 1 página de 8MB (que puede estar casi vacía pero el tiempo
es el mismo que si estuviera full), pero si has implementado una tabla de
tablas esto se puede reducir a 1 o 2 accesos (5 en el peor de los casos),
dependiendo de la cantidad de datos y su distribución por supuesto.
Otra ventaja está en el diseño de la capa de datos puesto que al implementar
una sola tabla física, se reduce el número de procedimientos almacenados y
funciones de acceso a datos a 4 o 5, que sería 4 o 5 por cada tabla en el
otro caso.

La desventaja es la claridad en el código a nivel de SQL ya que puedes tener
consultas sobre TablaMaestra que no dejan claro su significado, pero esto se
salva con comentarios. Otra desventaja puede ser la validación de integridad
referencial, ya que luego podemos caer en darle un valor a un registro que
semánticamente no le corresponde y las FK no podrán detectar nada. Esto
también se puede salvar con restricciones CHECK con una sobrecarga en el caso
de inserciones (que puede no importar mucho en este tipo de tablas).

Bueno, a tenerlo en cuenta... y espero otro reply al respecto...

Rolie Solórzano Díaz
Data Consulting. Tacna-Peru



"Maxi" wrote:

Hola, antes de empezar le recomiendo que lea un poco sobre normalizacion de
bases de datos.

Yo no le recomiendo tener todo en una sola tabla!


-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida