martes, 17 de abril de 2018

Vistas en SQL SERVER



UNIVERSIDAD POLITECNICA AMAZONICA




INGENIERÍA DE SISTEMAS Y TELEMÁTICAS


                       Docente         : Marco Aurelio Porro Chulli

                       Asignatura     :BASE DE DATOS II.

                       Ciclo               : VIII  "A"

                       Integrantes     : Yanina Bustamante Jibaja.

                                                  Yenny Isabel Cuello Morón.




VISTAS



1.   Contenido

Ø Definición

Una vista es una tabla virtual cuyo contenido está definido por una consulta. Al igual que una tabla, una vista consta de un conjunto de columnas y filas de datos con un nombre. Sin embargo, a menos que esté indizada, una vista no existe como conjunto de valores de datos almacenados en una base de datos. Las filas y las columnas de datos proceden de tablas a las que se hace referencia en la consulta que define la vista y se producen de forma dinámica cuando se hace referencia a la vista.
Una vista actúa como filtro de las tablas subyacentes a las que se hace referencia en ella. La consulta que define la vista puede provenir de una o de varias tablas, o bien de otras vistas de la base de datos actual u otras bases de datos. Asimismo, es posible utilizar las consultas distribuidas para definir vistas que utilicen datos de orígenes heterogéneos. Esto puede resultar de utilidad, por ejemplo, si desea combinar datos de estructura similar que proceden de distintos servidores, cada uno de los cuales almacena los datos para una región distinta de la organización.
Las vistas suelen usarse 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. Las vistas pueden utilizarse para proporcionar una interfaz compatible con versiones anteriores con el fin de emular una tabla que existía, pero cuyo esquema ha cambiado. También pueden usarse para copiar datos entre SQL Server a fin de mejorar el rendimiento y crear particio.

Una vista se caracteriza porque:
ü  Se considera que forma parte del esquema externo.
ü  Una vista es una tabla virtual (no tiene una correspondencia a
nivel físico)
ü  Se puede consultar como cualquier tabla básica.
ü  Las actualizaciones se transfieren a la/s tabla/s original/es
(con ciertas limitaciones)

Ø  SINTAXIS

La sintaxis para la creación de vistas en SQL es la siguiente:

CREATE | REPLACE VIEW vista [(comalista_columna)]
AS expresión_tabla [with Chuck option]

en donde:

v     CREATE VIEW es la orden que permite la creación de la vista.
v     vista es el nombre de la tabla virtual que se va a crear.
v     (comalista_columna) son los nombres de los atributos de la tabla y es opcional.

ü     Si no se especifica, el nombre coincide con el nombre de los atributos
ü     resultantes en expresión_tabla.
ü     Es obligatorio si algún atributo de expresión_tabla es el resultado de una
ü     función de agregación o una operación aritmética.

Ø  ADMINISTRACIÓN DE VISTAS (CREACIÓN, MODIFICACIÓN Y ELIMINACIÓN)
CREACIÓN DE VISTAS.
Para crear una vista se utiliza el comando CREATE VIEW según el siguiente formato genérico.
SINTAXIS
CREATE VIEW nombredevista [(listadecolumnas)] AS consulta;
Donde:
ü  nombredevista es el nombre que tendrá la vista que se va a crear.
ü  listadecolumnas es opcional. Permite especificar un nombre para cada columna de la vista. Si no se especifica, cada columna quedará con el nombre asignado por la consulta.
ü  consulta es la SELECT que define la vista.
    CREATE VIEW view_dept_201
     AS SELECT emp_id, name, hire_date
     FROM gdb.employees
    WHERE department = 201;

Modificación de vistas.
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.
SINTAXIS
ALTER VIEW [ schema_name . ] view_name [ ( column [ ,...n ] ) ]  
[ WITH <view_attribute> [ ,...n ] ]  
AS select_statement  
[ WITH CHECK OPTION ] [ ; ] 
<view_attribute> ::=  
{  
    [ ENCRYPTION ] 
    [ SCHEMABINDING ] 
    [ VIEW_METADATA ]      
}  

ELIMINACIÓN DE VISTAS.
SINTAXIS
DROP VIEW nombredevista ;
El siguiente ejemplo borrará la vista emple_dep30:
SQL> drop view emple_dep30 cascade constraints;

