Está en la página 1de 10

BASE DE DATOS AVANZADA

Fase 2 Implementación: definiciones de la base de datos a nivel conceptual y


programas de aplicación.

Presentado por:
Luisa Fernanda Chocontá Beltrán Cod. 1233690349

Maryuri Hurtado Cod. 114418093


Danny Leandro Suritica Cod. 1140417028

Grupo:
22

Presentado A:

Pablo Cesar Vargas

Grupo 301125_474
Universidad Nacional Abierta Y a Distancia
Bogotá D.C
Noviembre 2018

Contenido
INTRODUCCIÓN......................................................................................................................3
SOPORTES PARA EL INFORME..........................................................................................4
RESULTADOS DE LA ACTIVIDAD......................................................................................4
SCRIPT DE LAS CONSULTAS AVANZADAS CON JOINS...............................................4
SCRIPT DE LAS CONSULTAS AVANZADAS CON FUNCIONES...............................5
AGREGADAS........................................................................................................................5
SCRIPT CON 5 PROCEDIMIENTOS ALMACENADOS................................................5
SCRIPT CON CINCO DISPARADORES O TRIGGERS.................................................7
CONCLUSIONES......................................................................................................................8
BIBLIOGRAFIA........................................................................................................................9
INTRODUCCIÓN

El presente trabajo comprende diferentes scripts en donde se realizan consultas con


inner joins, creación de procedimientos almacenados y disparadores o triggers, en donde
se deben ejecutar sobre la base de datos trabajada durante la fase 1, utilizando un SGBD
para automatizar la extracción de la información de acuerdo con las necesidades de la
organización con el fin de aplicar los conocimientos obtenidos durante la fase de
Implementación.
ACTIVIDAD

SOPORTES PARA EL INFORME

https://drive.google.com/open?id=1OkI2xQvMUS2sw239y4s94BbwJP4uXcIO

RESULTADOS DE LA ACTIVIDAD

SCRIPT DE LAS CONSULTAS AVANZADAS CON JOINS


use register
-----------------------------------------------
/*-------------CONSULTAS JOIN ---------------*/
-----------------------------------------------
--INNER JOIN
SELECT P.IdPedido,C.NOMBRE,L.TITULO FROM
CLIENTE C INNER JOIN
PEDIDO P ON P.IDCLIENTE = C.IDCLIENTE INNER JOIN
LIBRO L ON L.IDLIBRO = P.IDLIBRO

-- LEFT OUTER JOIN


SELECT P.IdPedido,C.NOMBRE,L.TITULO FROM
CLIENTE C LEFT OUTER JOIN
PEDIDO P ON P.IDCLIENTE = C.IDCLIENTE LEFT OUTER JOIN
LIBRO L ON L.IDLIBRO = P.IDLIBRO

-- RIGHT OUTER JOIN


SELECT P.IdPedido,C.NOMBRE,L.TITULO FROM
CLIENTE C RIGHT JOIN
PEDIDO P ON P.IDCLIENTE = C.IDCLIENTE RIGHT JOIN
LIBRO L ON L.IDLIBRO = P.IDLIBRO

-- FULL OUTER JOIN


SELECT P.IdPedido,C.NOMBRE FROM
CLIENTE C FULL OUTER JOIN
PEDIDO P ON P.IDCLIENTE = C.IDCLIENTE

-- CROSS JOIN
SELECT * FROM
CLIENTE C CROSS JOIN
PEDIDO P CROSS JOIN
LIBRO L

-- NATURAL JOIN

SELECT e.employee_id,
d.department_name
FROM employees e
NATURAL JOIN departments d
ORDER BY e.employee_id, d.department_name;

-- INNER JOIN USING

SELECT e.employee_id,
d.department_name
FROM employees e
JOIN departments d USING (department_id)
ORDER BY e.employee_id;

SCRIPT DE LAS CONSULTAS AVANZADAS CON FUNCIONES


AGREGADAS
use register
-----------------------------------------------
/*-------------FUNCIONES ---------------*/
-----------------------------------------------
--SELECT * FROM PEDIDO P
--COUNT
SELECT COUNT(*) FROM
CLIENTE C INNER JOIN
PEDIDO P ON P.IDCLIENTE = C.IDCLIENTE INNER JOIN
LIBRO L ON L.IDLIBRO = P.IDLIBRO

--SUM
SELECT L.IDLIBRO,L.TITULO,
SUM(L.PRECIO_VENTA-L.PRECIO_COMPRA) ValorAdicional
FROM
LIBRO L
GROUP BY L.IDLIBRO,L.TITULO

--AVG
SELECT AVG(CANTIDAD) FROM
PEDIDO P INNER JOIN
LIBRO L ON L.IDLIBRO = P.IDLIBRO

--MIN , MAX
SELECT MIN(CANTIDAD) MinimaCantida,MAX(CANTIDAD)MaximaCantida FROM
PEDIDO P

SCRIPT CON 5 PROCEDIMIENTOS ALMACENADOS


USE Register
------PROCEDIMIENTO ALMACENADO 1--------------------
CREATE PROCEDURE DetallePorIdPedido (@IdPedido INT)
as
SELECT C.NOMBRE, C.DIRECCION, C.TELEFONO, P.IDPEDIDO, P.FECHA_PEDIDO,
P.FECHA_ENVIO, L.TITULO, L.AUTOR, L.PRECIO_VENTA
FROM CLIENTE AS C INNER JOIN
PEDIDO AS P ON P.IDCLIENTE = C.IDCLIENTE INNER JOIN
LIBRO AS L ON L.IDLIBRO = P.IDLIBRO
WHERE P.IDPEDIDO = @IdPedido

