You are on page 1of 8
Regional Distrito Capital Sistema de Gestión de la Calidad GUIA DE APRENDIZAJE CREAR VISTAS CON TRANSACT

Regional Distrito Capital Sistema de Gestión de la Calidad

GUIA DE APRENDIZAJE CREAR VISTAS CON TRANSACT SQL

REGIONAL DISTRITO CAPITAL

REGIONAL DISTRITO CAPITAL

 

Fecha:

Febrero 2013

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y TECNOLOGIAS DE LA INFORMACION

GUIA CREACION DE VISTAS CON TRANSACT SQL

Versión: 1

Sistema de Gestión de la Calidad

Página 2

de 8

Control del Documento

 

Nombre

Cargo

Dependencia

Firma

Fecha

         

febrero de

Autores

Sandra Yanneth

Instructor

Regional

2011

Rueda Guevara

Distrito

 

Capital

Asesoría

Elizabeth Zuñiga

Formadores

Regional

 

Pedagógica

Docentes

Distrito

Capital

Revisión

       

Aprobación

       
REGIONAL DISTRITO CAPITAL

REGIONAL DISTRITO CAPITAL

 

Fecha:

Febrero 2013

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y TECNOLOGIAS DE LA INFORMACION

GUIA CREACION DE VISTAS CON TRANSACT SQL

Versión: 1

Sistema de Gestión de la Calidad

Página 3

de 8

  • 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE

PROGRAMA DE FORMACION:

ANÁLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIÓN - ADSI

PROYECTO DE ASOCIADO:

Aplicación de la metodología ETCL(Extraction, Transformation,

MODALIDAD DE FORMACION:

Clean and Load), en sistemas manejadores de base de datos. Presencial

ACTIVIDAD DEL PROYECTO:

Desarrollar la estructura de datos y la interfaz de usuario del

RESULTADOS DE APRENDIZAJE:

sistema para el banco de proyectos 220501007 02 Construir la base de datos, a partir del modelo de datos determinado en el diseño del sistema, utilizando sistemas de gestión de base de datos, según los protocolos establecidos en la organización.

TAREA DE APRENDIZAJE DURACION

Y

Creación de vistas en la base de datos, utilizando Transact SQL – 20 horas

 

Duración de la guía de Aprendizaje: 4 horas

  • 2. CARACTERIZACIÓN DE LA ACTIVIDAD DE APRENDIZAJE

 
  • 2.1 Introducción

Gracias al desarrollo de esta guía se logrará conocer el objetivo y la sintaxis para la creación de vistas, este aprendizaje se convertirá en un apoyo para el desarrollador de bases de datos, puesto que le permitirá reducir el volumen de información que requiera manipular; además, obtendrá consultas más rápidamente y optimizará el trabajo en la Base de Datos.

Una vista es una tabla lógica, que se crea en la base de datos y existe como un objeto más de la misma; aunque no tiene existencia física, su implementación permite usarla de la misma manera en la que se usan las tablas.

La importancia de su implementación radica en que el administrador de la base de datos, podrá restringir el acceso a datos confidenciales y a los desarrolladores les permitirá concentrarse en los datos más relevantes para las transacciones cotidianas. Además, es la forma más conveniente para exportar datos a otras aplicaciones sin que creen dificultades frente al diseño de bases de datos complejas o en la que se requieran consultas heterogéneas.

Este conocimiento nos permitirá mejorar las consultas en la base de Datos de Nuestro Proyecto de Formación y adicionalmente, simplificar la administración de los permisos de usuarios, mejorar el rendimiento y organizar los datos que se requieran exportar a otras aplicaciones.

 
  • 2.2 Tarea de Aprendizaje

Utilizando el editor SQLServerManagment Studio, y la base de datos Neptuno:

1.

Cree una vista con el nombre del producto y la cantidad total vendida del mismo.

REGIONAL DISTRITO CAPITAL

REGIONAL DISTRITO CAPITAL

 

Fecha:

Febrero 2013

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y TECNOLOGIAS DE LA INFORMACION

GUIA CREACION DE VISTAS CON TRANSACT SQL

Versión: 1

Sistema de Gestión de la Calidad

Página 4

