0% encontró este documento útil (0 votos)
4 vistas19 páginas

Estructura SQL para Cine Ultimate DB

El documento describe la creación de una base de datos llamada CineUltimateDB que incluye tablas para complejos, salas, películas, productos, precios, funciones, ventas y detalles de ventas. Se proporcionan las sentencias SQL para crear estas tablas y para insertar datos en ellas, incluyendo ejemplos de complejos de cine, películas y funciones programadas. Además, se detallan las relaciones entre las tablas mediante claves foráneas.

Cargado por

Global City
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas19 páginas

Estructura SQL para Cine Ultimate DB

El documento describe la creación de una base de datos llamada CineUltimateDB que incluye tablas para complejos, salas, películas, productos, precios, funciones, ventas y detalles de ventas. Se proporcionan las sentencias SQL para crear estas tablas y para insertar datos en ellas, incluyendo ejemplos de complejos de cine, películas y funciones programadas. Además, se detallan las relaciones entre las tablas mediante claves foráneas.

Cargado por

Global City
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

BOCETO ORIGINAL: Corriendo en: [Link]

com/sql/online-compiler

1. Creación de la base de datos

CREATE DATABASE CineUltimateDB;


USE CineUltimateDB;

2. Tablas necesarias

Complejo
CREATE TABLE Complejo (
IdComplejo INT IDENTITY (1,1)PRIMARY KEY NOT NULL,
Nombre VARCHAR (100) NOT NULL);

Salas
CREATE TABLE Salas (
IdSala INT IDENTITY (1,1) PRIMARY KEY NOT NULL,
IdComplejo INT NOT NULL,
NumeroSala INT NOT NULL,
FOREIGN KEY (IdComplejo) REFERENCES Complejo(IdComplejo));

Películas
CREATE TABLE Peliculas (
IdPelicula INT IDENTITY (1,1) PRIMARY KEY NOT NULL,
Nombre VARCHAR (100) NOT NULL,
Duracion INT NOT NULL);

Productos
CREATE TABLE Productos (
IdProducto INT IDENTITY (1,1) PRIMARY KEY NOT NULL,
Nombre VARCHAR (100) NOT NULL);

Precios
CREATE TABLE Precios (
IdPrecio INT IDENTITY (1,1) PRIMARY KEY NOT NULL,
IdProducto INT NOT NULL,
Precio INT NOT NULL,
FOREIGN KEY (IdProducto) REFERENCES Productos(IdProducto));

Funciones
CREATE TABLE Funciones (
IdFuncion INT IDENTITY (1,1) PRIMARY KEY NOT NULL,
IdPelicula INT NOT NULL,
IdSala INT NOT NULL,
IdProducto INT NOT NULL,
Horario VARCHAR (100) NOT NULL,
FOREIGN KEY (IdPelicula) REFERENCES Peliculas(IdPelicula),
FOREIGN KEY (IdSala) REFERENCES Salas(IdSala),
FOREIGN KEY (IdProducto) REFERENCES Productos(IdProducto));

Ventas
CREATE TABLE Ventas (
IdCliente INT IDENTITY (1,1) PRIMARY KEY NOT NULL,
ProductosAdquiridos INT NOT NULL,
IdFuncion INT NOT NULL,
FOREIGN KEY (IdFuncion) REFERENCES Funciones (IdFuncion));

Detalle de Ventas
CREATE TABLE DetalleVenta (
IdDetalle INT IDENTITY (1,1) PRIMARY KEY NOT NULL,
IdCliente INT NOT NULL,
IdFuncion INT NOT NULL,
IdProducto INT NOT NULL,
FOREIGN KEY (IdCliente) REFERENCES Ventas(IdCliente),
FOREIGN KEY (IdFuncion) REFERENCES Funciones(IdFuncion),
FOREIGN KEY (IdProducto) REFERENCES Productos(IdProducto));
3. Inserción de datos

INSERT INTO Complejo VALUES


(01, "Plaza_Nezahualcoyotl"),
(02, "Cd_Jardin"),
(03, "Nezahualcoyotl_Norte");

INSERT INTO Salas VALUES


(01,1,1),
(02,1,2),
(03,1,3),
(04,1,4),
(05,1,5),
(06,1,6),
(07,1,7),
(08,1,8),
(09,1,9),
(10,1,10),
(11,1,11),
(12,1,12),
(13,2,1),
(14,2,2),
(15,2,3),
(16,2,4),
(17,2,5),
(18,2,6),
(19,2,7),
(20,2,8),
(21,2,9),
(22,2,10),
(23,2,11),
(24,2,12),
(25,3,1),
(26,3,2),
(27,3,3),
(28,3,4),
(29,3,5),
(30,3,6),
(31,3,7),
(32,3,8),
(33,3,9),
(34,3,10),
(35,3,11),
(36,3,12);

INSERT INTO Peliculas VALUES


(1,'Pitufos', 92),
(2,'Superman', 129),
(3,'Jurassic World: Renace poster', 134),
(4,'Sé Lo Que Hicieron El Verano Pasado poster', 111),
(5,'F1', 155),
(6,'Cómo Entrenar A Tu Dragón', 126),
(7,'Elio', 108);