EJEMPLOS
1.- Crear una vista que muestre el subtotal de los pedidos
create view v_subtotal
as
select IdPedido,SUM(d.PrecioUnidad  * Cantidad * (1-d.Descuento ))as Subtotal
from DetallesDepedidos d
inner join Productos p
on d.IdProducto=p.IdProducto
group by IdPedido
go
select * from v_subtotal
go

2.-Crear una vista que liste NombreProducto, Nombre Categoría, Precio Unidad, Suspendido .
create view v_productos
as
select NombreProducto,NombreCategoría,PrecioUnidad,Suspendido from Productos p
inner join Categorías c on p.IdCategoría  =c.IdCategoría
go
select * from v_productos
order by NombreCategoría,NombreProducto
go
3.-Crear una vista que presente el total de pedido que tiene cada compañía de envió.
create view v_totalpedidos
as
select NombreCompañía,COUNT(*)as Total_Pedidos from v_compañia
group by NombreCompañía
go
select * from v_totalpedidos


2.   Resumen
Una vista es una tabla virtual cuyo contenido está definido por una consulta. Al igual que una tabla real, una vista consta de un conjunto de columnas y filas de datos con un nombre. Sin embargo, a menos que esté indexada, una vista no existe como conjunto de valores de datos almacenados en una base de datos. Las filas y las columnas de datos proceden de tablas a las que se hace referencia en la consulta que define la vista y se producen de forma dinámica cuando se hace referencia a la vista. Una vista actúa como filtro de las tablas a las que se hace referencia en ella. La consulta que define la vista puede provenir de una o de varias tablas, o bien de otras vistas de la base de datos actual u otras bases de datos. No existe ninguna restricción a la hora de consultar vistas y muy pocas restricciones a la hora de modificar los datos.
3.   Sumary
A view is a virtual table whose content is defined by a query. Like a real table, a view consists of a set of columns and rows of data with a name. However, unless it is indexed, a view does not exist as a set of data values ​​stored in a database. Rows and columns of data come from tables that are referenced in the query that defines the view and occur dynamically when the view is referenced. A view acts as a filter on the tables referenced in it. The query that defines the view can come from one or several tables, or from other views of the current database or other databases. There is no restriction when consulting views and very few restrictions when modifying data.
4.   Recomendaciones
ü  No se puede usar la cláusula ORDER BY en la creación de una vista ya que las filas de una tabla no están ordenadas (la vista es una tabla virtual). No obstante, si se puede utilizar dicha cláusula a la hora de recuperar datos de la vista.
ü  Es obligatorio especificar la lista de nombres de columnas cuando la consulta devuelve funciones de agrupamiento como SUM, COUNT, etcétera.
ü  No se pueden utilizar funciones de agrupación sobre columnas de vistas que se basan a su vez en funciones de agrupación ya que en la práctica supondría un doble agrupamiento que no está permitido por el estándar.

5.   Conclusiones
Las vistas son creadas para realizar consultas, son similares a las tablas, se formar referenciando a una o a varias tablas de las bases de datos, que se puede crear, también se puede modificar, eliminar y realizar procedimientos almacenados. Una vista es una tabla virtual (no tiene una correspondencia a Nivel físico).
6.   Apreciación del Equipo
Es fundamental trabajar con vistas porque tienes ventajas
Seguridad y confidencialidad: ya que la vista ocultará los datos confidenciales aquellos para los que el usuario no tenga permiso.
Comodidad: ya que solamente muestra los datos relevantes, permitiendo, incluso trabajar con agrupaciones de filas como si se tratase de una única fila o con composiciones de varias tablas como si se tratase de una única tabla.
Independencia respecto a posibles cambios en los nombres de las columnas, de las tablas, etcétera. 
7.   Glosario de Términos
ALTER VIEW: Su funcionalidad es la de modificar las vistas existentes en una base de datos.
VISTA: 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.
CREATE VIEW: Crea una vista con un nombre de la vista.
DINAMICA: Es un conjunto de datos que se transforma a partir de un grupo de filas separadas para un grupo de columnas
DROP VIEW:  permite eliminar la definición de una vista.
FILTROS SQL: son series de texto que se utilizan para especificar un subconjunto de elementos de datos en un tipo de datos interno o de base de datos SQL.


8.   Linkografías
Linkografia de las Diapositivas





martes, 10 de abril de 2018

