1. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
www.maestronline.com
Solicita una cotización a través de nuestros
correos.
Maestros Online
Bases de datos
Apoyo en
ejercicios
Servicio de asesorías y solución de ejercicios
Ciencias_help@hotmail.com
2. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
www.maestronline.com
1. El siguiente modelo corresponde a un DER (Diagrama de Entidad Relación) para un
sistema de renta de videos.
Imagen obtenida de Reinosa, E. (2012). Bases de datos. Buenos Aires, Argentina: Alfaomega. Sólo para fines
educativos.
2. Analiza el modelo y da respuesta a lo siguiente:
a. Identifica las entidades y sus atributos.
b. Escribe la interpretación del diagrama dado explicando el significado de cada relación
entre las entidades.
c. Explica el significado de relaciones 1:1, 1:N, M:N.
d. Investiga qué es una relación recursiva y da un ejemplo.
e. Agrega al modelo anterior lo siguiente: un miembro del videoclub puede tener varios
familiares que también son miembros del videoclub a través de una relación M:N que
se llame familiares.
Parte 1
1. Lee y analiza el siguiente caso:
3. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
www.maestronline.com
Como consultor de TI, te contacta un videoclub para que diseñes una base de datos y
posteriormente implementarla. Esta base de datos le permitirá almacenar consultar
información acerca de las películas que renta y devuelve un cliente.
El videoclub sólo proporciona la siguiente forma que actualmente utiliza para llevar un control
manual por cada transacción:
RENTAS/DEVOLUCION DE PELÍCULAS
Clave de
cliente:
________________________________________________________________
Folio: ________________________________________________________________
Fecha de
emisión:
________________________________________________________________
Nombre
del cliente:
________________________________________________________________
Dirección: ________________________________________________________________
Teléfono: ________________________________________________________________
RFC: ________________________________________________________________
Clave de
película
Título
Tipo de
Movimiento
Fecha de Renta
Fecha de
Devolución
2. Obtén el diagrama entidad-relación o diagrama de clases.
3. Diseña detalladamente la base de datos resultante:
a. Normaliza la base de datos.
b. Nombre de columna, tipo de dato, especificación.
4. Construye la base de datos usando el DDL de SQL.
a. Incluye para cada tabla sus columnas y tipos.
b. Incluye para cada tabla su llave primaria.
c. Incluye para cada tabla sus llaves foráneas (si la hubiere).
5. Llena con al menos 10 campos cada una de las tablas.
Parte 2
6. El dueño de la empresa “Yo vendo” llega a ti como consultor del área de TI, te presenta su
problema y te pide que lo apoyes en darle solución: Compañía yovendo.com
4. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
www.maestronline.com
La compañía “Yo vendo” se dedica a vender productos por Internet y requiere guardar la
información de todos sus clientes, productos, proveedores, empresas de mensajería y de sus
pedidos.
7. Entre las características que te solicitan para el diseño de la base de datos se encuentran
las siguientes:
a. Se tiene el nombre del producto, proveedor, precio unitario actual, unidades en
inventario, nivel de reorden (nivel en el que es necesario pedir más producto para que
la existencia se encuentre en equilibrio).
b. El producto se clasifica en categorías, cada producto tiene una categoría, para cada
una de ellas se tiene nombre y descripción.
c. Se tiene una lista de todos los clientes de la empresa con datos como su Id, su
nombre, título, dirección, ciudad, región, código postal, teléfono y correo electrónico.
d. Debe guardar la información de clientes. el cual puede tener múltiples pedidos
(órdenes de compra).
e. Se guarda la fecha en que se hizo el pedido (orderDate), para cuándo es requerido
(Required date) y cuándo se envió (shippedDate).
f. Cada pedido se envía por mensajería a una dirección especificada en la orden
(ShipAddress). En cada uno de ellos se registra el empleado que lo atendió. Del
empleado se tiene su Id, su nombre y apellido, fecha de nacimiento (BirthDate), fecha
de contratación (HireDate), su dirección y el nombre de su jefe, que a su vez es un
empleado.
g. En cada pedido se pueden solicitar varias unidades del mismo producto y se requiere
guardar el precio al que se vendió.
h. El precio del producto en el catálogo de venta puede cambiar sin previo aviso.
i. De la compañía de mensajería se tiene el Id, el nombre y su teléfono. Para el
proveedor se necesita guardar el nombre, dirección, ciudad, CP, país y teléfono.
8. Como parte de tu trabajo como especialista de TI, te pide que entregues lo siguiente:
a. Modelo de clases en UML.
b. Definición de las tablas, llaves primarias y llaves foráneas.
c. Normalización de tablas.
1. Contesta las siguientes preguntas.
a. ¿Cuál es la función del estatuto JOIN?
b. ¿Cuáles son las diferencias entre LEFT JOIN, RIGHT JOIN e INNER JOIN?
2. Analiza la siguiente base de datos relacional llamada Expedientes:
Doctor
PK doc_id
5. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
www.maestronline.com
Nombre
ApellidoPaterno
ApellidoMaterno
Especialidad
Telefono
Paciente
PK Paciente_Id
Nombre
ApellidoPaterno
ApellidoMaterno
Compañia de Seguros
Telefono
Expediente
PK Fecha_admision
PK, FK Paciente_Id
FK doc_id
Diagnóstico
Donde:
PK Significa llave primaria
FK Significa llave foránea
Nota: en la tabla Expediente la llave primaria está compuesta por la unión de la fecha de
admisión y el número de paciente.
El número de paciente (Paciente_Id) en la tabla Expediente es llave foránea relacionada con
la tabla Paciente.
3. Construye la base de datos anterior con las instrucciones del DDL, incluyan las
restricciones necesarias.
4. Define las restricciones apropiadas para conservar la integridad de la base de datos
Expedientes mediante instrucciones del DDL.
5. Una vez construida la base de datos, escribe las instrucciones necesarias para llenar los
datos de la base de datos usando la instrucción INSERT, con al menos 10 registros por
tabla.
6. Realiza las siguientes operaciones con el DML específico para Oracle:
a. Enlista todos los pacientes y sus respectivos doctores.
b. Enlista todos los doctores y sus respectivos pacientes.
c. Enlista los pacientes para un doctor en particular, por ejemplo el doctor cuyo doc_id es
1.
d. Enlista los doctores quienes tienen la misma especialidad.
6. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
www.maestronline.com
e. Enlista el nombre de los pacientes que tienen más un expediente.
f. Muestra el nombre de los doctores que atendieron pacientes en lo que va del año.
g. Muestra los doctores que no tengan asignados en lo que va del año.
h. Muestra los pacientes que no tienen asignado un doctor.
i. Muestra los expedientes cuyo diagnóstico excede los 150 caracteres.
Parte 1
1. Analiza la siguiente tabla:
Juguete
IdJuguete Descripcion Genero EdadMinima EdadMaxima Existencia
1 Pelota Ambos 3 10 2
2 Muñeca Niña 3 12 3
3
Soldado
plástico
Niño 4 12 4
2. Construye la tabla en Oracle usando el DDL.
3. Desarrolla un cursor que sólo incluya aquellos juguetes de ambos géneros.
4. Realiza el código PL/SQL que recorra el cursor creado en el punto anterior y sume un
10% a la existencia de los juguetes con edad mínima de 8 años y máxima de 10.
5. Para el inciso 4 utiliza una estructura de registro adecuada a la tabla.
6. Construye un trigger que inserte un registro en una tabla llamada Auditoria que sólo tiene
un campo Id y un campo de descripción de evento, el trigger se ejecutará cada vez que se
inserte un registro a la tabla Juguete.
7. Lleva a cabo pruebas unitarias que permitan comprobar que la tabla de Auditoría se esté
llenando.
Parte 2
8. Construye la siguiente base de datos mediante un bloque de PL/SQL que incluya las
restricciones adecuadas según tu criterio de diseñador de bases de datos:
Tabla INVENTORY
PRODUCT_I
D
PRODUCT_DESCRIPTIO
N
PRODUCT_STATU
S
STD_ORDER_QT
Y
1 JACKET STYLE #1 IN STOCK 100
7. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
www.maestronline.com
2 JACKET STYLE #2 BACK ORDERED 200
3 JACKET STYLE #3 SPECIAL ORDER 300
Tabla CUST_ORDERS
ORDER_NO PRODUCT_ID ARRIVAL_DATE
1 1 11/12/2013
2 2 23/11/2013
3 3 3/01/2014
4 7 29/12/2013
5 5 18/12/2013
6 3 20/12/2013
Tabla SPECIAL_ORDERS
ORDER_ID PRODUCT_ID ORDER_QTY
9. Utiliza las tablas INVENTORY, CUST_ORDERS y SPECIAL_ORDERS según las
especificaciones de la siguiente página para crear un bloque PL/SQL que realice las
siguientes operaciones:
a. Obtén del usuario un número de orden y obtén de la
tabla CUST_ORDERS el PRODUCT_IDasociado. Busca en la
tabla INVENTORY todos los datos cuyo PRODUCT_ID sea el que recuperamos
anteriormente.
b. Si el producto tiene un PRODUCT_STATUS de IN STOCK, hay que actualizar el valor
de la columna ARRIVAL_DATE de la tabla CUST_ORDERS asociado al número de
orden capturado por el usuario. El nuevo valor se calculará sumándole al día de hoy
siete días más.
c. Si el producto tiene un PRODUCT_STATUS de BACK ORDERED, hay que actualizar
el valor de la columna ARRIVAL_DATE de la tabla CUST_ORDERS asociado al
número de orden capturado por el usuario. El nuevo valor será el día de hoy más un
mes.
d. Si el producto tiene un PRODUCT_STATUS igual a SPECIAL ORDER, hay que
actualizar la columna de ARRIVAL_DATE de la tabla CUST_ORDERS asociado al
número de orden con el valor de la fecha de hoy más dos meses dentro de la orden
asociada (la que capturó el operador). Además inserta dentro de la
tabla SPECIAL_ORDERS un nuevo registro, tomando como valores lo siguiente (este
último requerimiento llevarlo a cabo usando triggers):
ORDER_ID: Un valor arbitrario.
PRODUCT_ID: El valor asociado.
ORDER_QTY: El valor de STD_ORDER_QTY correspondiente a ese producto.
8. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com
www.maestronline.com