--EXEC DetallePorIdPedido 4

------PROCEDIMIENTO ALMACENADO 2--------------------


CREATE PROCEDURE DetallePorTitulo (@Titulo CHAR(200))
as
SELECT C.NOMBRE, C.DIRECCION, C.TELEFONO, P.IDPEDIDO, P.FECHA_PEDIDO,
P.FECHA_ENVIO, L.TITULO, L.AUTOR, L.PRECIO_VENTA
FROM CLIENTE AS C INNER JOIN
PEDIDO AS P ON P.IDCLIENTE = C.IDCLIENTE INNER JOIN
LIBRO AS L ON L.IDLIBRO = P.IDLIBRO
WHERE L.TITULO= @Titulo

--EXEC DetallePorTitulo 'prejuicios'

------PROCEDIMIENTO ALMACENADO 3--------------------


CREATE PROCEDURE DetalleCliente (@Nombre CHAR(200))
as
SELECT C.NOMBRE, C.DIRECCION, C.TELEFONO, P.IDPEDIDO, P.FECHA_PEDIDO,
P.FECHA_ENVIO, L.TITULO, L.AUTOR, L.PRECIO_VENTA
FROM CLIENTE AS C INNER JOIN
PEDIDO AS P ON P.IDCLIENTE = C.IDCLIENTE INNER JOIN
LIBRO AS L ON L.IDLIBRO = P.IDLIBRO
WHERE C.NOMBRE= @Nombre

--EXEC DetalleCliente 'LIA PERALTA'


------PROCEDIMIENTO ALMACENADO 4--------------------

CREATE PROCEDURE Detalle_venta (@nombreCli CHAR(200))


as
SELECT C.NOMBRE, C.DIRECCION, C.TELEFONO, P.IDPEDIDO,P.CANTIDAD,
P.FECHA_PEDIDO, P.FECHA_ENVIO, L.TITULO
FROM CLIENTE AS C INNER JOIN
PEDIDO AS P ON P.IDCLIENTE = C.IDCLIENTE INNER JOIN
LIBRO AS L ON L.IDLIBRO = P.IDLIBRO
WHERE C.NOMBRE= @nombreCli

--EXEC Detalle_venta 'CAROLINA CEPEDA'


------PROCEDIMIENTO ALMACENADO 5--------------------
CREATE PROCEDURE Pedidos_Detallados (@cantidad BIGINT)
as
SELECT P.IDPEDIDO,P.CANTIDAD, P.FECHA_PEDIDO, P.FECHA_ENVIO, C.NOMBRE,
C.TELEFONO, L.TITULO , l.PRECIO_COMPRA
FROM PEDIDO AS P INNER JOIN
CLIENTE AS C ON C.IDCLIENTE = P.IDCLIENTE INNER JOIN
LIBRO AS L ON L.IDLIBRO = P.IDLIBRO
WHERE P.CANTIDAD= 1

--EXEC Pedidos_Detallados 1
SCRIPT CON CINCO DISPARADORES O TRIGGERS

--CantidadStock

use Register

CREATE TRIGGER PedidoCantidadStock


ON PEDIDO
FOR INSERT
AS

UPDATE LIBRO
SET STOCK = LIBRO.STOCK - INSERTED.CANTIDAD
FROM INSERTED INNER JOIN
LIBRO ON INSERTED.IDLIBRO = LIBRO.IDLIBRO
CONCLUSIONES

Por medio de los disparadores se realizan consultas de forma actualizada como el


DELETE, UPDATE, INSERT. Los disparadores también son de gran utilidad para
tablas de auditoria en una base de datos, ya que, permiten identificar las fechas de
inserción, eliminación o actualización de información sobre una base de datos.

JOIN es una cláusula para las consultas SELECT que enrique mucho el lenguaje SQL,
permite realizar consultas para diferentes casos muy interesantes sin tener que recurrir a
escribir consultas muy complicadas.

Las funciones agregadas permiten realizar cálculos aritméticos con los valores de un
campo incluido en una consulta con agrupamiento de registros.

Los procedimientos almacenados pueden recibir y devolver información; para ello se


emplean parámetros, de entrada y salida, respectivamente.

TRIGGER es una clase especial de procedimiento almacenado que se ejecuta


automáticamente cuando se produce un evento en el servidor de bases de datos. SQL
Server permite crear varios desencadenadores para una instrucción específica.
BIBLIOGRAFIA

Quintana, G., M., M., & Aliaga, J. l.(2010). Aprende SQL. Castellón de la Plana, ES: Universitat
Jaume I. Servei de Comunicació iPublicacions. Recuperado
de http://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/reader.action?
ppg=112&docID=3218178&tm=1531497265422

Camuña Rodríguez, J. (2014) Lenguajes de definición y modificación de datos SQL (UF1472).


Madrid, ESPAÑA: IC Editorial. Pág.  59 -62 Recuperado de

http://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/reader.action?
ppg=65&docID=4184070&tm=1531496292249

Hueso, Ibáñez, Luis. Administración de sistemas gestores de bases de datos, RA-MA Editorial,
2014. ProQuest Ebook Central, Pag 114- 128  recuperado
de http://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/reader.action?
ppg=115&docID=3229065&tm=1531497705957

Piñeiro, Gómez, José Manuel. Manual gestión de bases de datos: formación para el empleo,
Editorial CEP, S.L., 2011. ProQuest Ebook Central, recuperado

Piñeiro, Gómez, José Manuel. Manual gestión de bases de datos: formación para el empleo,
Editorial CEP, S.L., 2011. ProQuest Ebook Central,
http://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/detail.action?docID=3214275.

También podría gustarte