Estoy leyendo la Biblia de SQL Server 2008 y estoy cubriendo la sección de vistas. Pero el autor realmente no explica el propósito de las opiniones. ¿Cuál es un buen uso de las vistas? ¿Debo usarlos en mi sitio web y cuáles son los beneficios de ellos?
sql
sql-server
Luke101
fuente
fuente
Respuestas:
Otro uso que ninguna de las respuestas anteriores parece haber mencionado es la implementación más fácil de cambios en la estructura de la tabla.
Digamos que desea retirar una tabla (
T_OLD
) que contiene datos para usuarios activos y, en su lugar, usar una nueva tabla con datos similares (nombradosT_NEW
) pero que tenga datos para usuarios activos e inactivos, con una columna adicionalactive
.Si su (s) sistema (s) tiene miles de consultas que las tienen
SELECT whatever FROM T_OLD WHERE whatever
, tiene dos opciones para la implementación:1) Cold Turkey : cambie la base de datos y, al mismo tiempo, cambie, pruebe y libere numerosos fragmentos de código que contenían dicha consulta. MUY difícil de hacer (o incluso coordinar), muy arriesgado. Malo.
2) Gradual : cambie la base de datos creando la
T_NEW
tabla, soltando laT_OLD
tabla y en su lugar creando una VISTA llamadaT_OLD
que imita laT_OLD
tabla al 100% (por ejemplo, la consulta de vista esSELECT all_fields_except_active FROM T_NEW WHERE active=1
).Eso le permitiría evitar la liberación de CUALQUIER código que se selecciona actualmente
T_OLD
y realizar los cambios para migrar el códigoT_OLD
aT_NEW
su gusto.Este es un ejemplo simple, hay otros mucho más involucrados.
PD Por otro lado, probablemente debería haber tenido una API de procedimiento almacenado en lugar de consultas directas de
T_OLD
, pero ese no es siempre el caso.fuente
(Copiado del primer tutorial que apareció en una búsqueda de Google (el enlace ahora está muerto), pero tiene todos los beneficios que yo mismo habría escrito manualmente).
fuente
Algunas razones de Wikipedia :
Las vistas pueden ofrecer ventajas sobre las tablas:
fuente
Las VIEWS se pueden usar como secciones reutilizables de SELECT / CODE, que se pueden incluir en otras selecciones / consultas a las que se unirán, y usar varios filtros diferentes, sin tener que volver a crear todo el SELECT cada vez.
Esto también coloca la lógica en una sola ubicación, de modo que no tenga que cambiarla en todo el código base.
Mira esto
Elección entre procedimientos almacenados, funciones, vistas, activadores, SQL en línea
fuente
Una vista es una capa de abstracción y hace lo que hace cualquier buena capa de abstracción, incluido encapsular el esquema de la base de datos y protegerlo de las consecuencias de cambiar los detalles de implementación interna.
Es una interfaz.
fuente
Este es un uso muy común del uso de vistas para restringir una entidad según algunos criterios.
Tabla: USUARIOS contiene todos los usuarios
Ver: ACTIVE_USERS contiene todos los usuarios, excepto aquellos que están suspendidos, baneados, esperando ser activados y que no cumplen con ningún criterio que pueda elegir definir en el futuro como parte de los requisitos activos. Esto hace que no sea necesario eliminar ninguna fila de su tabla USERS si decide no hacerlo porque ACTIVE_USERS siempre puede ocultar las filas no deseadas.
De esta manera, puede usar la tabla en sus páginas de administración de usuarios, pero el resto de la aplicación puede usar ACTIVE_USERS, ya que pueden ser los únicos usuarios que deberían poder ejecutar procesos y acceder / modificar datos.
fuente
Las vistas pueden permitirle combinar datos de varias tablas diferentes y formatearlos (combinar campos, dar nombres de campo más significativos, etc.) para que sea más fácil para los usuarios finales. Son una abstracción del modelo de base de datos. También se pueden utilizar para dar a los usuarios acceso a los datos de la tabla sin darles acceso directo a la tabla en sí.
fuente
Estas son algunas de las muchas razones para usar la vista en lugar de la tabla directamente
De imexploring.com
fuente
Una pequeña lista de razones / usos comunes:
úselos para cambiar el formato o el 'aspecto' de los datos (es decir, puede unir un nombre y un apellido)
realizar cálculos u otras búsquedas de datos
desnormalizar datos (extraer datos de varias tablas en un solo lugar)
fuente
¡Las vistas son malvadas! Evítelos si es posible y utilícelos solo por el motivo mencionado por DVK: migración temporal de datos.
Debe comprender que en una base de datos con 100 tablas es difícil recordar el propósito de cada tabla. Ahora, si agrega aquí otras 300 vistas, se convertirá en un completo desastre. Los 'amantes de la vista' tienden a usar vistas anidadas y luego usan las vistas anidadas en procedimientos almacenados. ¡Personalmente trabajo ahora con una base de datos donde hay Vistas anidadas en profundidad 4 veces! Entonces, para comprender la lógica más simple de un procedimiento almacenado, primero tengo que pasar por todas las vistas.
fuente