Está en la página 1de 44

Universidad Nacional de San Agustín

Facultad de Ingeniería de Producción y Servicios


Escuela Profesional de Ciencia de la Computación

BASE DE DATOS II
Lab 8: Base de Datos Dinámica

Integrantes: Barrios Cornejo, Selene


Garcia Diaz, Germán
Montesinos Apaza, Sergio
Profesor: Ing. Yuber Velazco Paredes
Arequipa, Perú
i

Objetivo
El objetivo del siguiente laboratorio es aprender a crear bases de datos dinamicas, donde la
información almacenada se modifica con el tiempo, permitiendo operaciones como actualización,
borrado y edición de datos, además de las operaciones fundamentales de consulta.

BASE DE DATOS II 2019- I


Índice de Contenidos ii

Índice de Contenidos

1. Contenido Teórico 1
1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2. Bar Administrador 1
2.1. Enunciado del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.2. Análisis de los tipos de entidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.3. Análisis de los tipos de interrelación . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.4. Modelo Relacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4.1. Tabla Persona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4.2. Tabla Ventas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4.3. Tabla Factura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4.4. Tabla Boleta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4.5. Tabla Mobiliario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4.6. Tabla Botella . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4.7. Tabla Productos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3. Creación de la BD 5

Referencias 40

4. Conclusiones 41

Índice de Figuras
1. Esquema Entidad-Relación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Modelo Relacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

BASE DE DATOS II 2019- I


Bar Administrador 1

1. Contenido Teórico
1.1. Introducción
Las bases de datos pueden clasificarse de varias maneras, de acuerdo al criterio elegido para su
clasificación: Según la variabilidad de los datos almacenados

Bases de datos estáticas: son bases de datos de sólo lectura, utilizadas primordialmen-
te para almacenar datos históricos que posteriormente se pueden utilizar para estudiar el
comportamiento de un conjunto de datos a través del tiempo,realizar proyecciones y tomar
decisiones.

Bases de datos dinámicas: son bases de datos donde los datos almacenados se modifican
con el tiempo, permitiendo operaciones como actualización y adición de datos, además de
las operaciones fundamentales de consulta. Un ejemplo de esto puede ser la base de datos
utilizada en un sistema de información de una tienda de abarrotes, una farmacia, un videoclub,
etc.

2. Bar Administrador
2.1. Enunciado del problema
Se desea considerar la informacion correspondiente a un restobar ubicado en la av. Dolores. El
dueño del restobar no tiene un sistema para almacenar la informacion de su local, el lleva un control
del local por medio de una agenda, en el cual lleva el registro de los empleados, clientes,productos
e inmbiliario. Para la mejor difusión del bar se diseña una página web.

Se va a considerar, los siguientes supuestos semánticos en el problema:

Una persona puede ser considerada como un empleado o cliente.

Por cada persona se debe llevar el registro de:Nombre, Apellido Paterno, Apellido Ma-
terno y DNI,

Un empleado puede ser permanente u ocasional, esto dependera de cuan bien realize su
trabajo.

Un empleado permanente puede tomar el cargo de: bartender, vigilante ,gerente , me-
sero, personal de limpieza, cajero.

El personal ocasional pueden tomar el cargo de: anfitriona o DJ.

Una persona tiene N ventas.

Por cada venta se debe llevar el registro de: id, descripción y cantidad.

Una venta puede contener N productos. Se debe llevar el control del: precio, id y descrip-
ción.

BASE DE DATOS II 2019- I


Bar Administrador 2

El restobar tiene un almacen, el cuál almacena las botellas, estas pueden ser de: Pisco,
Wiski, Ron, Cerveza, Vodka, Vinos, entre otros.

Por cada botella se lleva el registro de la: marca, cantidad,capacidad.

Del inmobiliario se debe almacenar id,cantidad y descripción.

El inmbiliario puede ser electrónico o no electrónico .

El restobar tiene un RUC, dirección y telefono.

Cada usuario tiene un id, usuario,tipo, contraseña.

2.2. Análisis de los tipos de entidad


PERSONA: representa al objeto del mundo real "personas que son clientes,trabajadores o
propietarios del local".Para este tipo de entidad se van a considerar los atributos: Nombre,
Apellido Paterno, Apellido Materno y DNI.
Consideramos que el atributo DNI servira para identificar sin ambiguedad las entidades de
este tipo, el cual a su vez es un identificador principal.

PRODUCTOS: representa al objeto del mundo real "Bebidas", y que representa al producto
estrella del restobar.Para este tipo de entidad se van a considerar los atributos: precio,id y
desripción.

VENTAS: representa al objeto del mundo real a çada una de las ventas que se realizan en
el restobar que para su identificación necesitan los atributos : id, descripción y cantidad.
2

ALMACEN : representa al objeto del mundo real .Almacen", este es el lugar donde se alma-
cenan las bebidas del local y se encarga de brindarnos información del stock de los productos
que ofrece el restobar.

INMOBILIARIO:representa al objeto del mundo real Ïnmobiliario", es el conjuntos de


cosas inmuebles del restobar, estos ayudan a brindar un buen servicio al cliente.

USUARIO :representa al objeto del mundo real Üsuario",conjunto de personas que usan
habitualente el servicio y se registraron a la pagina web para recibir mas información de
promociones y actividades en el restobar.

BASE DE DATOS II 2019- I


Bar Administrador 3

Figura 1: Esquema Entidad-Relación

2.3. Análisis de los tipos de interrelación


Tipo de interrelación Persona/Venta: relaciona las entidades persona y venta , la interrelación
es del tipo 1:N. Un registro en una entidad en A se relaciona con cero o muchos registros
en una entidad B. Pero los registros de B solamente se relacionan con un registro en A, esto
quiere decir que un vendedor puede tener muchas ventas pero una venta solo puede tener un
vendedor.

Tipo de interrelación Venta/Productos: relaciona las entidades ventas y productos,la interre-


lación es del tipo 1:N. Esto quiere decir que una venta puede tener muchos productos pero
un producto solo puede tener una venta.

Tipo de interrelación Almacen/Bar: relaciona las entidades almacen y bar, la interrelación es


del tipo 1:1. Un registro de una entidad A se relaciona con solo un registro en una entidad
B, esto quiere decir un almacén solo puede suministrar a un bar y un bar solo puede tener
un almacén.

Tipo de interrelación Botella/Cocteles: relaciona las entidades botella y cocteles, la interrela-


ción es del tipo N:M. Una entidad en A se puede relacionar con 0 o con muchas entidades en
B y viceversa.Muchos cocteles pueden ser preparados con la misma botella de alcohol y cada
coctel puede preparado con muchas botellas de alcohol.

Tipo de interrelación Distribuidores/Botella: relaciona las entidades distribuidores y botella,


la interrelación es del tipo 1:N,esto quiere decir que un distribuidor puede tener muchas
botellas pero una botella solo puede tener un distribuidor.

BASE DE DATOS II 2019- I


Bar Administrador 4

2.4. Modelo Relacional


Bueno en esta sección vamos a mostrar el modelo relacional del restobar.

Figura 2: Modelo Relacional

2.4.1. Tabla Persona


La tabla Persona se forma a partir del tipo de entidad persona. Esta tabla incluye los atri-
butos DNI, nombre , apellido materno, apellido paterno, fecha de nacimiento. La clave
principal de la tabla es el atributo DNI, puesto que se a considerado que no hay dos persona con
el mismo número de de documento nacional de identidad.
La tabla Persona queda de la forma siguiente: Persona (DNI, nombre , apellido materno, apellido
paterno, fecha de nacimiento).
Como sabemos, una persona puede tener diferentes privilegios en el bar, entonces se realizaron las
tablas correspondientes para almacenar sus datos , estas son Empleados, Clientes, Permanentes,
Bartender, Mesero, Seguridad, Gerente, Personal Limpieza, Anfitrionas, Dj, estas tablas heredan
los atributos de la tabla persona, con la diferenci que cada uno tiene un unico identificador.

2.4.2. Tabla Ventas


La tabla Ventas se forma a partir del tipo de entidad ventas. Esta tabla incluye lo atributos
id venta, dni, descripción, cantidad, fecha, dni cajero, id producto. La clave principal de
la tabla es el atributo id venta, puesto que se considera que no habra dos ventas con el mismo

BASE DE DATOS II 2019- I


Creación de la BD 5

identificador y/o código.

2.4.3. Tabla Factura


La tabla Factura se forma a partir del tipo de entidad factura, esta tiene un atributo , es cual
es una clave foranea con la tabla ventas, esta es id venta ,identifica una columna en la TABLA
REFERENCIANTE a una columna en la TABLA REFERENCIADA.

2.4.4. Tabla Boleta


La tabla Boleta se forma a partir del tipo de entidad boleta, esta tiene un atributo , es cual
es una clave foranea con la tabla ventas, esta es id venta ,identifica una columna en la TABLA
REFERENCIANTE a una columna en la TABLA REFERENCIADA.

2.4.5. Tabla Mobiliario


La tabla Mobiliario se forma a partir del tipo de entidad mobiliario. Esta tabla incluye los
atributos id mobiliario, nombre, descripción, cantidad. La clave principal de la tabla es el
atributo id mobiliario.
El mobiliario puede ser no electronico,electronico, cristaleria u otros, entonces se crearon las tablas
NoElectronico,Cristaleria, NEotros, las cuales llevan una clave foranea y heredan todos los
atributos de la tabla mobiliario.

2.4.6. Tabla Botella


La tabla Ventas se forma a partir del tipo de entidad Botella.Esta tabla incluye lo atributos id
producto b, capacidad mi, marca, cantidad, id almacen, id distribuidor La clave principal
de la tabla es el atributo id producto b, puesto que se considera que no habra dos botellas con el
mismo identificador y/o código.

Observamos las tablas Vinos, Vodka, Ron, Cerveza, Pisco, Wiskis, las cuales heredan los atri-
butos de la tabla Ventas, pero cada una de ellas tiene su respectivo codigo por producto.

2.4.7. Tabla Productos


La tabla Productos se forma a partir del tipo de entidad Productos. Esta tabla incluye lo
atributos id producto, precio u, descripción. La clave principal de la tabla es el atributo id
producto, puesto que se considera que no habra dos productos con el mismo identificador y/o
código. La clave id producto se relaciona con las tabla Ventas y Otros.

3. Creación de la BD
1 AUTOCOMMIT := 0;
2 START TRANSACTION;
3 time_zone := "+00:00";
4