INSERT INTO Productos VALUES


(1,'Palomitas'),
(2,'Refresco'),
(3,'HotDog'),
(4,'Nachos'),
(5,'Icee'),
(6, '2D'),
(7, '3D'),
(8, '4D');

INSERT INTO Precios VALUES


(1001,1,120),
(1002,2,90),
(1003,3,90),
(1004,4,85),
(1005,5,105),
(1006, 6,85),
(1007, 7,110),
(1008, 8,160);

INSERT INTO Funciones VALUES


(1,1,11,6,"12:30:00"),
(2,1,6,6,"13:00:00"),
(3,1,2,6,"13:45:00"),
(4,1,11,6,"14:30:00"),
(5,1,6,6,"15:10:00"),
(6,1,2,6,"15:50:00"),
(7,1,11,6,"16:45:00"),
(8,1,6,6,"18:30:00"),
(9,1,2,6,"19:00:00"),
(10,1,11,6,"20:30:00"),
(11,1,6,6,"21:15:00"),
(12,2,9,7,"12:00:00"),
(13,2,7,6,"12:45:00"),
(14,2,3,8,"13:30:00"),
(15,2,9,6,"14:40:00"),
(16,2,7,7,"15:30:00"),
(17,2,3,6,"16:15:00"),
(18,2,9,6,"17:20:00"),
(19,2,7,8,"18:15:00"),
(20,2,3,7,"19:20:00"),
(21,2,9,6,"20:00:00"),
(22,2,7,7,"21:00:00"),
(23,2,3,6,"22:00:00"),
(24,3,4,7,"12:15:00"),
(25,3,1,6,"14:10:00"),
(26,3,4,6,"15:00:00"),
(27,3,1,6,"16:00:00"),
(28,3,4,7,"17:00:00"),
(29,3,1,6,"18:00:00"),
(30,3,4,6,"19:45:00"),
(31,3,1,6,"20:50:00"),
(32,3,4,7,"21:30:00"),
(33,4,10,6,"14:00:00"),
(34,4,5,6,"15:20:00"),
(35,4,10,6,"16:30:00"),
(36,4,5,6,"17:45:00"),
(37,4,10,6,"19:10:00"),
(38,4,5,6,"20:15:00"),
(39,4,10,6,"21:50:00"),
(40,5,8,6,"14:20:00"),
(41,5,8,7,"17:30:00"),
(42,5,8,6,"20:40:00"),
(43,6,12,6,"13:20:00"),
(44,6,12,7,"18:45:00"),
(45,7,5,6,"13:10:00"),
(46,1,23,6,"12:30:00"),
(47,1,18,6,"13:00:00"),
(48,1,14,6,"13:45:00"),
(49,1,23,6,"14:30:00"),
(50,1,18,6,"15:10:00"),
(51,1,14,6,"15:50:00"),
(52,1,23,6,"16:45:00"),
(53,1,18,6,"18:30:00"),
(54,1,14,6,"19:00:00"),
(55,1,23,6,"20:30:00"),
(56,1,18,6,"21:15:00"),
(57,2,21,7,"12:00:00"),
(58,2,19,6,"12:45:00"),
(59,2,15,8,"13:30:00"),
(60,2,21,6,"14:40:00"),
(61,2,19,7,"15:30:00"),
(62,2,15,6,"16:15:00"),
(63,2,21,6,"17:20:00"),
(64,2,19,8,"18:15:00"),
(65,2,15,7,"19:20:00"),
(66,2,21,6,"20:00:00"),
(67,2,19,7,"21:00:00"),
(68,2,15,6,"22:00:00"),
(69,3,16,7,"12:15:00"),
(70,3,13,6,"14:10:00"),
(71,3,16,6,"15:00:00"),
(72,3,13,6,"16:00:00"),
(73,3,16,7,"17:00:00"),
(74,3,13,6,"18:00:00"),
(75,3,16,6,"19:45:00"),
(76,3,13,6,"20:50:00"),
(77,3,16,7,"21:30:00"),
(78,4,22,6,"14:00:00"),
(79,4,17,6,"15:20:00"),
(80,4,22,6,"16:30:00"),
(81,4,17,6,"17:45:00"),
(82,4,22,6,"19:10:00"),
(83,4,17,6,"20:15:00"),
(84,4,22,6,"21:50:00"),
(85,5,20,6,"14:20:00"),
(86,5,20,7,"17:30:00"),
(87,5,20,6,"20:40:00"),
(88,6,24,6,"13:20:00"),
(89,6,24,7,"18:45:00"),
(90,7,17,6,"13:10:00"),
(91,1,35,6,"12:30:00"),
(92,1,30,6,"13:00:00"),
(93,1,26,6,"13:45:00"),
(94,1,35,6,"14:30:00"),
(95,1,30,6,"15:10:00"),
(96,1,26,6,"15:50:00"),
(97,1,35,6,"16:45:00"),
(98,1,30,6,"18:30:00"),
(99,1,26,6,"19:00:00"),
(100,1,35,6,"20:30:00"),
(101,1,30,6,"21:15:00"),
(102,2,33,7,"12:00:00"),
(103,2,31,6,"12:45:00"),
(104,2,27,8,"13:30:00"),
(105,2,33,6,"14:40:00"),
(106,2,31,7,"15:30:00"),
(107,2,27,6,"16:15:00"),
(108,2,33,6,"17:20:00"),
(109,2,31,8,"18:15:00"),
(110,2,27,7,"19:20:00"),
(111,2,33,6,"20:00:00"),
(112,2,31,7,"21:00:00"),
(113,2,27,6,"22:00:00"),
(114,3,28,7,"12:15:00"),
(115,3,25,6,"14:10:00"),
(116,3,28,6,"15:00:00"),
(117,3,25,6,"16:00:00"),
(118,3,28,7,"17:00:00"),
(119,3,25,6,"18:00:00"),
(120,3,28,6,"19:45:00"),
(121,3,25,6,"20:50:00"),
(122,3,28,7,"21:30:00"),
(123,4,34,6,"14:00:00"),
(124,4,29,6,"15:20:00"),
(125,4,34,6,"16:30:00"),
(126,4,29,6,"17:45:00"),
(127,4,34,6,"19:10:00"),
(128,4,29,6,"20:15:00"),
(129,4,34,6,"21:50:00"),
(130,5,32,6,"14:20:00"),
(131,5,32,7,"17:30:00"),
(132,5,32,6,"20:40:00"),
(133,6,36,6,"13:20:00"),
(134,6,36,7,"18:45:00"),
(135,7,29,6,"13:10:00");

