En el Firebird se llaman vistas a las consultas (SELECTs) que se guardan dentro de la Base de Datos.

¿Y por qué se guardan los SELECTs dentro de la Base de Datos?

Las ventajas son:

  • Mayor rapidez para obtener los resultados
  • Mayor seguridad en los datos
  • Confianza en que el SELECT que escribiste es correcto y funciona

La mayor rapidez se debe a que al estar las vistas compiladas dentro de la Base de Datos son mucho más rápidas que los SELECTs equivalentes.

La mayor seguridad se debe a que si a los usuarios solamente se les otorgan derechos sobre las vistas pero no sobre las tablas usadas en esas vistas, dichos usuarios no podrán ni ver ni alterar el contenido de esas tablas, solamente verán lo que en la vista se les permite que vean y nada más.

Y la mayor confianza es que si escribes un SELECT con tu lenguaje de programación, dicho SELECT podría tener algún error (por ejemplo, usas una columna que no existe o una tabla que no existe) en cambio esos errores nunca lo tendrás con una vista porque no podrás grabar en tu Base de Datos una vista que tenga errores.

Si un usuario ejecutará la misma consulta frecuentemente, lo recomendable es que sea a través de una vista ya que así se ganará en rapidez, en seguridad y en confianza.

Las vistas se usan exactamente igual a como se usan las tablas dentro de los SELECTs, para el Firebird una vista es lo mismo que una tabla. Por ejemplo, podrías escribir:

Listado 1.

SELECT
   *
FROM
   MiTabla

o podrías escribir:

Listado 2.

SELECT
   *
FROM
   MiVista

y mientras que en el primer caso obtienes los datos de una tabla y en el segundo caso obtienes los datos de una vista, para el Firebird son la misma cosa.

A la vista la usas exactamente igual a como usarías una tabla. En cualquier lugar donde puedes escribir el nombre de una tabla también puedes escribir el nombre de una vista.

El único cuidado que debes tener cuando creas una vista es el siguiente: dentro de una vista jamás debes escribir la cláusula ORDER BY ya que si lo haces tu vista será extremadamente lenta. Fuera de eso, es lo mismo que una tabla. Puedes tener perfectamente la cláusula ORDER BY afuera de la vista pero nunca adentro de las vista. O sea que esto sí es admisible:

Listado 3.

SELECT
   *
FROM
   MiVista
ORDER BY
   MiColumna1

porque el ORDER BY está afuera de la vista, entonces se lo puede usar sin problemas, está todo ok.

Resumiendo:

  • Una vista es una consulta (un SELECT) que se guarda dentro de la Base de Datos
  • Las ventajas de crear vistas son:
    • Mayor rapidez para obtener los resultados
    • Mayor seguridad en los datos
    • Confianza de que el SELECT es correcto y funciona bien
  • Las vistas pueden usarse en los mismos lugares en donde se usan las tablas
  • Lo único que no debes hacer en una vista es tener la cláusula ORDER BY dentro de ella

Artículos relacionados:

El índice del blog Firebird21

El foro del blog Firebird21

 

 

 

Anuncios