BASE DE DATOS II 2019- I


Creación de la BD 6

5
6 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
7 /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
8 /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
9 /*!40101 SET NAMES utf8mb4 */;
10
11 --
12 -- Base de datos: ‘trabajofinal‘
13 --
14
15 --
16 -- Procedimientos
17 --
18 CREATE OR REPLACE PROCEDURE agregar_mobiliario_Electronico_EquipoMusica (
,→ id_mobiliario NUMBER, nombre VARCHAR2, descripcion VARCHAR2, cantidad NUMBER)
,→ is
19 begin
20 insert into mobiliario values(id_mobiliario,nombre,descripcion,cantidad);
21 insert into electronico values(id_mobiliario);
22 insert into equipomusica values(id_mobiliario);
23 end$$
24
25 CREATE OR REPLACE PROCEDURE agregar_mobiliario_Electronico_Licuadoras (id_mobiliario
,→ NUMBER, nombre VARCHAR2, descripcion VARCHAR2, cantidad NUMBER) is
26 begin
27 insert into mobiliario values(id_mobiliario,nombre,descripcion,cantidad);
28 insert into electronico values(id_mobiliario);
29 insert into Licuadora values(id_mobiliario);
30 end$$
31
32 CREATE OR REPLACE PROCEDURE agregar_mobiliario_Electronico_Luces (id_mobiliario
,→ NUMBER, nombre VARCHAR2, descripcion VARCHAR2, cantidad NUMBER) is
33 begin
34 insert into mobiliario values(id_mobiliario,nombre,descripcion,cantidad);
35 insert into electronico values(id_mobiliario);
36 insert into luces values(id_mobiliario,nombre);
37 end$$
38
39 CREATE OR REPLACE PROCEDURE agregar_mobiliario_Electronico_otros (id_mobiliario
,→ NUMBER, nombre VARCHAR2, descripcion VARCHAR2, cantidad NUMBER) is
40 begin
41 insert into mobiliario values(id_mobiliario,nombre,descripcion,cantidad);
42 insert into electronico values(id_mobiliario);
43 insert into e_otros values(id_mobiliario);
44 end$$
45
46 CREATE OR REPLACE PROCEDURE agregar_mobiliario_Electronico_Refrigeradora (
,→ id_mobiliario NUMBER, nombre VARCHAR2, descripcion VARCHAR2, cantidad NUMBER)
,→ is
47 begin
48 insert into mobiliario values(id_mobiliario,nombre,descripcion,cantidad);
49 insert into electronico values(id_mobiliario);

BASE DE DATOS II 2019- I


Creación de la BD 7

50 insert into Refrigeradora values(id_mobiliario);


51 end$$
52
53 CREATE OR REPLACE PROCEDURE agregar_mobiliario_Electronico_Tv (id_mobiliario
,→ NUMBER, nombre VARCHAR2, descripcion VARCHAR2, cantidad NUMBER) is
54 begin
55 insert into mobiliario values(id_mobiliario,nombre,descripcion,cantidad);
56 insert into electronico values(id_mobiliario);
57 insert into Tv values(id_mobiliario);
58 end$$
59
60 CREATE OR REPLACE PROCEDURE agregar_mobiliario_Electronico_Vitrinas (id_mobiliario
,→ NUMBER, nombre VARCHAR2, descripcion VARCHAR2, cantidad NUMBER) is
61 begin
62 insert into mobiliario values(id_mobiliario,nombre,descripcion,cantidad);
63 insert into electronico values(id_mobiliario);
64 insert into Vitrinas values(id_mobiliario);
65 end$$
66

67 CREATE OR REPLACE PROCEDURE agregar_mobiliario_NoElectronico_Cristaleria (


,→ id_mobiliario NUMBER, nombre VARCHAR2, descripcion VARCHAR2, cantidad NUMBER)
,→ is
68 begin
69 insert into mobiliario values(id_mobiliario,nombre,descripcion,cantidad);
70 insert into noelectronico values(id_mobiliario);
71 insert into cristaleria values(id_mobiliario,nombre);
72 end$$
73
74 CREATE OR REPLACE PROCEDURE agregar_mobiliario_NoElectronico_Mesas (id_mobiliario
,→ NUMBER, nombre VARCHAR2, descripcion VARCHAR2, cantidad NUMBER) is
75 begin
76 insert into mobiliario values(id_mobiliario,nombre,descripcion,cantidad);
77 insert into noelectronico values(id_mobiliario);
78 insert into mesas values(id_mobiliario);
79 end$$
80

81 CREATE OR REPLACE PROCEDURE agregar_mobiliario_NoElectronico_otros (id_mobiliario


,→ NUMBER, nombre VARCHAR2, descripcion VARCHAR2, cantidad NUMBER) is
82 begin
83 insert into mobiliario values(id_mobiliario,nombre,descripcion,cantidad);
84 insert into noelectronico values(id_mobiliario);
85 insert into ne_otros values(id_mobiliario);
86 end$$
87
88 CREATE OR REPLACE PROCEDURE agregar_mobiliario_NoElectronico_Sillas (id_mobiliario
,→ NUMBER, nombre VARCHAR2, descripcion VARCHAR2, cantidad NUMBER) is
89 begin
90 insert into mobiliario values(id_mobiliario,nombre,descripcion,cantidad);
91 insert into noelectronico values(id_mobiliario);
92 insert into Sillas values(id_mobiliario);
93 end$$
94

BASE DE DATOS II 2019- I


Creación de la BD 8

95 CREATE OR REPLACE PROCEDURE agregar_producto_botella (id_producto NUMBER,


,→ precio_u BINARY_DOUBLE, descripcion VARCHAR2, id_almacen NUMBER,
,→ id_distribuidor NUMBER, capacidad_ml BINARY_DOUBLE, marca VARCHAR2, cantidad
,→ NUMBER) is
96 begin
97 start transaction;
98 insert into Producto values(id_producto,precio_u,descripcion);
99 insert into Botella values(id_producto,id_almacen,id_distribuidor,capacidad_ml,marca,cantidad);
100 case
101 when id_producto > 1099 && id_producto < 1200 then insert into Ron values(id_producto);
102 when id_producto > 1199 && id_producto < 1300 then insert into Pisco values(id_producto);
103 when id_producto > 1299 && id_producto < 1400 then insert into Vodka values(id_producto);
104 when id_producto > 1399 && id_producto < 1500 then insert into Tequila values(id_producto)
,→ ;
105 when id_producto > 1499 && id_producto < 1600 then insert into Vinos values(id_producto);
106 when id_producto > 1599 && id_producto < 1700 then insert into Wiski values(id_producto);
107 when id_producto > 1699 && id_producto < 1800 then insert into Cerveza values(id_producto
,→ );
108 end case;
109 commit;
110 end$$
111
112 CREATE OR REPLACE PROCEDURE agregar_producto_coctel (id_producto NUMBER,
,→ precio_u BINARY_DOUBLE, descripcion VARCHAR2, p_nombre VARCHAR2) is
113 begin
114 --insert into Productos (id_prodc,precio,pnombre,almacen,distribuidor);
115 insert into Producto values(id_producto,precio_u,descripcion);
116 -- coctel (id_coctel)
117 insert into Cocktail values(id_producto,p_nombre);
118 end$$
119

120 CREATE OR REPLACE PROCEDURE autenticarAdmin ( _username IN VARCHAR2, _password


,→ IN VARCHAR2) IS
121 BEGIN
122 OPEN cur FOR SELECT * FROM usuario WHERE user_name =_username AND contrasena =
,→ _password AND tipo=’administrador’;
123 END$$
124
125 CREATE OR REPLACE PROCEDURE empleado_report (cur OUT SYS_REFCURSOR) IS
126 BEGIN
127 open cur for select per.dni,per.nombre, per.apellidoP,per.apellidoM,em.salario from Persona per
,→ inner join Empleado em on per.dni=em.dni_empleado;
128 END$$
129
130 CREATE OR REPLACE PROCEDURE modificar_utiliza_cocktail (id_key NUMBER, id_cocktail
,→ NUMBER, id_botella NUMBER, cantidad NUMBER) is
131 begin
132 start transaction;
133 UPDATE Utiliza SET id_cocktail = id_cocktail WHERE id_key = id_utiliza;
134 UPDATE Utiliza SET id_botella = id_botella WHERE id_key = id_utiliza;
135 UPDATE Utiliza SET id_cantidad = cantidad WHERE id_key = id_utiliza;
136 commit;

BASE DE DATOS II 2019- I


Creación de la BD 9

137 end$$
138

139 CREATE OR REPLACE PROCEDURE new_cliente ( dni IN NUMBER, nombre IN VARCHAR2,


,→ apellidoP IN VARCHAR2, apellidoM IN VARCHAR2) IS
140 BEGIN
141 START TRANSACTION;
142 insert into Persona values(dni,nombre,apellidoP,apellidoM);
143 insert into Cliente values(dni);
144 COMMIT;
145 END$$
146
147 CREATE OR REPLACE PROCEDURE new_EOAnfitrionas ( dni IN NUMBER, nombre IN
,→ VARCHAR2, apellidoP IN VARCHAR2, apellidoM IN VARCHAR2, fecha_nac IN
,→ VARCHAR2, salario IN NUMBER, horas IN NUMBER) IS
148 BEGIN
149 START TRANSACTION;
150 insert into Persona values(dni,nombre,apellidoP,apellidoM);
151 insert into Empleado values(dni,salario);
152 insert into Ocacional values(dni,fecha,horas);
153 insert into Anfitriona values(dni);
154 COMMIT;
155 END$$
156
157 CREATE OR REPLACE PROCEDURE new_EODj ( dni IN NUMBER, nombre IN VARCHAR2,
,→ apellidoP IN VARCHAR2, apellidoM IN VARCHAR2, fecha_nac IN VARCHAR2, salario IN
,→ NUMBER, horas IN NUMBER) IS
158 BEGIN
159 START TRANSACTION;
160 insert into Persona values(dni,nombre,apellidoP,apellidoM);
161 insert into Empleado values(dni,salario);
162 insert into Ocacional values(dni,fecha,horas);
163 insert into Dj values(dni);
164 COMMIT;
165 END$$
166
167 CREATE OR REPLACE PROCEDURE new_EPBartender ( dni IN NUMBER, nombre IN
,→ VARCHAR2, apellidoP IN VARCHAR2, apellidoM IN VARCHAR2, salario IN NUMBER) IS
168 BEGIN
169 START TRANSACTION;
170 insert into Persona values(dni,nombre,apellidoP,apellidoM);
171 insert into Empleado values(dni,salario);
172 insert into Permanente values(dni);
173 insert into Bartender values(dni);
174 COMMIT;
175 END$$
176
177 CREATE OR REPLACE PROCEDURE new_EPCajero ( dni IN NUMBER, nombre IN VARCHAR2
,→ , apellidoP IN VARCHAR2, apellidoM IN VARCHAR2, salario IN NUMBER) IS
178 BEGIN
179 START TRANSACTION;
180 insert into Persona values(dni,nombre,apellidoP,apellidoM);
181 insert into Empleado values(dni,salario);