INSERT INTO VENTAS VALUES


(1,3,118),
(2,1,58),
(3,2,100),
(4,2,105),
(5,2,10),
(6,3,36),
(7,2,39),
(8,1,14),
(9,1,72),
(10,2,104),
(11,2,79),
(12,5,77),
(13,4,111),
(14,4,69),
(15,4,42),
(16,5,68),
(17,2,115),
(18,2,81),
(19,1,47),
(20,5,52),
(21,2,62),
(22,3,80),
(23,4,30),
(24,1,58),
(25,7,130),
(26,1,43),
(27,2,47),
(28,2,98),
(29,3,119),
(30,4,60),
(31,3,73),
(32,6,60),
(33,2,22),
(34,1,22),
(35,2,38),
(36,3,3),
(37,3,96),
(38,5,106),
(39,2,33),
(40,2,124),
(41,2,42),
(42,4,72),
(43,4,57),
(44,2,34),
(45,3,23),
(46,1,50),
(47,3,10),
(48,1,23),
(49,4,80),
(50,2,134),
(51,1,80),
(52,1,78),
(53,5,24),
(54,2,10),
(55,3,18),
(56,1,64),
(57,1,125),
(58,1,1),
(59,4,77),
(60,4,105),
(61,2,121),
(62,3,119),
(63,2,114),
(64,3,124),
(65,2,45),
(66,1,41),
(67,2,49),
(68,3,10),
(69,1,86),
(70,4,86),
(71,2,40),
(72,3,7),
(73,2,20),
(74,2,62),
(75,3,61),
(76,3,51);

INSERT INTO DetalleVenta VALUES


