Professional Documents
Culture Documents
BASE DE DATOS I
2019
Contenido
Contenido ................................................................................................................................................ 1
INTRODUCIÓN ......................................................................................................................................... 2
RESUMEN ............................................................................................................................................ 2
OBJETIVOS ........................................................................................................................................... 3
MARCO TEORICO ................................................................................................................................. 3
BASE DE DATOS ............................................................................................................................... 3
MODELO DE BASE DE DATOS .......................................................................................................... 3
QUERYS ............................................................................................................................................ 7
STORE PROCEDURE ......................................................................................................................... 8
TRIGGERS ......................................................................................................................................... 8
TRANSACCIONES.............................................................................................................................. 8
DESARROLLO ......................................................................................................................................... 10
DESCRIPCION BREVE DEL PROYECTO ................................................................................................ 10
MODELO E-R ...................................................................................................................................... 11
QUERYS .............................................................................................................................................. 12
STORE PROCEDURE ........................................................................................................................... 21
TRIGGERS ........................................................................................................................................... 22
TRANSACCIONES ............................................................................................................................... 23
VISTAS................................................................................................................................................ 24
CONCLUSIONES ..................................................................................................................................... 28
BIBLIOGRAFÍA ........................................................................................................................................ 29
1
INTRODUCIÓN
RESUMEN
2
OBJETIVOS
MARCO TEORICO
BASE DE DATOS
3
Siendo el modelo más común, el modelo relacional ordena los datos en tablas,
también conocidas como relaciones, cada una de las cuales se compone de
columnas y filas. Cada columna enumera un atributo de la entidad en cuestión,
por ejemplo, precio, código postal o fecha de nacimiento. En conjunto, a los
atributos en una relación se los llama dominio. Se elige un atributo particular o
combinación de atributos como clave primaria, a la cual se puede hacer
referencia en otras tablas, en donde se la denomina clave externa.
Cada fila, también denominada tupla, incluye datos sobre una instancia
específica de la entidad en cuestión, por ejemplo, un empleado específico.
4
El modelo también representa los tipos de relaciones entre esas tablas, incluidas
las relaciones uno a uno, uno a muchos y muchos a muchos. Este es un ejemplo:
Dentro de la base de datos, las tablas se pueden normalizar, es decir, hacer que
cumplan las reglas de normalización que hacen a la base de datos flexible,
adaptable y escalable. Al estar normalizada, cada porción de los datos es
atómica, es decir, está dividida en partes útiles lo más pequeñas posibles.
Las bases relacionales generalmente se escriben en Lenguaje de Consulta
Estructurado (SQL, por sus siglas en inglés). El modelo fue introducido por E. F.
Codd en 1970.
5
MODELO JERARQUICO
Este modelo capta las relaciones entre entidades del mundo real de forma muy
similar al modelo de red, pero no está directamente ligado a una estructura física
de la base de datos. En cambio, con frecuencia se lo usa para diseñar una base
de datos conceptualmente.
6
Aquí, a las personas, lugares y cosas, acerca de las cuales se almacenan puntos
de datos, se las denomina entidades, cada una de las cuales tiene ciertos
atributos que en conjunto forman su dominio. La cardinalidad, o relaciones entre
entidades, también se representa en diagramas.
7
STORE PROCEDURE
TRIGGERS
Un trigger es un conjunto de acciones que se ejecutan automáticamente cuando
se realiza una operación de cambio especificada (instrucción SQL INSERT,
UPDATE o DELETE) en una tabla específica. Los desencadenadores son útiles para
tareas tales como hacer cumplir las reglas comerciales, validar los datos de
entrada y mantener un seguimiento de auditoría.
TRANSACCIONES
8
Una transacción es un conjunto de operaciones Transact SQL que se ejecutan
como un único bloque, es decir, si falla una operación Transact SQL fallan todas.
Si una transacción tiene éxito, todas las modificaciones de los datos realizadas
durante la transacción se confirman y se convierten en una parte permanente
de la base de datos. Si una transacción encuentra errores y debe cancelarse o
revertirse, se borran todas las modificaciones de los datos.
PERMISOS DE OBJETO
Concede permisos para una tabla, vista, función con valores de tabla,
procedimiento almacenado, procedimiento almacenado extendido, función
escalar, función de agregado, cola de servicio o sinónimo.
9
DESARROLLO
10
MODELO E-R
11
QUERYS
Resultado:
SELECT
CONCAT(`persona`.`NOMBRE_PERSONA`,
' ',
`persona`.`APELLIDO_PERSONA`) AS `NOMBRE_EMPLEADO`,
`empleado`.`FECHA_CONTRATACION` AS `FECHA_INICIO_CONTRATO`,
CONCAT(TIMESTAMPDIFF(YEAR,
`empleado`.`FECHA_CONTRATACION`,
CURDATE()),
' ',
'años') AS `ANTIGUEDAD`
FROM
(`empleado`
12
LEFT JOIN `persona` ON ((`empleado`.`PERSONA_ID_PERSONA` =
`persona`.`DNI_PERSONA`)));
Resultado:
Resultado:
4. Calcula el tiempo que le queda a los productos para caducar, y a cada uno le da un estado de
acuerdo con el tiempo de caducidad
SELECT producto.NOMBRE_PRODUCTO,producto.FECHA_VENCIMIENTO,
CASE
13
WHEN DATEDIFF(`producto`.`FECHA_VENCIMIENTO`,CURDATE())>0 AND
DATEDIFF(`producto`.`FECHA_VENCIMIENTO`,CURDATE())<150 THEN "OFERTA"
WHEN DATEDIFF(`producto`.`FECHA_VENCIMIENTO`,CURDATE())>150 THEN "NORMAL"
WHEN DATEDIFF(`producto`.`FECHA_VENCIMIENTO`,CURDATE())<0 THEN "VENCIDO"
END AS ESTADO
FROM producto;
Resultado:
5. Calcula el salario neto del mes de julio, cuyo mes tiene por bonificación un 50% a empleados
que tienen igual o más salario de 1500, caso contrario se le bonifica con 25%
Resultado:
14
6. Calcula el salario neto de los empleados por trienios
Resultado:
15
7. Muestra el producto más vendido
Resultado:
Resultado:
16
9. TOP 5 de los supermercados y sucursales correspondientes que poseen mayor cantidad de
ventas
FROM sucursal
GROUP BY SEDE
LIMIT 5;
Resultado:
Resultado:
17
11. Empleados que ganan menos que la media de todos los salarios del total de empleados
Resultado:
Resultado:
18
13. Muestra las ventas generadas por temporada
Resultado:
14. Muestra las sucursales que necesitan abastecimiento de productos, las que tienen menor
cantidad en stock de productos
select p.NOMBRE_PRODUCTO,
IF(STOCK<350,'Necesita','No necesita') as E_STOCK,
superm.NOMBRE_SUPERMERCADO
from producto as p
left join sucursal as s
on p.ID_SUCURSAL_PRODUCTO=s.ID_SUCURSAL
LEFT join supermercado as superm
on s.ID_SUPER=superm.ID_SUPERMERCADO;
Resultado:
19
15. Muestra la cantidad total de productos que cada proveedor debe abastecer
Resultado:
16. Muestra los costos que generaron por la compra a cada proveedor
Resultado:
20
STORE PROCEDURE
1. El sp muestra el usuario y contraseña de los empleados, para ello se debe ingresar el DNI del
empleado
Resultado:
21
2. Muestra la cantidad de productos que existen por cada línea de producto
Resultado:
TRIGGERS
delimiter $$
create trigger controlstockcompra
after insert on detalles_compra
for each row
begin
update producto set producto.STOCK=producto.STOCK+new.CANTIDAD_COMPRA
where producto.ID_PRODUCTO=new.ID_PRODUCTO;
22
END$$
delimiter ;
delimiter $$
create trigger controlstock
after insert on detalles_ordenes
for each row
begin
update producto set producto.STOCK=producto.STOCK-new.CANTIDAD_PEDIDA
where producto.ID_PRODUCTO=new.ID_PRODUCTO;
END$$
delimiter ;
TRANSACCIONES
1. Esta transacción utiliza 3 tablas: ordenes, detalles_ordenes y pagos. Primero capta la última
orden que se realizó, luego aumenta en uno para añadirlo en el siguiente registro.
Insertamos un registro en ordenes, también en detalles_ordenes. Por último, calculamos el
monto total de pago, para ello anteriormente se creó una vista, el cual guarda la cantidad
pedida por el cliente, el precio del producto y la orden a la que pertenece; insertamos en la
tabla pagos el total, la id de la sucursal y la orden.
start transaction;
select @num_orden:=max(NUMERO_ORDENES)+1 from ordenes;
insert into
ordenes(NUMERO_ORDENES,FECHA_ORDEN,ESTADO,CODIGO_CLIENTE,CODIGO_EMPLEADO
)
values(@num_orden,'2018-03-07','CANCELADO','12','5');
23
insert into detalles_ordenes(ID_DETALLES,CANTIDAD_PEDIDA,ID_PRODUCTO,NUM_ORDEN)
values('19',4,1,@num_orden),('20',3,2,@num_orden),('21',1,3,@num_orden);
commit;
2. Esta transacción es similar a la anterior. La transacción 1 realiza las ventas entre el cliente y
empleado, en este caso vamos a mostrar las ventas que generó cada sucursal con el
proveedor. Utilizamos 3 tablas: compras, detalles_compra y costos. El proceso lo realiza
similar a la transacción anterior:
start transaction;
select @num_compra:=max(ID_COMPRAS)+1 from compras;
insert into
detalles_compra(ID_DET_COMPRA,CANTIDAD_COMPRA,ID_PRODUCTO,ORDENES_NUM)
values('8','29','2',@num_compra),('9','48','4',@num_compra);
commit;
VISTAS
1. Vista que agrupa la cantidad de productos de compra, precio de compra de producto y
numero de compra
24
2. Vista que agrupa los nombres y apellidos de los clientes y su salario mensual de la tabla
CARGO_LABORAL
25
4. Vista que almacena la cantidad pedida, precio de venta y orden a la que pertenece, con
respecto a la venta entre cliente y empleado
26
CREACIÓN DE USUARIOS
GRANT select
ON bd_supermercado.*
TO 'Gerente'@'localhost';
GRANT INSERT,SELECT,UPDATE,DELETE
ON bd_supermercado.*
TO 'AdministradorBaseDatos'@'localhost';
GRANT select
ON bd_supermercado.empleado
TO 'Gerente'@'localhost';
GRANT select
ON bd_supermercado.producto
TO 'Gerente'@'localhost';
27
CONCLUSIONES
28
BIBLIOGRAFÍA
http://www.maestrosdelweb.com/que-son-las-bases-de-datos/
https://sites.google.com/site/supermercadobasededatos/base-de-datos-
--diagrama
Gilfillan, I. (s.f.). La Biblia de MySQL. ANAYA.
29