BASE DE DATOS II 2019- I


Creación de la BD 10

182 insert into Permanente values(dni);


183 insert into Cajero values(dni);
184 COMMIT;
185 END$$
186
187 CREATE OR REPLACE PROCEDURE new_EPGerente ( dni IN NUMBER, nombre IN
,→ VARCHAR2, apellidoP IN VARCHAR2, apellidoM IN VARCHAR2, salario IN NUMBER) IS
188 BEGIN
189 START TRANSACTION;
190 insert into Persona values(dni,nombre,apellidoP,apellidoM);
191 insert into Empleado values(dni,salario);
192 insert into Permanente values(dni);
193 insert into Gerente values(dni);
194 COMMIT;
195 END$$
196
197 CREATE OR REPLACE PROCEDURE new_EPLimpieza ( dni IN NUMBER, nombre IN
,→ VARCHAR2, apellidoP IN VARCHAR2, apellidoM IN VARCHAR2, salario IN NUMBER) IS
198 BEGIN
199 START TRANSACTION;
200 insert into Persona values(dni,nombre,apellidoP,apellidoM);
201 insert into Empleado values(dni,salario);
202 insert into Permanente values(dni);
203 insert into PersonalLimpieza values(dni);
204 COMMIT;
205 END$$
206
207 CREATE OR REPLACE PROCEDURE new_EPMesero ( dni IN NUMBER, nombre IN
,→ VARCHAR2, apellidoP IN VARCHAR2, apellidoM IN VARCHAR2, salario IN NUMBER) IS
208 BEGIN
209 START TRANSACTION;
210 insert into Persona values(dni,nombre,apellidoP,apellidoM);
211 insert into Empleado values(dni,salario);
212 insert into Permanente values(dni);
213 insert into Mesero values(dni);
214 COMMIT;
215 END$$
216
217 CREATE OR REPLACE PROCEDURE new_EPSeguridad ( dni IN NUMBER, nombre IN
,→ VARCHAR2, apellidoP IN VARCHAR2, apellidoM IN VARCHAR2, salario IN NUMBER) IS
218 BEGIN
219 START TRANSACTION;
220 insert into Persona values(dni,nombre,apellidoP,apellidoM);
221 insert into Empleado values(dni,salario);
222 insert into Permanente values(dni);
223 insert into Seguridad values(dni);
224 COMMIT;
225 END$$
226
227 CREATE OR REPLACE PROCEDURE new_usuario ( username IN VARCHAR2, contra IN
,→ VARCHAR2, tipo IN VARCHAR2) IS
228 BEGIN

BASE DE DATOS II 2019- I


Creación de la BD 11

229 insert into usuario values(null,username,contra,tipo);


230 END$$
231
232 CREATE OR REPLACE PROCEDURE new_venta ( descripcion IN VARCHAR2, cantidad IN
,→ NUMBER, dni_cliente IN NUMBER, dni_cajero IN NUMBER, id_producto IN NUMBER)
,→ IS
233 BEGIN
234 START TRANSACTION;
235 insert into Venta values(null,descripcion,cantidad,dni_cliente,dni_cajero,id_producto);
236 COMMIT;
237 END$$
238
239 CREATE OR REPLACE PROCEDURE producto_report (cur OUT SYS_REFCURSOR) IS
240 BEGIN
241 open cur for select p.id_producto,p.precio_u,p.descripcion,b.capacidad_ml,b.marca,b.cantidad
,→ from Producto p inner join Botella b on p.id_producto= b.id_botella;
242
243 END$$
244

245 CREATE OR REPLACE PROCEDURE quitar_mobiliario ( nombre1 IN VARCHAR2, cantidad1 IN


,→ NUMBER) is
246 begin
247 UPDATE mobiliario SET cantidad=cantidad-cantidad1
248 WHERE
249 cantidad>cantidad1 and
250 nombre=nombre1;
251 end$$
252
253 CREATE OR REPLACE PROCEDURE usuario_report (cur OUT SYS_REFCURSOR) IS
254 BEGIN
255 open cur for select id_usuario,user_name,tipo from usuario;
256 END$$
257
258 CREATE OR REPLACE PROCEDURE venta_report (cur OUT SYS_REFCURSOR) (cur OUT
,→ SYS_REFCURSOR) IS
259 BEGIN
260 open cur for select v.id_venta,v.descripcion,v.cantidad,v.dni_cliente,v.dni_cajero,p.precio_u,p.
,→ descripcion from Venta v inner join Producto p on v.id_producto=p.id_producto;
261 END$$
262
263
264 -- --------------------------------------------------------
265
266 --
267 -- Estructura de tabla para la tabla ‘almacen‘
268 --
269
270 CREATE TABLE almacen (
271 id_almacen number(10) NOT NULL,
272 id_bar number(10) NOT NULL,
273 descripcion varchar2(50) DEFAULT NULL
274 );

BASE DE DATOS II 2019- I


Creación de la BD 12

275
276 --
277 -- Volcado de datos para la tabla ‘almacen‘
278 --
279
280 INSERT INTO almacen (id_almacen, id_bar, descripcion) VALUES
281 (1, 69, ’almacen’);
282

283 -- --------------------------------------------------------
284
285 --
286 -- Estructura de tabla para la tabla ‘anfitriona‘
287 --
288
289 CREATE TABLE anfitriona (
290 dni number(10) NOT NULL
291 );
292
293 --
294 -- Volcado de datos para la tabla ‘anfitriona‘
295 --
296
297 INSERT INTO anfitriona (dni) VALUES
298 (78965836);
299

300 -- --------------------------------------------------------
301
302 --
303 -- Estructura de tabla para la tabla ‘bar‘
304 --
305

306 CREATE TABLE bar (


307 id_bar number(10) NOT NULL,
308 nombre varchar2(50) DEFAULT NULL,
309 direccion varchar2(50) DEFAULT NULL
310 );
311
312 --
313 -- Volcado de datos para la tabla ‘bar‘
314 --
315
316 INSERT INTO bar (id_bar, nombre, direccion) VALUES
317 (69, ’RestoBar Caliente’, ’Av Dolores 300’);
318
319 -- --------------------------------------------------------
320
321 --
322 -- Estructura de tabla para la tabla ‘bartender‘
323 --
324
325 CREATE TABLE bartender (
326 dni number(10) NOT NULL

BASE DE DATOS II 2019- I


Creación de la BD 13

327 );
328

329 -- --------------------------------------------------------
330
331 --
332 -- Estructura de tabla para la tabla ‘botella‘
333 --
334

335 CREATE TABLE botella (


336 id_botella number(10) NOT NULL,
337 id_almacen number(10) NOT NULL,
338 id_distribuidor number(10) NOT NULL,
339 capacidad_ml binary_double DEFAULT NULL,
340 marca varchar2(50) DEFAULT NULL,
341 cantidad number(10) DEFAULT NULL
342 );
343
344 --
345 -- Volcado de datos para la tabla ‘botella‘
346 --
347
348 INSERT INTO botella (id_botella, id_almacen, id_distribuidor, capacidad_ml, marca, cantidad)
349 SELECT 1100, 1, 1, 750, ’Havanna’, 10 FROM dual UNION ALL
350 SELECT 1101, 1, 1, 750, ’Appleton’, 10 FROM dual UNION ALL
351 SELECT 1102, 1, 1, 750, ’Bacardi’, 10 FROM dual UNION ALL
352 SELECT 1103, 1, 1, 750, ’Cartavio’, 10 FROM dual UNION ALL
353 SELECT 1104, 1, 1, 750, ’Cartavio’, 10 FROM dual UNION ALL
354 SELECT 1105, 1, 1, 1000, ’Cartavio’, 10 FROM dual UNION ALL
355 SELECT 1201, 1, 1, 750, ’desconocido’, 10 FROM dual UNION ALL
356 SELECT 1202, 1, 1, 750, ’Casta de Leon’, 10 FROM dual UNION ALL
357 SELECT 1203, 1, 1, 750, ’Hacienda del Abuelo’, 10 FROM dual UNION ALL
358 SELECT 1204, 1, 1, 750, ’Majes’, 10 FROM dual UNION ALL
359 SELECT 1205, 1, 1, 750, ’Biondi’, 10 FROM dual UNION ALL
360 SELECT 1301, 1, 1, 750, ’Russkaya’, 10 FROM dual UNION ALL
361 SELECT 1302, 1, 1, 750, ’Skyy’, 10 FROM dual UNION ALL
362 SELECT 1303, 1, 1, 750, ’Absolute’, 10 FROM dual UNION ALL
363 SELECT 1304, 1, 1, 750, ’Absolute’, 10 FROM dual UNION ALL
364 SELECT 1305, 1, 1, 750, ’Absolute’, 10 FROM dual UNION ALL
365 SELECT 1401, 1, 1, 750, ’Jose Cuervo’, 10 FROM dual UNION ALL
366 SELECT 1402, 1, 1, 750, ’Jose Cuervo’, 10 FROM dual UNION ALL
367 SELECT 1403, 1, 1, 750, ’Blanco Jimador’, 10 FROM dual UNION ALL
368 SELECT 1404, 1, 1, 750, ’Olmeca’, 10 FROM dual UNION ALL
369 SELECT 1405, 1, 1, 750, ’Sauza’, 10 FROM dual UNION ALL
370 SELECT 1501, 1, 1, 750, ’Santiago Queirolo’, 10 FROM dual UNION ALL
371 SELECT 1502, 1, 1, 750, ’Intipalca’, 10 FROM dual UNION ALL
372 SELECT 1503, 1, 1, 750, ’Marques de Riscal’, 10 FROM dual UNION ALL
373 SELECT 1504, 1, 1, 750, ’Nieto Senetiner’, 10 FROM dual UNION ALL
374 SELECT 1505, 1, 1, 750, ’Las Moras’, 10 FROM dual UNION ALL
375 SELECT 1601, 1, 1, 750, ’Johnnie Walker’, 10 FROM dual UNION ALL
376 SELECT 1602, 1, 1, 750, ’Johnnie Walker’, 10 FROM dual UNION ALL
377 SELECT 1603, 1, 1, 750, ’Something Special’, 10 FROM dual UNION ALL
378 SELECT 1604, 1, 1, 750, ’Ballantines Finest’, 10 FROM dual UNION ALL

