Visión (base de datos)

En la teoría de la base de datos, una visión consiste en una pregunta almacenada accesible como una mesa virtual en una base de datos relacional o un juego de documentos en una base de datos orientada al documento formada del juego del resultado de una pregunta o mapa y reduzca funciones. A diferencia de mesas ordinarias (mesas bajas) en una base de datos relacional, una visión no forma la parte del esquema físico: es una mesa dinámica, virtual calculada o confrontada de datos en la base de datos. El cambio de los datos en una mesa cambia los datos mostrados en invocaciones subsecuentes de la visión. En algún NoSQL las visiones de bases de datos son la única manera de preguntar datos.

Las visiones pueden proporcionar ventajas a mesas:

Como las funciones (en la programación) pueden proporcionar la abstracción, por tanto los usuarios de la base de datos pueden crear la abstracción usando visiones. En otra paralela con funciones, los usuarios de la base de datos pueden manipular anidó visiones, así una visión puede agregar datos de otras visiones. Sin el uso de visiones la normalización de bases de datos encima de la segunda forma normal se haría mucho más difícil. Las visiones pueden hacer más fácil crear la descomposición de la juntura de lossless.

Como las filas en una mesa baja carecen de cualquier pedido definido, las filas disponibles a través de una visión no aparecen con ninguna clasificación de la falta. Una visión es una mesa relacional, y el modelo relacional define una mesa como un juego de filas. Ya que los juegos no se piden - por definición - las filas en una visión no se piden, tampoco. Por lo tanto, un PEDIDO POR la cláusula en la definición de visión es sin sentido. El estándar SQL no permite un PEDIDO POR la cláusula en un subescogido en una declaración de VISIÓN CREAR, como no se permite en una declaración de la MESA CREAR. Sin embargo, los datos clasificados se pueden obtener de una visión, del mismo modo como cualquier otra mesa - como la parte de una declaración de la pregunta. Sin embargo, algunos DBMS (como Oráculo y Servidor SQL) permiten que una visión sea creada con un PEDIDO POR la cláusula en una subpregunta, afectando cómo los datos se muestran.

Sólo para leer contra visiones de updatable

Los practicantes de la base de datos pueden definir visiones como sólo para leer o updatable. Si el sistema de la base de datos puede determinar la correlación inversa del esquema de visión al esquema de las mesas bajas subyacentes, entonces la visión es updatable. ENCARTE, ACTUALIZACIÓN, y SUPRIMEN operaciones se puede realizar en visiones de updatable. Las visiones sólo para leer no apoyan tales operaciones porque el DBMS no puede trazar un mapa de los cambios en las mesas bajas subyacentes. Una actualización de visión es hecha por la preservación clave.

Algunos sistemas apoyan la definición de en VEZ DE gatillos en visiones. Esta técnica permite la definición de otra lógica para la ejecución en el lugar de un encarte, actualización, o suprima la operación en las visiones. Así los sistemas de la base de datos pueden poner en práctica modificaciones de datos basadas en visiones sólo para leer. Sin embargo, un en vez del GATILLO no cambia la propiedad sólo para leer o updatable de la propia visión.

Rasgos de visión avanzados

Varios sistemas de administración de bases de datos han ampliado las visiones de subconjuntos sólo para leer de datos.

La base de datos del Oráculo introdujo el concepto de visiones materializadas: las visiones preejecutadas, no virtuales comúnmente usadas en el almacenamiento de datos. Dan una foto estática de los datos y pueden incluir datos de fuentes remotas. La exactitud de una visión materializada depende de la frecuencia o mecanismos más bien cuidados detrás de sus actualizaciones. DB2 proporciona llamadas "mesas de la pregunta materializadas" (MQTs) con el mismo objetivo. Microsoft SQL Server introducido en su versión de 2000 puso índice a visiones que sólo almacenan un índice separado de la mesa, pero no los datos enteros.

Equivalencia

Una visión es equivalente a su pregunta de la fuente. Cuando las preguntas se dirigen contra visiones, la pregunta se modifica. Por ejemplo, si allí existe una visión llamó accounts_view con el contenido así:

accounts_view:

-------------

SELECCIONE el nombre,

money_received,

money_sent,

(money_received - money_sent) COMO equilibrio,

dirección,

...

DE table_customers c

AFÍLIESE a accounts_table un

EN customer_id un = c.customer_id

</pre>

entonces la aplicación podría dirigir una pregunta simple como:

Pregunta de la muestra

------------

SELECCIONE el nombre,

equilibrio

DE accounts_view

</pre>

El RDBMS entonces toma la pregunta simple, sustituye la visión equivalente, luego envía el siguiente al optimizer:

Pregunta pretratada:

------------------

SELECCIONE el nombre,

equilibrio

DE (SELECCIONAN el nombre,

money_received,

money_sent,

(money_received - money_sent) COMO equilibrio,

dirección,

...

DE table_customers los c SE AFILIAN a accounts_table un

EN customer_id un = c.customer_id)

</pre>

De este punto en el optimizer toma la pregunta, quita la complejidad innecesaria (por ejemplo: no es necesario leer la dirección, ya que la invocación paternal no hace el uso de ello) y luego envía la pregunta al motor SQL para el procesamiento.

Véase también

Enlaces externos



Buscar