2011-09-16 12 views

Respuesta

11

Simplifica las llamadas y proporciona una capa de direccionamiento indirecto.

Por lo tanto, si tiene una selección compleja con muchas combinaciones, puede implementarla en una vista y simplemente llamar a la vista sin necesidad de considerar todas estas uniones. A continuación, puede reutilizar esta vista.

Además, si utiliza una vista en lugar de una tabla de esta manera, en el futuro si necesita migrar una columna, puede hacerlo fácilmente y solo requerir cambios en la vista.

2

Además de los beneficios obvios que Oded mencionó, a veces puede mejorar drásticamente la velocidad usando materialized views. De wikipedia:

En un sistema de gestión de bases de datos que sigue el modelo relacional, una vista es una tabla virtual que representa el resultado de una consulta de base de datos. Cada vez que se consulta o actualiza una tabla de vista normal, el DBMS las convierte en consultas o actualizaciones en las tablas base subyacentes. Una vista materializada adopta un enfoque diferente en el que el resultado de la consulta se almacena en caché como una tabla concreta que puede actualizarse de las tablas base originales de vez en cuando.

1

Existen varias, pero creo que la principal ventaja es que las vistas son la implementación SQL de independencia de datos lógicos.

Cree una vista actualizable, y las aplicaciones que usan la vista son relativamente inmunes a los cambios en las tablas subyacentes. Cambie la estructura de las tablas subyacentes, actualice la definición de la vista y todas las aplicaciones funcionen como si nada hubiese sucedido. (En bases de datos heredadas, puede haber cientos de aplicaciones escritas en docenas de idiomas. Esta es la victoria grande.)

Otros beneficios (parafraseando Chris Fecha)

seguridad "automático" para los datos ocultos. Restrinja el acceso a las vistas y tenga un control detallado sobre quién ve qué.

Capacidad "DRY" para aplicaciones. Una vista puede proporcionar una interfaz pública simple a una instrucción SELECT compleja, por lo que las aplicaciones pueden simplemente SELECT column-list FROM my-easy-view.

Diferentes usuarios pueden ver los mismos datos de diferentes maneras.

Cuestiones relacionadas