de 8

  • 2. Cree una vista con el nombre del empleado, la edad y el total recaudado en ventas por cada uno.

  • 3. Cree una vista con el nombre de la categoría, el nombre de los productos de cada categoría y los proveedores de cada producto, incluya solo las filas de los productos empacados en botellas (bot).

  • 4. Cree una vista con el código del cliente, el nombre del cliente y el total pagado por cada cliente.

  • 5. Cree una vista con el código del cliente, el nombre de cliente y el porcentaje que el total pagado por cada cliente representa frente al total de todas las ventas registradas. Utilice una subconsultas para obtener el total de todas las ventas y la vista del punto 4 para obtener el porcentaje.

  • 6. crear una vista con las todas las columnas de la tabla productos, y solo las filas en las que el precio unidad es mayor a 20. Además esta vista debe incluir la instrucción with check option.

Insertar en la vista, un registro en el cual incluya como precio unidad 30, tenga en cuenta la integridad de datos. Describa lo que sucede. Insertar en la vista, un registro en el cual incluya como precio unidad 30, tenga en cuenta la integridad de datos. Describa lo que sucede. Cree la sentencia necesaria para modificar, en la vista, el precio unidad a 10 del producto 78, intente ahora cambiarlo a 28. Describa lo que sucede en los dos casos. Describa la utilidad que la instrucción with check option cumple dentro de una vista y explíquelo a través de la experiencia con la inserción y la modificación.

  • 7. Cree una vista con el requisito Distinct con las regiones de origen de los clientes, omita las

filas

con

valor

nulo.

Explique

con

sus

Distinct, en la creación de vistas.

palabras la funcionalidad del requisito

  • 8. Agregue al final de cada vista, la sentencia de selección que le permita obtener los registros de cada una.

Al finalizar, cree el script para su posterior validación, recuerde que debe modificar a “trae” la creación del script con datos.

Las evidencias resultantes son:

DE CONOCIMIENTO:

Identificar las diferentes instrucciones que se utilizan en la creación de vistas en las bases de datos.

Identificar las utilidades que ofrecen las vistas en las bases de datos

DE DESEMPEÑO:

Observación y valoración del proceso en la solución de un ejercicio práctico sobre creación de una vista, en la que se define nombre de columna, columna calculada, combinación de tablas y función de agregado, de acuerdo con los requerimientos establecidos.

Observación y valoración del proceso en la solución de un ejercicio práctico sobre creación de una vista, en la que se utiliza la instrucción with check option y el requisito Distrinct, de acuerdo con los requerimientos establecidos.

REGIONAL DISTRITO CAPITAL

REGIONAL DISTRITO CAPITAL

 

Fecha:

Febrero 2013

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y TECNOLOGIAS DE LA INFORMACION

GUIA CREACION DE VISTAS CON TRANSACT SQL

Versión: 1

Sistema de Gestión de la Calidad

Página 5

de 8

2.3 Proceso de Aprendizaje

 

Creación de vistas

 

Los nombres de vistas deben ser únicos para cada usuario entre las tablas y vistas ya existentes. Es posible crear vistas en otras vistas y procedimientos que hagan referencia a vistas; también, puede definir claves primarias, externas y comunes en las vistas. No es posible asociar reglas, valores predeterminados ni disparadores a las vistas, ni tampoco crear índices en ellas. No es posible crear vistas temporales, ni tampoco generar vistas en tablas temporales.

Sintaxis para la creación; a continuación se muestra la sintaxis completa para la creación de una vista:

create view [[ database .] owner .] view_name

 

[( column_name

[,

column_name ]

...

)]

as select

[distinct]

select_statement

[with check option]

No es necesario especificar nombres de columna en la cláusula create de una instrucción de definición de vista. SQL Server da a las columnas de la vista los mismos nombres y mismos tipos de datos que las columnas a las que se hace referencia en la lista de selección de la instrucción select. La lista de selección puede ser " * ", como en el ejemplo, o una lista total o parcial de los nombres de columna de las tablas base; sin embargo, si se cumple alguna de las siguientes condiciones, los nombres de columna deben especificarse en la cláusula create para todas las columnas de la vista:

Si cualquiera de las columnas de la vista, se deriva de una expresión aritmética, un agregado, una función incorporada o una constante. Esto haría que, dos o más columnas de la vista tengan el mismo nombre; suele ocurrir porque la definición de la vista incluye una combinación, y las columnas objeto de la combinación tienen el mismo nombre.

