Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


repaso para el examen, Resúmenes de Sistemas de Gestión de Bases de Datos Relacionales (RDBMS)

repaso para el examn de l profesr jaime velasquez, es un repaso de sus ultimos ejericicos hechos, sirves sefaefsefsefsaefsefsefsefsefsefsefsefsfsefeeeeeeeeeeeeeeeeeeeeeee

Tipo: Resúmenes

2025/2026

Subido el 02/06/2026

luis-malaver-1
luis-malaver-1 🇵🇪

1 documento

1 / 9

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
1. CREACIÓN DE TABLAS
CREATE TABLE Agencia (
id_agencia INT PRIMARY KEY,
fecha_inicio DATE,
ciudad VARCHAR(100)
);
CREATE TABLE Paquete (
id_paquete INT PRIMARY KEY,
precio DECIMAL(10,2),
destino VARCHAR(200),
id_agencia INT,
FOREIGN KEY (id_agencia) REFERENCES Agencia(id_agencia)
);
CREATE TABLE Combo (
id_principal INT,
id_relacionado INT,
PRIMARY KEY (id_principal, id_relacionado),
FOREIGN KEY (id_principal) REFERENCES Paquete(id_paquete),
FOREIGN KEY (id_relacionado) REFERENCES Paquete(id_paquete)
);
CREATE TABLE Cliente (
dni VARCHAR(15) PRIMARY KEY,
nombre VARCHAR(100),
domicilio VARCHAR(200)
);
pf3
pf4
pf5
pf8
pf9

Vista previa parcial del texto

¡Descarga repaso para el examen y más Resúmenes en PDF de Sistemas de Gestión de Bases de Datos Relacionales (RDBMS) solo en Docsity!

1. CREACIÓN DE TABLAS

CREATE TABLE Agencia ( id_agencia INT PRIMARY KEY, fecha_inicio DATE, ciudad VARCHAR(100) ); CREATE TABLE Paquete ( id_paquete INT PRIMARY KEY, precio DECIMAL(10,2), destino VARCHAR(200), id_agencia INT, FOREIGN KEY (id_agencia) REFERENCES Agencia(id_agencia) ); CREATE TABLE Combo ( id_principal INT, id_relacionado INT, PRIMARY KEY (id_principal, id_relacionado), FOREIGN KEY (id_principal) REFERENCES Paquete(id_paquete), FOREIGN KEY (id_relacionado) REFERENCES Paquete(id_paquete) ); CREATE TABLE Cliente ( dni VARCHAR(15) PRIMARY KEY, nombre VARCHAR(100), domicilio VARCHAR(200) );

-- TABLA PUENTE: Venta CREATE TABLE Venta ( id_venta INT PRIMARY KEY, dni_cliente VARCHAR(15), id_paquete INT, fecha_venta DATE DEFAULT CURRENT_DATE, FOREIGN KEY (dni_cliente) REFERENCES Cliente(dni), FOREIGN KEY (id_paquete) REFERENCES Paquete(id_paquete) ); CREATE TABLE Pago ( id_pago INT PRIMARY KEY, tipo VARCHAR(50), monto DECIMAL(10,2), banco VARCHAR(50) DEFAULT 'unico', id_venta INT, FOREIGN KEY (id_venta) REFERENCES Venta(id_venta) ); -- 2. INGRESO DE 4 REGISTROS POR TABLA INSERT INTO Agencia VALUES (10, '2025-01-10', 'Nuevo Chimbote'), (20, '2025-02-15', 'Lima'), (30, '2025-03-20', 'Cusco'), (40, '2025-04- 25', 'Cajamarca'); INSERT INTO Paquete VALUES (101, 1500.00, 'España', 10), (102, 1200.00, 'México', 20), (103, 2500.00, 'Japón', 30), (104, 800.00, 'Colombia', 40); INSERT INTO Combo VALUES (101, 102), (103, 101), (102, 104), (104, 101);

END IF;

-- Validamos que el paquete exista IF NOT EXISTS (SELECT 1 FROM Paquete WHERE id_paquete = p_id_paquete) THEN RAISE EXCEPTION 'El paquete con ID % no existe.', p_id_paquete; END IF; -- Insertamos la venta INSERT INTO Venta (id_venta, dni_cliente, id_paquete, fecha_venta) VALUES (p_id_venta, p_dni_cliente, p_id_paquete, CURRENT_DATE); RAISE NOTICE 'Venta #% registrada: Cliente % compró paquete %', p_id_venta, p_dni_cliente, p_id_paquete; END; $$; CALL registrar_venta_completa(10, '71234567', 102); CREATE OR REPLACE PROCEDURE registrar_pago_venta( p_id_pago INT, p_tipo VARCHAR, p_monto DECIMAL, p_id_venta INT ) LANGUAGE plpgsql AS $$ BEGIN -- Verificamos si la venta existe

