Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CURSO:
SEGUNDO AÑO
2024-B
3 EJERCICIOS
1. Considere el siguiente Análisis de Requisitos (Laboratorio 14) e implemente una Base de
Datos con por lo menos 8
registros en cada Tabla. Seguidamente implemente los procedimientos almacenados y
funciones indicadas. Ambos
deben de mostrar resultados cuando son ejecutados. (10 puntos)
• Un Florería vende una gran cantidad de flores y desea tener un registro de sus
operaciones
• La información de cada flor es su especie, tamaño, precio, ambiente (luz o sombra),
tiempo de vida, fecha de
germinación y estación (primavera, verano, otoño e invierno)
• Cada cliente posee un código, nombre, apellido paterno, apellido materno, edad, fecha de
nacimiento, y teléfono.
• La florería tiene varios locales en una ciudad donde se pone a disposición diferentes
especies de flores con un
stock para la venta
• Cada local tiene un personal de servicio quienes se encargan de la ventas de las flores.
• Definir una entidad para el personal de servicio con al menos 5 atributos
• En cada venta se debe tener registro del cliente, las flores, la persona que lo atendió y el
local donde fueron
adquiridas
• Definir una entidad con un atributo compuesto y un atributo multivaluado.
-- Cambio de tipo de datos de las claves primarias a INT IDENTITY para hacerlas
autoincrementales
1. USE FLORERIA;
2.
3. -- Crear la tabla de flores
4. CREATE TABLE Flores (
5. flor_id INT IDENTITY(1,1) PRIMARY KEY,
6. especie VARCHAR(50),
7. tamaño VARCHAR(20),
8. precio DECIMAL(8, 2),
9. ambiente VARCHAR(10),
10. tiempo_de_vida INT,
11. fecha_germinacion DATE,
12. estacion VARCHAR(10)
13. );
14.
15. -- Crear la tabla de clientes
16. CREATE TABLE Clientes (
17. cliente_id INT IDENTITY(1,1) PRIMARY KEY,
18. codigo_cliente VARCHAR(10),
19. nombres VARCHAR(50),
20. apellido_paterno VARCHAR(50),
21. apellido_materno VARCHAR(50),
22. edad INT,
23. fecha_nacimiento DATE,
24. telefono VARCHAR(15)
25. );
26.
27. -- Crear la tabla de locales
28. CREATE TABLE Locales (
29. local_id INT IDENTITY(1,1) PRIMARY KEY,
30. nombre_local VARCHAR(50),
31. stock_disponible INT
32. );
33.
34. -- Crear la tabla de personal de servicio
35. CREATE TABLE PersonalServicio (
36. personal_id INT IDENTITY(1,1) PRIMARY KEY,
37. nombre VARCHAR(50),
38. apellido_paterno VARCHAR(50),
39. apellido_materno VARCHAR(50),
40. cargo VARCHAR(30),
41. experiencia INT
42. );
43.
44. -- Crear la tabla de ventas
45. CREATE TABLE Ventas (
46. venta_id INT IDENTITY(1,1) PRIMARY KEY,
47. cliente_id INT,
48. flor_id INT,
49. personal_id INT,
50. local_id INT,
51. fecha_venta DATE,
52. cantidad INT
53. );
54.
55. -- Ajustes de sintaxis para las fechas
56. SET DATEFORMAT DMY;
57.
58. -- Insertar registros en la tabla de flores
59. INSERT INTO Flores (especie, tamaño, precio, ambiente, tiempo_de_vida,
fecha_germinacion, estacion)
60. VALUES
61. ('Rosas', 'Mediana', 12.99, 'Luz', 14, '2021-02-15', 'Primavera'),
62. ('Lirios', 'Grande', 19.99, 'Sombra', 20, '2020-11-10', 'Otoño'),
63. ('Tulipanes', 'Pequeña', 8.99, 'Luz', 10, '2022-03-25', 'Primavera'),
64. ('Orquídeas', 'Mediana', 24.99, 'Sombra', 30, '2021-09-05', 'Otoño'),
65. ('Margaritas', 'Pequeña', 6.99, 'Luz', 12, '2022-06-20', 'Verano'),
66. ('Margaritas', 'Pequeña', 7.99, 'Luz', 10, '2023-02-10', 'Primavera'),
67. ('Orquídeas', 'Grande', 29.99, 'Sombra', 25, '2023-07-15', 'Verano'),
68. ('Girasoles', 'Mediana', 12.99, 'Luz', 15, '2023-04-05', 'Primavera');
69.
70. -- Insertar registros en la tabla de clientes
71. INSERT INTO Clientes (codigo_cliente, nombres, apellido_paterno,
apellido_materno, edad, fecha_nacimiento, telefono)
72. VALUES
73. ('grgr', 'Juan Diego', 'Perez', 'Gomez', 30, '1992-05-15', '555-1234'),
74. ('vfvf', 'Maria Fernanda', 'Gonzalez', 'Lopez', 25, '1997-09-20', '555-5678'),
75. ('vrfv', 'Carlos Ernesto', 'Martinez', 'Rodriguez', 35, '1987-03-10', '555-9876'),
76. ('rfvfrv', 'Elena Maria', 'Fernandez', 'Gutierrez', 28, '1994-12-05', '555-4321'),
77. ('fvrfvrf', 'Luis Alonso', 'Gutierrez', 'Lopez', 40, '1982-08-18', '555-8765'),
78. ('C009', 'Rosa', 'Lopez', 'Gomez', 28, '1993-06-18', '555-7654'),
79. ('C010', 'Carlos', 'Gutierrez', 'Martinez', 38, '1983-12-10', '555-3456'),
80. ('C011', 'Laura', 'Rodriguez', 'Fernandez', 22, '2000-02-28', '555-2345');
81.
82. -- Insertar registros en la tabla de locales
83. INSERT INTO Locales (nombre_local, stock_disponible)
84. VALUES
85. ('Local A', 100),
86. ('Local B', 150),
87. ('Local C', 120),
88. ('Local D', 80),
89. ('Local E', 200),
90. ('Local F', 120),
91. ('Local G', 80),
92. ('Local H', 200);
93.
94. -- Insertar registros en la tabla de personal de servicio
95. INSERT INTO PersonalServicio (nombre, apellido_paterno, apellido_materno, cargo,
experiencia)
96. VALUES
97. ('Ana', 'Lopez', 'Gomez', 'Vendedor', 3),
98. ('Pedro', 'Gutierrez', 'Fernandez', 'Cajero', 2),
99. ('Laura', 'Rodriguez', 'Martinez', 'Vendedor', 5),
100. ('Miguel', 'Gomez', 'Lopez', 'Florista', 4),
101. ('Sofia', 'Martinez', 'Fernandez', 'Cajero', 3),
102. ('Santiago', 'Martinez', 'Lopez', 'Vendedor', 2),
103. ('Ana', 'Fernandez', 'Gomez', 'Florista', 3),
104. ('David', 'Gutierrez', 'Martinez', 'Cajero', 1);
105.
106. -- Insertar registros en la tabla de ventas
107. INSERT INTO Ventas (cliente_id, flor_id, personal_id, l
--e) Implementar un procedimiento almacenado que utilice una de las funciones anteriores.
Abrir co
--b) Implementar una función que reciba como mínimo 2 parámetros de entrada.
--c) Implementar un procedimiento almacenado que por medio de una enfermedad, muestre
todos los pacientes atendidos (nombre, apellidos, teléfonos) junto a su médico que lo
atendió.
--e) Implementar un procedimiento almacenado que utilice una de las funciones anteriores.
1. CREATE PROCEDURE UsarFuncionEnProcedimiento (
2. @nombre_persona VARCHAR(50),
3. @apellido_persona VARCHAR(50)
4. )
5. AS
6. BEGIN
7. -- Lógica del procedimiento para utilizar la función creada anteriormente
8. DECLARE @cantidadPacientes INT;
9.
10. -- Llamar a la función para obtener la cantidad de pacientes relacionados con el
doctor o enfermera
11. SET @cantidadPacientes =
dbo.ObtenerCantidadPacientesPorDoctorOEnfermera(@nombre_persona,
@apellido_persona);
12.
13. -- Realizar cualquier otra operación con @cantidadPacientes según sea necesario
14. END;
15.