(1,1,118,7),
(2,1,118,4),
(3,1,118,3),
(4,2,58,6),
(5,3,100,6),
(6,3,100,2),
(7,4,105,6),
(8,4,105,5),
(9,5,10,6),
(10,5,10,1),
(11,6,36,6),
(12,6,36,1),
(13,6,36,1),
(14,7,39,6),
(15,7,39,4),
(16,8,14,8),
(17,9,72,6),
(18,9,72,3),
(19,10,104,8),
(20,11,79,6),
(21,11,79,1),
(22,12,77,7),
(23,12,77,3),
(24,13,111,6),
(25,13,111,4),
(26,13,111,1),
(27,13,111,5),
(28,13,111,4),
(29,14,69,7),
(30,14,69,4),
(31,14,69,4),
(32,14,69,4),
(33,15,42,6),
(34,15,42,3),
(35,15,42,5),
(36,15,42,5),
(37,16,68,6),
(38,16,68,3),
(39,16,68,5),
(40,16,68,4),
(41,17,115,6),
(42,17,115,5),
(43,17,115,1),
(44,17,115,3),
(45,17,115,2),
(46,18,81,6),
(47,18,81,3),
(48,19,47,6),
(49,19,47,5),
(50,20,52,6),
(51,21,62,6),
(52,21,62,2),
(53,21,62,5),
(54,21,62,1),
(55,21,62,3),
(56,22,80,6),
(57,22,80,3),
(58,23,30,6),
(59,23,30,2),
(60,23,30,4),
(61,24,58,6),
(62,24,58,1),
(63,24,58,3),
(64,24,58,1),
(65,25,130,6),
(66,26,43,6),
(67,26,43,4),
(68,26,43,2),
(69,26,43,1),
(70,26,43,5),
(71,26,43,5),
(72,26,43,5),
(73,27,47,6),
(74,28,98,6),
(75,28,98,1),
(76,29,119,6),
(77,29,119,3),
(78,30,60,6),
(79,30,60,1),
(80,30,60,2),
(81,31,73,7),
(82,31,73,2),
(83,31,73,3),
(84,31,73,2),
(85,32,60,6),
(86,32,60,2),
(87,32,60,2),
(88,33,22,7),
(89,33,22,5),
(90,33,22,3),
(91,33,22,4),
(92,33,22,4),
(93,33,22,1),
(94,34,22,7),
(95,34,22,5),
(96,35,38,6),
(97,36,3,6),
(98,36,3,1),
(99,37,96,6),
(100,37,96,1),
(101,37,96,3),
(102,38,106,7),
(103,38,106,5),
(104,39,33,6),
(105,39,33,5),
(106,39,33,2),
(107,40,124,6),
(108,40,124,4),
(109,40,124,2),
(110,40,124,3),
(111,40,124,3),
(112,41,42,6),
(113,41,42,1),
(114,42,72,6),
(115,42,72,3),
(116,43,57,7),
(117,43,57,4),
(118,44,34,6),
(119,44,34,3),
(120,44,34,1),
(121,44,34,1),
(122,45,23,6),
(123,45,23,3),
(124,45,23,1),
(125,45,23,1),
(126,46,50,6),
(127,46,50,2),
(128,47,10,6),
(129,47,10,4),
(130,47,10,4),
(131,48,23,6),
(132,49,80,6),
(133,49,80,5),
(134,49,80,5),
(135,50,134,7),
(136,51,80,6),
(137,51,80,5),
(138,51,80,5),
(139,51,80,1),
(140,52,78,6),
(141,52,78,5),
(142,53,24,7),
(143,54,10,6),
(144,55,18,6),
(145,55,18,1),
(146,55,18,3),
(147,55,18,4),
(148,55,18,4),
(149,56,64,8),
(150,56,64,1),
(151,57,125,6),
(152,57,125,5),
(153,57,125,2),
(154,58,1,6),
(155,58,1,3),
(156,58,1,1),
(157,59,77,7),
(158,60,105,6),
(159,61,121,6),
(160,62,119,6),
(161,62,119,2),
(162,62,119,4),
(163,62,119,4),
(164,63,114,7),
(165,63,114,3),
(166,63,114,1),
(167,63,114,3),
(168,64,124,6),
(169,64,124,3),
(170,65,45,6),
(171,65,45,4),
(172,65,45,5),
(173,66,41,7),
(174,66,41,2),
(175,67,49,6),
(176,67,49,4),
(177,67,49,3),
(178,68,10,6),
(179,68,10,4),
(180,69,86,7),
(181,70,86,7),
(182,70,86,5),
(183,71,40,6),
(184,71,40,4),
(185,71,40,1),
(186,72,7,6),
(187,72,7,2),
(188,72,7,2),
(189,73,20,7),
(190,74,62,6),
(191,74,62,2),
(192,74,62,4),
(193,74,62,2),
(194,75,61,7),
(195,75,61,5),
(196,76,51,6),
(197,76,51,2),
(198,76,51,2);
CODE RUNNING ON MS SQL 2022

-- Eliminar tablas existentes


IF OBJECT_ID('DetalleVenta', 'U') IS NOT NULL DROP TABLE DetalleVenta;
IF OBJECT_ID('Ventas', 'U') IS NOT NULL DROP TABLE Ventas;
IF OBJECT_ID('Funciones', 'U') IS NOT NULL DROP TABLE Funciones;
IF OBJECT_ID('Precios', 'U') IS NOT NULL DROP TABLE Precios;
IF OBJECT_ID('Productos', 'U') IS NOT NULL DROP TABLE Productos;
IF OBJECT_ID('Peliculas', 'U') IS NOT NULL DROP TABLE Peliculas;
IF OBJECT_ID('Sala', 'U') IS NOT NULL DROP TABLE Sala;
IF OBJECT_ID('Complejo', 'U') IS NOT NULL DROP TABLE Complejo;

-- Crear tablas
CREATE TABLE Complejo (
IdComplejo INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
Nombre VARCHAR(100) NOT NULL
);

CREATE TABLE Sala (


IdSala INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
IdComplejo INT NOT NULL,
NumeroSala INT NOT NULL,
FOREIGN KEY (IdComplejo) REFERENCES Complejo(IdComplejo)
);

CREATE TABLE Peliculas (


IdPelicula INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
Nombre VARCHAR(100) NOT NULL,
Duracion INT NOT NULL
);

CREATE TABLE Productos (


IdProducto INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
Nombre VARCHAR(100) NOT NULL
);

CREATE TABLE Precios (


IdPrecio INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
IdProducto INT NOT NULL,
Precio INT NOT NULL,
FOREIGN KEY (IdProducto) REFERENCES Productos(IdProducto)
);