BASE DE DATOS II 2019- I


Creación de la BD 14

379 SELECT 1605, 1, 1, 750, ’Jack Daniel’, 10 FROM dual UNION ALL
380 SELECT 1701, 1, 1, 750, ’Pilsen’, 10 FROM dual UNION ALL
381 SELECT 1702, 1, 1, 750, ’Pilsen’, 10 FROM dual UNION ALL
382 SELECT 1703, 1, 1, 750, ’Arequipeña’, 10 FROM dual UNION ALL
383 SELECT 1704, 1, 1, 750, ’Cusqueña’, 10 FROM dual UNION ALL
384 SELECT 1705, 1, 1, 750, ’Corona’, 10 FROM dual UNION ALL
385 SELECT 1706, 1, 1, 1000, ’La Cholita’, 50 FROM dual;
386

387 -- --------------------------------------------------------
388
389 --
390 -- Estructura de tabla para la tabla ‘cajero‘
391 --
392
393 CREATE TABLE cajero (
394 dni number(10) NOT NULL
395 );
396
397 --
398 -- Volcado de datos para la tabla ‘cajero‘
399 --
400
401 INSERT INTO cajero (dni) VALUES
402 (26452895);
403

404 -- --------------------------------------------------------
405
406 --
407 -- Estructura de tabla para la tabla ‘cerveza‘
408 --
409

410 CREATE TABLE cerveza (


411 id_botella number(10) NOT NULL
412 );
413
414 --
415 -- Volcado de datos para la tabla ‘cerveza‘
416 --
417
418 INSERT INTO cerveza (id_botella)
419 SELECT 1701 FROM dual UNION ALL
420 SELECT 1702 FROM dual UNION ALL
421 SELECT 1703 FROM dual UNION ALL
422 SELECT 1704 FROM dual UNION ALL
423 SELECT 1705 FROM dual UNION ALL
424 SELECT 1706 FROM dual;
425
426 -- --------------------------------------------------------
427
428 --
429 -- Estructura de tabla para la tabla ‘cliente‘
430 --

BASE DE DATOS II 2019- I


Creación de la BD 15

431
432 CREATE TABLE cliente (
433 dni_cliente number(10) NOT NULL
434 );
435
436 --
437 -- Volcado de datos para la tabla ‘cliente‘
438 --
439
440 INSERT INTO cliente (dni_cliente)
441 SELECT 99999999 FROM dual UNION ALL
442 SELECT 123456789 FROM dual;
443

444 -- --------------------------------------------------------
445
446 --
447 -- Estructura de tabla para la tabla ‘cocktail‘
448 --
449

450 CREATE TABLE cocktail (


451 id_cocktail number(10) NOT NULL,
452 p_nombre varchar2(50) DEFAULT NULL
453 );
454
455 --
456 -- Volcado de datos para la tabla ‘cocktail‘
457 --
458
459 INSERT INTO cocktail (id_cocktail, p_nombre)
460 SELECT 100, ’Pisco Sour’ FROM dual UNION ALL
461 SELECT 101, ’Mojito’ FROM dual UNION ALL
462 SELECT 102, ’Piña Colada’ FROM dual UNION ALL
463 SELECT 103, ’ScrewDriver’ FROM dual UNION ALL
464 SELECT 104, ’Chilcano’ FROM dual UNION ALL
465 SELECT 105, ’Peru Libre’ FROM dual UNION ALL
466 SELECT 106, ’Cuba Libre’ FROM dual UNION ALL
467 SELECT 107, ’Tequila shot’ FROM dual UNION ALL
468 SELECT 108, ’Calientes’ FROM dual;
469
470 -- --------------------------------------------------------
471
472 --
473 -- Estructura de tabla para la tabla ‘cristaleria‘
474 --
475
476 CREATE TABLE cristaleria (
477 id_mobiliario number(10) NOT NULL,
478 nombre varchar2(50) DEFAULT NULL
479 );
480
481 --
482 -- Volcado de datos para la tabla ‘cristaleria‘

BASE DE DATOS II 2019- I


Creación de la BD 16

483 --
484

485 INSERT INTO cristaleria (id_mobiliario, nombre)


486 SELECT 1, ’copasmartini’ FROM dual UNION ALL
487 SELECT 1111, ’kenas’ FROM dual UNION ALL
488 SELECT 2222, ’copasherry’ FROM dual;
489
490 -- --------------------------------------------------------
491
492 --
493 -- Estructura de tabla para la tabla ‘distribuidor‘
494 --
495

496 CREATE TABLE distribuidor (


497 id_distribuidor number(10) NOT NULL,
498 nombre varchar2(50) DEFAULT NULL
499 );
500
501 --
502 -- Volcado de datos para la tabla ‘distribuidor‘
503 --
504
505 INSERT INTO distribuidor (id_distribuidor, nombre) VALUES
506 (1, ’Backus’);
507

508 -- --------------------------------------------------------
509
510 --
511 -- Estructura de tabla para la tabla ‘dj‘
512 --
513

514 CREATE TABLE dj (


515 dni number(10) NOT NULL
516 );
517
518 -- --------------------------------------------------------
519
520 --
521 -- Estructura de tabla para la tabla ‘electronico‘
522 --
523
524 CREATE TABLE electronico (
525 id_mobiliario number(10) NOT NULL
526 );
527
528 --
529 -- Volcado de datos para la tabla ‘electronico‘
530 --
531
532 INSERT INTO electronico (id_mobiliario) VALUES
533 (5001);
534

BASE DE DATOS II 2019- I


Creación de la BD 17

535 -- --------------------------------------------------------
536

537 --
538 -- Estructura de tabla para la tabla ‘empleado‘
539 --
540
541 CREATE TABLE empleado (
542 dni_empleado number(10) NOT NULL,
543 salario binary_double DEFAULT NULL
544 );
545
546 --
547 -- Volcado de datos para la tabla ‘empleado‘
548 --
549
550 INSERT INTO empleado (dni_empleado, salario)
551 SELECT 26452895, 3000 FROM dual UNION ALL
552 SELECT 77022169, 5000 FROM dual UNION ALL
553 SELECT 78965836, 50 FROM dual UNION ALL
554 SELECT 88965485, 4500 FROM dual;
555
556 -- --------------------------------------------------------
557
558 --
559 -- Estructura de tabla para la tabla ‘equipomusica‘
560 --
561
562 CREATE TABLE equipomusica (
563 id_mobiliario number(10) NOT NULL
564 );
565

566 -- --------------------------------------------------------
567
568 --
569 -- Estructura de tabla para la tabla ‘e_otros‘
570 --
571
572 CREATE TABLE e_otros (
573 id_mobiliario number(10) NOT NULL
574 );
575
576 -- --------------------------------------------------------
577
578 --
579 -- Estructura de tabla para la tabla ‘gerente‘
580 --
581
582 CREATE TABLE gerente (
583 dni number(10) NOT NULL
584 );
585
586 --

BASE DE DATOS II 2019- I


Creación de la BD 18

587 -- Volcado de datos para la tabla ‘gerente‘


588 --
589
590 INSERT INTO gerente (dni) VALUES
591 (88965485);
592
593 -- --------------------------------------------------------
594

595 --
596 -- Estructura de tabla para la tabla ‘licuadora‘
597 --
598
599 CREATE TABLE licuadora (
600 id_mobiliario number(10) NOT NULL
601 );
602
603 -- --------------------------------------------------------
604
605 --
606 -- Estructura de tabla para la tabla ‘luces‘
607 --
608
609 CREATE TABLE luces (
610 id_mobiliario number(10) NOT NULL,
611 nombre varchar2(50) DEFAULT NULL
612 );
613
614 -- --------------------------------------------------------
615
616 --
617 -- Estructura de tabla para la tabla ‘mesas‘
618 --
619
620 CREATE TABLE mesas (
621 id_mobiliario number(10) NOT NULL
622 );
623
624 -- --------------------------------------------------------
625
626 --
627 -- Estructura de tabla para la tabla ‘mesero‘
628 --
629
630 CREATE TABLE mesero (
631 dni number(10) NOT NULL
632 );
633
634 -- --------------------------------------------------------
635
636 --
637 -- Estructura de tabla para la tabla ‘mobiliario‘
638 --

BASE DE DATOS II 2019- I


Creación de la BD 19

639
640 CREATE TABLE mobiliario (
641 id_mobiliario number(10) NOT NULL,
642 nombre varchar2(50) DEFAULT NULL,
643 descripcion varchar2(100) DEFAULT NULL,
644 cantidad number(10) DEFAULT NULL
645 );
646

647 --
648 -- Volcado de datos para la tabla ‘mobiliario‘
649 --
650
651 INSERT INTO mobiliario (id_mobiliario, nombre, descripcion, cantidad)
652 SELECT 1, ’copasmartini’, ’5ml’, 100 FROM dual UNION ALL
653 SELECT 1111, ’kenas’, ’Especial para vodka’, 142 FROM dual UNION ALL
654 SELECT 2222, ’copasherry’, ’20ml para vino’, 55 FROM dual UNION ALL
655 SELECT 5001, ’Lenovo’, ’Familiar’, 2 FROM dual;
656
657 --
658 -- Disparadores ‘mobiliario‘
659
660 CREATE OR REPLACE TRIGGER tgr_delete_mobiliario AFTER DELETE ON mobiliario FOR
,→ EACH ROW begin
661 delete from noelectronico where id_mobiliario = OLD.id_mobiliario;
662 delete from electronico where id_mobiliario = OLD.id_mobiliario;
663 delete from cristaleria where id_mobiliario = OLD.id_mobiliario;
664 delete from mesas where id_mobiliario = OLD.id_mobiliario;
665 delete from Sillas where id_mobiliario = OLD.id_mobiliario;
666 delete from ne_otros where id_mobiliario = OLD.id_mobiliario;
667 delete from EquipoMusica where id_mobiliario = OLD.id_mobiliario;
668 delete from Refrigeradora where id_mobiliario = OLD.id_mobiliario;
669 delete from licuadoras where id_mobiliario = OLD.id_mobiliario;
670 delete from vitrinas where id_mobiliario = OLD.id_mobiliario;
671 delete from tv where id_mobiliario = OLD.id_mobiliario;
672 delete from luces where id_mobiliario = OLD.id_mobiliario;
673 delete from e_otros where id_mobiliario = OLD.id_mobiliario;
674 end;
675 $$
676
677 -- --------------------------------------------------------
678
679 --
680 -- Estructura de tabla para la tabla ‘ne_otros‘
681 --
682
683 CREATE TABLE ne_otros (
684 id_mobiliario number(10) NOT NULL
685 );
686
687 -- --------------------------------------------------------
688
689 --

