1
v EQUIPO : Investigation Systems
Estudiantes : Aguilar Rafael Jaime
Diaz Guerrero Imer Hobet
CURSO :
Base de Datos II
TEMA :
VISTAS
DOCENTE :
Marco Aurelio Porro Chulli
. 1. Contenido
DEFINICIÓN:
Una vista es una consulta que se presenta como
una tabla (virtual) a partir de un conjunto de tablas en una base de datos
relacional.
Las vistas 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. Los datos que se recuperan mediante una consulta a una vista se
presentarán igual que los de una tabla. De hecho, si no se sabe que se está
trabajando con una vista, nada hace suponer que es así. Al igual que sucede con
una tabla, se pueden insertar, actualizar, borrar y seleccionar datos en una
vista. Aunque siempre es posible seleccionar datos de una vista, en algunas
condiciones existen restricciones para realizar el resto de las operaciones
sobre vistas.
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.
SINTAXIS:
Ø
En el caso de una sola tabla:
CREATE VIEW [Nombre de la vista]
AS
SELECT (Aquí se especifican todos los campos a mostrar) FROM [Nombre de
la tabla]
GO
Ø
En el caso varias tablas:
CREATE
VIEW [Nombre de la vista]
AS (Aquí
se especifican todos los campos a mostrar) FROM [Nombre de la 1° tabla] INNER
JOIN
INNER
JOIN [NOMBRE DE LA 2° TABLA] ON [Nombre del campo].[NOMBRE DE LA 1°
TABLA]=[Nombre del campo].[NOMBRE DE LA 2° TABLA]
ADMINISTRACIÓN DE VISTAS
(CREACIÓN, MODIFICACIÓN Y ELIMINACIÓN)
Ø CREAR
Limitaciones y restricciones
·
Una vista solo se puede crear en la base de
datos actual.
·
Una vista puede tener un máximo de 1.024
columnas.
Seguridad
Se
necesita el permiso CREATE VIEW en la base de datos y el permiso ALTER en el
esquema en que se crea la vista.
Para
crear una vista mediante el Diseñador de consultas y vistas
1. En
el Explorador de objetos,
expanda la base de datos donde desea crear la nueva vista.
2. Haga
clic con el botón derecho en la carpeta Vistas y después haga clic en Nueva vista.
3. En el
cuadro de diálogo Agregar tabla,
seleccione el elemento o elementos que desea incluir en la nueva vista desde
una de las siguientes pestañas: Tablas, Vistas, Funciones y Sinónimos.
4. Haga
clic en Agregar y, a
continuación, en Cerrar.
5. En
el Panel de diagrama, seleccione
las columnas u otros elementos que desee incluir en la nueva vista.
6. En
el Panel de criterios,
seleccione criterios de ordenación o filtro adicionales para las columnas.
7. En el
menú Archivo, haga clic
en Guardar nombre de vista.
8. En el
cuadro de diálogo Elegir nombre,
especifique un nombre para la nueva vista y haga clic en Aceptar
CREATE VIEW HumanResources.EmployeeHireDate
AS
SELECT p.FirstName, p.LastName, e.HireDate
FROM HumanResources.Employee AS e JOIN Person.Person
AS p
ON e.BusinessEntityID = p.BusinessEntityID ;
Ø MODIFICAR:
Limitaciones y restricciones
·
La modificación de una vista no afecta a los
objetos dependientes, como pueden ser los procedimientos almacenados o los
desencadenadores, a menos que la definición de la vista cambie de tal modo que
el objeto dependiente deje de ser válido.
·
Si una vista que está actualmente en uso se
modifica mediante ALTER VIEW, el Motor de base de datos impone un
bloqueo exclusivo de esquema sobre la vista. Cuando se concede el bloqueo,
y no hay usuarios activos de la vista, el Motor de base de
datos elimina todas las copias de la vista de la caché de
procedimientos. Los planes existentes que hacen referencia a la vista
permanecen en la caché, pero se vuelven a compilar cuando se llaman.
·
ALTER VIEW se puede aplicar a vistas indizadas;
no obstante, quita incondicionalmente todos los índices de la vista.
Seguridad
Para
ejecutar ALTER VIEW, como mínimo, se necesita el permiso ALTER en OBJECT.
Pasos:
1. En
el Explorador de objetos, haga
clic en el signo más situado junto a la base de datos donde se encuentra la
vista y, a continuación, haga clic en el signo más situado junto a la
carpeta Vistas.
2. Haga
clic con el botón secundario en la vista que desea modificar y seleccione Diseño.
3. En el
panel de diagrama del Diseñador de consultas, realice los cambios a la vista en
una o más de las siguientes maneras:
a) Active
o desactive las casillas de cualquier elemento que desee agregar o quitar.
b) Haga
clic con el botón secundario en el panel de diagrama, seleccione Agregar tabla y, a continuación,
seleccione las columnas adicionales que desea agregar a la vista en el cuadro
de diálogo Agregar tabla.
c) Haga
clic con el botón secundario en la barra de título de la tabla que desea quitar
y seleccione Quitar.
4.
En el menú Archivo, haga clic
en Guardarview name.
ALTER
VIEW HumanResources.EmployeeHireDate
AS
SELECT p.FirstName, p.LastName, e.HireDate
FROM HumanResources.Employee AS e JOIN Person.Person
AS p
ON e.BusinessEntityID = p.BusinessEntityID
WHERE HireDate < CONVERT(DATETIME,'20020101',101)
;
GO
Ø ELIMINAR:
a) Cuando
se quita una vista, la definición y otra información de la vista se elimina del
catálogo del sistema. También se eliminan todos los permisos de la vista.
b) Las
vistas de una tabla que se ha quitado mediante DROP TABLE se deben quitar
explícitamente con DROP VIEW.
c) Cuando
se ejecuta en una vista indizada, DROP VIEW quita automáticamente todos los
índices de una vista. Para mostrar todos los índices de una vista
Sintaxis:
DROP VIEW [ IF
EXISTS ] [ schema_name . ] view_name [ ...,n ] [ ; ]
Ejemplos:
CREACIÓN
1. Listado general de alumnos con su apoderado y especialidad permita
modificar datos aplicados a los alumnos de la Especialidad de Administración y Gastronomía.
CREATE VIEW V_Alumnos_Apo_Espe
as
select A.codalumno,A.nombre,A.direccion,A.fecnac,A.fecing,A.sexo,A.nombre as Apoderado,E.nombreespe as Especialidad
from alumno A inner join Especialidad E on A.idespe=E.codespe inner join Apoderado AP on A.idapoderado=AP.codapoderado
where E.nombreespe='Administración' or E.nombreespe='Gastronomía'
WITH CHECK OPTION
Go
2. Listar los 3 primeros recibos por su monto.
CREATE VIEW V_Recibos_Monto
as
select Top 3 R.nrecibo,SUM(RP.monto) AS Numproformas from ReciboPago R inner join DetalleRecibo RP on R.nrecibo=RP.idrecibo
group by R.nrecibo order by SUM(RP.monto) desc
Go
3. Listado de los conceptos con su respectivo monto cobrado.
CREATE VIEW V_Concepto_MontoCobrado
AS
select C.nombreconcepto,sum(DR.monto) as [Monto Cobrado] from ReciboPago R inner join DetalleRecibo DR on R.nrecibo=DR.idrecibo inner join Alumno A on
R.idalumno=A.codalumno inner join Concepto C on DR.idconcepto=C.codconcepto
group by C.nombreconcepto
GO
MODIFICACIÓN
ALTER VIEW
V_Concepto_MontoCobrado
AS
select C.nombreconcepto,sum(DR.monto) as [Monto Cobrado] from ReciboPago R inner join DetalleRecibo DR on R.nrecibo=DR.idrecibo inner join Alumno A on
R.idalumno=A.codalumno inner
join Concepto C on DR.idconcepto=C.codconcepto
group by C.nombreconcepto
GO
ALTER VIEW V_Apoderados
WITH ENCRYPTION
as
SELECT A.codapoderado,A.nombre,A.direccion,A.parentesco from Apoderado A
WHERE A.telefono LIKE '47%' OR A.telefono LIKE '50%'
GO
ALTER VIEW V_Alumnos_Especialidad_Edad
as
select A.codalumno,A.nombre,A.direccion,A.fecnac,A.fecing,A.sexo,E.nombreespe as Especialidad, (year(getdate())-year(a.fecnac)) as Edad
from alumno A inner join Especialidad E on A.idespe=E.codespe inner join Apoderado AP on A.idapoderado=AP.codapoderado
where
(year(getdate())-year(a.fecnac))=17 or (year(getdate())-year(a.fecnac)=18)
or (year(getdate())-year(a.fecnac)=19)
GO
ELIMINACIÓN
DROP VIEW
V_Concepto_MontoCobrado
DROP VIEW
V_Apoderados
DROP VIEW
V_Alumnos_Especialidad_Edad
2. Resumen
DEFINICIÓN:
Una vista es una consulta que se presenta como
una tabla (virtual) a partir de un conjunto de tablas en una base de datos
relacional.
Las vistas 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.
SINTAXIS
CREATE VIEW [Nombre de la vista]
AS
SELECT (Aquí se especifican todos los
campos a mostrar) FROM [Nombre de la tabla]
GO
ADMINISTRACIÓN DE VISTAS (CREACIÓN,
MODIFICACIÓN Y ELIMINACIÓN)
CREACIÓN
CREATE VIEW HumanResources.EmployeeHireDate
AS
SELECT p.FirstName, p.LastName, e.HireDate
FROM HumanResources.Employee AS e JOIN Person.Person
AS p
ON e.BusinessEntityID = p.BusinessEntityID ;
MODIFICACIÓN
ALTER
VIEW HumanResources.EmployeeHireDate
AS
SELECT p.FirstName, p.LastName, e.HireDate
FROM HumanResources.Employee AS e JOIN Person.Person
AS p
ON e.BusinessEntityID = p.BusinessEntityID
WHERE HireDate < CONVERT(DATETIME,'20020101',101)
;
GO
ELIMINACIÓN
DROP VIEW [ IF
EXISTS ] [ schema_name . ] view_name [ ...,n ] [ ; ]
EJEMPLOS
CREACIÓN
1. Listado general de alumnos
con su apoderado y especialidad permita modificar datos aplicados a los alumnos
de la Especialidad de Administración y Gastronomía.
CREATE VIEW V_Alumnos_Apo_Espe
as
select A.codalumno,A.nombre,A.direccion,A.fecnac,A.fecing,A.sexo,A.nombre as Apoderado,E.nombreespe as Especialidad
from alumno A inner join Especialidad E on A.idespe=E.codespe inner join Apoderado AP on A.idapoderado=AP.codapoderado
where E.nombreespe='Administración' or E.nombreespe='Gastronomía'
WITH CHECK
OPTION
Go
MODIFICACIÓN
ALTER VIEW V_Concepto_MontoCobrado
AS
select C.nombreconcepto,sum(DR.monto) as [Monto Cobrado] from ReciboPago R inner join DetalleRecibo DR on R.nrecibo=DR.idrecibo inner join Alumno A on
R.idalumno=A.codalumno inner
join Concepto C on DR.idconcepto=C.codconcepto
group by C.nombreconcepto
GO
ELIMINACIÓN
DROP VIEW
V_Concepto_MontoCobrado
3.
SUMMARY
DEFINITION:
A
view is a query that is presented as a (virtual) table from a set of tables in
a relational database.
The
views have the same structure as a table: rows and columns. The only difference
is that only the definition is stored, not the data.
SYNTAX
CREATE
VIEW [Name of the view]
ACE
SELECT
(Here all the fields to be displayed are specified) FROM [Name of the table]
GO
ADMINISTRATION OF VIEWS
(CREATION, MODIFICATION AND DISPOSAL)
CREATION
CREATE
VIEW HumanResources.EmployeeHireDate
ACE
SELECT
p.FirstName, p.LastName, e.HireDate
FROM
HumanResources.Employee AS and JOIN Person.Person AS p
ON
e.BusinessEntityID = p.BusinessEntityID;
MODIFICATION
ALTER
VIEW HumanResources.EmployeeHireDate
ACE
SELECT
p.FirstName, p.LastName, e.HireDate
FROM
HumanResources.Employee AS and JOIN Person.Person AS p
ON
e.BusinessEntityID = p.BusinessEntityID
WHERE
HireDate <CONVERT (DATETIME, '20020101', 101);
GO
ELIMINATION
DROP
VIEW [IF EXISTS] [schema_name. ] view_name [..., n] [; ]
EXAMPLES
CREATION
General list of students with their
attorney and specialty allows to modify data applied to students of the
Specialty of Administration and Gastronomy.
CREATE VIEW V_Alumnos_Apo_Espe
as
select A.codalumno,A.nombre,A.direccion,A.fecnac,A.fecing,A.sexo,A.nombre as Apoderado,E.nombreespe as Especialidad
from alumno A inner join Especialidad E on A.idespe=E.codespe inner join Apoderado AP on A.idapoderado=AP.codapoderado
where E.nombreespe='Administración' or E.nombreespe='Gastronomía'
WITH CHECK
OPTION
Go
MODIFICATION
ALTER VIEW V_Concepto_MontoCobrado
AS
select C.nombreconcepto,sum(DR.monto) as [Monto Cobrado] from ReciboPago R inner join DetalleRecibo DR on R.nrecibo=DR.idrecibo inner join Alumno A on
R.idalumno=A.codalumno inner
join Concepto C on DR.idconcepto=C.codconcepto
group by C.nombreconcepto
GO
ELIMINACIÓN
DROP VIEW
V_Concepto_MontoCobrado
4.
Recomendaciones
Ø Las vistas te permiten un nivel de abstracción mayor, ya que podrías evitar que
los usuarios accedieran directamente a las tablas
Ø
No usar vistas como objetos
redundantes: Como
usar un select * from tabla, esto es innecesario ya que las vistas se utilizan
generalmente por seguridad.
Ø
Suelen utilizarse para
centrar, simplificar y personalizar la percepción de la base de datos para cada
usuario. 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
5.
Conclusiones
Ø
Las vistas son usadas para la especificación de tablas con
información que se accede con frecuencia pero no posee existencia física:
ü
Información derivada de la relación entre varias tablas.
ü
Información derivada de la formación de grupos de tuplas
(p.e. para la obtención de estadísticas).
ü
En general: información derivada de consultas complejas a la
que se accede con frecuencia.
Ø Una vista es como una tabla virtual que almacena
una consulta. Los datos accesibles a través de la vista no están
almacenados en la base de datos como un objeto.
Ø Es un objeto que se define a partir de una consulta y que
se comporta como una tabla si bien, dependiendo de la consulta en la que se
basa, se pueden hacer más o menos cosas: consultar una vista siempre será
posible pero insertar o borrar filas en una vista o modificar un valor ya
depende de cómo sea esa definición.
6.
Apreciación
del Equipo
Ø Es muy importante hacer el uso de Vistas en el desarrollo
de Software, ya que nos ayuda a
representar la información de las tablas de una manera que detallada y
eficiente.
Ø .Las vistas son de gran ayuda para el trabajo en cuanto
sobre a un conjunto de tablas relacionales, ya que para ello no es un
impedimento trabajar con información de N tablas Relacionadas.
Ø Las vistas ya creadas si queremos modificarlas
no es un impedimento eso porque existe
el Alter Table.
7.
Glosario
de Términos
Ø
TUPLA: Un registro (también llamado fila o tupla)
representa un objeto único de datos implícitamente estructurados en
una tabla. ... Un registro es un conjunto de campos que contienen los datos que
pertenecen a una misma repetición de entidad.
Ø
FUNCIÓN: Definida por el usuario es una rutina de Transact-SQL o
Common Language Runtime (CLR) que acepta parámetros, realiza una acción, como
un cálculo complejo, y devuelve el resultado de esa acción como un valor. El
valor devuelto puede ser un valor escalar (único) o una tabla.
Ø OBJETO: Es cualquier recurso
de SQL Server , como un bloqueo de SQL Server o
un proceso de Windows.
Ø SQL (por sus siglas en
inglés Structured Query Language; en español lenguaje deconsulta estructurada)
es un lenguaje específico del dominio que da acceso a un
sistema de gestión de bases de datos relacionales que permite especificar
diversos tipos de operaciones en ellos.
Ø GROUP BY: Agrupa un conjunto de filas seleccionado en un conjunto de filas
de resumen de acuerdo con los valores de una o más columnas o expresiones en
SQL Server. Se devuelve una fila para cada grupo. Las funciones de agregado de la lista
<select> de la cláusula SELECT proporcionan información de cada grupo en
lugar de filas individuales.
Ø EXECUTE: Ejecuta una cadena de
comando o cadena de caracteres dentro de un lote de Transact-SQL o uno de los
siguientes módulos: procedimiento almacenado del sistema, procedimiento
almacenado definido por el usuario, procedimiento almacenado CLR, función
definida por el usuario de valor escalar o procedimiento almacenado extendido.
Ø CREATE VIEW: Crea
una tabla virtual cuyos contenidos (columnas y filas) están definidos por una
consulta. Use esta declaración para crear una vista de los datos en una o más
tablas en la base de datos.
Ø ENCRYPTION:
Cifra las entradas en sys.syscomments que contienen el texto de la instrucción
CREATE VIEW. El uso de WITH ENCRYPTION impide que la vista se publique como
parte de la replicación de SQL Server.
Ø Operadores Relacionales: Al
margen del signo de igualdad empleado anteriormente, se pueden usar n las
condiciones simples de las consultas los operadores relacionales habituales,
devolviendo siempre un valor booleano (lógico).
Ø Select * from Tabla*: Con
el * indicamos que queremos devolver todos los campos.
8.
Bibliografía
o Linkografía
Ø http://www.tutorialesprogramacionya.com/sqlserverya/temarios/descripcion.php?cod=109&punto=&inicio=
LINK DE DIAPOSITIVAS
https://es.slideshare.net/JaimeAguilarRafael1/vistas-95393289
VIDEOS
No hay comentarios :
Publicar un comentario