NORMALIZAR tabla, dividirla entre tres y usar una vista como una tabla

27/07/2004 - 16:32 por Osvaldo Bisignano | Informe spam
Hola a todos.
Tengo una tabla y quiero normalizarla. En el plan de normalizacion que tengo
por ahora, me quedarían tres tablas separadas. Actualmente esta tabla
desnormalizada (llamada RUBROS) esta siendo utilizada en la empresa. Se me
ocurrió que si divido la tabla en tres,y creo una vista con el mismo nombre
(Rubros) , podré utiliza esa vista como una tabla normal sin afectar los
stored procedures y triggers existentes.

Ya sé que una vista no es actualizable, pero digo... pensando simplemente en
consultas... hay algun otro inconveniente que pueda surgir? Se me ocurre por
ejemplo si todas las clausulas SQL Select sirven sobre una vista. Que
alternativas se les ocurren?

Muchas Gracias
Osvaldo Bisignano
 

Leer las respuestas

#1 Javier Loria
27/07/2004 - 17:52 | Informe spam
Hola:
Muy buena forma de pensar, y vas por excelente camino.
Las vistas si son actualizables, pero no pueden actualizar
simultaneamente 2 tablas, ni los valores calculados. Puedes crear un TRIGGER
tipo INSTEAD OF que realize las insercciones en las tablas respectivas. Se
complica muchisimo si permites actualizaciones de Llaves Primarias.
Si vas a reemplazar la tabla con una vista, manten el nombre para que el
codigo dependiente no se dane, PERO DEBES RECOMPILAR TODOS LOS
PROCEDIMIENTOS Y TRIGGERS asociados con la tabla. Hace aproximadamente 1 ano
estuve sufriendo porque el SQL 2000 no vio el cambio del nombre
adecuadamente y me producia los errores mas raros.
Si necesitas te puedo enviar el codigo para recompilar los SP's y
Triggers dependientes.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Osvaldo Bisignano escribio:
Hola a todos.
Tengo una tabla y quiero normalizarla. En el plan de normalizacion
que tengo por ahora, me quedarían tres tablas separadas. Actualmente
esta tabla desnormalizada (llamada RUBROS) esta siendo utilizada en
la empresa. Se me ocurrió que si divido la tabla en tres,y creo una
vista con el mismo nombre (Rubros) , podré utiliza esa vista como una
tabla normal sin afectar los stored procedures y triggers existentes.

Ya sé que una vista no es actualizable, pero digo... pensando
simplemente en consultas... hay algun otro inconveniente que pueda
surgir? Se me ocurre por ejemplo si todas las clausulas SQL Select
sirven sobre una vista. Que alternativas se les ocurren?

Muchas Gracias
Osvaldo Bisignano

Preguntas similares