IF NOT EXISTS (SELECT 1 FROM Venta WHERE id_venta = p_id_venta) THEN RAISE EXCEPTION 'No se puede pagar una venta que no existe (ID: %).', p_id_venta; END IF; -- Insertamos el pago (el banco será 'unico' por defecto) INSERT INTO Pago (id_pago, tipo, monto, id_venta) VALUES (p_id_pago, p_tipo, p_monto, p_id_venta); RAISE NOTICE 'Pago #% de % soles procesado para la Venta #%', p_id_pago, p_monto, p_id_venta; END; $$; CALL registrar_pago_venta(600, 'Tarjeta', 1200.00, 10); Oracle -- Borrado de tablas por si quieres reejecutar el script DROP TABLE Pago CASCADE CONSTRAINTS; DROP TABLE Venta CASCADE CONSTRAINTS; DROP TABLE Combo CASCADE CONSTRAINTS; DROP TABLE Paquete CASCADE CONSTRAINTS; DROP TABLE Agencia CASCADE CONSTRAINTS; DROP TABLE Cliente CASCADE CONSTRAINTS; -- 1. CREACIÓN DE TABLAS CREATE TABLE Agencia ( id_agencia NUMBER PRIMARY KEY, fecha_inicio DATE, ciudad VARCHAR2(100)

id_paquete NUMBER, fecha_venta DATE DEFAULT SYSDATE, CONSTRAINT fk_venta_cli FOREIGN KEY (dni_cliente) REFERENCES Cliente(dni), CONSTRAINT fk_venta_paq FOREIGN KEY (id_paquete) REFERENCES Paquete(id_paquete) ); CREATE TABLE Pago ( id_pago NUMBER PRIMARY KEY, tipo VARCHAR2(50), monto NUMBER(10,2), banco VARCHAR2(50) DEFAULT 'unico', id_venta NUMBER, CONSTRAINT fk_pago_ven FOREIGN KEY (id_venta) REFERENCES Venta(id_venta) ); -- 2. INGRESO DE 4 REGISTROS POR TABLA BEGIN -- Agencias INSERT INTO Agencia VALUES (10, TO_DATE('2025-01-10','YYYY-MM- DD'), 'Nuevo Chimbote'); INSERT INTO Agencia VALUES (20, TO_DATE('2025-02-15','YYYY-MM- DD'), 'Lima'); INSERT INTO Agencia VALUES (30, TO_DATE('2025-03-20','YYYY-MM- DD'), 'Cusco'); INSERT INTO Agencia VALUES (40, TO_DATE('2025-04-25','YYYY-MM- DD'), 'Cajamarca'); -- Paquetes

INSERT INTO Paquete VALUES (101, 1500.00, 'España', 10); INSERT INTO Paquete VALUES (102, 1200.00, 'México', 20); INSERT INTO Paquete VALUES (103, 2500.00, 'Japón', 30); INSERT INTO Paquete VALUES (104, 800.00, 'Colombia', 40); -- Combos INSERT INTO Combo VALUES (101, 102); INSERT INTO Combo VALUES (103, 101); INSERT INTO Combo VALUES (102, 104); INSERT INTO Combo VALUES (104, 101); -- Clientes INSERT INTO Cliente VALUES ('71234567', 'Luis Malaver', 'Av. Central 123'); INSERT INTO Cliente VALUES ('40556677', 'Ana Torres', 'Urb. Casuarinas'); INSERT INTO Cliente VALUES ('10203040', 'Carlos Ruiz', 'Calle Álamos'); INSERT INTO Cliente VALUES ('88990011', 'María López', 'Jr. Pardo'); -- Ventas INSERT INTO Venta (id_venta, dni_cliente, id_paquete) VALUES (1, '71234567', 101); INSERT INTO Venta (id_venta, dni_cliente, id_paquete) VALUES (2, '40556677', 101); INSERT INTO Venta (id_venta, dni_cliente, id_paquete) VALUES (3, '10203040', 103); INSERT INTO Venta (id_venta, dni_cliente, id_paquete) VALUES (4, '88990011', 104); -- Pagos