Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Prueba 1 - Una Solución Posible
Prueba 1 - Una Solución Posible
1.
2.
3.
create table raza ( codigo text primary key, nombre text not null );
create table mascota ( codigo_chip text primary key, nombre text not null,
etapa_vida text not null references etapa_vida(etapa),
rut_dueno text not null references dueno(rut),
codigo_raza text not null references raza(codigo) );
create table tipo_servicio ( nombre text primary key, valor integer not null );
create table servicio ( codigo_chip text not null, fecha_inicio date not null,
tipo_servicio text not null references tipo_servicio(nombre),
fecha date not null,
constraint fk_reserva foreign key (codigo_chip, fecha_inicio)
references reserva (codigo_chip, fecha_inicio) );
5.
insert
into
dueno (rut, nombre, celular)
values
('r1', 'n1', 'c1'),
('r2', 'n2', 'c2'),
('r3', 'n3', 'c3'),
('r4', 'n4', 'c4'),
('r5', 'n5', 'c5');
insert
into
raza(codigo, nombre)
values
('B1', 'Basset hound'),
('B2', 'Beagle'),
('P1', 'Pastor alemán'),
('SS', 'San bernardo');
insert
into
etapa_vida
values
('cachorro'),
('adulto'),
('mayor');
insert
into
mascota(codigo_chip, nombre, etapa_vida, rut_dueno, codigo_raza)
values
('123', 'Lucas', 'cachorro', 'r1', 'B2'),
('456', 'Carlota', 'cachorro', 'r1', 'B1'),
('789', 'Kaiser', 'adulto', 'r2', 'P1'),
('abc', 'Cachupín', 'mayor', 'r3', 'B2'),
('def', 'Titán', 'adulto', 'r5', 'SS');
insert
into
tipo_actividad
values
('dormir'),
('jugar');
insert
into
requerimiento_espacio (codigo_raza, etapa, tipo_actividad, metros2)
values
('B1', 'cachorro', 'dormir', .5),
('B1', 'adulto', 'dormir', 1),
('B1', 'mayor', 'dormir', 1),
('B1', 'cachorro', 'jugar', 4),
('B1', 'adulto', 'jugar', 8),
('B1', 'mayor', 'jugar', 11),
('B2', 'cachorro', 'dormir', .5),
('B2', 'adulto', 'dormir', 1),
('B2', 'mayor', 'dormir', 1),
('B2', 'cachorro', 'jugar', 3),
('B2', 'adulto', 'jugar', 7),
('B2', 'mayor', 'jugar', 10),
('P1', 'cachorro', 'dormir', .65),
('P1', 'adulto', 'dormir', 1.3),
('P1', 'mayor', 'dormir', 1.3),
('P1', 'cachorro', 'jugar', 6),
('P1', 'adulto', 'jugar', 13),
('P1', 'mayor', 'jugar', 17),
('SS', 'cachorro', 'dormir', 1),
('SS', 'adulto', 'dormir', 2),
('SS', 'mayor', 'dormir', 2),
('SS', 'cachorro', 'jugar', 10),
('SS', 'adulto', 'jugar', 21),
('SS', 'mayor', 'jugar', 26) ;
insert
into
reserva (codigo_chip, fecha_inicio, fecha_fin, ingreso_registrado)
values
('123', '2020-01-01', '2020-01-20', false),
('123', '2020-02-14', '2020-02-20', false),
('123', '2020-05-05', '2020-06-01', false),
('abc', '2020-03-05', '2020-04-01', false),
('def', '2020-06-01', '2020-07-10', false);
insert
into
tipo_servicio (nombre, valor)
values
('corte', 7500),
('uñas', 4500),
('baño', 9500);
insert
into
servicio (codigo_chip, fecha_inicio, tipo_servicio, fecha)
values
('123', '2020-01-01', 'corte', '2020-01-02'),
('123', '2020-01-01', 'uñas', '2020-01-03'),
('def', '2020-06-01', 'uñas', '2020-06-02'),
('def', '2020-06-01', 'corte', '2020-06-02'),
('def', '2020-06-01', 'baño', '2020-06-02'),
('123', '2020-05-05', 'uñas', '2020-06-01');
6.
-- a: está más arriba!
-- b:
insert into dueno (rut, nombre, celular) values ('111111111', 'Felipe', '+56998765432');
-- c:
update reserva set ingreso_registrado = true
where codigo_chip = '85729' and fecha_inicio = '2020-08-01'
-- d:
insert into servicio (codigo_chip, fecha_inicio, tipo_servicio, fecha) values
('85729', '2020-08-01', 'corte', '2020-08-02'),
('85729', '2020-08-01', 'uñas', '2020-08-17')
-- e:
select count(*) from reserva -- Si muestra un CERO es porque la mascota NO está
where '2020-07-01' between fecha_inicio and fecha_fin
and codigo_chip = '85729';
-- f:
-- 50 metros total, 35% dormir = 17.5m2 65% jugar = 32.5m2