BASE DE DATOS II 2019- I


Creación de la BD 20

690 -- Estructura de tabla para la tabla ‘noelectronico‘


691 --
692
693 CREATE TABLE noelectronico (
694 id_mobiliario number(10) NOT NULL
695 );
696
697 --
698 -- Volcado de datos para la tabla ‘noelectronico‘
699 --
700
701 INSERT INTO noelectronico (id_mobiliario)
702 SELECT 1 FROM dual UNION ALL
703 SELECT 1111 FROM dual UNION ALL
704 SELECT 2222 FROM dual;
705
706 -- --------------------------------------------------------
707
708 --
709 -- Estructura de tabla para la tabla ‘ocacional‘
710 --
711
712 CREATE TABLE ocacional (
713 dni number(10) NOT NULL,
714 fecha varchar2(50) DEFAULT NULL,
715 horas number(10) DEFAULT NULL
716 );
717
718 --
719 -- Volcado de datos para la tabla ‘ocacional‘
720 --
721
722 INSERT INTO ocacional (dni, fecha, horas) VALUES
723 (78965836, NULL, 50);
724
725 -- --------------------------------------------------------
726
727 --
728 -- Estructura de tabla para la tabla ‘otrosproductos‘
729 --
730
731 CREATE TABLE otrosproductos (
732 id_producto_otros number(10) NOT NULL,
733 descripcion varchar2(50) DEFAULT NULL
734 );
735
736 -- --------------------------------------------------------
737

738 --
739 -- Estructura de tabla para la tabla ‘permanente‘
740 --
741

BASE DE DATOS II 2019- I


Creación de la BD 21

742 CREATE TABLE permanente (


743 dni number(10) NOT NULL
744 );
745
746 --
747 -- Volcado de datos para la tabla ‘permanente‘
748 --
749

750 INSERT INTO permanente (dni)


751 SELECT 26452895 FROM dual UNION ALL
752 SELECT 77022169 FROM dual UNION ALL
753 SELECT 88965485 FROM dual;
754

755 -- --------------------------------------------------------
756
757 --
758 -- Estructura de tabla para la tabla ‘persona‘
759 --
760

761 CREATE TABLE persona (


762 dni number(10) NOT NULL,
763 nombre varchar2(50) DEFAULT NULL,
764 apellidoP varchar2(50) DEFAULT NULL,
765 apellidoM varchar2(50) DEFAULT NULL
766 );
767
768 --
769 -- Volcado de datos para la tabla ‘persona‘
770 --
771
772 INSERT INTO persona (dni, nombre, apellidoP, apellidoM)
773 SELECT 26452895, ’Luis’, ’Chavez’, ’Rey’ FROM dual UNION ALL
774 SELECT 77022169, ’Iquer’, ’Casillas’, ’Macedo’ FROM dual UNION ALL
775 SELECT 78965836, ’Luciana’, ’Benito’, ’Quezada’ FROM dual UNION ALL
776 SELECT 88965485, ’Margarita’, ’Lima’, ’Canaza’ FROM dual UNION ALL
777 SELECT 99999999, ’admin’, ’admin’, ’admin’ FROM dual UNION ALL
778 SELECT 123456789, ’Pepito’, ’Lopez’, ’Siwincha’ FROM dual;
779
780 -- --------------------------------------------------------
781
782 --
783 -- Estructura de tabla para la tabla ‘personallimpieza‘
784 --
785
786 CREATE TABLE personallimpieza (
787 dni number(10) NOT NULL
788 );
789

790 -- --------------------------------------------------------
791
792 --
793 -- Estructura de tabla para la tabla ‘pisco‘

BASE DE DATOS II 2019- I


Creación de la BD 22

794 --
795

796 CREATE TABLE pisco (


797 id_botella number(10) NOT NULL
798 );
799
800 --
801 -- Volcado de datos para la tabla ‘pisco‘
802 --
803
804 INSERT INTO pisco (id_botella)
805 SELECT 1201 FROM dual UNION ALL
806 SELECT 1202 FROM dual UNION ALL
807 SELECT 1203 FROM dual UNION ALL
808 SELECT 1204 FROM dual UNION ALL
809 SELECT 1205 FROM dual;
810
811 -- --------------------------------------------------------
812

813 --
814 -- Estructura de tabla para la tabla ‘producto‘
815 --
816
817 CREATE TABLE producto (
818 id_producto number(10) NOT NULL,
819 precio_u binary_double DEFAULT NULL,
820 descripcion varchar2(100) DEFAULT NULL
821 );
822
823 --
824 -- Volcado de datos para la tabla ‘producto‘
825 --
826
827 INSERT INTO producto (id_producto, precio_u, descripcion)
828 SELECT 100, 9, ’bebida’ FROM dual UNION ALL
829 SELECT 101, 10, ’bebida’ FROM dual UNION ALL
830 SELECT 102, 7, ’bebida’ FROM dual UNION ALL
831 SELECT 103, 7, ’bebida’ FROM dual UNION ALL
832 SELECT 104, 6, ’bebida’ FROM dual UNION ALL
833 SELECT 105, 6, ’bebida’ FROM dual UNION ALL
834 SELECT 106, 7, ’bebida’ FROM dual UNION ALL
835 SELECT 107, 5, ’bebida’ FROM dual UNION ALL
836 SELECT 108, 5, ’bebida’ FROM dual UNION ALL
837 SELECT 1100, 90, ’Ron blanco destilado’ FROM dual UNION ALL
838 SELECT 1101, 90, ’Appleton Special cañade azucar’ FROM dual UNION ALL
839 SELECT 1102, 90, ’Ron Bacardi destilado’ FROM dual UNION ALL
840 SELECT 1103, 70, ’Ron Cartavio Black ’ FROM dual UNION ALL
841 SELECT 1104, 80, ’Ron Cartavio 5 Años anejado’ FROM dual UNION ALL
842 SELECT 1105, 140, ’Ron Cartavio Solera 12 Años añejado’ FROM dual UNION ALL
843 SELECT 1201, 60, ’Pisco de la casa’ FROM dual UNION ALL
844 SELECT 1202, 70, ’Pisco Casta de Leon’ FROM dual UNION ALL
845 SELECT 1203, 80, ’Pisco Hacienda del Abuelo’ FROM dual UNION ALL

BASE DE DATOS II 2019- I


Creación de la BD 23

846 SELECT 1204, 90, ’ Pisco Majes’ FROM dual UNION ALL
847 SELECT 1205, 100, ’ Pisco Biondi Acholado’ FROM dual UNION ALL
848 SELECT 1301, 80, ’Vodka Russkaya classico’ FROM dual UNION ALL
849 SELECT 1302, 90, ’Vodka Skyy’ FROM dual UNION ALL
850 SELECT 1303, 100, ’Vodka Absolut’ FROM dual UNION ALL
851 SELECT 1304, 150, ’Vodka Absolut 100 Premiun’ FROM dual UNION ALL
852 SELECT 1305, 70, ’ Vodka Lithuanian’ FROM dual UNION ALL
853 SELECT 1401, 120, ’ Tequila Jose Cuervo S’ FROM dual UNION ALL
854 SELECT 1402, 90, ’Tequila jose curvo Reposado’ FROM dual UNION ALL
855 SELECT 1403, 90, ’Tequila Blanco Jimador’ FROM dual UNION ALL
856 SELECT 1404, 120, ’Tequila Olmeca Blanco’ FROM dual UNION ALL
857 SELECT 1405, 100, ’Tequila Sauza Gold importado’ FROM dual UNION ALL
858 SELECT 1501, 60, ’Vino Santiago Queirolo’ FROM dual UNION ALL
859 SELECT 1502, 60, ’Vino Intipalka Malbec’ FROM dual UNION ALL
860 SELECT 1503, 80, ’Vino Borgoña Marques de Riscal’ FROM dual UNION ALL
861 SELECT 1504, 100, ’Vino Blanco Nieto Senetiner Estate Bottled Chardonnay’ FROM dual UNION
,→ ALL
862 SELECT 1505, 80, ’Vino Tinto Los Intocables Finca Las-Moras-Black-Malbec’ FROM dual UNION
,→ ALL
863 SELECT 1601, 130, ’Whisky Johnnie Walker Black Label’ FROM dual UNION ALL
864 SELECT 1602, 160, ’Whisky Johnnie Walker Red Label’ FROM dual UNION ALL
865 SELECT 1603, 120, ’Whisky Something Special Scotch’ FROM dual UNION ALL
866 SELECT 1604, 120, ’Whisky Ballantines Finest Blended Scotch’ FROM dual UNION ALL
867 SELECT 1605, 160, ’Whisky Jack Daniels Old Nro. 7 ’ FROM dual UNION ALL
868 SELECT 1701, 10, ’Cerveza Pilsen Callao’ FROM dual UNION ALL
869 SELECT 1702, 10, ’Cerveza Pilsen Trujillo’ FROM dual UNION ALL
870 SELECT 1703, 15, ’Cerveza Arequipeña’ FROM dual UNION ALL
871 SELECT 1704, 15, ’Cerveza Cusqueña Red Lager’ FROM dual UNION ALL
872 SELECT 1705, 12, ’Cerveza Corona light’ FROM dual UNION ALL
873 SELECT 1706, 15, ’Cerveza Artesanal Puno’ FROM dual;
874

875 -- --------------------------------------------------------
876
877 --
878 -- Estructura de tabla para la tabla ‘refrigeradora‘
879 --
880
881 CREATE TABLE refrigeradora (
882 id_mobiliario number(10) NOT NULL
883 );
884
885 --
886 -- Volcado de datos para la tabla ‘refrigeradora‘
887 --
888
889 INSERT INTO refrigeradora (id_mobiliario) VALUES
890 (5001);
891

892 -- --------------------------------------------------------
893
894 --
895 -- Estructura de tabla para la tabla ‘ron‘

