Sunteți pe pagina 1din 20

Fase 2

Robinson Julian Medina Espinosa 1056803989


John Édinson Castro Velásquez 7320600
DIEGO ARMANDO TORRES C 1056955004
JORGE MANRIQUE CHAVARRO 1054708575
ELSA YANETH GONZALEZ MUÑOZ 1054709078

HELENA CLARA ISABEL ALEMAN


Tutora. Bases de Datos

GRUPO
301125A_474

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD

CEAD Tunja

2018

1
INTRODUCCIÓN
Actualmente la el almacenamiento y organización de la información ha sido una gran necesidad
y desafío del mercado

las bases de datos han representado la manera de satisfacer estas necesidades básicas
como el almacenamiento y organización de la misma

sin embargo esto ha requerido de una curva de aprendizaje que permita el diseño e integración a
cualquier necesidad, en este curso obtendremos los conocimientos para comprender estas bases
de datos y ser capaces de diseñarlas y trabajaras

2
Tabla Contenido
Tabla Contenido .......................................................................................... ¡Error! Marcador no definido.
Objetivos ....................................................................................................................................................... 4
Objetivo General ....................................................................................................................................... 4
Objetivos Específicos................................................................................................................................ 4
Actividades por desarrollar ........................................................................................................................... 5
b. Realizar una consulta avanzada por cada función agregada. ................................................................ 8
Consulta con la función count ............................................................................................................... 8
Creando el primer Procedimiento ....................................................................................................... 10
Segundo procedimiento....................................................................................................................... 11
Tercer procedimiento .......................................................................................................................... 12
Cuarto procedimiento.............................................................................................................................. 13
Quinto Procedimiento ......................................................................................................................... 14
Crear 5 triggers ....................................................................................................................................... 14
Primer trigger .......................................................................................................................................... 15
Segundo Trigger.................................................................................................................................. 15
Tercer Trigger ......................................................................................................................................... 16
Cuarto Trigger ......................................................................................................................................... 17
Link Carpeta de Drive ................................................................................................................................. 18
CONCLUSIONES ...................................................................................................................................... 19

3
Objetivos

Objetivo General

• Analizar, diseñar, construir Sistemas de Bases de Datos Relacionales, aplicando las


diferentes técnicas de normalización, para el modelamiento relacional a partir de su
fundamento conceptual.
Objetivos Específicos

• Aprender a diseñar bases de datos


• Aprender a interpretar una base de datos
• Construir sistemas de base de datos relacionales

4
Actividades por desarrollar

1. El estudiante se documenta sobre Manejo de Joins, Campos calculados con funciones,


Procedimientos almacenados y disparadores (ubicada en el Entorno de Conocimiento /
Unidad 2.)
Ok
2. Cada uno de los integrantes del grupo de trabajo colaborativo debe asistir o revisar la
grabación de la web conference fase 2. Implementación, donde se socializa a través del
desarrollo de un ejemplo el manejo de consultas avanzadas con joins, campos calculados
con funciones, procedimientos almacenados y disparadores.

Ok

3. A continuación, se relacionan los aspectos necesarios para desarrollar la fase de


implementación del proyecto, para ello, se deben adelantar las siguientes acciones sobre la
base de datos:

a. Realizar una consulta por cada join, cada enlace lo lleva aun ejemplo que puede tomar de
referencia para el desarrollo de la actividad:

• [INNER] JOIN ... ON

select p.fecha_pedido, c.nombre FROM pedido p JOIN cliente c ON c.id=p.id_cliente;

• LEFT [OUTER] JOIN

select c.nombre,p.fecha_pedido FROM cliente c LEFT OUTER JOIN pedido p ON


c.id=p.id_cliente WHERE c.nombre LIKE '%medina%';

5
• RIGHT [OUTER] JOIN

select c.nombre,p.fecha_pedido FROM cliente c RIGHT OUTER JOIN pedido p ON


c.id=p.id_cliente;

• FULL [OUTER] JOIN

Este Tipo de Consulta no se encuentra soportada por MySQL, por lo que no puedo mostrar ejemplo, esta
consulta es y en MySQL se puede realizar como una unión entre el left join y Right Join

• CROSS JOIN

Esta consulta es el producto cartesiano de la combinación entre dos tablas

6
• NATURAL JOIN

El natural JOIN nos permite unir 2 tablas por el campo en común aun sin indicarlo explícitamente

• [INNER] JOIN ... USING

Permite unir 2 tablas mediante un campo en común de las tablas en este caso se debe especificar

7
b. Realizar una consulta avanzada por cada función agregada.

Función Significado
Cuenta los elementos de un grupo. Se suele indicar un
asterisco (COUNT (*)) en lugar de una expresión, ya que
COUNT(expresión)
la cuenta no varía por indicar una expresión concreta; el
resultado siempre es el número de elementos del grupo.
SUM(expresión) Suma los valores de la expresión
AVG(expresión) Calcula la media aritmética sobre la expresión indicada
MIN(expresión) Mínimo valor que toma la expresión indicada
MAX(expresión) Máximo valor que toma la expresión indicada
b. Realizar una consulta avanzada por cada función agregada.
Consulta con la función count
Ejemplo: Contar el número de libros que posee la tabla libros.
La consulta sql queda de la siguiente manera:

Luego de haber realizado la consulta, el resultado que arroja esta es el siguiente:

8
Consulta con la función sum
Ejemplo: Determinar el número de pedidos realizados.
La consulta sql queda de la siguiente manera:

Luego de haber realizado la consulta, el resultado que arroja esta es el siguiente:

Consulta con la función avg


Ejemplo: Determinar el promedio de pedidos realizados.
La consulta sql queda de la siguiente manera:

Luego de haber realizado la consulta, el resultado que arroja esta es el siguiente:

Consulta con la función min


Ejemplo: Determinar el libro que menos ejemplares tiene en la tienda.
La consulta sql queda de la siguiente manera:

Luego de haber realizado la consulta, el resultado que arroja esta es el siguiente:

9
Consulta con la función max
Ejemplo: Determinar el libro o libros que más ejemplares tiene en la tienda.
La consulta sql queda de la siguiente manera:

Luego de haber realizado la consulta, el resultado que arroja esta es el siguiente:

Consultar los siguientes ejemplos de referencia:


SQL for Beginners : The WHERE Clause
SQL for Beginners: The ORDER BY Clause
SQL for Beginners: The GROUP BY Clause and HAVING Clause
OK

c. Realizar cinco procedimientos s almacenados y cinco disparadores o triggers para realizar la


actividad consultar los ejemplos que se encuentran en el siguiente enlace.
https://oracle-base.com/articles/misc/introduction-to-plsql
Creando el primer Procedimiento
DELIMITER //
CREATE PROCEDURE libroxid(IN id INT)
BEGIN
SELECT * FROM libro l WHERE l.id=id;
END//
DELIMITER ;

10
CALL libroxid(2)

Segundo procedimiento

DELIMITER //
CREATE PROCEDURE librosxpedido(in id INT)
BEGIN

11
SELECT * FROM libro l INNER JOIN detalle_pedido dp ON dp.id_libro=l.id WHERE
dp.id_pedido=id;
END//
DELIMITER ;

CALL librosxpedido(2);

Tercer procedimiento

DELIMITER //
CREATE PROCEDURE pedidoxcliente(in id INT)
BEGIN
SELECT * FROM pedido p INNER JOIN cliente c ON p.id_cliente=c.id WHERE p.id_cliente=id;
END//
DELIMITER ;

12
Cuarto procedimiento

DELIMITER //

CREATE PROCEDURE libroxisbn(IN isbn CHAR(50))


BEGIN
SELECT * FROM libro WHERE libro.isbn=isbn;
END//

DELIMITER ;

CALL libroxisbn('0-385-50420-1');

13
Quinto Procedimiento

CREATE DEFINER=`root`@`localhost` PROCEDURE `pedidoxcliente`(in id INT)


BEGIN
SELECT * FROM pedido p INNER JOIN cliente c ON p.id_cliente=c.id WHERE p.id_cliente=id;
END

CALL libroxcliente(4);

Crear 5 triggers

14
Primer trigger
CREATE TRIGGER validacantpedido BEFORE INSERT ON detalle_pedido FOR EACH ROW BEGIN
IF NEW.cantidad < 0 THEN SET NEW.cantidad=0; END IF; END

INSERT INTO `libreria`.`detalle_pedido` (`id`, `cantidad`, `id_libro`, `id_pedido`) VALUES ('10', '-1',
'1', '1');

Segundo Trigger

DELIMITER #
CREATE TRIGGER validadetpedido BEFORE INSERT ON detalle_pedido
FOR EACH ROW BEGIN
IF NEW.id_cliente < 1 THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = "No Se referencio Libro ni Pedido";
END IF;
END #
DELIMITER ;

15
INSERT INTO `libreria`.`detalle_pedido` (`id`, `cantidad`, `id_libro`, `id_pedido`) VALUES ('11', '-1', '-
1', '0')

Aunque rebota primero el error de mysql debido a que la clave debe existir el control funciona

Tercer Trigger

Primero creamos una nueva tabla en la base de datos

Creamos un trigger que va a estar asociada a la tabla libros con la acción INSERTAR de tipo
AFTER

Insertamos un libro con los valores correspondientes

Podemos observar que se insertó correctamente el libro

Y en la nueva tabla queda registrado este nuevo libro y la fecha en que fue insertado

16
Cuarto Trigger

Creación de Tiggers donde resta el stock del libro en el momento que se vende.

Stock libros Pedidos

4. El estudiante comparte su avance en el foro Fase4.Implementacion y realimenta a la vez


los aportes de los demás compañeros del grupo mediante el análisis y sugerencias
efectuadas.

17
Link Carpeta de Drive
https://drive.google.com/open?id=1JRCQxGgNv27rM6i_yQnXRzJ1QBgNaijo

18
CONCLUSIONES

• Con este ejercicio es posible reconocer la amplitud y plenitud del lenguaje en gestión de bases de
datos
• Se repasan muchas de las sentencias necesarias para la gestión de los datos

19
REFERENCIAS BIBLIOGRÁFICAS
•https://bibliotecavirtual.unad.edu.co:2538/lib/unadsp/reader.action?ppg=77&docID=3195347&t
m=1536025429841
• https://oracle-base.com/articles/misc/sql-for-beginners-joins#inner-join-on
• https://dev.mysql.com/doc/

20

S-ar putea să vă placă și