CARRERA PROFESIONAL DE : Ingeniería de Sistemas y
Telemática
ASIGNATURA : Laboratorio
de programación III
ESTUDIANTE :
ü CHUQUIZUTA
RAMOS, Marleni
ü HERRERA
SILVA, Carlos Jhonatan
CICLO : VII
GRUPO : “A”
I.
Tema: Vistas
1.
Contenido
v Definición
Es una consulta que se presenta como una tabla
(virtual) a partir de un conjunto de tablas en una base de datos relacional.
Son un mecanismo que permite generar un
resultado a partir de un pedido (query) almacenado, y ejecutar nuevos pedidos
sobre este resultado como si fuera una tabla normal.
Una vista de base de datos es un subconjunto de
una base de datos y se basa en una consulta que se ejecuta en una o más tablas
de base de datos. Las vistas de base de datos se guardan en la base de datos
como consultas con nombre y se pueden utilizar para guardar consultas completas
que se utilizan con frecuencia.
Hay dos tipos de vistas de base de datos:
ü Las vistas dinámicas
pueden contener datos de una o dos tablas e incluir automáticamente todas las
columnas de la tabla o tablas especificadas. Las vistas dinámicas se pueden
actualizar dinámicamente cuando se crean o modifican objetos relacionados u
objetos ampliados.
ü Las vistas estáticas
pueden contener datos de varias tablas y las columnas necesarias de estas
tablas se deben especificar en las cláusulas SELECT y WHERE de la vista
estática. Las vistas dinámicas se pueden actualizar manualmente cuando se crean
o modifican objetos relacionados u objetos ampliados.
v Sintaxis
CREATE
VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ]
[
WITH <view_attribute> [ ,...n ] ]
AS
select_statement
[
WITH CHECK OPTION ] [ ; ]
<view_attribute>
::=
{
[ ENCRYPTION ]
[ SCHEMABINDING ]
[ VIEW_METADATA ] }
schema_name
Es
el nombre del esquema al que pertenece la vista.
view_name
Es el nombre de la vista. Los nombres de las
vistas deben cumplir las reglas de los identificadores. La especificación del
nombre del propietario de la vista es opcional.
column
Es el nombre que se va a utilizar para una
columna en una vista. Solo se necesita un nombre de columna cuando una columna
proviene de una expresión aritmética, una función o una constante; cuando dos o
más columnas puedan tener el mismo nombre, normalmente debido a una
combinación; o cuando una columna de una vista recibe un nombre distinto al de
la columna de la que proviene. Los nombres de columna se pueden asignar también
en la instrucción SELECT.
select_statement
Es la instrucción SELECT que define la vista.
Dicha instrucción puede utilizar más de una tabla y otras vistas. Se necesitan
permisos adecuados para seleccionar los objetos a los que se hace referencia en
la cláusula SELECT de la vista que se ha creado.
Una
vista no tiene por qué ser un simple subconjunto de filas y de columnas de una
tabla determinada. Es posible crear una vista que utilice más de una tabla u
otras vistas mediante una cláusula SELECT de cualquier complejidad.
v Administración de Vistas (Creación,
Modificación y Eliminación)
Creación:
La cláusula CREATE VIEW permite la creación de
vistas. La cláusula asigna un nombre a la vista y permite especificar la
consulta que la define. Su sintaxis es:
CREATE
VIEW id_vista [(columna,…)]
AS
especificación_consulta;
Opcionalmente se puede asignar un nombre a cada
columna de la vista. Si se especifica, la lista de nombres de las columnas debe
de tener el mismo número de elementos que el número de columnas producidas por
la consulta. Si se omiten, cada columna de la vista adopta el nombre de la
columna correspondiente en la consulta. Existen dos casos en los que es
obligatoria la especificación de la lista de columnas:
1. Cuando
la consulta incluye columnas calculadas
2. Cuando
la consulta produce nombres idénticos.
Según
el propósito con el que se organizan las vistas, pueden clasificarse en los
siguientes tipos:
A)
Horizontales
o por Restricción
Son las que restringen el acceso de un usuario
a únicamente un conjunto de filas de una tabla.
B)
Verticales
o por proyección
Son aquellas que restringen el acceso de un
usuario sólo a ciertas columnas de una tabla.
C)
Subconjuntos
fila / columna
Lo más habitual es crear vistas con parte de
las filas y parte de las columnas de una tabla
D)
Agrupados
Son vistas que incluyen una cláusula GROUP BY
en la consulta especificada. Estas vistas incluyen siempre una lista de nombres
de columna.
E)
Compuestas
Son vistas creadas a partir de los datos de dos
o más tablas. Presentan los datos como una única tabla virtual. Al igual que
las anteriores se utilizan frecuentemente para facilitar el manejo de consultas
complejas de uso frecuente en la base.
Modificación
Para que una vista se pueda actualizar debe
existir una relación directa entre las filas y columnas de la vista y las de la
tabla fuente. Según el estándar ANSI, se puede actualizar a través de las
vistas si la consulta que la define, satisface las siguientes restricciones:
1ª
- No especifica DISTINCT
2ª
- FROM debe especificar una única tabla
3ª
- La lista de selección no puede contener expresiones, columnas calculadas o
funciones de columna, solo referencias a columnas simples.
4ª
- WHERE no debe incluir subconsultas.
5ª
- No debe incluir ni GROUP BY ni HAVING.
Eliminación
Se
hace con
DROP
VIEW id_vista
v Ejemplos
Por ejemplo, si tenemos unas tablas que
representan autores y libros, y queremos hacer un listado plano de libros y sus
autores, podemos ejecutar un query que haga una junta (join) entre estas dos
tablas. Pero si posteriormente queremos pedir solo unas líneas de este
resultado a partir de otro filtro, vamos a tener que re-ejecutar el query
completo, agregando nuestro filtro. Obviamente es posible, pero también implica
repetir operaciones anteriores. En el caso de tener pedidos complejos, esto
puede resultar en una pérdida de eficiencia grande, y mucho trabajo adicional
para el desarrollador.
Vista de "empleados" denominada
"vista_empleados_ingreso" que almacena la cantidad de empleados por
año:
create
view vista_empleados_ingreso (fecha,cantidad)
as
select
datepart(year,fechaingreso),count(*)
from
empleados
group
by datepart(year,fechaingreso)
Creamos la vista "vista_empleados",
que es resultado de una combinación en la cual se muestran 4 campos:
create
view vista_empleados as
select
(apellido+' '+e.nombre) as nombre,sexo,
s.nombre as seccion, cantidadhijos
from
empleados as e
join
secciones as s
on
codigo=sección
Definir una vista, que muestre únicamente
clientes que tienen más de 30000 € en pedidos registrados actualmente.2
CREATE VIEW clienTresmil
ASSELECT * FROM CLIENTESWHERE 30000 <
(SELECT SUM (importe) FROM
PEDIDOSWHERE num_clie = clie)
Vista sobre la tabla de usuarios para el Dpto.
de Contabilidad, en el que se incluyan solamente el DNI, el código de banco y paga
banco.
CREATE VIEW vistaUser ASSELECT DNI,
codigo_banco, paga_banco FROM USUARIOS
2.
Resumen
Vistas:
Datos es un subconjunto de una
base de datos y se basa en una consulta que se ejecuta en una o más tablas de
base de datos.
Hay dos tipos de vistas de
base de datos:
ü Las vistas dinámicas: pueden
contener datos de una o dos tablas e incluir automáticamente todas las columnas
de la tabla o tablas especificadas. Las vistas dinámicas se pueden actualizar
dinámicamente cuando se crean o modifican objetos relacionados u objetos
ampliados.
ü Las vistas estáticas:
pueden contener datos de varias tablas y las columnas necesarias de estas
tablas se deben especificar en las cláusulas SELECT y WHERE de la vista
estática. Las vistas dinámicas se pueden actualizar manualmente cuando se crean
o modifican objetos relacionados u objetos ampliados.
v Sintaxis
CREATE
VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ]
[ WITH
<view_attribute> [ ,...n ] ]
AS
select_statement
[ WITH
CHECK OPTION ] [ ; ]
<view_attribute>
::=
{
[ ENCRYPTION ]
[ SCHEMABINDING ]
[ VIEW_METADATA ] }
v Administración de Vistas (Creación,
Modificación y Eliminación)
Creación:
CREATE
VIEW id_vista [(columna,…)]
AS
especificación_consulta;
Existen dos casos en los que es obligatoria la
especificación de la lista de columnas:
1. Cuando
la consulta incluye columnas calculadas
2. Cuando
la consulta produce nombres idénticos.
Según
el propósito con el que se organizan las vistas, pueden clasificarse en los
siguientes tipos:
A.
Horizontales
o por Restricción
Son las que restringen el acceso de un usuario
a únicamente un conjunto de filas de una tabla.
B.
Verticales
o por proyección
Son aquellas que restringen el acceso de un
usuario sólo a ciertas columnas de una tabla.
C.
Subconjuntos
fila / columna
Lo más habitual es crear vistas con parte de
las filas y parte de las columnas de una tabla
D.
Agrupados
Son vistas que incluyen una cláusula GROUP BY
en la consulta especificada..
E.
Compuestas
Son vistas creadas a partir de los datos de dos
o más tablas.
Modificación
1ª
- No especifica DISTINCT
2ª - FROM debe especificar una única tabla
3ª - La lista de selección no puede contener
expresiones, columnas calculadas o funciones de columna, solo referencias a
columnas simples.
4ª - WHERE no debe incluir subconsultas.
5ª - No debe incluir ni GROUP BY ni HAVING.
Eliminación
Se
hace con
DROP
VIEW id_vista
3.
Summary
Views:
Data
is a subset of a database and is based on a query that runs on one or more
database tables.
There
are two types of database views:
ü Dynamic views: can
contain data from one or two tables and automatically include all the columns
of the table or tables specified. Dynamic views can be updated dynamically when
related objects or extended objects are created or modified.
ü Static views: they
can contain data from several tables and the necessary columns of these tables
must be specified in the SELECT and WHERE clauses of the static view. Dynamic
views can be updated manually when related objects or extended objects are
created or modified.
v Syntax
CREATE
VIEW [schema_name. ] view_name [(column [, ... n])]
[WITH
<view_attribute> [, ... n]]
AS
select_statement
[WITH
CHECK OPTION] [; ]
<view_attribute>
:: =
{
[ENCRYPTION]
[SCHEMABINDING]
[VIEW_METADATA]}
v Administration of Views (Creation,
Modification and Elimination)
Creation:
CREATE
VIEW view_id [(column, ...)]
AS
query_ specification;
There
are two cases in which the specification of the list of columns is mandatory:
1.
When the query includes calculated columns
2.
When the query produces identical names.
According to the purpose with which the views
are organized, they can be classified into the following types:
A.
Horizontal or by Restriction
They are those that restrict a user's access to
only a set of rows in a table.
B.
Vertical or projection
Are those that restrict a user's access only to
certain columns of a table.
C.
Subsets row / column
The most common is to create views with part of
the rows and part of the columns of a table
D.
Grouped
These are views that include a GROUP BY clause
in the specified query ..
E.
Composite
These
are views created from the data of two or more tables.
Modification
1st - Does not specify DISTINCT
2nd - FROM must specify a single table
3rd - The selection list can not contain
expressions, calculated columns or column functions, only references to simple
columns.
4th - WHERE should not include subqueries.
5th - You must not include either GROUP BY or
HAVING.
Elimination
It
is made with
DROP
VIEW id_view
4.
Recomendaciones
ü Recomendamos
el uso de Vistas en sql server, para mostrar registros de manera más rápida,
además las consultas con soluciones complejas se simplifican.
ü Además
permiten personalizar la base para los distintos usuarios, de forma que
presenten los datos con una estructura
lógica para los mismos.
5.
Conclusiones
ü Como
conclusión decimos que una vista se especifica a través de una expresión de
consulta (una sentencia SELECT) que la calcula y que puede realizarse sobre una
o más tablas. Sobre un conjunto de tablas relacionales se puede trabajar con un
número cualquiera de vistas.
ü También
las vistas en sql server tienen la misma estructura que una tabla: filas y
columnas. La única diferencia es que sólo se almacena de ellas la definición,
no los datos.
6.
Apreciación del Equipo
ü En
conjunto podemos apreciar que las vistas pueden emplearse como mecanismos de
seguridad, que permiten a los usuarios obtener acceso a los datos por medio de
la vista, pero no les conceden el permiso de obtener acceso directo a las
tablas base subyacentes de la vista.
ü Las
vistas en sql server es un código ya depurado y que no requiere pasar por la
validación de sintaxis del servidor de base de datos, por lo que resulta más
rápida su ejecución. Es altamente efectiva para consultas repetitivas.
7.
Glosario de Términos
·
Base
subyacentes: Es un término utilizado para describir el
código unido al código creado por un procesador XAML cuando se compila una
página XAML en una aplicación.
·
Tabla
virtual: Estas segmentaciones pueden ser verticales (un subconjunto
de columnas basado en una selección de columnas elegidas), horizontales (un
conjunto explícito de filas o de registros basado en una expresión condicional)
o ambas opciones.
·
Clausula:
Conjunto
de palabras que forman un sentido completo; incluye una proposición o diversas
proposiciones íntimamente relacionadas entre sí.
·
Base
de datos: es un conjunto de datos pertenecientes a un mismo contexto
y almacenados sistemáticamente para su posterior uso
·
Filtro: se
refiere a un programa diseñado para controlar qué contenido se permite mostrar,
especialmente para restringir el acceso a ciertos materiales de la Web.
·
Sintaxis: Modo
de combinarse y ordenarse las palabras y las expresiones dentro del discurso.
8.
Bibliografía o Linkografía