Si quiere asignar a una columna de la vista un nombre diferente del de la columna de la que se deriva. También puede cambiar el nombre de las columnas en la instrucción select. Se cambie o no el nombre de una columna de vista, ésta hereda el tipo de datos de la columna de la que se deriva.

Se pueden crear vistas que no contengan filas duplicadas. Utilice la palabra clave distinct de la instrucción select para garantizar que cada fila de la vista sea única. Sin embargo, estas vistas distinct no pueden actualizarse.

A continuación se muestra una instrucción de definición de vista que cambia el nombre de una columna de la vista de su nombre en la tabla subyacente:

CREATE VIEW DetallesView (NumPedido, CodigoPoducto, PrecioUnitario, Cantidad, Descuento) AS SELECT IdPedido, IdProducto, PrecioUnidad, Cantidad, Descuento FROM [Detalles de Pedidos]

A continuación se muestra un método alternativo de creación de la misma vista, pero cambiando el nombre de las columnas en la instrucción select:

CREATE VIEW DetallesView2 AS SELECT IdPedido, CodigoPoducto=IdProducto, PrecioUnidad, Cantidad, Descuento FROM [Detalles de Pedidos]

REGIONAL DISTRITO CAPITAL

REGIONAL DISTRITO CAPITAL

 

Fecha:

Febrero 2013

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y TECNOLOGIAS DE LA INFORMACION

GUIA CREACION DE VISTAS CON TRANSACT SQL

Versión: 1

Sistema de Gestión de la Calidad

Página 6

de 8

Los ejemplos de instrucciones de definición de vista proporcionados a continuación, muestran el resto de las reglas para la inclusión de nombres de columnas en la cláusula create; también se explica la instrucción select, el uso de la palabra clave distinct y la cláusula with check option de las definiciones de vista.

Uso de la instrucción select con create view

Se usa para definir la vista; es necesario tener el permiso select para seleccionar cualquier objeto referenciado en la instrucción select de una vista que se esté creando. Una vista no tiene que ser necesariamente un simple subconjunto de filas y columnas de una tabla concreta, como en el ejemplo. Es posible crear una vista a partir de más de una tabla y otras vistas, con una instrucción select de cualquier grado de complejidad.

Existen ciertas restricciones sobre la instrucción select de una definición de vista:

No se pueden incluir cláusulas order by ni compute.

No se puede incluir la palabra clave into.

No se puede hacer referencia a una tabla temporal.

Definición de vista con proyección

Para crear una vista con todas las filas de la tabla Productos, pero sólo con un subconjunto de sus columnas, escriba la instrucción:

CREATE VIEW ProductosView AS SELECT IdProducto, PrecioUnidad, UnidadesEnExistencia

FROM Productos Observe que no se incluye ningún nombre de columna en la cláusula create view. La vista ProductosView heredará los nombres de columna que aparecen en la lista de selección.

Definición de vista con una columna calculada, combinación de tablas y función de agregado:

A continuación se muestra una instrucción de definición de vista que crea una vista con una columna calculada generada a partir de las columnas PrecioUnidad y Cantidad; ademas, utilizando la funcion SUM, y la combinación de la tabla Productos y Detalles de pedidos:

CREATE VIEW TotalesPedido (Pedido, TotalPedido) as select IdPedido, SUM(cantidad*D.PrecioUnidad) from Productos P inner join [Detalles de pedidos] D ON P.IdProducto=D.IdProducto where D.PrecioUnidad > 20 and Cantidad > 8 Group by IdPedido

Vistas distinct

Es posible asegurarse de que las filas que contiene una vista son únicas, como en el ejemplo:

create view client as select distinct IdCliente from Clientes

REGIONAL DISTRITO CAPITAL

REGIONAL DISTRITO CAPITAL

 

Fecha:

Febrero 2013

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y TECNOLOGIAS DE LA INFORMACION

GUIA CREACION DE VISTAS CON TRANSACT SQL

Versión: 1

Sistema de Gestión de la Calidad

Página 7

de 8

Uso de la palabra clave with check option con create view

Normalmente, SQL Server no verifica las instrucciones insert y update en vistas para determinar si las filas afectadas están dentro del alcance de la vista. Una instrucción puede insertar una fila en la tabla base subyacente pero no en la vista, ni cambiar una fila existente para que deje de cumplir los criterios de selección de la vista.

