BASE DE DATOS II

Breaking News

Comments

Social

sábado, 28 de abril de 2018

VISTAS


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


LINK DE DIAPOSITIVAS

https://es.slideshare.net/JaimeAguilarRafael1/vistas-95393289

VIDEOS
















No hay comentarios :

Publicar un comentario

Designed By Published... James