CREATE TABLE Funciones (


IdFuncion INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
IdPelicula INT NOT NULL,
IdSala INT NOT NULL,
IdProducto INT NOT NULL, -- Cambiado para mayor claridad (antes IdProducto)
Horario TIME NOT NULL, -- Cambiado a tipo TIME
FOREIGN KEY (IdPelicula) REFERENCES Peliculas(IdPelicula),
FOREIGN KEY (IdSala) REFERENCES Sala(IdSala),
FOREIGN KEY (IdProducto) REFERENCES Productos(IdProducto)
);

-- Tablas de ventas rediseñadas


CREATE TABLE Ventas (
IdVenta INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
IdFuncion INT NOT NULL,
FechaVenta DATETIME DEFAULT GETDATE(),
FOREIGN KEY (IdFuncion) REFERENCES Funciones(IdFuncion)
);

CREATE TABLE DetalleVenta (


IdDetalle INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
IdVenta INT NOT NULL,
IdProducto INT NOT NULL,
Cantidad INT DEFAULT 1,
FOREIGN KEY (IdVenta) REFERENCES Ventas(IdVenta),
FOREIGN KEY (IdProducto) REFERENCES Productos(IdProducto)
);

-- ================================================
-- INSERTAR DATOS
-- ================================================

-- COMPLEJO
SET IDENTITY_INSERT Complejo ON;
INSERT INTO Complejo (IdComplejo, Nombre) VALUES
(1, 'Plaza_Nezahualcoyotl'),
(2, 'Cd_Jardin'),
(3, 'Nezahualcoyotl_Norte');
SET IDENTITY_INSERT Complejo OFF;

-- SALA
SET IDENTITY_INSERT Sala ON;
INSERT INTO Sala (IdSala, IdComplejo, NumeroSala) VALUES
(1,1,1),(2,1,2),(3,1,3),(4,1,4),(5,1,5),(6,1,6),(7,1,7),(8,1,8),(9,1,9),
(10,1,10),(11,1,11),(12,1,12),(13,2,1),(14,2,2),(15,2,3),(16,2,4),(17,2,5),
(18,2,6),(19,2,7),(20,2,8),(21,2,9),(22,2,10),(23,2,11),(24,2,12),(25,3,1),
(26,3,2),(27,3,3),(28,3,4),(29,3,5),(30,3,6),(31,3,7),(32,3,8),(33,3,9),
(34,3,10),(35,3,11),(36,3,12);
SET IDENTITY_INSERT Sala OFF;

-- PELICULAS
SET IDENTITY_INSERT Peliculas ON;
INSERT INTO Peliculas (IdPelicula, Nombre, Duracion) VALUES
(1, 'Pitufos', 92),
(2, 'Superman', 129),
(3, 'Jurassic World: Renace poster', 134),
(4, 'Sé Lo Que Hicieron El Verano Pasado poster', 111),
(5, 'F1', 155),
(6, 'Cómo Entrenar A Tu Dragón', 126),
(7, 'Elio', 108);
SET IDENTITY_INSERT Peliculas OFF;

-- PRODUCTOS
SET IDENTITY_INSERT Productos ON;
INSERT INTO Productos (IdProducto, Nombre) VALUES
(1, 'Palomitas'),
(2, 'Refresco'),
(3, 'HotDog'),
(4, 'Nachos'),
(5, 'Icee'),
(6, '2D'),
(7, '3D'),
(8, '4D');
SET IDENTITY_INSERT Productos OFF;

-- PRECIOS
SET IDENTITY_INSERT Precios ON;
INSERT INTO Precios (IdPrecio,IdProducto, Precio) VALUES
(1001,1,120),
(1002,2,90),
(1003,3,90),
(1004,4,85),
(1005,5,105),
(1006,6,85),
(1007,7,110),
(1008,8,160);
SET IDENTITY_INSERT Precios OFF;