BASE DE DATOS II 2019- I


Creación de la BD 24

896 --
897

898 CREATE TABLE ron (


899 id_botella number(10) NOT NULL
900 );
901
902 --
903 -- Volcado de datos para la tabla ‘ron‘
904 --
905
906 INSERT INTO ron (id_botella)
907 SELECT 1100 FROM dual UNION ALL
908 SELECT 1101 FROM dual UNION ALL
909 SELECT 1102 FROM dual UNION ALL
910 SELECT 1103 FROM dual UNION ALL
911 SELECT 1104 FROM dual UNION ALL
912 SELECT 1105 FROM dual;
913
914 -- --------------------------------------------------------
915
916 --
917 -- Estructura de tabla para la tabla ‘seguridad‘
918 --
919
920 CREATE TABLE seguridad (
921 dni number(10) NOT NULL
922 );
923
924 --
925 -- Volcado de datos para la tabla ‘seguridad‘
926 --
927
928 INSERT INTO seguridad (dni) VALUES
929 (77022169);
930
931 -- --------------------------------------------------------
932
933 --
934 -- Estructura de tabla para la tabla ‘sillas‘
935 --
936
937 CREATE TABLE sillas (
938 id_mobiliario number(10) NOT NULL
939 );
940
941 -- --------------------------------------------------------
942
943 --
944 -- Estructura de tabla para la tabla ‘teldis‘
945 --
946
947 CREATE TABLE teldis (

BASE DE DATOS II 2019- I


Creación de la BD 25

948 id_distribuidor number(10) NOT NULL,


949 telefonod number(10) DEFAULT NULL
950 );
951
952 -- --------------------------------------------------------
953
954 --
955 -- Estructura de tabla para la tabla ‘tequila‘
956 --
957
958 CREATE TABLE tequila (
959 id_botella number(10) NOT NULL
960 );
961
962 --
963 -- Volcado de datos para la tabla ‘tequila‘
964 --
965
966 INSERT INTO tequila (id_botella)
967 SELECT 1401 FROM dual UNION ALL
968 SELECT 1402 FROM dual UNION ALL
969 SELECT 1403 FROM dual UNION ALL
970 SELECT 1404 FROM dual UNION ALL
971 SELECT 1405 FROM dual;
972

973 -- --------------------------------------------------------
974
975 --
976 -- Estructura de tabla para la tabla ‘tv‘
977 --
978

979 CREATE TABLE tv (


980 id_mobiliario number(10) NOT NULL
981 );
982
983 -- --------------------------------------------------------
984
985 --
986 -- Estructura de tabla para la tabla ‘usuario‘
987 --
988
989 CREATE TABLE usuario (
990 id_usuario number(10) NOT NULL,
991 user_name varchar2(50) DEFAULT NULL,
992 contrasena varchar2(50) DEFAULT NULL,
993 tipo varchar2(50) DEFAULT NULL
994 );
995

996 --
997 -- Volcado de datos para la tabla ‘usuario‘
998 --
999

BASE DE DATOS II 2019- I


Creación de la BD 26

1000 INSERT INTO usuario (id_usuario, user_name, contrasena, tipo)


1001 SELECT 1, ’efrain’, ’1234’, ’administrador’ FROM dual UNION ALL
1002 SELECT 2, ’admin’, ’admin’, ’administrador’ FROM dual UNION ALL
1003 SELECT 3, ’1234’, ’1234’, ’temporal’ FROM dual UNION ALL
1004 SELECT 4, ’UNSA’, ’1234’, ’temporal’ FROM dual UNION ALL
1005 SELECT 7, ’german’, ’german’, ’administrador’ FROM dual;
1006
1007 -- --------------------------------------------------------
1008
1009 --
1010 -- Estructura de tabla para la tabla ‘utiliza‘
1011 --
1012

1013 CREATE TABLE utiliza (


1014 id_utiliza number(10) NOT NULL,
1015 id_cocktail number(10) NOT NULL,
1016 id_botella number(10) NOT NULL,
1017 id_cantidad number(10) NOT NULL
1018 );
1019
1020 -- --------------------------------------------------------
1021
1022 --
1023 -- Estructura de tabla para la tabla ‘venta‘
1024 --
1025
1026 CREATE TABLE venta (
1027 id_venta number(10) NOT NULL,
1028 descripcion varchar2(50) DEFAULT NULL,
1029 cantidad number(10) DEFAULT NULL,
1030 dni_cliente number(10) NOT NULL,
1031 dni_cajero number(10) NOT NULL,
1032 id_producto number(10) NOT NULL
1033 );
1034
1035 --
1036 -- Volcado de datos para la tabla ‘venta‘
1037 --
1038
1039 INSERT INTO venta (id_venta, descripcion, cantidad, dni_cliente, dni_cajero, id_producto)
,→ VALUES
1040 (1, ’Compra de ron’, 10, 99999999, 26452895, 1100);
1041
1042 -- --------------------------------------------------------
1043
1044 --
1045 -- Estructura de tabla para la tabla ‘vinos‘
1046 --
1047
1048 CREATE TABLE vinos (
1049 id_botella number(10) NOT NULL
1050 );

BASE DE DATOS II 2019- I


Creación de la BD 27

1051
1052 --
1053 -- Volcado de datos para la tabla ‘vinos‘
1054 --
1055
1056 INSERT INTO vinos (id_botella)
1057 SELECT 1501 FROM dual UNION ALL
1058 SELECT 1502 FROM dual UNION ALL
1059 SELECT 1503 FROM dual UNION ALL
1060 SELECT 1504 FROM dual UNION ALL
1061 SELECT 1505 FROM dual;
1062
1063 -- --------------------------------------------------------
1064
1065 --
1066 -- Estructura de tabla para la tabla ‘vitrinas‘
1067 --
1068
1069 CREATE TABLE vitrinas (
1070 id_mobiliario number(10) NOT NULL
1071 );
1072
1073 -- --------------------------------------------------------
1074
1075 --
1076 -- Estructura de tabla para la tabla ‘vodka‘
1077 --
1078
1079 CREATE TABLE vodka (
1080 id_botella number(10) NOT NULL
1081 );
1082
1083 --
1084 -- Volcado de datos para la tabla ‘vodka‘
1085 --
1086

1087 INSERT INTO vodka (id_botella)


1088 SELECT 1301 FROM dual UNION ALL
1089 SELECT 1302 FROM dual UNION ALL
1090 SELECT 1303 FROM dual UNION ALL
1091 SELECT 1304 FROM dual UNION ALL
1092 SELECT 1305 FROM dual;
1093
1094 -- --------------------------------------------------------
1095
1096 --
1097 -- Estructura de tabla para la tabla ‘wiski‘
1098 --
1099
1100 CREATE TABLE wiski (
1101 id_botella number(10) NOT NULL
1102 );

BASE DE DATOS II 2019- I


Creación de la BD 28

1103
1104 --
1105 -- Volcado de datos para la tabla ‘wiski‘
1106 --
1107
1108 INSERT INTO wiski (id_botella)
1109 SELECT 1601 FROM dual UNION ALL
1110 SELECT 1602 FROM dual UNION ALL
1111 SELECT 1603 FROM dual UNION ALL
1112 SELECT 1604 FROM dual UNION ALL
1113 SELECT 1605 FROM dual;
1114
1115 --
1116 -- Índices para tablas volcadas
1117 --
1118
1119 --
1120 -- Indices de la tabla ‘almacen‘
1121 --
1122 ALTER TABLE almacen
1123 ADD PRIMARY KEY (id_almacen),
1124 ADD KEY ‘id_bar‘ (id_bar);
1125
1126 --
1127 -- Indices de la tabla ‘anfitriona‘
1128 --
1129 ALTER TABLE anfitriona
1130 ADD PRIMARY KEY (dni);
1131
1132 --
1133 -- Indices de la tabla ‘bar‘
1134 --
1135 ALTER TABLE bar
1136 ADD PRIMARY KEY (id_bar);
1137
1138 --
1139 -- Indices de la tabla ‘bartender‘
1140 --
1141 ALTER TABLE bartender
1142 ADD PRIMARY KEY (dni);
1143
1144 --
1145 -- Indices de la tabla ‘botella‘
1146 --
1147 ALTER TABLE botella
1148 ADD PRIMARY KEY (id_botella),
1149 ADD KEY ‘id_almacen‘ (id_almacen),
1150 ADD KEY ‘id_distribuidor‘ (id_distribuidor);
1151
1152 --
1153 -- Indices de la tabla ‘cajero‘
1154 --

BASE DE DATOS II 2019- I


Creación de la BD 29

1155 ALTER TABLE cajero


1156 ADD PRIMARY KEY (dni);
1157
1158 --
1159 -- Indices de la tabla ‘cerveza‘
1160 --
1161 ALTER TABLE cerveza
1162 ADD PRIMARY KEY (id_botella);
1163
1164 --
1165 -- Indices de la tabla ‘cliente‘
1166 --
1167 ALTER TABLE cliente
1168 ADD PRIMARY KEY (dni_cliente);
1169
1170 --
1171 -- Indices de la tabla ‘cocktail‘
1172 --
1173 ALTER TABLE cocktail
1174 ADD PRIMARY KEY (id_cocktail);
1175
1176 --
1177 -- Indices de la tabla ‘cristaleria‘
1178 --
1179 ALTER TABLE cristaleria
1180 ADD PRIMARY KEY (id_mobiliario);
1181
1182 --
1183 -- Indices de la tabla ‘distribuidor‘
1184 --
1185 ALTER TABLE distribuidor
1186 ADD PRIMARY KEY (id_distribuidor);
1187
1188 --
1189 -- Indices de la tabla ‘dj‘
1190 --
1191 ALTER TABLE dj
1192 ADD PRIMARY KEY (dni);
1193
1194 --
1195 -- Indices de la tabla ‘electronico‘
1196 --
1197 ALTER TABLE electronico
1198 ADD PRIMARY KEY (id_mobiliario);
1199
1200 --
1201 -- Indices de la tabla ‘empleado‘
1202 --
1203 ALTER TABLE empleado
1204 ADD PRIMARY KEY (dni_empleado);
1205
1206 --

BASE DE DATOS II 2019- I


Creación de la BD 30

1207 -- Indices de la tabla ‘equipomusica‘