COMANDOS DDL


UNIVERSIDAD POLITECNICA AMAZONICA




INGENIERÍA DE SISTEMAS Y TELEMÁTICAS


                       Docente         : Marco Aurelio Porro Chulli

                       Asignatura     :BASE DE DATOS II.

                       Ciclo               : VIII  "A"

                       Integrantes     : Yanina Bustamante Jibaja.

                                                  Yenny Isabel Cuello Morón.




COMANDOS DDL

1.  Contenido

Ø Definición

Un lenguaje de definición de datos (Data Definition Language, DDL por sus siglas en inglés) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de definición de las estructuras que almacenarán los datos, así como de los procedimientos o funciones que permitan consultarlos.  
La definición de la estructura de la base de datos incluye tanto la creación inicial de los diferentes objetos que formarán la base de datos, como el mantenimiento de esa estructura. Las sentencias del DDL utilizan unos verbos que se repiten para los distintos objetos. Por ejemplo, para crear un objeto nuevo el verbo será CREATE y a continuación el tipo de objeto a crear.

 (field1 type [(size)] [NOT NULL] [index1]
 [, field2 type [(size)] [NOT NULL] [index2]
 [, ...][, CONSTRAINT constraint1 [, ...]])
[modificar especificación];
 
Ø  Ejemplo  de CREATE
 
Creación de tablas mediante SQL (DDL).































CREATE TABLE CLIENTE (
DNI VARCHAR2(10),
&LNOMBRE VARCHAR2(20),
FECHA_NAC DATE NOT NULL,
TFNO VARCHAR2(10),
APELLIDOS VARCHAR2(100),
CONSTRAINT CLIENTE_PK PRIMARY KEY (DNI)
)
CREATE TABLE PROVEEDOR(
NIF VARCHAR2(10),
NOMBRE VARCHAR2(20),
DIRECCION VARCHAR2(200),
CONSTRAINT PROVEEDOR_PK PRIMARY KEY (NIF)

)

CREATE TABLE PRODUCTO(
NOMBRE VARCHAR2(50),
CODIGO VARCHAR2(50),
PRECIO NUMBER(10) NOT NULL,
PRV_NIF VARCHAR2(10),
CONSTRAINT PRODUCTO_PK PRIMARY KEY (CODIGO),
CONSTRAINT PROVEEDOR_FK FOREIGN KEY(PRV_NIF)
REFERENCES PROVEEDOR (NIF)
)

CREATE TABLE CLIENTE_PRODUCTO(
PRD_CODIGO VARCHAR(50),
CLN_DNI VARCHAR(10),
CONSTRAINT CLIENTE_PRODUCTO_PK PRIMARY KEY
(PRD_CODIGO, CLN_DNI),
CONSTRAINT PRODUCTOCP_FK FOREIGN KEY (PRD_CODIGO)
REFERENCES PRODUCTO(CODIGO),
CONSTRAINT CLIENTECP_FK FOREIGN KEY (CLN_DNI)
REFERENCES CLIENTE(DNI)
)



Ø  Ejemplo de ALTER

 

Veamos un ejemplo que muestra cómo modificar una columna en una tabla en SQL Server utilizando la sentencia ALTER TABLE.
Por ejemplo:
ALTER TABLE employees
  ALTER COLUMN last_name VARCHAR(75) NOT NULL;

Este ejemplo tabla de SQL Server ALTER modificará la columna llamada last_name a un tipo de datos VARCHAR (75) y la e la columna no permitirá valores nulos.

Ø  Ejemplo de DROP

Quitar una tabla de la base de datos actual

En el siguiente ejemplo se quita la tabla ProductVendor1, y sus datos e índices de la base de datos actual.
DROP TABLE ProductVendor1 ;
 

Quitar una tabla de otra base de datos

En el siguiente ejemplo se quita la tabla SalesPerson2 de la base de datos AdventureWorks2012 . El ejemplo se puede ejecutar desde cualquier base de datos de la instancia de servidor.
DROP TABLE AdventureWorks2012.dbo.SalesPerson2 ;
 

Quitar una tabla temporal

En el siguiente ejemplo se crea una tabla temporal, se comprueba si existe, se quita y se comprueba de nuevo si existe.
CREATE TABLE #temptable (col1 int);
GO
INSERT INTO #temptable
VALUES (10);
GO
SELECT * FROM #temptable;
GO
IF OBJECT_ID(N'tempdb..#temptable', N'U') IS NOT NULL 
DROP TABLE #temptable;
GO
--Test the drop.
SELECT * FROM #temptable;


Ø Comandos CREATE, ALTER y DROP
CREATE

Este comando crea un objeto dentro de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte.

Sintaxis

CREATE TABLE table_name

Los únicos elementos necesarios de un comando CREATE TABLE son el propio comando CREATE TABLE y el nombre de la tabla, aunque por lo general es posible que desee definir algunos campos u otros aspectos de la tabla.


Ø ALTER
Este comando permite modificar la estructura de un objeto. Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, modificar un trigger, etc.
Sintaxis:
ALTER TABLE "nombre_tabla"


Ø DROP
Este comando elimina un objeto de la base de datos. Puede ser una tabla, vistaíndicetrigger, función, procedimiento o cualquier objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER.
Sintaxis

DROP tipo_objeto nombre_objeto.


2.  Resumen
Comandos DDL: es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de definición de las estructuras que almacenarán los datos, así como de los procedimientos o funciones que permitan consultarlos.          
Las sentencias del DDL utilizan unos verbos que se repiten para los distintos objetos.

Comando
Descripción
CREATE
Utilizado para crear nuevas tablas, campos e índices
DROP
Empleado para eliminar tablas e índices
ALTER
Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos.


3.  Summary
DDL Commands: is a language provided by the database management system that allows the users of it to carry out the tasks of defining the structures that will store the data, as well as the procedures or functions that allow them to be consulted.
The DDL sentences use repeating verbs for the different objects.
Command Description

CREATE Used to create new tables, fields and indexes
DROP Employee to eliminate tables and indexes
ALTER Used to modify the tables by adding fields or changing the definition of the fields.
4.  Recomendaciones
·      No use la cláusula into nombre de tabla (“SELECT… INTO”). Esto bloqueará mientras se ejecuta la consulta las tablas del sistema. En su lugar cree primero las tablas y luego re-escribe la sentencia como INSERT INTO tabla_name SELECT.
·      Si usa el operador UNION y existe la seguridad de que ambos select NO tienen registros duplicados, entonces es mejor usar UNION ALL, para evitar que implícitamente se haga uso del operador DISTINCT el cual puede requerir que se almacenen todos los datos de salida en una tabla temporal para que luego se reordenen y se filtren los datos duplicados, lo cual aumenta considerablemente el costo de la consulta.
·      Promover el uso de EXISTS y NOT EXISTS, en lugar de IN y NOT IN.

5.  Conclusiones
·      Los Comandos DDL muchas veces llamado OPERACIONES BÁSICAS. Estos comandos permiten crear bases de datos, tablas, vistas, eliminar cualquier objeto, modificar el diseño de los mismos.
·      Son vistos para los ingenieros como, los cuales permitirán la construcción de la base de datos y el mantenimiento de la misma.
6.  Apreciación del Equipo
Es fundamental para trabajar con SQL Server. Ya que todas las aplicaciones que se comunican con SQL Server lo hacen enviando instrucciones Transact-SQL al servidor, independientemente de la interfaz de usuario de la aplicación.

7.  Glosario de Términos
Trigger:  Se les llama triggers o disparadores, son eventos que se ejecutan cuando se cumplen condiciones determinadas, al hacer un insert, update o delete en una tabla de una BBDD.
Comando: Un comando (calco del inglés command, que significa orden, mandato) es una instrucción u orden que el usuario proporciona a un sistema informático, desde una llamada de programación.
Vista: 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.
DDL: (Data Definition Language, DDL por sus siglas en inglés) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de definición de las estructuras que almacenarán los datos.
CREATE: Crea un objeto dentro de la base de datos.
ALTER: Permite modificar la estructura de un objeto.
DROP: Comando elimina un objeto de la base de datos.
Índice: El índice de una base de datos es una estructura de datos que mejora la velocidad de las operaciones, por medio de identificador único de cada fila de una tabla.
Sistema de gestión de base de datos: es un conjunto de programas que permiten el almacenamiento, modificación y extracción de la información en una base de datos, además de proporcionar herramientas para añadir, borrar, modificar y analizar los datos.
Funciones: Una 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.

8.  Linkografías



Link de las Diapositivas