-- FUNCIONES
SET IDENTITY_INSERT Funciones ON;
INSERT INTO Funciones (IdFuncion, IdPelicula, IdSala, IdProducto, Horario)
VALUES
(1,1,11,6,'12:30:00'),
(2,1,6,6,'13:00:00'),
(3,1,2,6,'13:45:00'),
(4,1,11,6,'14:30:00'),
(5,1,6,6,'15:10:00'),
(6,1,2,6,'15:50:00'),
(7,1,11,6,'16:45:00'),
(8,1,6,6,'18:30:00'),
(9,1,2,6,'19:00:00'),
(10,1,11,6,'20:30:00'),
(11,1,6,6,'21:15:00'),
(12,2,9,7,'12:00:00'),
(13,2,7,6,'12:45:00'),
(14,2,3,8,'13:30:00'),
(15,2,9,6,'14:40:00'),
(16,2,7,7,'15:30:00'),
(17,2,3,6,'16:15:00'),
(18,2,9,6,'17:20:00'),
(19,2,7,8,'18:15:00'),
(20,2,3,7,'19:20:00'),
(21,2,9,6,'20:00:00'),
(22,2,7,7,'21:00:00'),
(23,2,3,6,'22:00:00'),
(24,3,4,7,'12:15:00'),
(25,3,1,6,'14:10:00'),
(26,3,4,6,'15:00:00'),
(27,3,1,6,'16:00:00'),
(28,3,4,7,'17:00:00'),
(29,3,1,6,'18:00:00'),
(30,3,4,6,'19:45:00'),
(31,3,1,6,'20:50:00'),
(32,3,4,7,'21:30:00'),
(33,4,10,6,'14:00:00'),
(34,4,5,6,'15:20:00'),
(35,4,10,6,'16:30:00'),
(36,4,5,6,'17:45:00'),
(37,4,10,6,'19:10:00'),
(38,4,5,6,'20:15:00'),
(39,4,10,6,'21:50:00'),
(40,5,8,6,'14:20:00'),
(41,5,8,7,'17:30:00'),
(42,5,8,6,'20:40:00'),
(43,6,12,6,'13:20:00'),
(44,6,12,7,'18:45:00'),
(45,7,5,6,'13:10:00'),
(46,1,23,6,'12:30:00'),
(47,1,18,6,'13:00:00'),
(48,1,14,6,'13:45:00'),
(49,1,23,6,'14:30:00'),
(50,1,18,6,'15:10:00'),
(51,1,14,6,'15:50:00'),
(52,1,23,6,'16:45:00'),
(53,1,18,6,'18:30:00'),
(54,1,14,6,'19:00:00'),
(55,1,23,6,'20:30:00'),
(56,1,18,6,'21:15:00'),
(57,2,21,7,'12:00:00'),
(58,2,19,6,'12:45:00'),
(59,2,15,8,'13:30:00'),
(60,2,21,6,'14:40:00'),
(61,2,19,7,'15:30:00'),
(62,2,15,6,'16:15:00'),
(63,2,21,6,'17:20:00'),
(64,2,19,8,'18:15:00'),
(65,2,15,7,'19:20:00'),
(66,2,21,6,'20:00:00'),
(67,2,19,7,'21:00:00'),
(68,2,15,6,'22:00:00'),
(69,3,16,7,'12:15:00'),
(70,3,13,6,'14:10:00'),
(71,3,16,6,'15:00:00'),
(72,3,13,6,'16:00:00'),
(73,3,16,7,'17:00:00'),
(74,3,13,6,'18:00:00'),
(75,3,16,6,'19:45:00'),
(76,3,13,6,'20:50:00'),
(77,3,16,7,'21:30:00'),
(78,4,22,6,'14:00:00'),
(79,4,17,6,'15:20:00'),
(80,4,22,6,'16:30:00'),
(81,4,17,6,'17:45:00'),
(82,4,22,6,'19:10:00'),
(83,4,17,6,'20:15:00'),
(84,4,22,6,'21:50:00'),
(85,5,20,6,'14:20:00'),
(86,5,20,7,'17:30:00'),
(87,5,20,6,'20:40:00'),
(88,6,24,6,'13:20:00'),
(89,6,24,7,'18:45:00'),
(90,7,17,6,'13:10:00'),
(91,1,35,6,'12:30:00'),
(92,1,30,6,'13:00:00'),
(93,1,26,6,'13:45:00'),
(94,1,35,6,'14:30:00'),
(95,1,30,6,'15:10:00'),
(96,1,26,6,'15:50:00'),
(97,1,35,6,'16:45:00'),
(98,1,30,6,'18:30:00'),
(99,1,26,6,'19:00:00'),
(100,1,35,6,'20:30:00'),
(101,1,30,6,'21:15:00'),
(102,2,33,7,'12:00:00'),
(103,2,31,6,'12:45:00'),
(104,2,27,8,'13:30:00'),
(105,2,33,6,'14:40:00'),
(106,2,31,7,'15:30:00'),
(107,2,27,6,'16:15:00'),
(108,2,33,6,'17:20:00'),
(109,2,31,8,'18:15:00'),
(110,2,27,7,'19:20:00'),
(111,2,33,6,'20:00:00'),
(112,2,31,7,'21:00:00'),
(113,2,27,6,'22:00:00'),
(114,3,28,7,'12:15:00'),
(115,3,25,6,'14:10:00'),
(116,3,28,6,'15:00:00'),
(117,3,25,6,'16:00:00'),
(118,3,28,7,'17:00:00'),
(119,3,25,6,'18:00:00'),
(120,3,28,6,'19:45:00'),
(121,3,25,6,'20:50:00'),
(122,3,28,7,'21:30:00'),
(123,4,34,6,'14:00:00'),
(124,4,29,6,'15:20:00'),
(125,4,34,6,'16:30:00'),
(126,4,29,6,'17:45:00'),
(127,4,34,6,'19:10:00'),
(128,4,29,6,'20:15:00'),
(129,4,34,6,'21:50:00'),
(130,5,32,6,'14:20:00'),
(131,5,32,7,'17:30:00'),
(132,5,32,6,'20:40:00'),
(133,6,36,6,'13:20:00'),
(134,6,36,7,'18:45:00'),
(135,7,29,6,'13:10:00');
SET IDENTITY_INSERT Funciones OFF;