Cuando se crea una vista con with check option, cada operación insert y update realizada mediante la vista se valida según los criterios de selección de la vista. Todas las filas insertadas o actualizadas mediante la vista deben permanecer visibles por medio de ésta, o la instrucción no se ejecuta correctamente.

A continuación se muestra un ejemplo de una vista, stores_cal , creada con with check option . Esta vista incluye información sobre las tiendas ubicadas en California, pero excluye la información sobre las tiendas ubicadas en cualquier otro estado. La vista se crea seleccionando todas las filas de la tabla stores cuya columna state tenga el valor "CA":

create view proveedor as select * from Proveedores where Ciudad like 'A%' with check option

Cuando se intenta insertar una fila mediante proveedor, SQL Server verifica si la nueva fila se encuentra dentro del alcance de la vista. La siguiente instrucción insert no se ejecuta correctamente porque la fila nueva tendría un valor ciudad de "Bogota", en lugar de "A%":

insert proveedor (IdProveedor,NombreCompañía,Ciudad)values (30,'CorPoBer','Bogota')

Cuando se intenta actualizar una fila mediante proveedor, SQL Server verifica si la actualización no hará que la fila desaparezca de la vista. La siguiente instrucción update no se ejecuta correctamente porque cambiaría el valor de ciudad de "A%" a "Medellin". Después de la actualización, la fila dejaría de estar visible mediante la vista.

update proveedor set ciudad = 'Medellin' where IdProveedor = 28

Vistas derivadas de otras vistas

Si se crea una vista con with check option , todas las vistas derivadas de la vista "base" deben satisfacer su opción de verificación. Cada fila insertada mediante la vista derivada debe estar visible a través de la vista base. Cada una de las filas actualizadas mediante la vista derivada deben permanecer visibles a través de la vista base.

Considere la vista RegionProveedor, que se deriva de Proveedor. La vista nueva incluye información sobre proveedores que tengan número de fax.

create view RegionProveedor as select * from Proveedor where fax <> 'null'

REGIONAL DISTRITO CAPITAL

REGIONAL DISTRITO CAPITAL

 

Fecha:

Febrero 2013

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y TECNOLOGIAS DE LA INFORMACION

GUIA CREACION DE VISTAS CON TRANSACT SQL

Versión: 1

Sistema de Gestión de la Calidad

Página 8

de 8

La actividad debe ser construida en un documento que contenga: el planteamiento y la sentencia

de creación y utilización de la vista solicitada y con el link al “Script” resultante.

 
  • 2.4 Ambientes de Aprendizaje

 

La actividad debe desarrollarse en aula dispuesta con equipos de cómputo con la suite de

desarrollo y el servidor de base de datos SqlServer 2005 o superior, con acceso a Internet y un

Videobeam o Televisor dispuesto para demostraciones o presentación de contenidos.

 
  • 2.5 Evaluación del aprendizaje

 

Para valorar el alcance del resultado de aprendizaje, se tendrá en cuenta:

 

La participación oportuna del aprendiz en el desarrollo de las sentencias solicitas.

 

Que el aprendiz optimice los recursos del aula en el desarrollo de las actividades propuestas y

este acorde con las normas institucionales.

 

El uso del administrador de SQLServer y la navegabilidad por el mismo.

 

Que

la

respuesta a

preguntas formuladas sobre

el tema,

durante el desarrollo

de

las

actividades propuestas, este acorde con la lectura y el aprendiz aporte con información

adicional, si es el caso.

 

Y por ultimo, la creación de vistas en la base de datos y la manipulación de las mismas para dar

aportar a los requerimientos del sistema, utilizando adecuadamente las sentencias SQL.

 
  • 2.6 Conclusiones

 

Se espera conseguir a través de la realización de esta actividad, las competencias necesarias para

crear vistas y obtener de manera eficaz las consultas, informes y operaciones para dar

cumplimiento a la operatividad de cualquier sistema.

 
  • 2.7 Bibliografía

 

Estas son algunas referencias adicionales de gran utilidad.

 

 

http://manuals.sybase.com/onlinebooks/group-

 

asarc/svs11001/tsqlsp/@Generic

__

BookTextView/23583;hf=0;lang=es

 

http://64.4.11.252/es-es/library/ms188754%28SQL.100%29.aspx