1208 --
1209 ALTER TABLE equipomusica
1210 ADD PRIMARY KEY (id_mobiliario);
1211
1212 --
1213 -- Indices de la tabla ‘e_otros‘
1214 --
1215 ALTER TABLE e_otros
1216 ADD PRIMARY KEY (id_mobiliario);
1217
1218 --
1219 -- Indices de la tabla ‘gerente‘
1220 --
1221 ALTER TABLE gerente
1222 ADD PRIMARY KEY (dni);
1223
1224 --
1225 -- Indices de la tabla ‘licuadora‘
1226 --
1227 ALTER TABLE licuadora
1228 ADD PRIMARY KEY (id_mobiliario);
1229
1230 --
1231 -- Indices de la tabla ‘luces‘
1232 --
1233 ALTER TABLE luces
1234 ADD PRIMARY KEY (id_mobiliario);
1235
1236 --
1237 -- Indices de la tabla ‘mesas‘
1238 --
1239 ALTER TABLE mesas
1240 ADD PRIMARY KEY (id_mobiliario);
1241
1242 --
1243 -- Indices de la tabla ‘mesero‘
1244 --
1245 ALTER TABLE mesero
1246 ADD PRIMARY KEY (dni);
1247
1248 --
1249 -- Indices de la tabla ‘mobiliario‘
1250 --
1251 ALTER TABLE mobiliario
1252 ADD PRIMARY KEY (id_mobiliario);
1253
1254 --
1255 -- Indices de la tabla ‘ne_otros‘
1256 --
1257 ALTER TABLE ne_otros
1258 ADD PRIMARY KEY (id_mobiliario);

BASE DE DATOS II 2019- I


Creación de la BD 31

1259
1260 --
1261 -- Indices de la tabla ‘noelectronico‘
1262 --
1263 ALTER TABLE noelectronico
1264 ADD PRIMARY KEY (id_mobiliario);
1265
1266 --
1267 -- Indices de la tabla ‘ocacional‘
1268 --
1269 ALTER TABLE ocacional
1270 ADD PRIMARY KEY (dni);
1271

1272 --
1273 -- Indices de la tabla ‘otrosproductos‘
1274 --
1275 ALTER TABLE otrosproductos
1276 ADD PRIMARY KEY (id_producto_otros);
1277

1278 --
1279 -- Indices de la tabla ‘permanente‘
1280 --
1281 ALTER TABLE permanente
1282 ADD PRIMARY KEY (dni);
1283

1284 --
1285 -- Indices de la tabla ‘persona‘
1286 --
1287 ALTER TABLE persona
1288 ADD PRIMARY KEY (dni);
1289

1290 --
1291 -- Indices de la tabla ‘personallimpieza‘
1292 --
1293 ALTER TABLE personallimpieza
1294 ADD PRIMARY KEY (dni);
1295
1296 --
1297 -- Indices de la tabla ‘pisco‘
1298 --
1299 ALTER TABLE pisco
1300 ADD PRIMARY KEY (id_botella);
1301
1302 --
1303 -- Indices de la tabla ‘producto‘
1304 --
1305 ALTER TABLE producto
1306 ADD PRIMARY KEY (id_producto);
1307
1308 --
1309 -- Indices de la tabla ‘refrigeradora‘
1310 --

BASE DE DATOS II 2019- I


Creación de la BD 32

1311 ALTER TABLE refrigeradora


1312 ADD PRIMARY KEY (id_mobiliario);
1313
1314 --
1315 -- Indices de la tabla ‘ron‘
1316 --
1317 ALTER TABLE ron
1318 ADD PRIMARY KEY (id_botella);
1319
1320 --
1321 -- Indices de la tabla ‘seguridad‘
1322 --
1323 ALTER TABLE seguridad
1324 ADD PRIMARY KEY (dni);
1325
1326 --
1327 -- Indices de la tabla ‘sillas‘
1328 --
1329 ALTER TABLE sillas
1330 ADD PRIMARY KEY (id_mobiliario);
1331
1332 --
1333 -- Indices de la tabla ‘teldis‘
1334 --
1335 ALTER TABLE teldis
1336 ADD PRIMARY KEY (id_distribuidor);
1337
1338 --
1339 -- Indices de la tabla ‘tequila‘
1340 --
1341 ALTER TABLE tequila
1342 ADD PRIMARY KEY (id_botella);
1343
1344 --
1345 -- Indices de la tabla ‘tv‘
1346 --
1347 ALTER TABLE tv
1348 ADD PRIMARY KEY (id_mobiliario);
1349
1350 --
1351 -- Indices de la tabla ‘usuario‘
1352 --
1353 ALTER TABLE usuario
1354 ADD PRIMARY KEY (id_usuario);
1355
1356 --
1357 -- Indices de la tabla ‘utiliza‘
1358 --
1359 ALTER TABLE utiliza
1360 ADD PRIMARY KEY (id_utiliza),
1361 ADD KEY ‘id_botella‘ (id_botella),
1362 ADD KEY ‘id_cocktail‘ (id_cocktail);

BASE DE DATOS II 2019- I


Creación de la BD 33

1363
1364 --
1365 -- Indices de la tabla ‘venta‘
1366 --
1367 ALTER TABLE venta
1368 ADD PRIMARY KEY (id_venta),
1369 ADD KEY ‘dni_cliente‘ (dni_cliente),
1370 ADD KEY ‘dni_cajero‘ (dni_cajero),
1371 ADD KEY ‘id_producto‘ (id_producto);
1372
1373 --
1374 -- Indices de la tabla ‘vinos‘
1375 --
1376 ALTER TABLE vinos
1377 ADD PRIMARY KEY (id_botella);
1378
1379 --
1380 -- Indices de la tabla ‘vitrinas‘
1381 --
1382 ALTER TABLE vitrinas
1383 ADD PRIMARY KEY (id_mobiliario);
1384
1385 --
1386 -- Indices de la tabla ‘vodka‘
1387 --
1388 ALTER TABLE vodka
1389 ADD PRIMARY KEY (id_botella);
1390
1391 --
1392 -- Indices de la tabla ‘wiski‘
1393 --
1394 ALTER TABLE wiski
1395 ADD PRIMARY KEY (id_botella);
1396
1397 --
1398 -- AUTO_INCREMENT de las tablas volcadas
1399 --
1400
1401 --
1402 -- AUTO_INCREMENT de la tabla ‘almacen‘
1403 --
1404 ALTER TABLE almacen
1405 MODIFY id_almacen trunc(to_number(11)) NOT NULL AUTO_INCREMENT,
,→ AUTO_INCREMENT=2;
1406
1407 --
1408 -- AUTO_INCREMENT de la tabla ‘bar‘
1409 --
1410 ALTER TABLE bar
1411 MODIFY id_bar trunc(to_number(11)) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT
,→ =70;
1412

BASE DE DATOS II 2019- I


Creación de la BD 34

1413 --
1414 -- AUTO_INCREMENT de la tabla ‘distribuidor‘
1415 --
1416 ALTER TABLE distribuidor
1417 MODIFY id_distribuidor trunc(to_number(11)) NOT NULL AUTO_INCREMENT,
,→ AUTO_INCREMENT=2;
1418
1419 --
1420 -- AUTO_INCREMENT de la tabla ‘usuario‘
1421 --
1422 ALTER TABLE usuario
1423 MODIFY id_usuario trunc(to_number(11)) NOT NULL AUTO_INCREMENT,
,→ AUTO_INCREMENT=8;
1424
1425 --
1426 -- AUTO_INCREMENT de la tabla ‘utiliza‘
1427 --
1428 ALTER TABLE utiliza
1429 MODIFY id_utiliza trunc(to_number(11)) NOT NULL AUTO_INCREMENT;
1430
1431 --
1432 -- AUTO_INCREMENT de la tabla ‘venta‘
1433 --
1434 ALTER TABLE venta
1435 MODIFY id_venta trunc(to_number(11)) NOT NULL AUTO_INCREMENT,
,→ AUTO_INCREMENT=2;
1436
1437 --
1438 -- Restricciones para tablas volcadas
1439 --
1440

1441 --
1442 -- Filtros para la tabla ‘almacen‘
1443 --
1444 ALTER TABLE almacen
1445 ADD CONSTRAINT Almacen_ibfk_1 FOREIGN KEY (id_bar) REFERENCES bar (id_bar);
1446
1447 --
1448 -- Filtros para la tabla ‘anfitriona‘
1449 --
1450 ALTER TABLE anfitriona
1451 ADD CONSTRAINT Anfitriona_ibfk_1 FOREIGN KEY (dni) REFERENCES ocacional (dni);
1452
1453 --
1454 -- Filtros para la tabla ‘bartender‘
1455 --
1456 ALTER TABLE bartender
1457 ADD CONSTRAINT Bartender_ibfk_1 FOREIGN KEY (dni) REFERENCES permanente (dni);
1458
1459 --
1460 -- Filtros para la tabla ‘botella‘
1461 --

BASE DE DATOS II 2019- I


Creación de la BD 35

1462 ALTER TABLE botella


1463 ADD CONSTRAINT Botella_ibfk_1 FOREIGN KEY (id_botella) REFERENCES producto (
,→ id_producto),
1464 ADD CONSTRAINT Botella_ibfk_2 FOREIGN KEY (id_almacen) REFERENCES ‘almacen‘ (
,→ id_almacen),
1465 ADD CONSTRAINT Botella_ibfk_3 FOREIGN KEY (id_distribuidor) REFERENCES ‘
,→ distribuidor‘ (id_distribuidor);
1466

1467 --
1468 -- Filtros para la tabla ‘cajero‘
1469 --
1470 ALTER TABLE cajero
1471 ADD CONSTRAINT Cajero_ibfk_1 FOREIGN KEY (dni) REFERENCES permanente (dni);
1472
1473 --
1474 -- Filtros para la tabla ‘cerveza‘
1475 --
1476 ALTER TABLE cerveza
1477 ADD CONSTRAINT Cerveza_ibfk_1 FOREIGN KEY (id_botella) REFERENCES botella (
,→ id_botella);
1478
1479 --
1480 -- Filtros para la tabla ‘cliente‘
1481 --
1482 ALTER TABLE cliente
1483 ADD CONSTRAINT Cliente_ibfk_1 FOREIGN KEY (dni_cliente) REFERENCES persona (dni);
1484
1485 --
1486 -- Filtros para la tabla ‘cocktail‘
1487 --
1488 ALTER TABLE cocktail
1489 ADD CONSTRAINT Cocktail_ibfk_1 FOREIGN KEY (id_cocktail) REFERENCES producto (
,→ id_producto);
1490
1491 --
1492 -- Filtros para la tabla ‘cristaleria‘
1493 --
1494 ALTER TABLE cristaleria
1495 ADD CONSTRAINT cristaleria_ibfk_1 FOREIGN KEY (id_mobiliario) REFERENCES
,→ noelectronico (id_mobiliario);
1496
1497 --
1498 -- Filtros para la tabla ‘dj‘
1499 --
1500 ALTER TABLE dj
1501 ADD CONSTRAINT Dj_ibfk_1 FOREIGN KEY (dni) REFERENCES ocacional (dni);
1502
1503 --
1504 -- Filtros para la tabla ‘electronico‘
1505 --
1506 ALTER TABLE electronico