-- VENTAS
SET IDENTITY_INSERT Ventas ON;
INSERT INTO Ventas (IdVenta, IdFuncion) VALUES
(1,118), (2,58), (3,100), (4,105), (5,10), (6,36), (7,39), (8,14), (9,72), (10,104),
(11,79), (12,77), (13,111), (14,69), (15,42), (16,68), (17,115), (18,81), (19,47),
(20,52),
(21,62), (22,80), (23,30), (24,58), (25,130), (26,43), (27,47), (28,98), (29,119),
(30,60),
(31,73), (32,60), (33,22), (34,22), (35,38), (36,3), (37,96), (38,106), (39,33),
(40,124),
(41,42), (42,72), (43,57), (44,34), (45,23), (46,50), (47,10), (48,23), (49,80),
(50,134),
(51,80), (52,78), (53,24), (54,10), (55,18), (56,64), (57,125), (58,1), (59,77),
(60,105),
(61,121), (62,119), (63,114), (64,124), (65,45), (66,41), (67,49), (68,10), (69,86),
(70,86),
(71,40), (72,7), (73,20), (74,62), (75,61), (76,51);
SET IDENTITY_INSERT Ventas OFF;

-- DETALLE VENTA
SET IDENTITY_INSERT DetalleVenta ON;
INSERT INTO DetalleVenta (IdDetalle, IdVenta, IdProducto) VALUES
(1,1,7), (2,1,4), (3,1,3),
(4,2,6),
(5,3,6), (6,3,2),
(7,4,6), (8,4,5),
(9,5,6), (10,5,1),
(11,6,6), (12,6,1), (13,6,1),
(14,7,6), (15,7,4),
(16,8,8),
(17,9,6), (18,9,3),
(19,10,8),
(20,11,6), (21,11,1),
(22,12,7), (23,12,3),
(24,13,6), (25,13,4), (26,13,1), (27,13,5), (28,13,4),
(29,14,7), (30,14,4), (31,14,4), (32,14,4),
(33,15,6), (34,15,3), (35,15,5), (36,15,5),
(37,16,6), (38,16,3), (39,16,5), (40,16,4),
(41,17,6), (42,17,5), (43,17,1), (44,17,3), (45,17,2),
(46,18,6), (47,18,3),
(48,19,6), (49,19,5),
(50,20,6),
(51,21,6), (52,21,2), (53,21,5), (54,21,1), (55,21,3),
(56,22,6), (57,22,3),
(58,23,6), (59,23,2), (60,23,4),
(61,24,6), (62,24,1), (63,24,3), (64,24,1),
(65,25,6),
(66,26,6), (67,26,4), (68,26,2), (69,26,1), (70,26,5), (71,26,5), (72,26,5),
(73,27,6),
(74,28,6), (75,28,1),
(76,29,6), (77,29,3),
(78,30,6), (79,30,1), (80,30,2),
(81,31,7), (82,31,2), (83,31,3), (84,31,2),
(85,32,6), (86,32,2), (87,32,2),
(88,33,7), (89,33,5), (90,33,3), (91,33,4), (92,33,4), (93,33,1),
(94,34,7), (95,34,5),
(96,35,6),
(97,36,6), (98,36,1),
(99,37,6), (100,37,1), (101,37,3),
(102,38,7), (103,38,5),
(104,39,6), (105,39,5), (106,39,2),
(107,40,6), (108,40,4), (109,40,2), (110,40,3), (111,40,3),
(112,41,6), (113,41,1),
(114,42,6), (115,42,3),
(116,43,7), (117,43,4),
(118,44,6), (119,44,3), (120,44,1), (121,44,1),
(122,45,6), (123,45,3), (124,45,1), (125,45,1),
(126,46,6), (127,46,2),
(128,47,6), (129,47,4), (130,47,4),
(131,48,6),
(132,49,6), (133,49,5), (134,49,5),
(135,50,7),
(136,51,6), (137,51,5), (138,51,5), (139,51,1),
(140,52,6), (141,52,5),
(142,53,7),
(143,54,6),
(144,55,6), (145,55,1), (146,55,3), (147,55,4), (148,55,4),
(149,56,8), (150,56,1),
(151,57,6), (152,57,5), (153,57,2),
(154,58,6), (155,58,3), (156,58,1),
(157,59,7),
(158,60,6),
(159,61,6),
(160,62,6), (161,62,2), (162,62,4), (163,62,4),
(164,63,7), (165,63,3), (166,63,1), (167,63,3),
(168,64,6), (169,64,3),
(170,65,6), (171,65,4), (172,65,5),
(173,66,7), (174,66,2),
(175,67,6), (176,67,4), (177,67,3),
(178,68,6), (179,68,4),
(180,69,7),
(181,70,7), (182,70,5),
(183,71,6), (184,71,4), (185,71,1),
(186,72,6), (187,72,2), (188,72,2),
(189,73,7),
(190,74,6), (191,74,2), (192,74,4), (193,74,2),
(194,75,7), (195,75,5),
(196,76,6), (197,76,2), (198,76,2);
SET IDENTITY_INSERT DetalleVenta OFF;

Esquema relacional tablas final.

Sss

10 Preguntas Clave para Evaluar el Proyecto .


 1. ¿Cuántas tablas componen la base de datos y qué relación existe entre ellas?
(Verifica comprensión del modelo relacional).

Tenemos 8 tablas, me gusta pensar que la mayoria maneja una relación de N:N, como se muestra en
esquema de tablas, sin embargo en la tabla de peliculas guarda un 1:1 ya que es de las tablas menos
involucradas con otras.

 2. ¿Cómo identificas a un cliente o usuario de forma única en tu base de datos?


(Revisa si hay una clave primaria bien definida).

Primero hay que comprender una cosa las ventas de realizaron de forma aleatoria, es decir, de 76
clientes se contabiliza que todos compraron 1 boleto para la función teniendo en cuenta eso, cada
“IdVenta” corresponde a un cliente.

 3. ¿Cuáles son los cinco títulos de películas más vendidos?


(Evalúa consultas con GROUP BY y ORDER BY).

Como son 76 clientes por lo menos se espera que la suma de todas las peliculas/funciones diera este
resultado, si estas corriendo mi codigo en SQL prueba con (claro yo tengo la versión de docker, no
se que cambie para ti):
SELECT
[Link],
[Link] AS NombrePelicula,
COUNT(*) AS TotalVentas
FROM
Ventas v
JOIN
Funciones f ON [Link] = [Link]
JOIN
Peliculas p ON [Link] = [Link]
GROUP BY
[Link], [Link]
ORDER BY
TotalVentas DESC;

 4. ¿Cuántas entradas se vendieron en total durante un período específico (por


ejemplo, en enero)?
(Evalúa uso de WHERE y funciones de agregación).

Pregunta completamente fuera de lugar por lo menos en mi base de datos, aquí se contabilizan
unicamente las visitas a los 3 complejos el día 23 de julio, es una pena, pero si extendiera las fechas,
probablemente de SQL básico, bien podría decir un intermedio.

 5. ¿Qué días de la semana tienen más ventas registradas?


(Evalúa uso de funciones de fecha y agrupamiento).

Misma respuesta que en la pregunta 4.

 6. ¿Qué película generó más ingresos?


(Relaciona ventas con precios, exige uso de SUM() y JOIN).
Afortunadamente con esto funciona:
SELECT
[Link],
[Link] AS NombrePelicula,
SUM([Link] * [Link]) AS IngresosTotales
FROM
Ventas v
JOIN
DetalleVenta d ON [Link] = [Link]
JOIN
Precios pr ON [Link] = [Link]
JOIN
Funciones f ON [Link] = [Link]
JOIN
Peliculas p ON [Link] = [Link]
GROUP BY
[Link], [Link]
ORDER BY
IngresosTotales DESC;

 7. ¿Quién fue el cliente que más compró entradas y cuántas compró?


(Verifica comprensión de agregación y relaciones).

Si la base la tuvieramos mas en un esquema de “lealtad”, la pregunta sería bien atinada, pero repito
que 76 clientes y cada uno compro una entrada.

 8. ¿Qué diferencia hay entre los precios de entrada por tipo de sala (2D, 3D, VIP,
etc.)?
(Consulta con JOIN y GROUP BY).

Podría ser de ayuda emplear el siguiente comando (un aspecto a mejorar seria colocar la leyenda
“boleto”, para poder realizar el Group By:
SELECT
[Link] AS TipoProducto,
[Link]
FROM
Precios pr
JOIN
Productos p ON [Link] = [Link]
ORDER BY
[Link] DESC;

 9. ¿Cuántas entradas se vendieron por tipo de entrada (adulto, niño, tercera edad,
etc.)?
(Evaluación de categorización de datos).

Bueno no tenemos esa categorización.

 10. ¿Qué errores o limitaciones encontraste al diseñar tu base de datos y cómo los
resolviste?
(Reflexión sobre el proceso de diseño y solución de problemas).

Del boceto inicial al codigo final hay una gran variedad de cambios, entre ellos esta la eliminación
de la tabla tamaños, ya que eso hubiera complicado los precios, si es irse por la vía fácil, pero en
estos momentos lo mejor que se podía optar por hacer era optimizar los datos. Empezaron a surgir
muchos problemas al cambiar de herramienta para interpretar el lenguaje, de “Programiz” a “MS
SQL 2022”, se encontraron muchos problemas en la sintaxis del código. Si bien muchas de las
preguntas de esta “guía” no son posible resolverlas, modificar las tablas y sus relaciones entre si,
hubiera llevado a reestructurar desde 0, la base de datos, insisto SQL, básico jaja. En conclusión lo
más dificil no es realizar consultas, si no crear la base de datos.

También podría gustarte