BASE DE DATOS II 2019- I


Creación de la BD 36

1507 ADD CONSTRAINT electronico_ibfk_1 FOREIGN KEY (id_mobiliario) REFERENCES


,→ mobiliario (id_mobiliario);
1508
1509 --
1510 -- Filtros para la tabla ‘empleado‘
1511 --
1512 ALTER TABLE empleado
1513 ADD CONSTRAINT Empleado_ibfk_1 FOREIGN KEY (dni_empleado) REFERENCES persona (
,→ dni);
1514
1515 --
1516 -- Filtros para la tabla ‘equipomusica‘
1517 --
1518 ALTER TABLE equipomusica
1519 ADD CONSTRAINT equipomusica_ibfk_1 FOREIGN KEY (id_mobiliario) REFERENCES
,→ electronico (id_mobiliario);
1520
1521 --
1522 -- Filtros para la tabla ‘e_otros‘
1523 --
1524 ALTER TABLE e_otros
1525 ADD CONSTRAINT e_otros_ibfk_1 FOREIGN KEY (id_mobiliario) REFERENCES electronico (
,→ id_mobiliario);
1526
1527 --
1528 -- Filtros para la tabla ‘gerente‘
1529 --
1530 ALTER TABLE gerente
1531 ADD CONSTRAINT Gerente_ibfk_1 FOREIGN KEY (dni) REFERENCES permanente (dni);
1532
1533 --
1534 -- Filtros para la tabla ‘licuadora‘
1535 --
1536 ALTER TABLE licuadora
1537 ADD CONSTRAINT licuadora_ibfk_1 FOREIGN KEY (id_mobiliario) REFERENCES electronico
,→ (id_mobiliario);
1538
1539 --
1540 -- Filtros para la tabla ‘luces‘
1541 --
1542 ALTER TABLE luces
1543 ADD CONSTRAINT luces_ibfk_1 FOREIGN KEY (id_mobiliario) REFERENCES electronico (
,→ id_mobiliario);
1544
1545 --
1546 -- Filtros para la tabla ‘mesas‘
1547 --
1548 ALTER TABLE mesas
1549 ADD CONSTRAINT mesas_ibfk_1 FOREIGN KEY (id_mobiliario) REFERENCES noelectronico
,→ (id_mobiliario);
1550
1551 --

BASE DE DATOS II 2019- I


Creación de la BD 37

1552 -- Filtros para la tabla ‘mesero‘


1553 --
1554 ALTER TABLE mesero
1555 ADD CONSTRAINT Mesero_ibfk_1 FOREIGN KEY (dni) REFERENCES permanente (dni);
1556
1557 --
1558 -- Filtros para la tabla ‘ne_otros‘
1559 --
1560 ALTER TABLE ne_otros
1561 ADD CONSTRAINT ne_otros_ibfk_1 FOREIGN KEY (id_mobiliario) REFERENCES
,→ noelectronico (id_mobiliario);
1562
1563 --
1564 -- Filtros para la tabla ‘noelectronico‘
1565 --
1566 ALTER TABLE noelectronico
1567 ADD CONSTRAINT noelectronico_ibfk_1 FOREIGN KEY (id_mobiliario) REFERENCES
,→ mobiliario (id_mobiliario);
1568

1569 --
1570 -- Filtros para la tabla ‘ocacional‘
1571 --
1572 ALTER TABLE ocacional
1573 ADD CONSTRAINT Ocacional_ibfk_1 FOREIGN KEY (dni) REFERENCES empleado (
,→ dni_empleado);
1574
1575 --
1576 -- Filtros para la tabla ‘otrosproductos‘
1577 --
1578 ALTER TABLE otrosproductos
1579 ADD CONSTRAINT otrosProductos_ibfk_1 FOREIGN KEY (id_producto_otros) REFERENCES
,→ producto (id_producto);
1580
1581 --
1582 -- Filtros para la tabla ‘permanente‘
1583 --
1584 ALTER TABLE permanente
1585 ADD CONSTRAINT Permanente_ibfk_1 FOREIGN KEY (dni) REFERENCES empleado (
,→ dni_empleado);
1586
1587 --
1588 -- Filtros para la tabla ‘personallimpieza‘
1589 --
1590 ALTER TABLE personallimpieza
1591 ADD CONSTRAINT PersonalLimpieza_ibfk_1 FOREIGN KEY (dni) REFERENCES permanente (
,→ dni);
1592
1593 --
1594 -- Filtros para la tabla ‘pisco‘
1595 --
1596 ALTER TABLE pisco

BASE DE DATOS II 2019- I


Creación de la BD 38

1597 ADD CONSTRAINT Pisco_ibfk_1 FOREIGN KEY (id_botella) REFERENCES botella (


,→ id_botella);
1598
1599 --
1600 -- Filtros para la tabla ‘refrigeradora‘
1601 --
1602 ALTER TABLE refrigeradora
1603 ADD CONSTRAINT refrigeradora_ibfk_1 FOREIGN KEY (id_mobiliario) REFERENCES
,→ electronico (id_mobiliario);
1604
1605 --
1606 -- Filtros para la tabla ‘ron‘
1607 --
1608 ALTER TABLE ron
1609 ADD CONSTRAINT Ron_ibfk_1 FOREIGN KEY (id_botella) REFERENCES botella (id_botella)
,→ ;
1610
1611 --
1612 -- Filtros para la tabla ‘seguridad‘
1613 --
1614 ALTER TABLE seguridad
1615 ADD CONSTRAINT Seguridad_ibfk_1 FOREIGN KEY (dni) REFERENCES permanente (dni);
1616
1617 --
1618 -- Filtros para la tabla ‘sillas‘
1619 --
1620 ALTER TABLE sillas
1621 ADD CONSTRAINT sillas_ibfk_1 FOREIGN KEY (id_mobiliario) REFERENCES noelectronico (
,→ id_mobiliario);
1622
1623 --
1624 -- Filtros para la tabla ‘teldis‘
1625 --
1626 ALTER TABLE teldis
1627 ADD CONSTRAINT TelDis_ibfk_1 FOREIGN KEY (id_distribuidor) REFERENCES distribuidor
,→ (id_distribuidor);
1628
1629 --
1630 -- Filtros para la tabla ‘tequila‘
1631 --
1632 ALTER TABLE tequila
1633 ADD CONSTRAINT Tequila_ibfk_1 FOREIGN KEY (id_botella) REFERENCES botella (
,→ id_botella);
1634
1635 --
1636 -- Filtros para la tabla ‘tv‘
1637 --
1638 ALTER TABLE tv
1639 ADD CONSTRAINT tv_ibfk_1 FOREIGN KEY (id_mobiliario) REFERENCES electronico (
,→ id_mobiliario);
1640
1641 --

BASE DE DATOS II 2019- I


Creación de la BD 39

1642 -- Filtros para la tabla ‘utiliza‘


1643 --
1644 ALTER TABLE utiliza
1645 ADD CONSTRAINT Utiliza_ibfk_1 FOREIGN KEY (id_botella) REFERENCES botella (
,→ id_botella),
1646 ADD CONSTRAINT Utiliza_ibfk_2 FOREIGN KEY (id_cocktail) REFERENCES ‘cocktail‘ (
,→ id_cocktail);
1647

1648 --
1649 -- Filtros para la tabla ‘venta‘
1650 --
1651 ALTER TABLE venta
1652 ADD CONSTRAINT Venta_ibfk_1 FOREIGN KEY (dni_cliente) REFERENCES cliente (
,→ dni_cliente),
1653 ADD CONSTRAINT Venta_ibfk_2 FOREIGN KEY (dni_cajero) REFERENCES ‘cajero‘ (dni),
1654 ADD CONSTRAINT Venta_ibfk_3 FOREIGN KEY (id_producto) REFERENCES ‘producto‘ (
,→ id_producto);
1655
1656 --
1657 -- Filtros para la tabla ‘vinos‘
1658 --
1659 ALTER TABLE vinos
1660 ADD CONSTRAINT Vinos_ibfk_1 FOREIGN KEY (id_botella) REFERENCES botella (
,→ id_botella);
1661

1662 --
1663 -- Filtros para la tabla ‘vitrinas‘
1664 --
1665 ALTER TABLE vitrinas
1666 ADD CONSTRAINT vitrinas_ibfk_1 FOREIGN KEY (id_mobiliario) REFERENCES electronico (
,→ id_mobiliario);
1667
1668 --
1669 -- Filtros para la tabla ‘vodka‘
1670 --
1671 ALTER TABLE vodka
1672 ADD CONSTRAINT Vodka_ibfk_1 FOREIGN KEY (id_botella) REFERENCES botella (
,→ id_botella);
1673
1674 --
1675 -- Filtros para la tabla ‘wiski‘
1676 --
1677 ALTER TABLE wiski
1678 ADD CONSTRAINT Wiski_ibfk_1 FOREIGN KEY (id_botella) REFERENCES botella (
,→ id_botella);
1679 COMMIT;
1680 \section{Manipulaci\’on BD}

BASE DE DATOS II 2019- I


Referencias 40

Referencias
[1] Elmasri y Navathe: “Fundamentos de Sistemas de Bases de Datos”, 6ª y 4ª edición

[2] SilberschatzKorthSudarshan , “Database System Concepts”, 4ª Edición

BASE DE DATOS II 2019- I


Conclusiones 41

4. Conclusiones
Podemos concluir que la diferencia principal entre una base de datos dinámica y estática es
que en la primera podemos consultar y modificar la información, mientras que en la segunda
solo se puede consultar, por ende es mas conveniente una base de datos dinámica.

Cabe resaltar que escoger una base de datos u otra depende de las necesidades de la empresa,
puesto que no vale la pena gastar recursos implementando una base de datos dinámica cuando
solo se necesita añadir y consultar datos.

BASE DE DATOS II 2019- I

También podría gustarte